summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-04 00:42:31 (UTC)
committer sandman <sandman>2002-10-04 00:42:31 (UTC)
commit4131d24ac051733b2d9ba323b18e6602ae396b85 (patch) (unidiff)
tree928dd69609529096aa0825c4019022cb0659b46c
parent41e252c02eb10dcaa4622341f706b7817d6a70b2 (diff)
downloadopie-4131d24ac051733b2d9ba323b18e6602ae396b85.zip
opie-4131d24ac051733b2d9ba323b18e6602ae396b85.tar.gz
opie-4131d24ac051733b2d9ba323b18e6602ae396b85.tar.bz2
- some changes to get dynamic window decorations working
- new format for style config
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp27
-rw-r--r--noncore/settings/appearance2/decolistitem.h10
-rw-r--r--noncore/settings/appearance2/stylelistitem.h5
3 files changed, 32 insertions, 10 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp
index 43ff24c..8cd54a2 100644
--- a/noncore/settings/appearance2/appearance.cpp
+++ b/noncore/settings/appearance2/appearance.cpp
@@ -1,589 +1,610 @@
1/* 1/*
2                This file is part of the OPIE Project 2                This file is part of the OPIE Project
3 Copyright (c) 2002 Trolltech AS <info@trolltech.com> 3 Copyright (c) 2002 Trolltech AS <info@trolltech.com>
4 =. Copyright (c) 2002 Dan Williams <williamsdr@acm.org> 4 =. Copyright (c) 2002 Dan Williams <williamsdr@acm.org>
5             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> 5             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This file is free software; you can 7 _;:,     .>    :=|. This file is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU General Public 9:`=1 )Y*s>-.--   : the terms of the GNU General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This file is distributed in the hope that 14    .i_,=:_.      -<s. This file is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
19..}^=.=       =       ; Public License for more details. 19..}^=.=       =       ; Public License for more details.
20++=   -.     .`     .: 20++=   -.     .`     .:
21 :     =  ...= . :.=- You should have received a copy of the GNU 21 :     =  ...= . :.=- You should have received a copy of the GNU
22 -.   .:....=;==+<; General Public License along with this file; 22 -.   .:....=;==+<; General Public License along with this file;
23  -_. . .   )=.  = see the file COPYING. If not, write to the 23  -_. . .   )=.  = see the file COPYING. If not, write to the
24    --        :-=` Free Software Foundation, Inc., 24    --        :-=` Free Software Foundation, Inc.,
25 59 Temple Place - Suite 330, 25 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27 27
28*/ 28*/
29 29
30#include "appearance.h" 30#include "appearance.h"
31#include "editScheme.h" 31#include "editScheme.h"
32 32
33#include <opie/ofiledialog.h> 33#include <opie/ofiledialog.h>
34#include <opie/otabwidget.h> 34#include <opie/otabwidget.h>
35 35
36#include <qpe/applnk.h> 36#include <qpe/applnk.h>
37#include <qpe/config.h> 37#include <qpe/config.h>
38#include <qpe/global.h> 38#include <qpe/global.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40#include <qpe/qpeapplication.h> 40#include <qpe/qpeapplication.h>
41#if defined(Q_WS_QWS) && !defined(QT_NO_COP) 41#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
42#include <qpe/qcopenvelope_qws.h> 42#include <qpe/qcopenvelope_qws.h>
43#endif 43#endif
44 44
45#include <qaction.h> 45#include <qaction.h>
46#include <qbuttongroup.h> 46#include <qbuttongroup.h>
47#include <qcheckbox.h> 47#include <qcheckbox.h>
48#include <qcombobox.h> 48#include <qcombobox.h>
49#include <qdialog.h> 49#include <qdialog.h>
50#include <qdir.h> 50#include <qdir.h>
51#include <qlabel.h> 51#include <qlabel.h>
52#include <qlayout.h> 52#include <qlayout.h>
53#include <qlineedit.h> 53#include <qlineedit.h>
54#include <qlistbox.h> 54#include <qlistbox.h>
55#include <qmessagebox.h> 55#include <qmessagebox.h>
56#include <qmultilineedit.h> 56#include <qmultilineedit.h>
57#include <qpopupmenu.h> 57#include <qpopupmenu.h>
58#include <qpushbutton.h> 58#include <qpushbutton.h>
59#include <qradiobutton.h> 59#include <qradiobutton.h>
60#if QT_VERSION >= 300 60#if QT_VERSION >= 300
61#include <qstylefactory.h> 61#include <qstylefactory.h>
62#else 62#else
63#include <qwindowsstyle.h> 63#include <qwindowsstyle.h>
64#include <qpe/qpestyle.h> 64#include <qpe/qpestyle.h>
65#include <qpe/lightstyle.h> 65#include <qpe/lightstyle.h>
66#include <qpe/qlibrary.h> 66#include <qpe/qlibrary.h>
67#include <qpe/styleinterface.h> 67#include <qpe/styleinterface.h>
68#endif 68#endif
69#include <qtabwidget.h> 69#include <qtabwidget.h>
70#include <qtoolbutton.h> 70#include <qtoolbutton.h>
71#include <qvgroupbox.h> 71#include <qvgroupbox.h>
72#include <qwidget.h> 72#include <qwidget.h>
73 73
74#include "stylelistitem.h" 74#include "stylelistitem.h"
75#include "decolistitem.h" 75#include "decolistitem.h"
76#include "colorlistitem.h" 76#include "colorlistitem.h"
77 77
78#include "sample.h" 78#include "sample.h"
79 79
80#include <opie/ofontselector.h> 80#include <opie/ofontselector.h>
81 81
82 82
83class DefaultWindowDecoration : public WindowDecorationInterface 83class DefaultWindowDecoration : public WindowDecorationInterface
84{ 84{
85public: 85public:
86 DefaultWindowDecoration() : ref(0) {} 86 DefaultWindowDecoration() : ref(0) {}
87 QString name() const { 87 QString name() const {
88 return "Default"; 88 return "Default";
89 } 89 }
90 QPixmap icon() const { 90 QPixmap icon() const {
91 return QPixmap(); 91 return QPixmap();
92 } 92 }
93 QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { 93 QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) {
94 *iface = 0; 94 *iface = 0;
95 if ( uuid == IID_QUnknown ) 95 if ( uuid == IID_QUnknown )
96 *iface = this; 96 *iface = this;
97 else if ( uuid == IID_WindowDecoration ) 97 else if ( uuid == IID_WindowDecoration )
98 *iface = this; 98 *iface = this;
99 99
100 if ( *iface ) 100 if ( *iface )
101 (*iface)->addRef(); 101 (*iface)->addRef();
102 return QS_OK; 102 return QS_OK;
103 } 103 }
104 Q_REFCOUNT 104 Q_REFCOUNT
105 105
106private: 106private:
107 ulong ref; 107 ulong ref;
108}; 108};
109 109
110 110
111 111
112void Appearance::loadStyles ( QListBox *list ) 112void Appearance::loadStyles ( QListBox *list )
113{ 113{
114#if QT_VERSION >= 300 114#if QT_VERSION >= 300
115 list->insertStringList(QStyleFactory::styles()); 115 list->insertStringList(QStyleFactory::styles());
116#else 116#else
117 list->insertItem( new StyleListItem ( "Windows", new QWindowsStyle ( ))); 117 list->insertItem( new StyleListItem ( "Windows", new QWindowsStyle ( )));
118 list->insertItem( new StyleListItem ( "Light", new LightStyle ( ))); 118 list->insertItem( new StyleListItem ( "Light", new LightStyle ( )));
119#ifndef QT_NO_STYLE_MOTIF 119#ifndef QT_NO_STYLE_MOTIF
120 list->insertItem( new StyleListItem ( "Motif", new QMotifStyle ( ))); 120 list->insertItem( new StyleListItem ( "Motif", new QMotifStyle ( )));
121#endif 121#endif
122#ifndef QT_NO_STYLE_MOTIFPLUS 122#ifndef QT_NO_STYLE_MOTIFPLUS
123 list->insertItem( new StyleListItem ( "MotifPlus", new QMotifPlusStyle ( ))); 123 list->insertItem( new StyleListItem ( "MotifPlus", new QMotifPlusStyle ( )));
124#endif 124#endif
125#ifndef QT_NO_STYLE_PLATINUM 125#ifndef QT_NO_STYLE_PLATINUM
126 list->insertItem( new StyleListItem ( "Platinum", new QPlatinumStyle ( ))); 126 list->insertItem( new StyleListItem ( "Platinum", new QPlatinumStyle ( )));
127#endif 127#endif
128#endif 128#endif
129 list->insertItem( new StyleListItem ( "QPE", new QPEStyle ( ))); 129 list->insertItem( new StyleListItem ( "QPE", new QPEStyle ( )));
130 130
131#if QT_VERSION < 300 131#if QT_VERSION < 300
132 { 132 {
133 QString path = QPEApplication::qpeDir() + "/plugins/styles/"; 133 QString path = QPEApplication::qpeDir() + "/plugins/styles/";
134 QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); 134 QStringList sl = QDir ( path, "lib*.so" ). entryList ( );
135 135
136 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 136 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
137 QLibrary *lib = new QLibrary ( path + "/" + *it ); 137 QLibrary *lib = new QLibrary ( path + "/" + *it );
138 StyleInterface *iface; 138 StyleInterface *iface;
139 139
140 if ( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) 140 if ( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK )
141 list-> insertItem ( new StyleListItem ( lib, iface )); 141 list-> insertItem ( new StyleListItem ( lib, iface ));
142 else 142 else
143 delete lib; 143 delete lib;
144 } 144 }
145 } 145 }
146 146
147#endif 147#endif
148} 148}
149 149
150void Appearance::loadDecos ( QListBox *list ) 150void Appearance::loadDecos ( QListBox *list )
151{ 151{
152 list-> insertItem ( new DecoListItem ( tr( "Default" ))); 152 list-> insertItem ( new DecoListItem ( "QPE" ));
153 153
154 { 154 {
155 QString path = QPEApplication::qpeDir() + "/plugins/decorations/"; 155 QString path = QPEApplication::qpeDir() + "/plugins/decorations/";
156 QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); 156 QStringList sl = QDir ( path, "lib*.so" ). entryList ( );
157 157
158 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 158 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
159 QLibrary *lib = new QLibrary ( path + "/" + *it ); 159 QLibrary *lib = new QLibrary ( path + "/" + *it );
160 WindowDecorationInterface *iface; 160 WindowDecorationInterface *iface;
161 161
162 if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) 162 if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK )
163 list-> insertItem ( new DecoListItem ( lib, iface )); 163 list-> insertItem ( new DecoListItem ( lib, iface ));
164 else 164 else
165 delete lib; 165 delete lib;
166 } 166 }
167 } 167 }
168} 168}
169 169
170void Appearance::loadColors ( QListBox *list ) 170void Appearance::loadColors ( QListBox *list )
171{ 171{
172 list-> clear ( ); 172 list-> clear ( );
173 { 173 {
174 Config config ( "qpe" ); 174 Config config ( "qpe" );
175 config. setGroup ( "Appearance" ); 175 config. setGroup ( "Appearance" );
176 176
177 list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), config )); 177 list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), config ));
178 } 178 }
179 179
180 QString path = QPEApplication::qpeDir ( ) + "/etc/colors/"; 180 QString path = QPEApplication::qpeDir ( ) + "/etc/colors/";
181 QStringList sl = QDir ( path ). entryList ( "*.scheme" ); 181 QStringList sl = QDir ( path ). entryList ( "*.scheme" );
182 182
183 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 183 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
184 QString name = (*it). left ((*it). find ( ".scheme" )); 184 QString name = (*it). left ((*it). find ( ".scheme" ));
185 Config config ( path + *it, Config::File ); 185 Config config ( path + *it, Config::File );
186 config. setGroup ( "Colors" ); 186 config. setGroup ( "Colors" );
187 187
188 list-> insertItem ( new ColorListItem ( name, config )); 188 list-> insertItem ( new ColorListItem ( name, config ));
189 } 189 }
190} 190}
191 191
192 192
193QWidget *Appearance::createStyleTab ( QWidget *parent ) 193QWidget *Appearance::createStyleTab ( QWidget *parent )
194{ 194{
195 Config config ( "qpe" ); 195 Config config ( "qpe" );
196 config. setGroup ( "Appearance" ); 196 config. setGroup ( "Appearance" );
197 197
198 QWidget* tab = new QWidget( parent, "StyleTab" ); 198 QWidget* tab = new QWidget( parent, "StyleTab" );
199 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 4, 4 ); 199 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 4, 4 );
200 200
201 m_style_list = new QListBox( tab, "m_style_list" ); 201 m_style_list = new QListBox( tab, "m_style_list" );
202 vertLayout->addWidget( m_style_list ); 202 vertLayout->addWidget( m_style_list );
203 203
204 m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); 204 m_style_settings = new QPushButton ( tr( "Settings..." ), tab );
205 connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( ))); 205 connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( )));
206 vertLayout-> addWidget ( m_style_settings ); 206 vertLayout-> addWidget ( m_style_settings );
207 207
208 loadStyles ( m_style_list ); 208 loadStyles ( m_style_list );
209 209
210 QString s = config. readEntry ( "Style", "Light" ); 210 QString s = config. readEntry ( "Style", "Light" );
211 m_style_list-> setCurrentItem ( m_style_list-> findItem ( s )); 211
212 for ( uint i = 0; i < m_style_list-> count ( ); i++ ) {
213 if (((StyleListItem *) m_style_list-> item ( i ))-> key ( ) == s ) {
214 m_style_list-> setCurrentItem ( i );
215 break;
216 }
217 }
218
212 m_original_style = m_style_list-> currentItem ( ); 219 m_original_style = m_style_list-> currentItem ( );
213 styleClicked ( m_original_style ); 220 styleClicked ( m_original_style );
214 221
215 connect( m_style_list, SIGNAL( highlighted( int ) ), this, SLOT( styleClicked( int ) ) ); 222 connect( m_style_list, SIGNAL( highlighted( int ) ), this, SLOT( styleClicked( int ) ) );
216 223
217 return tab; 224 return tab;
218} 225}
219 226
220QWidget *Appearance::createDecoTab ( QWidget *parent ) 227QWidget *Appearance::createDecoTab ( QWidget *parent )
221{ 228{
222 Config config ( "qpe" ); 229 Config config ( "qpe" );
223 config. setGroup ( "Appearance" ); 230 config. setGroup ( "Appearance" );
224 231
225 QWidget* tab = new QWidget( parent, "DecoTab" ); 232 QWidget* tab = new QWidget( parent, "DecoTab" );
226 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 4, 4 ); 233 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 4, 4 );
227 234
228 m_deco_list = new QListBox( tab, "m_deco_list" ); 235 m_deco_list = new QListBox( tab, "m_deco_list" );
229 vertLayout->addWidget( m_deco_list ); 236 vertLayout->addWidget( m_deco_list );
230 237
231 loadDecos ( m_deco_list ); 238 loadDecos ( m_deco_list );
232 239
233 QString s = config. readEntry ( "Decoration" ); 240 QString s = config. readEntry ( "Decoration" );
234 m_deco_list-> setCurrentItem ( m_deco_list-> findItem ( s )); 241
242 for ( uint i = 0; i < m_deco_list-> count ( ); i++ ) {
243 if (((DecoListItem *) m_deco_list-> item ( i ))-> key ( ) == s ) {
244 m_deco_list-> setCurrentItem ( i );
245 break;
246 }
247 }
248
235 m_original_deco = m_deco_list-> currentItem ( ); 249 m_original_deco = m_deco_list-> currentItem ( );
236 if ( m_deco_list-> currentItem ( ) < 0 ) 250 if ( m_deco_list-> currentItem ( ) < 0 )
237 m_deco_list-> setCurrentItem ( 0 ); 251 m_deco_list-> setCurrentItem ( 0 );
238 decoClicked ( m_original_deco ); 252 decoClicked ( m_original_deco );
239 253
240 connect( m_deco_list, SIGNAL( highlighted( int ) ), this, SLOT( decoClicked( int ) ) ); 254 connect( m_deco_list, SIGNAL( highlighted( int ) ), this, SLOT( decoClicked( int ) ) );
241 255
242 return tab; 256 return tab;
243} 257}
244 258
245QWidget *Appearance::createFontTab ( QWidget *parent ) 259QWidget *Appearance::createFontTab ( QWidget *parent )
246{ 260{
247 Config config ( "qpe" ); 261 Config config ( "qpe" );
248 config. setGroup ( "Appearance" ); 262 config. setGroup ( "Appearance" );
249 263
250 QString familyStr = config.readEntry( "FontFamily", "Helvetica" ); 264 QString familyStr = config.readEntry( "FontFamily", "Helvetica" );
251 QString styleStr = config.readEntry( "FontStyle", "Regular" ); 265 QString styleStr = config.readEntry( "FontStyle", "Regular" );
252 int size = config.readNumEntry( "FontSize", 10 ); 266 int size = config.readNumEntry( "FontSize", 10 );
253 267
254 m_fontselect = new OFontSelector ( false, parent, "FontTab" ); 268 m_fontselect = new OFontSelector ( false, parent, "FontTab" );
255 m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); 269 m_fontselect-> setSelectedFont ( familyStr, styleStr, size );
256 270
257 connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )), 271 connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )),
258 this, SLOT( fontClicked ( const QFont & ))); 272 this, SLOT( fontClicked ( const QFont & )));
259 273
260 return m_fontselect; 274 return m_fontselect;
261} 275}
262 276
263QWidget *Appearance::createColorTab ( QWidget *parent ) 277QWidget *Appearance::createColorTab ( QWidget *parent )
264{ 278{
265 Config config ( "qpe" ); 279 Config config ( "qpe" );
266 config. setGroup ( "Appearance" ); 280 config. setGroup ( "Appearance" );
267 281
268 282
269 QWidget *tab = new QWidget( parent, "ColorTab" ); 283 QWidget *tab = new QWidget( parent, "ColorTab" );
270 QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 4, 4 ); 284 QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 4, 4 );
271 gridLayout->setRowStretch ( 3, 10 ); 285 gridLayout->setRowStretch ( 3, 10 );
272 286
273 m_color_list = new QListBox ( tab ); 287 m_color_list = new QListBox ( tab );
274 gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); 288 gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 );
275 connect( m_color_list, SIGNAL( highlighted( int ) ), this, SLOT( colorClicked( int ) ) ); 289 connect( m_color_list, SIGNAL( highlighted( int ) ), this, SLOT( colorClicked( int ) ) );
276 290
277 loadColors ( m_color_list ); 291 loadColors ( m_color_list );
278 m_color_list-> setCurrentItem ( 0 ); 292 m_color_list-> setCurrentItem ( 0 );
279 293
280 QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); 294 QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" );
281 tempButton->setText( tr( "Edit..." ) ); 295 tempButton->setText( tr( "Edit..." ) );
282 connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); 296 connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) );
283 gridLayout->addWidget( tempButton, 0, 1 ); 297 gridLayout->addWidget( tempButton, 0, 1 );
284 298
285 tempButton = new QPushButton( tab, "deleteSchemeButton" ); 299 tempButton = new QPushButton( tab, "deleteSchemeButton" );
286 tempButton->setText( tr( "Delete" ) ); 300 tempButton->setText( tr( "Delete" ) );
287 connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); 301 connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) );
288 gridLayout->addWidget( tempButton, 1, 1 ); 302 gridLayout->addWidget( tempButton, 1, 1 );
289 303
290 tempButton = new QPushButton( tab, "saveSchemeButton" ); 304 tempButton = new QPushButton( tab, "saveSchemeButton" );
291 tempButton->setText( tr( "Save" ) ); 305 tempButton->setText( tr( "Save" ) );
292 connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); 306 connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) );
293 gridLayout->addWidget( tempButton, 2, 1 ); 307 gridLayout->addWidget( tempButton, 2, 1 );
294 308
295 return tab; 309 return tab;
296} 310}
297 311
298QWidget *Appearance::createGuiTab ( QWidget *parent ) 312QWidget *Appearance::createGuiTab ( QWidget *parent )
299{ 313{
300 Config config ( "qpe" ); 314 Config config ( "qpe" );
301 config. setGroup ( "Appearance" ); 315 config. setGroup ( "Appearance" );
302 316
303 QWidget *tab = new QWidget( parent, "AdvancedTab" ); 317 QWidget *tab = new QWidget( parent, "AdvancedTab" );
304 QVBoxLayout *vertLayout = new QVBoxLayout( tab, 4, 4 ); 318 QVBoxLayout *vertLayout = new QVBoxLayout( tab, 4, 4 );
305 319
306 QGridLayout* gridLayout = new QGridLayout ( vertLayout ); 320 QGridLayout* gridLayout = new QGridLayout ( vertLayout );
307 321
308 int style = config. readNumEntry ( "TabStyle", 2 ) - 1; 322 int style = config. readNumEntry ( "TabStyle", 2 ) - 1;
309 bool tabtop = ( config. readEntry ( "TabPosition", "Top" ) == "Top" ); 323 bool tabtop = ( config. readEntry ( "TabPosition", "Top" ) == "Top" );
310 324
311 QLabel* label = new QLabel( tr( "Tab style:" ), tab ); 325 QLabel* label = new QLabel( tr( "Tab style:" ), tab );
312 gridLayout-> addWidget ( label, 0, 0 ); 326 gridLayout-> addWidget ( label, 0, 0 );
313 QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); 327 QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" );
314 btngrp-> hide ( ); 328 btngrp-> hide ( );
315 btngrp-> setExclusive ( true ); 329 btngrp-> setExclusive ( true );
316 330
317 m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" ); 331 m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" );
318 m_tabstyle_list-> insertItem ( tr( "Tabs" )); 332 m_tabstyle_list-> insertItem ( tr( "Tabs" ));
319 m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" )); 333 m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" ));
320 m_tabstyle_list-> insertItem ( tr( "Drop down list" )); 334 m_tabstyle_list-> insertItem ( tr( "Drop down list" ));
321 m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); 335 m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" ));
322 m_tabstyle_list-> setCurrentItem ( style ); 336 m_tabstyle_list-> setCurrentItem ( style );
323 gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 ); 337 gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 );
324 338
325 m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); 339 m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" );
326 btngrp-> insert ( m_tabstyle_top ); 340 btngrp-> insert ( m_tabstyle_top );
327 gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); 341 gridLayout-> addWidget( m_tabstyle_top, 1, 1 );
328 342
329 m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); 343 m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" );
330 btngrp-> insert ( m_tabstyle_bottom ); 344 btngrp-> insert ( m_tabstyle_bottom );
331 gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 ); 345 gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 );
332 346
333 m_tabstyle_top-> setChecked ( tabtop ); 347 m_tabstyle_top-> setChecked ( tabtop );
334 m_tabstyle_bottom-> setChecked ( !tabtop ); 348 m_tabstyle_bottom-> setChecked ( !tabtop );
335 349
336 m_original_tabstyle = style; 350 m_original_tabstyle = style;
337 m_original_tabpos = tabtop; 351 m_original_tabpos = tabtop;
338 352
339 return tab; 353 return tab;
340} 354}
341 355
342 356
343Appearance::Appearance( QWidget* parent, const char* name, WFlags ) 357Appearance::Appearance( QWidget* parent, const char* name, WFlags )
344 : QDialog ( parent, name, true ) 358 : QDialog ( parent, name, true )
345{ 359{
346 setCaption( tr( "Appearance" ) ); 360 setCaption( tr( "Appearance" ) );
347 361
348 Config config( "qpe" ); 362 Config config( "qpe" );
349 config.setGroup( "Appearance" ); 363 config.setGroup( "Appearance" );
350 364
351 QVBoxLayout *top = new QVBoxLayout ( this, 4, 4 ); 365 QVBoxLayout *top = new QVBoxLayout ( this, 4, 4 );
352 366
353 m_sample = new SampleWindow ( this ); 367 m_sample = new SampleWindow ( this );
354 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 368 m_sample-> setDecoration ( new DefaultWindowDecoration ( ));
355 369
356 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); 370 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom );
357 QWidget *styletab; 371 QWidget *styletab;
358 372
359 tw-> addTab ( styletab = createStyleTab ( tw ), "appearance/styletabicon.png", tr( "Style" )); 373 tw-> addTab ( styletab = createStyleTab ( tw ), "appearance/styletabicon.png", tr( "Style" ));
360 tw-> addTab ( createFontTab ( tw ), "appearance/fonttabicon.png", tr( "Font" )); 374 tw-> addTab ( createFontTab ( tw ), "appearance/fonttabicon.png", tr( "Font" ));
361 tw-> addTab ( createColorTab ( tw ), "appearance/colorstabicon.png", tr( "Colors" ) ); 375 tw-> addTab ( createColorTab ( tw ), "appearance/colorstabicon.png", tr( "Colors" ) );
362 tw-> addTab ( createDecoTab ( tw ), "appearance/decotabicon.png", tr( "Windows" ) ); 376 tw-> addTab ( createDecoTab ( tw ), "appearance/decotabicon.png", tr( "Windows" ) );
363 tw-> addTab ( createGuiTab ( tw ), "appearance/advancedtabicon.png", tr( "Gui" ) ); 377 tw-> addTab ( createGuiTab ( tw ), "appearance/advancedtabicon.png", tr( "Gui" ) );
364 378
365 top-> addWidget ( tw, 10 ); 379 top-> addWidget ( tw, 10 );
366 top-> addWidget ( m_sample, 1 ); 380 top-> addWidget ( m_sample, 1 );
367 381
368 tw-> setCurrentTab ( styletab ); 382 tw-> setCurrentTab ( styletab );
369} 383}
370 384
371Appearance::~Appearance() 385Appearance::~Appearance()
372{ 386{
373} 387}
374 388
375void Appearance::accept ( ) 389void Appearance::accept ( )
376{ 390{
377 Config config("qpe"); 391 Config config("qpe");
378 config.setGroup( "Appearance" ); 392 config.setGroup( "Appearance" );
379 393
380 int newtabstyle = m_tabstyle_list-> currentItem ( ); 394 int newtabstyle = m_tabstyle_list-> currentItem ( );
381 bool newtabpos = m_tabstyle_top-> isChecked ( ); 395 bool newtabpos = m_tabstyle_top-> isChecked ( );
382 396
383 397
384 if ( m_style_changed ) { 398 if ( m_style_changed ) {
385 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 399 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
386 if ( item ) 400 if ( item )
387 config.writeEntry( "Style", item-> key ( )); 401 config.writeEntry( "Style", item-> key ( ));
388 } 402 }
403
404 if ( m_deco_changed ) {
405 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( ));
406 if ( item )
407 config.writeEntry( "Decoration", item-> key ( ));
408 }
389 409
390 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) { 410 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) {
391 config. writeEntry ( "TabStyle", newtabstyle + 1 ); 411 config. writeEntry ( "TabStyle", newtabstyle + 1 );
392 config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); 412 config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" );
393 } 413 }
394 414
395 if ( m_font_changed ) { 415 if ( m_font_changed ) {
396 config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); 416 config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( ));
397 config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); 417 config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( ));
398 config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); 418 config. writeEntry ( "FontSize", m_fontselect-> fontSize ( ));
399 } 419 }
400 420
401 421
402 if ( m_color_changed ) 422 if ( m_color_changed )
403 { 423 {
404 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 424 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
405 425
406 if ( item ) 426 if ( item )
407 item-> save ( config ); 427 item-> save ( config );
408 } 428 }
409 429
410 config. write ( ); // need to flush the config info first 430 config. write ( ); // need to flush the config info first
411 Global::applyStyle ( ); 431 Global::applyStyle ( );
412 432
413 if ( QMessageBox::warning ( this, tr( "Restart" ), tr( "Do you want to restart Opie now?" ), tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) { 433 if ( QMessageBox::warning ( this, tr( "Restart" ), tr( "Do you want to restart Opie now?" ), tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) {
414 QCopEnvelope e( "QPE/System", "restart()" ); 434 QCopEnvelope e( "QPE/System", "restart()" );
415 } 435 }
416 436
417 QDialog::accept ( ); 437 QDialog::accept ( );
418} 438}
419 439
420void Appearance::done ( int r ) 440void Appearance::done ( int r )
421{ 441{
422 QDialog::done ( r ); 442 QDialog::done ( r );
423 close ( ); 443 close ( );
424} 444}
425 445
426 446
427void Appearance::styleClicked ( int index ) 447void Appearance::styleClicked ( int index )
428{ 448{
429 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); 449 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index );
430 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); 450 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false );
431 451
432 if ( m_sample && sli && sli-> style ( )) 452 if ( m_sample && sli && sli-> style ( ))
433 m_sample-> setStyle2 ( sli-> style ( )); 453 m_sample-> setStyle2 ( sli-> style ( ));
434 454
435 m_style_changed |= ( index != m_original_style ); 455 m_style_changed |= ( index != m_original_style );
436} 456}
437 457
438void Appearance::styleSettingsClicked ( ) 458void Appearance::styleSettingsClicked ( )
439{ 459{
440 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 460 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
441 461
442 if ( item && item-> hasSettings ( )) { 462 if ( item && item-> hasSettings ( )) {
443 QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); 463 QDialog *d = new QDialog ( this, "SETTINGS-DLG", true );
444 QVBoxLayout *vbox = new QVBoxLayout ( d, 4, 0 ); 464 QVBoxLayout *vbox = new QVBoxLayout ( d, 4, 0 );
445 465
446 QWidget *w = item-> settings ( d ); 466 QWidget *w = item-> settings ( d );
447 467
448 if ( w ) { 468 if ( w ) {
449 vbox-> addWidget ( w ); 469 vbox-> addWidget ( w );
450 470
451 d-> setCaption ( w-> caption ( )); 471 d-> setCaption ( w-> caption ( ));
452 472
453 d-> showMaximized ( ); 473 d-> showMaximized ( );
454 bool accepted = ( d-> exec ( ) == QDialog::Accepted ); 474 bool accepted = ( d-> exec ( ) == QDialog::Accepted );
455 475
456 if ( item-> setSettings ( accepted )) 476 if ( item-> setSettings ( accepted ))
457 m_style_changed = true; 477 m_style_changed = true;
458 } 478 }
459 delete d; 479 delete d;
460 } 480 }
461} 481}
462 482
463void Appearance::decoClicked ( int index ) 483void Appearance::decoClicked ( int index )
464{ 484{
465 DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); 485 DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index );
466 486
467 if ( m_sample ) { 487 if ( m_sample ) {
468 if ( dli && dli-> interface ( )) 488 if ( dli && dli-> interface ( ))
469 m_sample-> setDecoration ( dli-> interface ( )); 489 m_sample-> setDecoration ( dli-> interface ( ));
470 else 490 else
471 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 491 m_sample-> setDecoration ( new DefaultWindowDecoration ( ));
492 m_sample-> repaint ( );
472 } 493 }
473 m_deco_changed |= ( index != m_original_deco ); 494 m_deco_changed |= ( index != m_original_deco );
474} 495}
475 496
476void Appearance::fontClicked ( const QFont &f ) 497void Appearance::fontClicked ( const QFont &f )
477{ 498{
478 m_font_changed |= ( f != m_sample-> font ( )); 499 m_font_changed |= ( f != m_sample-> font ( ));
479 m_sample-> setFont ( f ); 500 m_sample-> setFont ( f );
480} 501}
481 502
482void Appearance::colorClicked ( int index ) 503void Appearance::colorClicked ( int index )
483{ 504{
484 ColorListItem *item = (ColorListItem *) m_color_list-> item ( index ); 505 ColorListItem *item = (ColorListItem *) m_color_list-> item ( index );
485 506
486 if ( item ) 507 if ( item )
487 m_sample-> setPalette ( item-> palette ( )); 508 m_sample-> setPalette ( item-> palette ( ));
488 509
489 m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); 510 m_color_changed |= ( item-> palette ( ) != qApp-> palette ( ));
490} 511}
491 512
492 513
493void Appearance::editSchemeClicked ( ) 514void Appearance::editSchemeClicked ( )
494{ 515{
495 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 516 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
496 517
497 int cnt = 0; 518 int cnt = 0;
498 QString labels [QColorGroup::NColorRoles]; 519 QString labels [QColorGroup::NColorRoles];
499 QColor colors [QColorGroup::NColorRoles]; 520 QColor colors [QColorGroup::NColorRoles];
500 521
501 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { 522 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
502 QColor col = item-> color ( role ); 523 QColor col = item-> color ( role );
503 524
504 if ( col. isValid ( )) { 525 if ( col. isValid ( )) {
505 labels [cnt] = item-> label ( role ); 526 labels [cnt] = item-> label ( role );
506 colors [cnt] = col; 527 colors [cnt] = col;
507 528
508 cnt++; 529 cnt++;
509 } 530 }
510 } 531 }
511 532
512 EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); 533 EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true );
513 editdlg-> showMaximized ( ); 534 editdlg-> showMaximized ( );
514 if ( editdlg-> exec ( ) == QDialog::Accepted ) { 535 if ( editdlg-> exec ( ) == QDialog::Accepted ) {
515 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); 536 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 );
516 cnt = 0; 537 cnt = 0;
517 538
518 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { 539 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
519 if ( item-> color ( role ). isValid ( )) { 540 if ( item-> color ( role ). isValid ( )) {
520 citem-> setColor ( role, colors [cnt] ); 541 citem-> setColor ( role, colors [cnt] );
521 cnt++; 542 cnt++;
522 } 543 }
523 } 544 }
524 545
525 m_color_list-> setCurrentItem ( 0 ); 546 m_color_list-> setCurrentItem ( 0 );
526 colorClicked ( 0 ); 547 colorClicked ( 0 );
527 548
528 m_color_changed = true; 549 m_color_changed = true;
529 } 550 }
530 delete editdlg; 551 delete editdlg;
531} 552}
532 553
533 554
534void Appearance::saveSchemeClicked() 555void Appearance::saveSchemeClicked()
535{ 556{
536 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 557 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
537 558
538 if ( !item ) 559 if ( !item )
539 return; 560 return;
540 561
541 QDialog *d = new QDialog ( this, 0, true ); 562 QDialog *d = new QDialog ( this, 0, true );
542 d-> setCaption ( tr( "Save Scheme" )); 563 d-> setCaption ( tr( "Save Scheme" ));
543 QLineEdit *ed = new QLineEdit ( this ); 564 QLineEdit *ed = new QLineEdit ( this );
544 ( new QVBoxLayout ( d, 4, 4 ))-> addWidget ( ed ); 565 ( new QVBoxLayout ( d, 4, 4 ))-> addWidget ( ed );
545 566
546 if ( d-> exec ( ) == QDialog::Accepted ) { 567 if ( d-> exec ( ) == QDialog::Accepted ) {
547 QString schemename = ed-> text ( ); 568 QString schemename = ed-> text ( );
548 QFile file ( QPEApplication::qpeDir() + "/etc/colors/" + schemename + ".scheme" ); 569 QFile file ( QPEApplication::qpeDir() + "/etc/colors/" + schemename + ".scheme" );
549 if ( !file. exists ( )) 570 if ( !file. exists ( ))
550 { 571 {
551 QPalette p = item-> palette ( ); 572 QPalette p = item-> palette ( );
552 573
553 Config config ( file.name(), Config::File ); 574 Config config ( file.name(), Config::File );
554 config. setGroup( "Colors" ); 575 config. setGroup( "Colors" );
555 576
556 item-> save ( config ); 577 item-> save ( config );
557 578
558 config. write ( ); // need to flush the config info first 579 config. write ( ); // need to flush the config info first
559 loadColors ( m_color_list ); 580 loadColors ( m_color_list );
560 } 581 }
561 else 582 else
562 { 583 {
563 QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." )); 584 QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." ));
564 } 585 }
565 } 586 }
566 delete d; 587 delete d;
567} 588}
568 589
569void Appearance::deleteSchemeClicked() 590void Appearance::deleteSchemeClicked()
570{ 591{
571 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 592 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
572 593
573 if ( !item ) 594 if ( !item )
574 return; 595 return;
575 596
576 if ( m_color_list-> currentItem ( ) > 0 ) 597 if ( m_color_list-> currentItem ( ) > 0 )
577 { 598 {
578 if ( QMessageBox::warning ( this, tr( "Delete scheme" ), tr( "Do you really want to delete\n" ) + item-> text ( ) + "?", 599 if ( QMessageBox::warning ( this, tr( "Delete scheme" ), tr( "Do you really want to delete\n" ) + item-> text ( ) + "?",
579 tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) { 600 tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) {
580 QFile::remove ( QPEApplication::qpeDir ( ) + "/etc/colors/" + item-> text ( ) + ".scheme" ); 601 QFile::remove ( QPEApplication::qpeDir ( ) + "/etc/colors/" + item-> text ( ) + ".scheme" );
581 loadColors ( m_color_list ); 602 loadColors ( m_color_list );
582 } 603 }
583 } 604 }
584 else 605 else
585 { 606 {
586 QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." )); 607 QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." ));
587 } 608 }
588} 609}
589 610
diff --git a/noncore/settings/appearance2/decolistitem.h b/noncore/settings/appearance2/decolistitem.h
index 23261b1..d190ceb 100644
--- a/noncore/settings/appearance2/decolistitem.h
+++ b/noncore/settings/appearance2/decolistitem.h
@@ -1,106 +1,106 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> 3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This file is free software; you can 5 _;:,     .>    :=|. This file is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This file is distributed in the hope that 12    .i_,=:_.      -<s. This file is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
17..}^=.=       =       ; Public License for more details. 17..}^=.=       =       ; Public License for more details.
18++=   -.     .`     .: 18++=   -.     .`     .:
19 :     =  ...= . :.=- You should have received a copy of the GNU 19 :     =  ...= . :.=- You should have received a copy of the GNU
20 -.   .:....=;==+<; General Public License along with this file; 20 -.   .:....=;==+<; General Public License along with this file;
21  -_. . .   )=.  = see the file COPYING. If not, write to the 21  -_. . .   )=.  = see the file COPYING. If not, write to the
22    --        :-=` Free Software Foundation, Inc., 22    --        :-=` Free Software Foundation, Inc.,
23 59 Temple Place - Suite 330, 23 59 Temple Place - Suite 330,
24 Boston, MA 02111-1307, USA. 24 Boston, MA 02111-1307, USA.
25 25
26*/ 26*/
27 27
28#ifndef DECOLISTITEM_H 28#ifndef DECOLISTITEM_H
29#define DECOLISTITEM_H 29#define DECOLISTITEM_H
30 30
31#include <qpe/windowdecorationinterface.h> 31#include <qpe/windowdecorationinterface.h>
32#include <qlistbox.h> 32#include <qlistbox.h>
33 33
34class DecoListItem : public QListBoxText { 34class DecoListItem : public QListBoxPixmap {
35public: 35public:
36 DecoListItem ( const QString &t ) : QListBoxText ( t ) 36 DecoListItem ( const QString &t ) : QListBoxPixmap ( QPixmap ( ), t )
37 { 37 {
38 m_lib = 0; 38 m_lib = 0;
39 m_window_if = 0; 39 m_window_if = 0;
40 // m_settings_if = 0; 40 // m_settings_if = 0;
41 } 41 }
42 42
43 DecoListItem ( QLibrary *lib, WindowDecorationInterface *iface ) : QListBoxText ( iface-> name ( )) 43 DecoListItem ( QLibrary *lib, WindowDecorationInterface *iface ) : QListBoxPixmap ( iface-> icon ( ), iface-> name ( ))
44 { 44 {
45 m_lib = lib; 45 m_lib = lib;
46 m_window_if = iface; 46 m_window_if = iface;
47 47
48 // iface-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &m_settings_if ); 48 // iface-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &m_settings_if );
49 } 49 }
50 50
51 virtual ~DecoListItem ( ) 51 virtual ~DecoListItem ( )
52 { 52 {
53 // if ( m_settings_if ) 53 // if ( m_settings_if )
54 // m_settings_if-> release ( ); 54 // m_settings_if-> release ( );
55 if ( m_window_if ) 55 if ( m_window_if )
56 m_window_if-> release ( ); 56 m_window_if-> release ( );
57 delete m_lib; 57 delete m_lib;
58 } 58 }
59 59
60 bool hasSettings ( ) const 60 bool hasSettings ( ) const
61 { 61 {
62 // return ( m_settings_if ); 62 // return ( m_settings_if );
63 return false; 63 return false;
64 } 64 }
65 65
66 QWidget *settings ( QWidget * /*parent*/ ) 66 QWidget *settings ( QWidget * /*parent*/ )
67 { 67 {
68 // return m_settings_if ? m_settings_if-> create ( parent ) : 0; 68 // return m_settings_if ? m_settings_if-> create ( parent ) : 0;
69 return 0; 69 return 0;
70 } 70 }
71 71
72 bool setSettings ( bool /*accepted*/ ) 72 bool setSettings ( bool /*accepted*/ )
73 { 73 {
74 // if ( !m_settings_if ) 74 // if ( !m_settings_if )
75 // return false; 75 // return false;
76 76
77 // if ( accepted ) 77 // if ( accepted )
78 // return m_settings_if-> accept ( ); 78 // return m_settings_if-> accept ( );
79 // else { 79 // else {
80 // m_settings_if-> reject ( ); 80 // m_settings_if-> reject ( );
81 // return false; 81 // return false;
82 // } 82 // }
83 return false; 83 return false;
84 } 84 }
85 85
86 QString key ( ) 86 QString key ( )
87 { 87 {
88 if ( m_window_if ) 88 if ( m_lib )
89 return QString ( m_window_if-> name ( )); 89 return QFileInfo ( m_lib-> library ( )). fileName ( );
90 else 90 else
91 return text ( ); 91 return text ( );
92 } 92 }
93 93
94 WindowDecorationInterface *interface ( ) 94 WindowDecorationInterface *interface ( )
95 { 95 {
96 return m_window_if; 96 return m_window_if;
97 } 97 }
98 98
99private: 99private:
100 QLibrary *m_lib; 100 QLibrary *m_lib;
101 WindowDecorationInterface *m_window_if; 101 WindowDecorationInterface *m_window_if;
102 //WindowDecorationSettingsInterface *m_settings_if; 102 //WindowDecorationSettingsInterface *m_settings_if;
103 103
104}; 104};
105 105
106#endif \ No newline at end of file 106#endif \ No newline at end of file
diff --git a/noncore/settings/appearance2/stylelistitem.h b/noncore/settings/appearance2/stylelistitem.h
index c0258e0..e261511 100644
--- a/noncore/settings/appearance2/stylelistitem.h
+++ b/noncore/settings/appearance2/stylelistitem.h
@@ -1,112 +1,113 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> 3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This file is free software; you can 5 _;:,     .>    :=|. This file is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This file is distributed in the hope that 12    .i_,=:_.      -<s. This file is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
17..}^=.=       =       ; Public License for more details. 17..}^=.=       =       ; Public License for more details.
18++=   -.     .`     .: 18++=   -.     .`     .:
19 :     =  ...= . :.=- You should have received a copy of the GNU 19 :     =  ...= . :.=- You should have received a copy of the GNU
20 -.   .:....=;==+<; General Public License along with this file; 20 -.   .:....=;==+<; General Public License along with this file;
21  -_. . .   )=.  = see the file COPYING. If not, write to the 21  -_. . .   )=.  = see the file COPYING. If not, write to the
22    --        :-=` Free Software Foundation, Inc., 22    --        :-=` Free Software Foundation, Inc.,
23 59 Temple Place - Suite 330, 23 59 Temple Place - Suite 330,
24 Boston, MA 02111-1307, USA. 24 Boston, MA 02111-1307, USA.
25 25
26*/ 26*/
27 27
28#ifndef STYLELISTITEM_H 28#ifndef STYLELISTITEM_H
29#define STYLELISTITEM_H 29#define STYLELISTITEM_H
30 30
31#include <qlistbox.h> 31#include <qlistbox.h>
32#include <qpe/styleinterface.h> 32#include <qpe/styleinterface.h>
33 33
34#include <stdio.h> 34#include <stdio.h>
35 35
36class StyleListItem : public QListBoxText { 36class StyleListItem : public QListBoxText {
37public: 37public:
38 StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t ) 38 StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t )
39 { 39 {
40 m_lib = 0; 40 m_lib = 0;
41 m_style_if = 0; 41 m_style_if = 0;
42 m_settings_if = 0; 42 m_settings_if = 0;
43 m_style = sty; 43 m_style = sty;
44 } 44 }
45 45
46 StyleListItem ( QLibrary *lib, StyleInterface *iface ) : QListBoxText ( iface-> name ( )) 46 StyleListItem ( QLibrary *lib, StyleInterface *iface ) : QListBoxText ( iface-> name ( ))
47 { 47 {
48 m_lib = lib; 48 m_lib = lib;
49 m_style_if = iface; 49 m_style_if = iface;
50 m_settings_if = 0; 50 m_settings_if = 0;
51 m_style = iface-> create ( ); 51 m_style = iface-> create ( );
52 52
53 iface-> queryInterface ( IID_StyleSettings, (QUnknownInterface **) &m_settings_if ); 53 iface-> queryInterface ( IID_StyleSettings, (QUnknownInterface **) &m_settings_if );
54 } 54 }
55 55
56 virtual ~StyleListItem ( ) 56 virtual ~StyleListItem ( )
57 { 57 {
58 delete m_style; 58 delete m_style;
59 59
60 if ( m_settings_if ) 60 if ( m_settings_if )
61 m_settings_if-> release ( ); 61 m_settings_if-> release ( );
62 if ( m_style_if ) 62 if ( m_style_if )
63 m_style_if-> release ( ); 63 m_style_if-> release ( );
64 delete m_lib; 64 delete m_lib;
65 } 65 }
66 66
67 bool hasSettings ( ) const 67 bool hasSettings ( ) const
68 { 68 {
69 return ( m_settings_if ); 69 return ( m_settings_if );
70 } 70 }
71 71
72 QWidget *settings ( QWidget *parent ) 72 QWidget *settings ( QWidget *parent )
73 { 73 {
74 return m_settings_if ? m_settings_if-> create ( parent ) : 0; 74 return m_settings_if ? m_settings_if-> create ( parent ) : 0;
75 } 75 }
76 76
77 bool setSettings ( bool accepted ) 77 bool setSettings ( bool accepted )
78 { 78 {
79 if ( !m_settings_if ) 79 if ( !m_settings_if )
80 return false; 80 return false;
81 81
82 if ( accepted ) 82 if ( accepted )
83 return m_settings_if-> accept ( ); 83 return m_settings_if-> accept ( );
84 else { 84 else {
85 m_settings_if-> reject ( ); 85 m_settings_if-> reject ( );
86 return false; 86 return false;
87 } 87 }
88 } 88 }
89 89
90 QString key ( ) 90 QString key ( )
91 { 91 {
92 if ( m_style_if ) 92 if ( m_lib )
93 return QString ( m_style_if-> key ( )); 93 return QFileInfo ( m_lib-> library ( )). fileName ( );
94 //return QString ( m_style_if-> key ( ));
94 else 95 else
95 return text ( ); 96 return text ( );
96 } 97 }
97 98
98 QStyle *style ( ) 99 QStyle *style ( )
99 { 100 {
100 return m_style; 101 return m_style;
101 } 102 }
102 103
103private: 104private:
104 QLibrary *m_lib; 105 QLibrary *m_lib;
105 QStyle *m_style; 106 QStyle *m_style;
106 StyleInterface *m_style_if; 107 StyleInterface *m_style_if;
107 StyleSettingsInterface *m_settings_if; 108 StyleSettingsInterface *m_settings_if;
108 109
109}; 110};
110 111
111 112
112#endif 113#endif