summaryrefslogtreecommitdiff
path: root/noncore/settings/appearance2/appearance.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/appearance2/appearance.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp105
1 files changed, 42 insertions, 63 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp
index 52c7125..cf3069e 100644
--- a/noncore/settings/appearance2/appearance.cpp
+++ b/noncore/settings/appearance2/appearance.cpp
@@ -108,28 +108,12 @@ public:
private:
ulong ref;
};
-struct {
- QColorGroup::ColorRole role;
- const char *key;
- const char *def;
-} colorLUT [] = {
- { QColorGroup::Base, "Base", "#FFFFFF" },
- { QColorGroup::Background, "Background", "#E5E1D5" },
- { QColorGroup::Button, "Button", "#D6CDBB" },
- { QColorGroup::ButtonText, "ButtonText", "#000000" },
- { QColorGroup::Highlight, "Highlight", "#800000" },
- { QColorGroup::HighlightedText, "HighlightedText", "#FFFFFF" },
- { QColorGroup::Text, "Text", "#000000" },
-
- { QColorGroup::NColorRoles, 0, 0 }
-};
-
void Appearance::loadStyles ( QListBox *list )
{
#if QT_VERSION >= 300
list->insertStringList(QStyleFactory::styles());
#else
@@ -183,53 +167,31 @@ void Appearance::loadDecos ( QListBox *list )
else
delete lib;
}
}
}
-static QPalette readColorPalette ( Config &config )
-{
- QColor bgcolor( config. readEntry( "Background", "#E5E1D5" ) );
- QColor btncolor( config. readEntry( "Button", "#D6CDBB" ) );
- QPalette pal( btncolor, bgcolor );
-
- QString color = config. readEntry( "Highlight", "#800000" );
- pal.setColor( QColorGroup::Highlight, QColor(color) );
- color = config. readEntry( "HighlightedText", "#FFFFFF" );
- pal.setColor( QColorGroup::HighlightedText, QColor(color) );
- color = config. readEntry( "Text", "#000000" );
- pal.setColor( QColorGroup::Text, QColor(color) );
- color = config. readEntry( "ButtonText", "#000000" );
- pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor(color) );
- color = config. readEntry( "Base", "#FFFFFF" );
- pal.setColor( QColorGroup::Base, QColor(color) );
-
- pal.setColor( QPalette::Disabled, QColorGroup::Text, pal.color(QPalette::Active, QColorGroup::Background).dark() );
-
- return pal;
-}
-
void Appearance::loadColors ( QListBox *list )
{
list-> clear ( );
{
Config config ( "qpe" );
config. setGroup ( "Appearance" );
- list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), readColorPalette ( config )));
+ list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), config ));
}
QString path = QPEApplication::qpeDir ( ) + "/etc/colors/";
QStringList sl = QDir ( path ). entryList ( "*.scheme" );
for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
QString name = (*it). left ((*it). find ( ".scheme" ));
Config config ( path + *it, Config::File );
config. setGroup ( "Colors" );
- list-> insertItem ( new ColorListItem ( name, readColorPalette ( config )));
+ list-> insertItem ( new ColorListItem ( name, config ));
}
}
void Appearance::loadFonts ( QListBox *list )
{
FontDatabase fd;
@@ -481,22 +443,21 @@ void Appearance::accept ( )
if ( m_font_changed ) {
config.writeEntry( "FontFamily", m_font_family_list-> text ( newfontfamily ));
config.writeEntry( "FontStyle", m_font_style_list-> text ( newfontstyle ));
config.writeEntry( "FontSize", m_font_size_list-> text ( newfontsize ));
}
-/*
- if ( schemeChanged )
+
+ if ( m_color_changed )
{
- int i;
- for ( i = 0; i < MAX_CONTROL; i++ )
- {
- config.writeEntry( controlList[i], controlColor[i] );
- }
+ ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
+
+ if ( item )
+ item-> save ( config );
}
-*/
+
config. write ( ); // need to flush the config info first
Global::applyStyle ( );
if ( QMessageBox::warning ( this, tr( "Restart" ), tr( "Do you want to restart Opie now?" ), tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) {
QCopEnvelope e( "QPE/System", "restart()" );
}
@@ -649,27 +610,46 @@ void Appearance::colorClicked ( int index )
void Appearance::editSchemeClicked ( )
{
ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
-/*
- EditScheme* editdlg = new EditScheme( this, "editScheme", TRUE, 0,
- 9, controlLabel, controlColor );
- editdlg->showMaximized();
- if ( editdlg->exec() == QDialog::Accepted )
- {
- int i;
- for ( i = 0; i < MAX_CONTROL; i++ )
- {
- controlColor[i] = editdlg->colorList[i];
+ int cnt = 0;
+ QString controlLabel [QColorGroup::NColorRoles];
+ QString controlColor [QColorGroup::NColorRoles];
+
+ for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
+ QColor col = item-> color ( role );
+
+ if ( col. isValid ( )) {
+ controlLabel [cnt] = item-> label ( role );
+ controlColor [cnt] = col. name ( );
+
+ cnt++;
+ }
+ }
+
+ EditScheme* editdlg = new EditScheme( this, "editScheme", true, 0, cnt, controlLabel, controlColor );
+ editdlg-> showMaximized ( );
+ if ( editdlg-> exec ( ) == QDialog::Accepted ) {
+ ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 );
+ cnt = 0;
+
+ for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
+ if ( item-> color ( role ). isValid ( )) {
+ citem-> setColor ( role, QColor ( controlColor [cnt] ));
+ cnt++;
+ }
}
+
+ m_color_list-> setCurrentItem ( 0 );
+ colorClicked ( 0 );
+
m_color_changed = true;
}
delete editdlg;
- */
}
void Appearance::saveSchemeClicked()
{
ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
@@ -687,17 +667,16 @@ void Appearance::saveSchemeClicked()
QFile file ( QPEApplication::qpeDir() + "/etc/colors/" + schemename + ".scheme" );
if ( !file. exists ( ))
{
QPalette p = item-> palette ( );
Config config ( file.name(), Config::File );
- config.setGroup( "Colors" );
+ config. setGroup( "Colors" );
- for ( int i = 0; colorLUT [i]. role != QColorGroup::NColorRoles; i++ )
- config.writeEntry ( colorLUT [i]. key, p. color ( QPalette::Active, colorLUT [i]. role ). name ( ));
-
+ item-> save ( config );
+
config. write ( ); // need to flush the config info first
loadColors ( m_color_list );
}
else
{
QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." ));