diff options
| author | Tim E. Real <termtech@rogers.com> | 2010-11-21 03:48:35 +0000 | 
|---|---|---|
| committer | Tim E. Real <termtech@rogers.com> | 2010-11-21 03:48:35 +0000 | 
| commit | 4c142f6b4483c191c880b23c84199a3b2022ce01 (patch) | |
| tree | f8d4812fe777e978444c162afdd156d41354ab8f /muse2/muse | |
| parent | e29c2ba6ed400e54dca62a35ce53edea85d34ddb (diff) | |
Style sheet support. See ChangeLog.
Diffstat (limited to 'muse2/muse')
| -rw-r--r-- | muse2/muse/app.cpp | 47 | ||||
| -rw-r--r-- | muse2/muse/app.h | 3 | ||||
| -rw-r--r-- | muse2/muse/appearance.cpp | 44 | ||||
| -rw-r--r-- | muse2/muse/appearance.h | 2 | ||||
| -rw-r--r-- | muse2/muse/conf.cpp | 3 | ||||
| -rw-r--r-- | muse2/muse/gconfig.cpp | 1 | ||||
| -rw-r--r-- | muse2/muse/gconfig.h | 1 | ||||
| -rw-r--r-- | muse2/muse/widgets/appearancebase.ui | 36 | ||||
| -rw-r--r-- | muse2/muse/widgets/musewidgetsplug.cpp | 1 | 
9 files changed, 129 insertions, 9 deletions
| diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp index fb36c849..8d15ab08 100644 --- a/muse2/muse/app.cpp +++ b/muse2/muse/app.cpp @@ -37,6 +37,9 @@  #include <QSplashScreen>  #include <QObject>  #include <QAction> +#include <QFile> +#include <QByteArray> +#include <QtGlobal>  //Added by qt3to4:  #include <QTimerEvent>  #include <Q3CString> @@ -3546,6 +3549,7 @@ int main(int argc, char* argv[])                    stimer->start(6000, true);                    }              } +              int i;        QString optstr("ahvdDmMsP:Y:py"); @@ -3592,6 +3596,21 @@ int main(int argc, char* argv[])                    }              } +      if(!config.styleSheetFile.isEmpty()) +      { +        if(debugMsg) +          printf("loading style sheet <%s> \n", qPrintable(config.styleSheetFile)); +        QFile cf(config.styleSheetFile); +        if (cf.open(QIODevice::ReadOnly)) { +              QByteArray ss = cf.readAll(); +              QString sheet(QString::fromUtf8(ss.data())); +              app.setStyleSheet(sheet); +              cf.close(); +              } +        else +              printf("loading style sheet <%s> failed\n", qPrintable(config.styleSheetFile)); +      } +              AL::initDsp();        if (debugMsg) @@ -4073,13 +4092,36 @@ void MusE::configAppearance()  //   loadTheme  //--------------------------------------------------------- -void MusE::loadTheme(QString s) +void MusE::loadTheme(const QString& s)        {        if (style()->name() != s)              QApplication::setStyle(s);        }  //--------------------------------------------------------- +//   loadStyleSheetFile +//--------------------------------------------------------- + +void MusE::loadStyleSheetFile(const QString& s) +{ +    if(s.isEmpty()) +    { +      qApp->setStyleSheet(s); +      return; +    } +       +    QFile cf(s); +    if (cf.open(QIODevice::ReadOnly)) { +          QByteArray ss = cf.readAll(); +          QString sheet(QString::fromUtf8(ss.data())); +          qApp->setStyleSheet(sheet); +          cf.close(); +          } +    else +          printf("loading style sheet <%s> failed\n", qPrintable(s)); +} + +//---------------------------------------------------------  //   configChanged  //    - called whenever configuration has changed  //    - when configuration has changed by user, call with @@ -4092,8 +4134,7 @@ void MusE::changeConfig(bool writeFlag)              writeGlobalConfiguration();        loadTheme(config.style);        QApplication::setFont(config.fonts[0], true); -      // Added by Tim. p3.3.6 -      //printf("MusE::changeConfig writeFlag:%d emitting configChanged\n", writeFlag); +      loadStyleSheetFile(config.styleSheetFile);        emit configChanged();        updateConfiguration(); diff --git a/muse2/muse/app.h b/muse2/muse/app.h index 55f81f71..0994f14b 100644 --- a/muse2/muse/app.h +++ b/muse2/muse/app.h @@ -279,7 +279,8 @@ class MusE : public QMainWindow        void loadProjectFile(const QString&);        void loadProjectFile(const QString&, bool songTemplate, bool loadAll);        void toplevelDeleted(unsigned long tl); -      void loadTheme(QString); +      void loadTheme(const QString&); +      void loadStyleSheetFile(const QString&);        bool seqRestart();        void loadTemplate();        void showBigtime(bool); diff --git a/muse2/muse/appearance.cpp b/muse2/muse/appearance.cpp index adcc51ba..baf489ea 100644 --- a/muse2/muse/appearance.cpp +++ b/muse2/muse/appearance.cpp @@ -12,6 +12,11 @@  #include <QFontDialog>  #include <QStyleFactory>  #include <QToolTip> +#include <QByteArray> +#include <QFile> +#include <QFileDialog> +#include <QFileInfo> +#include <QtGlobal>  #include "icons.h"  #include "appearance.h" @@ -193,6 +198,11 @@ Appearance::Appearance(Arranger* a, QWidget* parent)              }        */ +      openStyleSheet->setIcon(*openIcon); +      connect(openStyleSheet, SIGNAL(clicked()), SLOT(browseStyleSheet())); +      defaultStyleSheet->setIcon(*openIcon); +      connect(defaultStyleSheet, SIGNAL(clicked()), SLOT(setDefaultStyleSheet())); +              //---------------------------------------------------  	//    Fonts        //--------------------------------------------------- @@ -228,6 +238,7 @@ Appearance::Appearance(Arranger* a, QWidget* parent)  void Appearance::resetValues()        {        *config = ::config;  // init with global config values +      styleSheetPath->setText(config->styleSheetFile);        updateFonts();        palette0->setPaletteBackgroundColor(config->palette[0]);        palette1->setPaletteBackgroundColor(config->palette[1]); @@ -372,13 +383,14 @@ void Appearance::apply()        else                    config->canvasBgPixmap = currentBg; -      // Added by Tim. p3.3.9 +      config->styleSheetFile = styleSheetPath->text(); +              config->fonts[0].setFamily(fontName0->text());        config->fonts[0].setPointSize(fontSize0->value());        config->fonts[0].setItalic(italic0->isChecked());        config->fonts[0].setBold(bold0->isChecked()); -    	QApplication::setFont(config->fonts[0], true); +      QApplication::setFont(config->fonts[0], true);        config->fonts[1].setFamily(fontName1->text());        config->fonts[1].setPointSize(fontSize1->value()); @@ -704,6 +716,34 @@ void Appearance::paletteClicked(int id)        }  //--------------------------------------------------------- +//   browseStyleSheet +//--------------------------------------------------------- + +void Appearance::browseStyleSheet() +{ +      QString path; +      if(!config->styleSheetFile.isEmpty()) +      {   +        QFileInfo info(config->styleSheetFile); +        path = info.absolutePath(); +      } +       +      QString file = QFileDialog::getOpenFileName(this, tr("Select style sheet"), path, tr("Qt style sheets (*.qss)")); +      styleSheetPath->setText(file); +} + + +//--------------------------------------------------------- +//   setDefaultStyleSheet +//--------------------------------------------------------- + +void Appearance::setDefaultStyleSheet() +{ +      // Set the style sheet to the default compiled-in resource :/style.qss +      styleSheetPath->setText(QString(":/style.qss")); +} + +//---------------------------------------------------------  //   browseFont  //--------------------------------------------------------- diff --git a/muse2/muse/appearance.h b/muse2/muse/appearance.h index e2755aef..de0ceb31 100644 --- a/muse2/muse/appearance.h +++ b/muse2/muse/appearance.h @@ -32,6 +32,8 @@ class Appearance : public QDialog, public Ui::AppearanceDialogBase {        void configBackground();        void clearBackground();        void colorItemSelectionChanged(); +      void browseStyleSheet(); +      void setDefaultStyleSheet();        void browseFont(int);        void browseFont0();        void browseFont1(); diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp index 2f55a4a0..a704e245 100644 --- a/muse2/muse/conf.cpp +++ b/muse2/muse/conf.cpp @@ -508,6 +508,8 @@ void readConfiguration(Xml& xml, bool readOnlySequencer)                          if (tag == "theme")                                config.style = xml.parse1(); +                        else if (tag == "styleSheetFile") +                              config.styleSheetFile = xml.parse1();                          else if (tag == "useOldStyleStopShortCut")                                config.useOldStyleStopShortCut = xml.parseInt();                          else if (tag == "moveArmedCheckBox") @@ -1071,6 +1073,7 @@ void MusE::writeGlobalConfiguration(int level, Xml& xml) const        //xml.intTag(level, "txDeviceId", txDeviceId);        //xml.intTag(level, "rxDeviceId", rxDeviceId);        xml.strTag(level, "theme", config.style); +      xml.strTag(level, "styleSheetFile", config.styleSheetFile);        xml.strTag(level, "externalWavEditor", config.externalWavEditor);        xml.intTag(level, "useOldStyleStopShortCut", config.useOldStyleStopShortCut);        xml.intTag(level, "moveArmedCheckBox", config.moveArmedCheckBox); diff --git a/muse2/muse/gconfig.cpp b/muse2/muse/gconfig.cpp index be92b6aa..00b89374 100644 --- a/muse2/muse/gconfig.cpp +++ b/muse2/muse/gconfig.cpp @@ -121,6 +121,7 @@ GlobalConfigValues config = {        5,                            // canvasShowPartEvent        true,                        // canvasShowGrid;        QString(""),                  // canvasBgPixmap; +      QString(":/style.qss"),       // default styleSheetFile        QString(""),                  // style        QString("sweep"),             // externalWavEditor        false,                        // useOldStyleStopShortCut diff --git a/muse2/muse/gconfig.h b/muse2/muse/gconfig.h index 454ed05d..ecef559c 100644 --- a/muse2/muse/gconfig.h +++ b/muse2/muse/gconfig.h @@ -113,6 +113,7 @@ struct GlobalConfigValues {        int canvasShowPartEvent;      //        bool canvasShowGrid;        QString canvasBgPixmap; +      QString styleSheetFile;        QString style;        QString externalWavEditor; diff --git a/muse2/muse/widgets/appearancebase.ui b/muse2/muse/widgets/appearancebase.ui index ce046b58..dd0c1960 100644 --- a/muse2/muse/widgets/appearancebase.ui +++ b/muse2/muse/widgets/appearancebase.ui @@ -22,7 +22,7 @@         <verstretch>0</verstretch>        </sizepolicy>       </property> -     <widget class="QWidget" name="tab"> +     <widget class="QWidget" name="tab1">        <attribute name="title">         <string>Arranger</string>        </attribute> @@ -193,7 +193,7 @@         </item>        </layout>       </widget> -     <widget class="QWidget" name="tab"> +     <widget class="QWidget" name="tab2">        <attribute name="title">         <string>Colors</string>        </attribute> @@ -740,7 +740,7 @@         </item>        </layout>       </widget> -     <widget class="QWidget" name="tab"> +     <widget class="QWidget" name="tab3">        <attribute name="title">         <string>Style/Fonts</string>        </attribute> @@ -834,6 +834,34 @@             </layout>            </item>            <item> +            <layout class="QHBoxLayout" > +              <item> +                <widget class="QLabel" name="label_41" > +                  <property name="text" > +                    <string>Style Sheet:</string> +                  </property> +                </widget> +              </item> +              <item> +                <widget class="QLineEdit" name="styleSheetPath" /> +              </item> +              <item> +                <widget class="QToolButton" name="openStyleSheet" > +                  <property name="text" > +                    <string>...</string> +                  </property> +                </widget> +              </item> +              <item> +                <widget class="QToolButton" name="defaultStyleSheet" > +                  <property name="text" > +                    <string>...</string> +                  </property> +                </widget> +              </item> +            </layout> +           </item> +           <item>             <spacer name="spacer3">              <property name="orientation">               <enum>Qt::Vertical</enum> @@ -1417,6 +1445,8 @@    <tabstop>selectBgButton</tabstop>    <tabstop>arrGrid</tabstop>    <tabstop>themeComboBox</tabstop> +  <tabstop>styleSheetPath</tabstop> +  <tabstop>openStyleSheet</tabstop>    <tabstop>fontName0</tabstop>    <tabstop>fontName1</tabstop>    <tabstop>fontName2</tabstop> diff --git a/muse2/muse/widgets/musewidgetsplug.cpp b/muse2/muse/widgets/musewidgetsplug.cpp index 78376536..5aea4c81 100644 --- a/muse2/muse/widgets/musewidgetsplug.cpp +++ b/muse2/muse/widgets/musewidgetsplug.cpp @@ -153,6 +153,7 @@ GlobalConfigValues config = {        5,                            // canvasShowPartEvent        false,                        // canvasShowGrid;        QString(""),                  // canvasBgPixmap; +      QString(""),                  // styleSheetFile        QString(""),                  // style        QString(""),                  // externalWavEditor //this line was missing 2007-01-08 (willyfoobar)        false,                        // useOldStyleStopShortCut | 
