summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp105
-rw-r--r--noncore/settings/appearance2/colorlistitem.h95
-rw-r--r--noncore/settings/appearance2/editScheme.cpp10
-rw-r--r--noncore/settings/appearance2/editScheme.h8
-rw-r--r--noncore/settings/appearance2/sample.cpp11
5 files changed, 152 insertions, 77 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
@@ -113,18 +113,2 @@ private:
113 113
114struct {
115 QColorGroup::ColorRole role;
116 const char *key;
117 const char *def;
118} colorLUT [] = {
119 { QColorGroup::Base, "Base", "#FFFFFF" },
120 { QColorGroup::Background, "Background", "#E5E1D5" },
121 { QColorGroup::Button, "Button", "#D6CDBB" },
122 { QColorGroup::ButtonText, "ButtonText", "#000000" },
123 { QColorGroup::Highlight, "Highlight", "#800000" },
124 { QColorGroup::HighlightedText, "HighlightedText", "#FFFFFF" },
125 { QColorGroup::Text, "Text", "#000000" },
126
127 { QColorGroup::NColorRoles, 0, 0 }
128};
129
130 114
@@ -188,24 +172,2 @@ void Appearance::loadDecos ( QListBox *list )
188 172
189static QPalette readColorPalette ( Config &config )
190{
191 QColor bgcolor( config. readEntry( "Background", "#E5E1D5" ) );
192 QColor btncolor( config. readEntry( "Button", "#D6CDBB" ) );
193 QPalette pal( btncolor, bgcolor );
194
195 QString color = config. readEntry( "Highlight", "#800000" );
196 pal.setColor( QColorGroup::Highlight, QColor(color) );
197 color = config. readEntry( "HighlightedText", "#FFFFFF" );
198 pal.setColor( QColorGroup::HighlightedText, QColor(color) );
199 color = config. readEntry( "Text", "#000000" );
200 pal.setColor( QColorGroup::Text, QColor(color) );
201 color = config. readEntry( "ButtonText", "#000000" );
202 pal.setColor( QPalette::Active, QColorGroup::ButtonText, QColor(color) );
203 color = config. readEntry( "Base", "#FFFFFF" );
204 pal.setColor( QColorGroup::Base, QColor(color) );
205
206 pal.setColor( QPalette::Disabled, QColorGroup::Text, pal.color(QPalette::Active, QColorGroup::Background).dark() );
207
208 return pal;
209 }
210
211void Appearance::loadColors ( QListBox *list ) 173void Appearance::loadColors ( QListBox *list )
@@ -217,3 +179,3 @@ void Appearance::loadColors ( QListBox *list )
217 179
218 list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), readColorPalette ( config ))); 180 list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), config ));
219 } 181 }
@@ -228,3 +190,3 @@ void Appearance::loadColors ( QListBox *list )
228 190
229 list-> insertItem ( new ColorListItem ( name, readColorPalette ( config ))); 191 list-> insertItem ( new ColorListItem ( name, config ));
230 } 192 }
@@ -486,12 +448,11 @@ void Appearance::accept ( )
486 448
487/* 449
488 if ( schemeChanged ) 450 if ( m_color_changed )
489 { 451 {
490 int i; 452 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
491 for ( i = 0; i < MAX_CONTROL; i++ ) 453
492 { 454 if ( item )
493 config.writeEntry( controlList[i], controlColor[i] ); 455 item-> save ( config );
494 }
495 } 456 }
496*/ 457
497 config. write ( ); // need to flush the config info first 458 config. write ( ); // need to flush the config info first
@@ -654,13 +615,33 @@ void Appearance::editSchemeClicked ( )
654 615
655/* 616 int cnt = 0;
656 EditScheme* editdlg = new EditScheme( this, "editScheme", TRUE, 0, 617 QString controlLabel [QColorGroup::NColorRoles];
657 9, controlLabel, controlColor ); 618 QString controlColor [QColorGroup::NColorRoles];
658 editdlg->showMaximized(); 619
659 if ( editdlg->exec() == QDialog::Accepted ) 620 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
660 { 621 QColor col = item-> color ( role );
661 int i; 622
662 for ( i = 0; i < MAX_CONTROL; i++ ) 623 if ( col. isValid ( )) {
663 { 624 controlLabel [cnt] = item-> label ( role );
664 controlColor[i] = editdlg->colorList[i]; 625 controlColor [cnt] = col. name ( );
626
627 cnt++;
628 }
629 }
630
631 EditScheme* editdlg = new EditScheme( this, "editScheme", true, 0, cnt, controlLabel, controlColor );
632 editdlg-> showMaximized ( );
633 if ( editdlg-> exec ( ) == QDialog::Accepted ) {
634 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 );
635 cnt = 0;
636
637 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
638 if ( item-> color ( role ). isValid ( )) {
639 citem-> setColor ( role, QColor ( controlColor [cnt] ));
640 cnt++;
641 }
665 } 642 }
643
644 m_color_list-> setCurrentItem ( 0 );
645 colorClicked ( 0 );
646
666 m_color_changed = true; 647 m_color_changed = true;
@@ -668,3 +649,2 @@ void Appearance::editSchemeClicked ( )
668 delete editdlg; 649 delete editdlg;
669 */
670} 650}
@@ -692,7 +672,6 @@ void Appearance::saveSchemeClicked()
692 Config config ( file.name(), Config::File ); 672 Config config ( file.name(), Config::File );
693 config.setGroup( "Colors" ); 673 config. setGroup( "Colors" );
694 674
695 for ( int i = 0; colorLUT [i]. role != QColorGroup::NColorRoles; i++ ) 675 item-> save ( config );
696 config.writeEntry ( colorLUT [i]. key, p. color ( QPalette::Active, colorLUT [i]. role ). name ( )); 676
697
698 config. write ( ); // need to flush the config info first 677 config. write ( ); // need to flush the config info first
diff --git a/noncore/settings/appearance2/colorlistitem.h b/noncore/settings/appearance2/colorlistitem.h
index c7318a6..1ff6ecc 100644
--- a/noncore/settings/appearance2/colorlistitem.h
+++ b/noncore/settings/appearance2/colorlistitem.h
@@ -5,2 +5,7 @@
5#include <qpalette.h> 5#include <qpalette.h>
6#include <qapplication.h>
7
8#include <qpe/config.h>
9
10class Appearance;
6 11
@@ -8,5 +13,6 @@ class ColorListItem : public QListBoxText {
8public: 13public:
9 ColorListItem ( const QString &t, const QPalette &pal ) : QListBoxText ( t ) 14 ColorListItem ( const QString &t, Config &cfg ) : QListBoxText ( t )
10 { 15 {
11 m_pal = pal; 16 m_colors = new QColor [s_colorcount];
17 load ( cfg );
12 } 18 }
@@ -15,2 +21,3 @@ public:
15 { 21 {
22 delete [] m_colors;
16 } 23 }
@@ -19,9 +26,87 @@ public:
19 { 26 {
20 return m_pal; 27 return m_palette;
28 }
29
30 bool load ( Config &cfg )
31 {
32 for ( int i = 0; i < s_colorcount; i++ )
33 m_colors [i] = QColor ( cfg. readEntry ( s_colorlut [i]. m_key, s_colorlut [i]. m_def ));
34
35 buildPalette ( );
36 return true;
37 }
38
39 void buildPalette ( )
40 {
41 m_palette = QPalette ( m_colors [r2i(QColorGroup::Button)], m_colors [r2i(QColorGroup::Background)] );
42 m_palette. setColor ( QColorGroup::Highlight, m_colors [r2i(QColorGroup::Highlight)] );
43 m_palette. setColor ( QColorGroup::HighlightedText, m_colors [r2i(QColorGroup::HighlightedText)] );
44 m_palette. setColor ( QColorGroup::Text, m_colors [r2i(QColorGroup::Text)] );
45 m_palette. setColor ( QPalette::Active, QColorGroup::ButtonText, m_colors [r2i(QColorGroup::ButtonText)] );
46 m_palette. setColor ( QColorGroup::Base, m_colors [r2i(QColorGroup::Base)] );
47 m_palette. setColor ( QPalette::Disabled, QColorGroup::Text, m_palette. color ( QPalette::Active, QColorGroup::Background ). dark ( ));
21 } 48 }
22 49
50 bool save ( Config &cfg )
51 {
52 for ( int i = 0; i < s_colorcount; i++ )
53 cfg. writeEntry ( s_colorlut [i]. m_key, m_colors [i]. name ( ));
54 return true;
55 }
56
57 QColor color ( QColorGroup::ColorRole role )
58 {
59 int i = r2i ( role );
60 return i >= 0 ? m_colors [i] : QColor ( );
61 }
62
63 void setColor ( QColorGroup::ColorRole role, QColor c )
64 {
65 int i = r2i ( role );
66 if ( i >= 0 ) {
67 m_colors [i] = c;
68 buildPalette ( );
69 }
70 }
71
72 QString label ( QColorGroup::ColorRole role )
73 {
74 int i = r2i ( role );
75 return i >= 0 ? qApp-> translate ( "Appearance", s_colorlut [i]. m_label ) : QString::null;
76 }
77
23private: 78private:
24 QPalette m_pal; 79 QPalette m_palette;
80 QColor *m_colors;
81
82 static struct colorlut {
83 QColorGroup::ColorRole m_role;
84 const char * m_key;
85 const char * m_def;
86 const char * m_label;
87 } const s_colorlut [];
88 static const int s_colorcount;
89
90 static int r2i ( QColorGroup::ColorRole role )
91 {
92 for ( int i = 0; i < s_colorcount; i++ ) {
93 if ( s_colorlut [i]. m_role == role )
94 return i;
95 }
96 return -1;
97 }
25}; 98};
26 99
100const ColorListItem::colorlut ColorListItem::s_colorlut [] = {
101 { QColorGroup::Base, "Base", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Base" ) },
102 { QColorGroup::Background, "Background", "#E5E1D5", QT_TRANSLATE_NOOP( "Appearance", "Background" ) },
103 { QColorGroup::Button, "Button", "#D6CDBB", QT_TRANSLATE_NOOP( "Appearance", "Button" ) },
104 { QColorGroup::ButtonText, "ButtonText", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Button Text" ) },
105 { QColorGroup::Highlight, "Highlight", "#800000", QT_TRANSLATE_NOOP( "Appearance", "Highlight" ) },
106 { QColorGroup::HighlightedText, "HighlightedText", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Highlighted Text" ) },
107 { QColorGroup::Text, "Text", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Text" ) }
108};
109
110const int ColorListItem::s_colorcount = sizeof( s_colorlut ) / sizeof ( s_colorlut [0] );
111
27 112
diff --git a/noncore/settings/appearance2/editScheme.cpp b/noncore/settings/appearance2/editScheme.cpp
index 2453c7b..4f2ac2c 100644
--- a/noncore/settings/appearance2/editScheme.cpp
+++ b/noncore/settings/appearance2/editScheme.cpp
@@ -31,3 +31,3 @@
31EditScheme::EditScheme( QWidget* parent, const char* name, bool modal, WFlags fl, 31EditScheme::EditScheme( QWidget* parent, const char* name, bool modal, WFlags fl,
32 int max, QString list[], QString colors[] ) 32 int max, QString *list, QString *colors )
33 : QDialog( parent, name, modal, fl ) 33 : QDialog( parent, name, modal, fl )
@@ -41,2 +41,5 @@ EditScheme::EditScheme( QWidget* parent, const char* name, bool modal, WFlags f
41 maxCount = max; 41 maxCount = max;
42 colorList = colors;
43 surfaceList = list;
44 colorButtons = new QToolButton * [max];
42 int i; 45 int i;
@@ -46,4 +49,4 @@ EditScheme::EditScheme( QWidget* parent, const char* name, bool modal, WFlags f
46 { 49 {
47 colorList[i] = colors[i]; 50// colorList[i] = colors[i];
48 surfaceList[i] = list[i]; 51// surfaceList[i] = list[i];
49 label = new QLabel( tr( surfaceList[i] ), this ); 52 label = new QLabel( tr( surfaceList[i] ), this );
@@ -63,2 +66,3 @@ EditScheme::~EditScheme()
63{ 66{
67 delete [] colorButtons;
64} 68}
diff --git a/noncore/settings/appearance2/editScheme.h b/noncore/settings/appearance2/editScheme.h
index cf238c6..583050f 100644
--- a/noncore/settings/appearance2/editScheme.h
+++ b/noncore/settings/appearance2/editScheme.h
@@ -33,3 +33,3 @@ public:
33 EditScheme( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0, 33 EditScheme( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0,
34 int = 0, QString[] = 0, QString[] = 0 ); 34 int = 0, QString * = 0, QString * = 0 );
35 ~EditScheme(); 35 ~EditScheme();
@@ -37,7 +37,7 @@ public:
37 int maxCount; 37 int maxCount;
38 QString surfaceList[9]; 38 QString * surfaceList;
39 QString colorList[9]; 39 QString * colorList;
40 40
41 41
42 QToolButton* colorButtons[9]; 42 QToolButton** colorButtons;
43 43
diff --git a/noncore/settings/appearance2/sample.cpp b/noncore/settings/appearance2/sample.cpp
index ee27d60..e447002 100644
--- a/noncore/settings/appearance2/sample.cpp
+++ b/noncore/settings/appearance2/sample.cpp
@@ -12,2 +12,3 @@
12#include <qobjectlist.h> 12#include <qobjectlist.h>
13#include <qcommonstyle.h>
13 14
@@ -69,2 +70,3 @@ static void setStyleRecursive ( QWidget *w, QStyle *s )
69{ 70{
71 w->setStyle( s );
70 QObjectList *childObjects=(QObjectList*)w->children(); 72 QObjectList *childObjects=(QObjectList*)w->children();
@@ -78,3 +80,2 @@ static void setStyleRecursive ( QWidget *w, QStyle *s )
78 } 80 }
79 w->setStyle( s );
80} 81}
@@ -84,2 +85,6 @@ void SampleWindow::setStyle2 ( QStyle *sty )
84{ 85{
86 typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, QColorGroup &, bool, bool);
87
88 extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl);
89
85 QPixmapCache::clear ( ); 90 QPixmapCache::clear ( );
@@ -87,3 +92,5 @@ void SampleWindow::setStyle2 ( QStyle *sty )
87 sty-> polish ( p ); 92 sty-> polish ( p );
93 qt_set_draw_menu_bar_impl ( 0 );
88 setStyleRecursive ( this, sty ); 94 setStyleRecursive ( this, sty );
95 setPalette ( p );
89 QTimer::singleShot ( 0, this, SLOT( fixGeometry ( ))); 96 QTimer::singleShot ( 0, this, SLOT( fixGeometry ( )));
@@ -208,2 +215,3 @@ void SampleWindow::paletteChange( const QPalette &old )
208 215
216
209void SampleWindow::setPalette ( const QPalette &pal ) 217void SampleWindow::setPalette ( const QPalette &pal )
@@ -213,3 +221,2 @@ void SampleWindow::setPalette ( const QPalette &pal )
213 style ( ). polish ( p ); 221 style ( ). polish ( p );
214
215 QWidget::setPalette ( p ); 222 QWidget::setPalette ( p );