diff --git a/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Bold.ttf b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Bold.ttf new file mode 100644 index 0000000000..fd79d43bea Binary files /dev/null and b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Bold.ttf differ diff --git a/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000000..9bc800958a Binary files /dev/null and b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf differ diff --git a/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Italic.ttf b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Italic.ttf new file mode 100644 index 0000000000..c90da48ff3 Binary files /dev/null and b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Italic.ttf differ diff --git a/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Light.ttf b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Light.ttf new file mode 100644 index 0000000000..0d381897da Binary files /dev/null and b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Light.ttf differ diff --git a/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Regular.ttf b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Regular.ttf new file mode 100644 index 0000000000..db433349b7 Binary files /dev/null and b/Plugins/org.blueberry.ui.qt/resources/fonts/OpenSans/OpenSans-Regular.ttf differ diff --git a/Plugins/org.blueberry.ui.qt/resources/org_blueberry_ui_qt.qrc b/Plugins/org.blueberry.ui.qt/resources/org_blueberry_ui_qt.qrc index 0ffe9db18b..2829d41e1e 100755 --- a/Plugins/org.blueberry.ui.qt/resources/org_blueberry_ui_qt.qrc +++ b/Plugins/org.blueberry.ui.qt/resources/org_blueberry_ui_qt.qrc @@ -1,67 +1,72 @@ cursor_bottom.xpm cursor_center.xpm cursor_left.xpm cursor_offscreen.xpm cursor_right.xpm cursor_top.xpm dialog-error.svg icon_missing.png tab_close_grey.svg tab_close_grey_active.svg defaultstyle.qss defaultstyle-activetab.qss defaultstyle-tab.qss dark/up_arrow_disabled.png dark/Hmovetoolbar.png dark/stylesheet-branch-end.png dark/branch_closed-on.png dark/stylesheet-vline.png dark/branch_closed.png dark/branch_open-on.png dark/transparent.png dark/right_arrow_disabled.png dark/sizegrip.png dark/tab_close_grey.svg dark/tab_close_grey_active.svg dark/tab_close_grey_active.svg dark/down_arrow.png dark/Vmovetoolbar.png dark/left_arrow.png dark/stylesheet-branch-more.png dark/up_arrow.png dark/right_arrow.png dark/left_arrow_disabled.png dark/Hsepartoolbar.png dark/branch_open.png dark/Vsepartoolbar.png dark/down_arrow_disabled.png dark/undock.png dark/checkbox_checked_disabled.png dark/checkbox_checked_focus.png dark/checkbox_checked.png dark/checkbox_indeterminate.png dark/checkbox_indeterminate_focus.png dark/checkbox_unchecked_disabled.png dark/checkbox_unchecked_focus.png dark/checkbox_unchecked.png dark/radio_checked_disabled.png dark/radio_checked_focus.png dark/radio_checked.png dark/radio_unchecked_disabled.png dark/radio_unchecked_focus.png dark/radio_unchecked.png darkstyle.qss darkstyle-tab.qss darkstyle-activetab.qss fonts/FiraSans/FiraSans.ttc fonts/LightFiraSans/LightFiraSans.ttc fonts/Roboto/Roboto.ttf + fonts/OpenSans/OpenSans-Bold.ttf + fonts/OpenSans/OpenSans-BoldItalic.ttf + fonts/OpenSans/OpenSans-Italic.ttf + fonts/OpenSans/OpenSans-Light.ttf + fonts/OpenSans/OpenSans-Regular.ttf fonts/xkcd/xkcd.ttf diff --git a/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp b/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp index f695ef9495..49cd7eae65 100644 --- a/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp +++ b/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp @@ -1,392 +1,410 @@ /*=================================================================== BlueBerry Platform Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "berryQtStyleManager.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "berryQtPreferences.h" #include "berryWorkbenchPlugin.h" namespace berry { QtStyleManager::QtStyleManager() { AddDefaultStyle(); AddDefaultFonts(); ReadPreferences(); } void QtStyleManager::ReadPreferences() { IPreferencesService* prefService = WorkbenchPlugin::GetDefault()->GetPreferencesService(); IPreferences::Pointer stylePref = prefService->GetSystemPreferences()->Node(QtPreferences::QT_STYLES_NODE); QString paths = stylePref->Get(QtPreferences::QT_STYLE_SEARCHPATHS, ""); QStringList pathList = paths.split(";", QString::SkipEmptyParts); QStringListIterator it(pathList); while (it.hasNext()) { AddStyles(it.next()); } QString styleName = stylePref->Get(QtPreferences::QT_STYLE_NAME, ""); // if a style is contributed via the Qt resource mechanism, it may not be // registered yet. if (Contains(styleName)) // do not update the style in the QApplication instance, // since it might not be created yet SetStyle(styleName, false); else SetDefaultStyle(false); } QtStyleManager::~QtStyleManager() { for (FileNameToStyleMap::const_iterator i = styles.begin(); i != styles.end(); ++i) { delete i.value(); } } void QtStyleManager::AddDefaultStyle() { #ifndef _APPLE_ AddStyle(":/org.blueberry.ui.qt/defaultstyle.qss", "Default"); AddStyle(":/org.blueberry.ui.qt/darkstyle.qss", "Dark"); defaultStyle = styles[":/org.blueberry.ui.qt/defaultstyle.qss"]; #endif } void QtStyleManager::AddDefaultFonts() { m_customFontNames.append(QString("<>")); - AddFont(QString(":/org.blueberry.ui.qt/fonts/FiraSans/FiraSans.ttc"), QString("Fira Sans")); - AddFont(QString(":/org.blueberry.ui.qt/fonts/LightFiraSans/LightFiraSans.ttc"), QString("Light Fira Sans")); - AddFont(QString(":/org.blueberry.ui.qt/fonts/Roboto/Roboto.ttf"), QString("Roboto")); - AddFont(QString(":/org.blueberry.ui.qt/fonts/xkcd/xkcd.ttf"), QString("xkcd")); + + m_customFontNames.append(QString("Fira Sans")); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/FiraSans/FiraSans.ttc"); + + m_customFontNames.append(QString("Light Fira Sans")); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/LightFiraSans/LightFiraSans.ttc"); + + m_customFontNames.append(QString("Roboto")); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/Roboto/Roboto.ttf"); + + m_customFontNames.push_back(QString("Open Sans")); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/OpenSans/OpenSans-Bold.ttf"); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/OpenSans/OpenSans-BoldItalic.ttf"); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/OpenSans/OpenSans-Italic.ttf"); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/OpenSans/OpenSans-Light.ttf"); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/OpenSans/OpenSans-Regular.ttf"); + + m_customFontNames.push_back(QString("xkcd")); + QFontDatabase::addApplicationFont(":/org.blueberry.ui.qt/fonts/xkcd/xkcd.ttf"); } void QtStyleManager::ClearStyles() { for (FileNameToStyleMap::iterator i = styles.begin(); i != styles.end(); ) { if (!i.value()->fileName.startsWith(':')) { delete i.value(); i = styles.erase(i); } else ++i; } SetDefaultStyle(); } QtStyleManager::Style QtStyleManager::GetStyle() const { return Style(currentStyle->name, currentStyle->fileName); } QString QtStyleManager::GetStylesheet() const { return currentStyle->stylesheet; } QString QtStyleManager::GetActiveTabStylesheet() const { return currentStyle->activeTabStylesheet; } QString QtStyleManager::GetTabStylesheet() const { return currentStyle->tabStylesheet; } void QtStyleManager::AddStyle(const QString& styleFileName, const QString& styleName) { auto newStyle = new ExtStyle(); if (styleName.isEmpty()) { QFileInfo info(styleFileName); newStyle->name = info.completeBaseName(); } else { newStyle->name = styleName; } newStyle->fileName = styleFileName; styles.insert(newStyle->fileName, newStyle); } -void QtStyleManager::AddFont(const QString& fontFilePath, - const QString& fontName) -{ - QFontDatabase::addApplicationFont(fontFilePath); - m_customFontNames.push_back(fontName); -} - void QtStyleManager::GetFonts(QStringList& fontNames) const { fontNames = m_customFontNames; } QString QtStyleManager::GetFont() const { return currentFont; } void QtStyleManager::AddStyles(const QString& path) { QDirIterator dirIt(path); while (dirIt.hasNext()) { QString current = dirIt.next(); QFileInfo info = dirIt.fileInfo(); if (info.isFile() && info.isReadable()) { QString fileName = info.fileName(); if (fileName.endsWith("-tab.qss") || fileName.endsWith("-activetab.qss")) continue; if (fileName.endsWith(".qss")) AddStyle(current); } } } void QtStyleManager::ReadStyleData(ExtStyle* style) { QString tabStyleFileName(style->fileName); QString activeTabStyleFileName(style->fileName); int index = style->fileName.lastIndexOf(".qss"); tabStyleFileName.replace(index, 4, "-tab.qss"); activeTabStyleFileName.replace(index, 4, "-activetab.qss"); QFile styleFile(style->fileName); if (styleFile.open(QIODevice::ReadOnly)) { QTextStream in(&styleFile); style->stylesheet = in.readAll(); } else { BERRY_WARN << "Could not read " << style->fileName.toStdString(); } QFile tabStyleFile(tabStyleFileName); if (tabStyleFile.open(QIODevice::ReadOnly)) { QTextStream in(&tabStyleFile); style->tabStylesheet = in.readAll(); } else { BERRY_WARN << "Could not read " << tabStyleFileName.toStdString(); } QFile activeTabStyleFile(activeTabStyleFileName); if (activeTabStyleFile.open(QIODevice::ReadOnly)) { QTextStream in(&activeTabStyleFile); style->activeTabStylesheet = in.readAll(); } else { BERRY_WARN << "Could not read " << activeTabStyleFileName.toStdString(); } } void QtStyleManager::RemoveStyle(const QString& styleFileName) { if (currentStyle->fileName == styleFileName) { SetDefaultStyle(); } delete styles.take(styleFileName); } void QtStyleManager::RemoveStyles(const QString& repo) { if (repo.isEmpty()) { ClearStyles(); return; } for (FileNameToStyleMap::iterator i = styles.begin(); i != styles.end();) { ExtStyle* style = i.value(); QFileInfo info(style->fileName); if (info.absolutePath() == repo) { if (style->name == currentStyle->name) { SetDefaultStyle(); } i = styles.erase(i); delete style; } else { ++i; } } } void QtStyleManager::GetStyles(StyleList& styleNames) const { for (FileNameToStyleMap::const_iterator i = styles.begin(); i != styles.end(); ++i) styleNames.push_back(Style(i.value()->name, i.value()->fileName)); } void QtStyleManager::GetIconThemes(IconThemeList& iconThemes) const { iconThemes.clear(); iconThemes.push_back(IconTheme(QString( "<>" ))); QStringList iconSearchPaths = QIcon::themeSearchPaths(); for(QStringList::Iterator pathIt = iconSearchPaths.begin(); pathIt != iconSearchPaths.end(); ++pathIt) { QDirIterator dirIt(*pathIt); while (dirIt.hasNext()) { QString current = dirIt.next(); QFileInfo info = dirIt.fileInfo(); if (info.isDir() && info.isReadable()) { QFileInfo themeFile( info.filePath() + QString("/index.theme") ); if( themeFile.exists() && themeFile.isFile() && themeFile.isReadable() ) { QString fileName = info.fileName(); iconThemes.push_back( IconTheme(fileName) ); } } } } } void QtStyleManager::SetStyle(const QString& fileName) { SetStyle(fileName, true); } void QtStyleManager::SetStyle(const QString& fileName, bool update) { if (fileName.isEmpty()) { SetDefaultStyle(); return; } FileNameToStyleMap::const_iterator i = styles.find(fileName); ExtStyle* style = nullptr; if (i == styles.end()) { BERRY_WARN << "Style " + fileName.toStdString() << " does not exist"; style = defaultStyle; } else { style = i.value(); } currentStyle = style; ReadStyleData(style); if (update) { qApp->setStyleSheet(currentStyle->stylesheet); PlatformUI::GetWorkbench()->UpdateTheme(); } } void QtStyleManager::SetFont(const QString& fontName) { if( fontName == QString( "<>" ) || fontName == QString( "" )) { qApp->setFont(QFontDatabase::systemFont(QFontDatabase::GeneralFont)); } else { - QFont font(fontName); + QFont font; + font.setFamily(fontName); + font.setPointSize(11); + std::cout << "[FONT DEBUG] bold?: " << font.bold() << std::endl; + + QStringList foo = QFontDatabase::applicationFontFamilies(1); + for(size_t i = 0; i < foo.size(); ++i) + { + std::cout << "[FONT DEBUG]applicationFontFamilies?: " << foo[i] << std::endl; + } + qApp->setFont(font); } currentFont = fontName; qApp->setStyleSheet(currentStyle->stylesheet); PlatformUI::GetWorkbench()->UpdateTheme(); } void QtStyleManager::SetIconTheme(const QString& themeName) { if( themeName == QString( "<>" ) ) { SetIconTheme( QString("tango"), true); } else { SetIconTheme(themeName, true); } } void QtStyleManager::SetIconTheme(const QString& themeName, bool /*update*/) { QIcon::setThemeName( themeName ); } QtStyleManager::Style QtStyleManager::GetDefaultStyle() const { return Style(defaultStyle->name, defaultStyle->fileName); } void QtStyleManager::SetDefaultStyle() { SetDefaultStyle(true); } void QtStyleManager::SetDefaultStyle(bool update) { SetStyle(defaultStyle->fileName, update); } bool QtStyleManager::Contains(const QString& fileName) const { return styles.contains(fileName); } } diff --git a/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionViewControls.ui b/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionViewControls.ui index ac9bf83f81..9f398951c2 100755 --- a/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionViewControls.ui +++ b/Plugins/org.mitk.gui.qt.pointsetinteraction/src/internal/QmitkPointSetInteractionViewControls.ui @@ -1,136 +1,179 @@ QmitkPointSetInteractionControls 0 0 376 580 0 0 QmitkPointSetInteractionView 6 - + + 9 + + + 9 + + + 9 + + 9 2 - + + 2 + + + 2 + + + 2 + + 2 Selected point set: none 2 - + + 2 + + + 2 + + + 2 + + 2 0 0 Add new point set 0 0 + + + 50 + false + false + + Current pointset 2 - + + 2 + + + 2 + + + 2 + + 2 0 0 Qt::Vertical 20 40 QmitkPointListWidget QWidget
QmitkPointListWidget.h
mitkDataNode.h mitkPointSet.h
diff --git a/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.png b/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.png index 00cf383e5b..b2d334666b 100644 Binary files a/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.png and b/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.png differ