refs #485, moved stylesheet utility into CGuiApplication

This commit is contained in:
Klaus Basan
2016-03-13 19:25:31 +00:00
committed by Mathew Sutcliffe
parent b73562b33c
commit 18a907086d
19 changed files with 73 additions and 70 deletions

View File

@@ -1,6 +1,6 @@
#include "hotkeydialog.h"
#include "ui_hotkeydialog.h"
#include "blackgui/stylesheetutility.h"
#include "blackgui/guiapplication.h"
#include "blackmisc/input/hotkeycombination.h"
#include "blackmisc/icon.h"
#include "blackmisc/logmessage.h"
@@ -74,7 +74,7 @@ namespace BlackGui
void CHotkeyDialog::initStyleSheet()
{
const QString s = CStyleSheetUtility::instance().styles(
const QString s = sGui->getStyleSheetUtility().styles(
{
CStyleSheetUtility::fileNameFonts(),
CStyleSheetUtility::fileNameStandardWidget()

View File

@@ -101,7 +101,7 @@ namespace BlackGui
void CNavigatorDialog::ps_onStyleSheetsChanged()
{
const QString fn(CStyleSheetUtility::fileNameNavigator());
const QString qss(CStyleSheetUtility::instance().style(fn));
const QString qss(sGui->getStyleSheetUtility().style(fn));
this->setStyleSheet(qss);
this->repaint();
}
@@ -201,6 +201,5 @@ namespace BlackGui
QString frameLessActionText = this->isFrameless() ? "Normal window" : "Frameless";
contextMenu->addAction(BlackMisc::CIcons::tableSheet16(), frameLessActionText, this, SLOT(toggleFrameless()));
}
} // ns
} // ns

View File

@@ -51,7 +51,7 @@ namespace BlackGui
this->ui->cb_SettingsGuiFontStyle->setCurrentText(CStyleSheetUtility::fontAsCombinedWeightStyle(font));
this->ui->cb_SettingsGuiFont->setCurrentFont(font);
this->ui->cb_SettingsGuiFontSize->setCurrentText(QString::number(font.pointSize()));
this->m_fontColor = QColor(CStyleSheetUtility::instance().fontColor());
this->m_fontColor = QColor(sGui->getStyleSheetUtility().fontColor());
this->ui->le_SettingsGuiFontColor->setText(this->m_fontColor.name());
bool connected = this->connect(this->ui->cb_SettingsGuiFont, SIGNAL(currentFontChanged(QFont)), this, SLOT(ps_fontChanged()));
Q_ASSERT(connected);
@@ -91,9 +91,6 @@ namespace BlackGui
return this->ui->hs_SettingsGuiUserRefreshTime->value();
}
/*
* Set tab
*/
void CSettingsComponent::setSettingsTab(CSettingsComponent::SettingTab tab)
{
this->setCurrentIndex(static_cast<int>(tab));
@@ -107,10 +104,10 @@ namespace BlackGui
QString fontColor = this->m_fontColor.name();
if (!this->m_fontColor.isValid() || this->m_fontColor.name().isEmpty())
{
fontColor = CStyleSheetUtility::instance().fontColor();
fontColor = sGui->getStyleSheetUtility().fontColor();
}
this->ui->le_SettingsGuiFontColor->setText(fontColor);
bool ok = CStyleSheetUtility::instance().updateFonts(fontFamily, fontSize, CStyleSheetUtility::fontStyle(fontStyleCombined), CStyleSheetUtility::fontWeight(fontStyleCombined), fontColor);
bool ok = sGui->updateFonts(fontFamily, fontSize, CStyleSheetUtility::fontStyle(fontStyleCombined), CStyleSheetUtility::fontWeight(fontStyleCombined), fontColor);
if (ok)
{
CLogMessage(this).info("Updated font style");

View File

@@ -11,6 +11,7 @@
#include "blackmisc/icons.h"
#include "blackmisc/logmessage.h"
#include "blackgui/stylesheetutility.h"
#include "blackgui/guiapplication.h"
#include "blackgui/guiutility.h"
#include <QCloseEvent>
#include <QStyleOption>
@@ -35,7 +36,7 @@ namespace BlackGui
// connect
connect(this, &QDockWidget::topLevelChanged, this, &CDockWidget::ps_onTopLevelChanged);
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CDockWidget::ps_onStyleSheetsChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CDockWidget::ps_onStyleSheetsChanged);
connect(this, &QDockWidget::visibilityChanged, this, &CDockWidget::ps_onVisibilityChanged);
}
@@ -284,7 +285,7 @@ namespace BlackGui
{
QString sectionUsed(section.isEmpty() ? this->objectName() : section);
if (sectionUsed.isEmpty()) { return false; }
const QSettings *settings = CStyleSheetUtility::instance().iniFile();
const QSettings *settings = sGui->getStyleSheetUtility().iniFile();
Q_ASSERT_X(settings, "CDockWidget::setMarginsFromSettings", "Missing ini settings");
if (!settings) { return false; }

View File

@@ -10,6 +10,7 @@
#include "guiutility.h"
#include "dockwidgetinfobar.h"
#include "components/maininfoareacomponent.h"
#include "guiapplication.h"
#include "stylesheetutility.h"
#include "blackmisc/icons.h"
@@ -36,7 +37,7 @@ namespace BlackGui
void CDockWidgetInfoBar::ps_onStyleSheetsChanged()
{
if (!this->objectName().isEmpty()) { this->setMarginsFromSettings(); }
QString st = CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameInfoBar());
QString st = sGui->getStyleSheetUtility().style(CStyleSheetUtility::fileNameInfoBar());
this->setStyleSheet(st);
}
}

View File

@@ -8,7 +8,7 @@
*/
#include "dropsite.h"
#include "stylesheetutility.h"
#include "guiapplication.h"
#include <QDragEnterEvent>
using namespace BlackMisc;
@@ -21,7 +21,7 @@ namespace BlackGui
setAlignment(Qt::AlignCenter);
setAcceptDrops(true);
this->setInfoText(tr("<drop content>"));
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CDropSite::ps_onStyleSheetsChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CDropSite::ps_onStyleSheetsChanged);
this->ps_onStyleSheetsChanged();
}

View File

@@ -8,7 +8,7 @@
*/
#include "filterdialog.h"
#include "blackgui/stylesheetutility.h"
#include "blackgui/guiapplication.h"
namespace BlackGui
{
@@ -17,8 +17,8 @@ namespace BlackGui
CFilterDialog::CFilterDialog(QWidget *parent) : QDialog(parent, Qt::Tool)
{
this->setWindowTitle("Filter dialog");
ps_onStyleSheetChanged();
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CFilterDialog::ps_onStyleSheetChanged);
this->ps_onStyleSheetChanged();
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CFilterDialog::ps_onStyleSheetChanged);
}
CFilterDialog::~CFilterDialog()
@@ -26,11 +26,9 @@ namespace BlackGui
void CFilterDialog::ps_onStyleSheetChanged()
{
const QString qss = CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameFilterDialog());
const QString qss = sGui->getStyleSheetUtility().style(CStyleSheetUtility::fileNameFilterDialog());
this->setStyleSheet(qss);
}
} // namespace
} // namespace

View File

@@ -9,6 +9,7 @@
#include "filterwidget.h"
#include "blackgui/stylesheetutility.h"
#include "blackgui/guiapplication.h"
namespace BlackGui
{
@@ -18,7 +19,7 @@ namespace BlackGui
{
this->setWindowTitle("Filter widget");
ps_onStyleSheetChanged();
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CFilterWidget::ps_onStyleSheetChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CFilterWidget::ps_onStyleSheetChanged);
}
CFilterWidget::~CFilterWidget()
@@ -41,7 +42,7 @@ namespace BlackGui
void CFilterWidget::ps_onStyleSheetChanged()
{
const QString qss = CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameFilterDialog());
const QString qss = sGui->getStyleSheetUtility().style(CStyleSheetUtility::fileNameFilterDialog());
this->setStyleSheet(qss);
}
@@ -64,5 +65,3 @@ namespace BlackGui
} // namespace
} // namespace

View File

@@ -41,7 +41,7 @@ namespace BlackGui
CGuiApplication::CGuiApplication(const QString &applicationName, const QPixmap &icon) : CApplication(applicationName)
{
setWindowIcon(icon);
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CGuiApplication::styleSheetsChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CGuiApplication::styleSheetsChanged);
sGui = this;
}
@@ -242,11 +242,6 @@ namespace BlackGui
return m->displayTextInConsole(text);
}
bool CGuiApplication::reloadStyleSheets() const
{
return CStyleSheetUtility::instance().read();
}
void CGuiApplication::addMenuForSettingsAndCache(QMenu &menu)
{
QMenu *sm = menu.addMenu(CIcons::appSettings16(), "Settings");
@@ -417,6 +412,21 @@ namespace BlackGui
Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed");
}
const CStyleSheetUtility &CGuiApplication::getStyleSheetUtility() const
{
return this->m_styleSheetUtility;
}
bool CGuiApplication::reloadStyleSheets()
{
return m_styleSheetUtility.read();
}
bool CGuiApplication::updateFonts(const QString &fontFamily, const QString &fontSize, const QString &fontStyle, const QString &fontWeight, const QString &fontColor)
{
return m_styleSheetUtility.updateFonts(fontFamily, fontSize, fontStyle, fontWeight, fontColor);
}
void CGuiApplication::cmdLineHelpMessage()
{
if (CProject::isRunningOnWindowsNtPlatform())
@@ -447,7 +457,6 @@ namespace BlackGui
bool CGuiApplication::parsingHookIn()
{
// void
return true;
}

View File

@@ -15,6 +15,7 @@
#include "blackcore/application.h"
#include "blackgui/mainwindowaccess.h"
#include "blackgui/enableforframelesswindow.h"
#include "blackgui/stylesheetutility.h"
#include "blackgui/blackguiexport.h"
#include <QMenu>
#include <QSplashScreen>
@@ -83,9 +84,6 @@ namespace BlackGui
//! Allow the GUI to refresh by processing events, call the event loop
void processEventsToRefreshGui() const;
//! Reload style sheets
bool reloadStyleSheets() const;
//! Init the main application window based on information in this application
void initMainApplicationWindow(QWidget *mainWindow) const;
@@ -116,6 +114,15 @@ namespace BlackGui
//! Window operations
void addMenuWindow(QMenu &menu);
//! Style sheet handling
const CStyleSheetUtility &getStyleSheetUtility() const;
//! Reload style sheets
bool reloadStyleSheets();
//! Update the fonts
bool updateFonts(const QString &fontFamily, const QString &fontSize, const QString &fontStyle, const QString &fontWeight, const QString &fontColor);
//! Set icon
//! \note Pixmap requires a valid QApplication, so it cannot be passed as constructor parameter
static void setWindowIcon(const QPixmap &icon);
@@ -151,7 +158,8 @@ namespace BlackGui
QPixmap m_windowIcon;
QCommandLineOption m_cmdWindowStateMinimized { "empty" }; //!< window state (minimized)
QCommandLineOption m_cmdWindowMode { "empty" }; //!< window mode (flags: frameless ...)
QScopedPointer<QSplashScreen> m_splashScreen; //!< splash screen
CStyleSheetUtility m_styleSheetUtility{{}, this}; //!< style sheet utility
QScopedPointer<QSplashScreen> m_splashScreen; //!< splash screen
//! Qt help message to formatted HTML
static QString beautifyHelpMessage(const QString &helpText);

View File

@@ -9,6 +9,7 @@
#include "infoarea.h"
#include "stylesheetutility.h"
#include "guiapplication.h"
#include "guiutility.h"
#include "blackmisc/icons.h"
#include "blackmisc/logmessage.h"
@@ -52,7 +53,7 @@ namespace BlackGui
// context menu
this->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &CInfoArea::customContextMenuRequested, this, &CInfoArea::ps_showContextMenu);
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CInfoArea::ps_onStyleSheetChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CInfoArea::ps_onStyleSheetChanged);
// initial style sheet setting
this->ps_onStyleSheetChanged();
@@ -477,7 +478,7 @@ namespace BlackGui
// if we have > 1 docked widgets, we have a tab bar
if (this->m_tabBar)
{
QString qss = CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameDockWidgetTab());
QString qss = sGui->getStyleSheetUtility().style(CStyleSheetUtility::fileNameDockWidgetTab());
this->m_tabBar->setStyleSheet(qss);
this->m_tabBar->setObjectName("comp_MainInfoAreaDockWidgetTab");
this->m_tabBar->setMovable(false);
@@ -585,7 +586,7 @@ namespace BlackGui
{
// with Qt 5.5 still needed
const QString section(this->objectName());
const QSettings *settings = CStyleSheetUtility::instance().iniFile();
const QSettings *settings = sGui->getStyleSheetUtility().iniFile();
if (settings && !section.isEmpty())
{
for (CDockWidgetInfoArea *dw : this->m_dockWidgetInfoAreas)
@@ -753,7 +754,7 @@ namespace BlackGui
this->iniFileBasedSettings();
if (this->m_tabBar)
{
QString qss = CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameDockWidgetTab());
QString qss = sGui->getStyleSheetUtility().style(CStyleSheetUtility::fileNameDockWidgetTab());
this->m_tabBar->setStyleSheet(qss);
}
}

View File

@@ -8,7 +8,7 @@
*/
#include "blackgui/overlaymessages.h"
#include "blackgui/stylesheetutility.h"
#include "blackgui/guiapplication.h"
#include "ui_overlaymessages.h"
#include <QKeyEvent>
@@ -24,7 +24,7 @@ namespace BlackGui
ui(new Ui::COverlayMessages)
{
this->init(w, h);
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &COverlayMessages::ps_onStyleSheetsChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &COverlayMessages::ps_onStyleSheetsChanged);
connect(this->ui->pb_Ok, &QPushButton::clicked, this, &COverlayMessages::ps_okClicked);
connect(this->ui->pb_Cancel, &QPushButton::clicked, this, &COverlayMessages::ps_cancelClicked);

View File

@@ -82,13 +82,13 @@ namespace BlackGui
return w.append(" ").append(s);
}
QString CStyleSheetUtility::fontColor()
QString CStyleSheetUtility::fontColor() const
{
QString s = this->style(fileNameFonts()).toLower();
const QString s = this->style(fileNameFonts()).toLower();
if (!s.contains("color:")) return "red";
QRegExp rx("color:\\s*(#*\\w+);");
rx.indexIn(s);
QString c = rx.cap(1);
const QString c = rx.cap(1);
return c.isEmpty() ? "red" : c;
}
@@ -197,7 +197,7 @@ namespace BlackGui
{
static const QString n("normal");
QString c = combinedStyleAndWeight.toLower();
foreach(QString s, fontStyles())
foreach (QString s, fontStyles())
{
if (c.contains(s))
{
@@ -211,7 +211,7 @@ namespace BlackGui
{
static const QString n("normal");
QString c = combinedStyleAndWeight.toLower();
foreach(QString w, fontWeights())
foreach (QString w, fontWeights())
{
if (c.contains(w))
{
@@ -221,12 +221,6 @@ namespace BlackGui
return n;
}
CStyleSheetUtility &CStyleSheetUtility::instance()
{
static CStyleSheetUtility r;
return r;
}
const QString &CStyleSheetUtility::fileNameFonts()
{
static const QString f("fonts.qss");
@@ -301,13 +295,13 @@ namespace BlackGui
const QStringList &CStyleSheetUtility::fontWeights()
{
static const QStringList w( {"bold", "semibold", "light", "black", "normal"});
static const QStringList w({"bold", "semibold", "light", "black", "normal"});
return w;
}
const QStringList &CStyleSheetUtility::fontStyles()
{
static const QStringList s( {"italic", "oblique", "normal"});
static const QStringList s({"italic", "oblique", "normal"});
return s;
}

View File

@@ -48,7 +48,10 @@ namespace BlackGui
bool updateFonts(const QString &fontFamily, const QString &fontSize, const QString &fontStyle, const QString &fontWeight, const QString &fontColor);
//! Current font color from style sheet
QString fontColor();
QString fontColor() const;
//! Read the *.qss files
bool read();
//! GUI ini file data
const QSettings *iniFile() const { return m_iniFile.data(); }
@@ -59,9 +62,6 @@ namespace BlackGui
//! Get the font weight
static QString fontWeight(const QString &combinedStyleAndWeight);
//! Central reader
static CStyleSheetUtility &instance();
//! File name fonts.qss
static const QString &fileNameFonts();
@@ -135,9 +135,6 @@ namespace BlackGui
void styleSheetsChanged();
private:
//! Read the *.qss files
bool read();
QMap<QString, QString> m_styleSheets; //!< filename, stylesheet
QScopedPointer<QSettings> m_iniFile;

View File

@@ -10,15 +10,14 @@
#include "textmessagetextedit.h"
#include "blackmisc/iconlist.h"
#include "stylesheetutility.h"
#include "guiapplication.h"
#include <QMenu>
using namespace BlackMisc;
using namespace BlackGui;
using namespace BlackMisc::Network;
namespace BlackGui
{
CTextMessageTextEdit::CTextMessageTextEdit(QWidget *parent) : QTextEdit(parent)
{
this->m_textDocument = new QTextDocument(this);
@@ -50,7 +49,7 @@ namespace BlackGui
connect(this, &QTextEdit::customContextMenuRequested, this, &CTextMessageTextEdit::ps_showContextMenuForTextEdit);
// style sheet
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CTextMessageTextEdit::ps_onStyleSheetChanged);
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &CTextMessageTextEdit::ps_onStyleSheetChanged);
ps_onStyleSheetChanged();
}
@@ -168,7 +167,7 @@ namespace BlackGui
void CTextMessageTextEdit::ps_onStyleSheetChanged()
{
Q_ASSERT(this->m_textDocument);
QString style(CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameTextMessage()));
QString style(sGui->getStyleSheetUtility().style(CStyleSheetUtility::fileNameTextMessage()));
this->m_textDocument->setDefaultStyleSheet(style);
}

View File

@@ -50,7 +50,7 @@ CSwiftCore::CSwiftCore(QWidget *parent) :
void CSwiftCore::initStyleSheet()
{
const QString s = CStyleSheetUtility::instance().styles(
const QString s = sGui->getStyleSheetUtility().styles(
{
CStyleSheetUtility::fileNameFonts(),
CStyleSheetUtility::fileNameStandardWidget(),

View File

@@ -41,7 +41,7 @@ CSwiftData::CSwiftData(QWidget *parent) :
void CSwiftData::initStyleSheet()
{
const QString s = CStyleSheetUtility::instance().styles(
const QString s = sGui->getStyleSheetUtility().styles(
{
CStyleSheetUtility::fileNameFonts(),
CStyleSheetUtility::fileNameStandardWidget(),

View File

@@ -127,7 +127,7 @@ void SwiftGuiStd::init()
void SwiftGuiStd::initStyleSheet()
{
const QString s = CStyleSheetUtility::instance().styles(
const QString s = sGui->getStyleSheetUtility().styles(
{
CStyleSheetUtility::fileNameFonts(),
CStyleSheetUtility::fileNameStandardWidget(),

View File

@@ -134,7 +134,7 @@ void CSwiftLauncher::init()
void CSwiftLauncher::initStyleSheet()
{
const QString s = CStyleSheetUtility::instance().styles(
const QString s = sGui->getStyleSheetUtility().styles(
{
CStyleSheetUtility::fileNameFonts(),
CStyleSheetUtility::fileNameStandardWidget(),