summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp159
-rw-r--r--noncore/settings/appearance2/editScheme.cpp9
2 files changed, 108 insertions, 60 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp
index f611799..2f3ba74 100644
--- a/noncore/settings/appearance2/appearance.cpp
+++ b/noncore/settings/appearance2/appearance.cpp
@@ -1,7 +1,7 @@
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
@@ -17,7 +17,7 @@
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
@@ -47,11 +47,13 @@
47#include <qlistview.h> 47#include <qlistview.h>
48#include <qheader.h> 48#include <qheader.h>
49#include <qvbox.h> 49#include <qvbox.h>
50#include <qwhatsthis.h>
50 51
51#include <qpe/config.h> 52#include <qpe/config.h>
52#include <qpe/global.h> 53#include <qpe/global.h>
53#include <qpe/resource.h> 54#include <qpe/resource.h>
54#include <qpe/qpeapplication.h> 55#include <qpe/qpeapplication.h>
56#include <qpe/qpemessagebox.h>
55#include <qpe/qcopenvelope_qws.h> 57#include <qpe/qcopenvelope_qws.h>
56#include <qpe/qpestyle.h> 58#include <qpe/qpestyle.h>
57#include <qpe/lightstyle.h> 59#include <qpe/lightstyle.h>
@@ -115,13 +117,15 @@ QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg )
115 117
116 m_style_list = new QListBox( tab, "m_style_list" ); 118 m_style_list = new QListBox( tab, "m_style_list" );
117 vertLayout->addWidget( m_style_list ); 119 vertLayout->addWidget( m_style_list );
120 QWhatsThis::add( m_style_list, tr( "Styles control the way items such as buttons and scroll bars appear in all applications.\n\nClick here to select an available style." ) );
118 121
119 m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); 122 m_style_settings = new QPushButton ( tr( "Settings..." ), tab );
120 connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( ))); 123 connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( )));
121 vertLayout-> addWidget ( m_style_settings ); 124 vertLayout-> addWidget ( m_style_settings );
125 QWhatsThis::add( m_style_settings, tr( "Click here to configure the currently selected style.\n\nNote: This option is not available for all styles." ) );
122 126
123 QString s = cfg. readEntry ( "Style", "Light" ); 127 QString s = cfg. readEntry ( "Style", "Light" );
124 128
125 129
126#if QT_VERSION >= 300 130#if QT_VERSION >= 300
127 m_style_list->insertStringList(QStyleFactory::styles()); 131 m_style_list->insertStringList(QStyleFactory::styles());
@@ -131,17 +135,21 @@ QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg )
131 m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); 135 m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( )));
132#endif 136#endif
133 { 137 {
134 QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/"; 138 QString path = QPEApplication::qpeDir ( );
139 path.append( "/plugins/styles/" );
135 QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); 140 QStringList sl = QDir ( path, "lib*.so" ). entryList ( );
136 141
137 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 142 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
138 QLibrary *lib = new QLibrary ( path + "/" + *it ); 143 QString libstr = path;
144 libstr.append( "/" );
145 libstr.append( *it );
146 QLibrary *lib = new QLibrary ( libstr );
139 StyleInterface *iface; 147 StyleInterface *iface;
140 148
141 if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) { 149 if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) {
142 StyleListItem *slit = new StyleListItem ( lib, iface ); 150 StyleListItem *slit = new StyleListItem ( lib, iface );
143 m_style_list-> insertItem ( slit ); 151 m_style_list-> insertItem ( slit );
144 152
145 if ( slit-> key ( ) == s ) 153 if ( slit-> key ( ) == s )
146 m_style_list-> setCurrentItem ( slit ); 154 m_style_list-> setCurrentItem ( slit );
147 } 155 }
@@ -165,23 +173,28 @@ QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg )
165 173
166 m_deco_list = new QListBox( tab, "m_deco_list" ); 174 m_deco_list = new QListBox( tab, "m_deco_list" );
167 vertLayout->addWidget( m_deco_list ); 175 vertLayout->addWidget( m_deco_list );
176 QWhatsThis::add( m_deco_list, tr( "Window decorations control the way the application title bar and its buttons appear.\n\nClick here to select an available decoration." ) );
168 177
169 QString s = cfg. readEntry ( "Decoration" ); 178 QString s = cfg. readEntry ( "Decoration" );
170 179
171 m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); 180 m_deco_list-> insertItem ( new DecoListItem ( "QPE" ));
172 181
173 { 182 {
174 QString path = QPEApplication::qpeDir() + "/plugins/decorations/"; 183 QString path = QPEApplication::qpeDir();
184 path.append( "/plugins/decorations/" );
175 QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); 185 QStringList sl = QDir ( path, "lib*.so" ). entryList ( );
176 186
177 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 187 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
178 QLibrary *lib = new QLibrary ( path + "/" + *it ); 188 QString libstr = path;
189 libstr.append( "/" );
190 libstr.append( *it );
191 QLibrary *lib = new QLibrary ( libstr );
179 WindowDecorationInterface *iface; 192 WindowDecorationInterface *iface;
180 193
181 if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) { 194 if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) {
182 DecoListItem *dlit = new DecoListItem ( lib, iface ); 195 DecoListItem *dlit = new DecoListItem ( lib, iface );
183 m_deco_list-> insertItem ( dlit ); 196 m_deco_list-> insertItem ( dlit );
184 197
185 if ( dlit-> key ( ) == s ) 198 if ( dlit-> key ( ) == s )
186 m_deco_list-> setCurrentItem ( dlit ); 199 m_deco_list-> setCurrentItem ( dlit );
187 } 200 }
@@ -206,13 +219,14 @@ QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg )
206 QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); 219 QString styleStr = cfg. readEntry ( "FontStyle", "Regular" );
207 int size = cfg. readNumEntry ( "FontSize", 10 ); 220 int size = cfg. readNumEntry ( "FontSize", 10 );
208 221
209 m_fontselect = new OFontSelector ( false, parent, "FontTab" ); 222 m_fontselect = new OFontSelector ( false, parent, "FontTab" );
210 m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); 223 m_fontselect-> setSelectedFont ( familyStr, styleStr, size );
211 224 QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) );
225
212 connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )), 226 connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )),
213 this, SLOT( fontClicked ( const QFont & ))); 227 this, SLOT( fontClicked ( const QFont & )));
214 228
215 return m_fontselect; 229 return m_fontselect;
216} 230}
217 231
218QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) 232QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg )
@@ -224,36 +238,43 @@ QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg )
224 m_color_list = new QListBox ( tab ); 238 m_color_list = new QListBox ( tab );
225 gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); 239 gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 );
226 connect( m_color_list, SIGNAL( highlighted( int ) ), this, SLOT( colorClicked( int ) ) ); 240 connect( m_color_list, SIGNAL( highlighted( int ) ), this, SLOT( colorClicked( int ) ) );
241 QWhatsThis::add( m_color_list, tr( "Color schemes are a collection of colors which are used for various parts of the display.\n\nClick here to select an available scheme." ) );
227 242
228 m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); 243 m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg ));
229 244
230 QString path = QPEApplication::qpeDir ( ) + "/etc/colors/"; 245 QString path = QPEApplication::qpeDir ( );
246 path.append( "/etc/colors/" );
231 QStringList sl = QDir ( path ). entryList ( "*.scheme" ); 247 QStringList sl = QDir ( path ). entryList ( "*.scheme" );
232 248
233 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 249 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
234 QString name = (*it). left ((*it). find ( ".scheme" )); 250 QString name = (*it). left ((*it). find ( ".scheme" ));
235 Config config ( path + *it, Config::File ); 251 QString pathstr = path;
252 pathstr.append( *it );
253 Config config ( pathstr, Config::File );
236 config. setGroup ( "Colors" ); 254 config. setGroup ( "Colors" );
237 255
238 m_color_list-> insertItem ( new ColorListItem ( name, config )); 256 m_color_list-> insertItem ( new ColorListItem ( name, config ));
239 } 257 }
240 258
241 m_color_list-> setCurrentItem ( 0 ); 259 m_color_list-> setCurrentItem ( 0 );
242 260
243 QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); 261 QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" );
244 tempButton->setText( tr( "Edit..." ) ); 262 tempButton->setText( tr( "Edit..." ) );
245 connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); 263 connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) );
246 gridLayout->addWidget( tempButton, 0, 1 ); 264 gridLayout->addWidget( tempButton, 0, 1 );
265 QWhatsThis::add( tempButton, tr( "Click here to change the colors in the current color scheme." ) );
247 266
248 tempButton = new QPushButton( tab, "deleteSchemeButton" ); 267 tempButton = new QPushButton( tab, "deleteSchemeButton" );
249 tempButton->setText( tr( "Delete" ) ); 268 tempButton->setText( tr( "Delete" ) );
250 connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); 269 connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) );
251 gridLayout->addWidget( tempButton, 1, 1 ); 270 gridLayout->addWidget( tempButton, 1, 1 );
271 QWhatsThis::add( tempButton, tr( "Click here to delete the color scheme selected in the list to the left." ) );
252 272
253 tempButton = new QPushButton( tab, "saveSchemeButton" ); 273 tempButton = new QPushButton( tab, "saveSchemeButton" );
254 tempButton->setText( tr( "Save" ) ); 274 tempButton->setText( tr( "Save" ) );
255 connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); 275 connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) );
256 gridLayout->addWidget( tempButton, 2, 1 ); 276 gridLayout->addWidget( tempButton, 2, 1 );
277 QWhatsThis::add( tempButton, tr( "Click here to name and save the current color scheme." ) );
257 278
258 return tab; 279 return tab;
259} 280}
@@ -267,12 +288,14 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
267 288
268 m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab ); 289 m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab );
269 m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" )); 290 m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" ));
270 lay-> addMultiCellWidget ( m_force, 0, 0, 0, 1 ); 291 lay-> addMultiCellWidget ( m_force, 0, 0, 0, 1 );
292 QWhatsThis::add( m_force, tr( "Click here to allow all applications to use global appearance settings." ) );
271 293
272 QLabel *l = new QLabel ( tab ); 294 QLabel *l = new QLabel ( tab );
273 l-> setText ( QString ( "<p>%1</p>" ). arg ( tr( "Disable styling for these applications ( <b>*</b> can be used as a wildcard):" ))); 295 l-> setText ( QString ( "<p>%1</p>" ). arg ( tr( "Disable styling for these applications ( <b>*</b> can be used as a wildcard):" )));
274 lay-> addMultiCellWidget ( l, 1, 1, 0, 1 ); 296 lay-> addMultiCellWidget ( l, 1, 1, 0, 1 );
275 297 QWhatsThis::add( l, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) );
298
276 m_except = new QListView ( tab ); 299 m_except = new QListView ( tab );
277 m_except-> addColumn ( Resource::loadIconSet ( "appearance/style.png" ), "", 24 ); 300 m_except-> addColumn ( Resource::loadIconSet ( "appearance/style.png" ), "", 24 );
278 m_except-> addColumn ( Resource::loadIconSet ( "appearance/font.png" ), "", 24 ); 301 m_except-> addColumn ( Resource::loadIconSet ( "appearance/font.png" ), "", 24 );
@@ -285,36 +308,41 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
285 m_except-> setMinimumHeight ( 30 ); 308 m_except-> setMinimumHeight ( 30 );
286 m_except-> header ( )-> setClickEnabled ( false ); 309 m_except-> header ( )-> setClickEnabled ( false );
287 m_except-> header ( )-> setResizeEnabled ( false ); 310 m_except-> header ( )-> setResizeEnabled ( false );
288 m_except-> header ( )-> setMovingEnabled ( false ); 311 m_except-> header ( )-> setMovingEnabled ( false );
289 m_except-> setSorting ( -1 ); 312 m_except-> setSorting ( -1 );
290 lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 ); 313 lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 );
291 314 QWhatsThis::add( m_except, tr( "If some applications do not display correctly with the global appearance settings, certain features can be turned off for that application.\n\nThis area allows you to select an application and which settings you wish to disable." ) );
315
292 connect ( m_except, SIGNAL( clicked ( QListViewItem *, const QPoint &, int )), this, SLOT( clickedExcept ( QListViewItem *, const QPoint &, int ))); 316 connect ( m_except, SIGNAL( clicked ( QListViewItem *, const QPoint &, int )), this, SLOT( clickedExcept ( QListViewItem *, const QPoint &, int )));
293 317
294 QToolButton *tb = new QToolButton ( tab ); 318 QToolButton *tb = new QToolButton ( tab );
295 tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" )); 319 tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" ));
296 tb-> setFocusPolicy ( QWidget::StrongFocus ); 320 tb-> setFocusPolicy ( QWidget::StrongFocus );
297 lay-> addWidget ( tb, 2, 1 ); 321 lay-> addWidget ( tb, 2, 1 );
298 connect ( tb, SIGNAL( clicked ( )), this, SLOT( addExcept ( ))); 322 connect ( tb, SIGNAL( clicked ( )), this, SLOT( addExcept ( )));
323 QWhatsThis::add( tb, tr( "Click here to add an application to the list above." ) );
299 324
300 tb = new QToolButton ( tab ); 325 tb = new QToolButton ( tab );
301 tb-> setIconSet ( Resource::loadIconSet ( "editdelete" )); 326 tb-> setIconSet ( Resource::loadIconSet ( "editdelete" ));
302 tb-> setFocusPolicy ( QWidget::StrongFocus ); 327 tb-> setFocusPolicy ( QWidget::StrongFocus );
303 lay-> addWidget ( tb, 3, 1 ); 328 lay-> addWidget ( tb, 3, 1 );
304 connect ( tb, SIGNAL( clicked ( )), this, SLOT( delExcept ( ))); 329 connect ( tb, SIGNAL( clicked ( )), this, SLOT( delExcept ( )));
305 330 QWhatsThis::add( tb, tr( "Click here to delete the currently selected application." ) );
331
306 tb = new QToolButton ( tab ); 332 tb = new QToolButton ( tab );
307 tb-> setIconSet ( Resource::loadIconSet ( "up" )); 333 tb-> setIconSet ( Resource::loadIconSet ( "up" ));
308 tb-> setFocusPolicy ( QWidget::StrongFocus ); 334 tb-> setFocusPolicy ( QWidget::StrongFocus );
309 lay-> addWidget ( tb, 4, 1 ); 335 lay-> addWidget ( tb, 4, 1 );
310 connect ( tb, SIGNAL( clicked ( )), this, SLOT( upExcept ( ))); 336 connect ( tb, SIGNAL( clicked ( )), this, SLOT( upExcept ( )));
311 337 QWhatsThis::add( tb, tr( "Click here to move the currently selected application up in the list." ) );
338
312 tb = new QToolButton ( tab ); 339 tb = new QToolButton ( tab );
313 tb-> setIconSet ( Resource::loadIconSet ( "down" )); 340 tb-> setIconSet ( Resource::loadIconSet ( "down" ));
314 tb-> setFocusPolicy ( QWidget::StrongFocus ); 341 tb-> setFocusPolicy ( QWidget::StrongFocus );
315 lay-> addWidget ( tb, 5, 1 ); 342 lay-> addWidget ( tb, 5, 1 );
316 connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( ))); 343 connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( )));
317 344 QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) );
345
318 lay-> setRowStretch ( 6, 10 ); 346 lay-> setRowStretch ( 6, 10 );
319 lay-> setColStretch ( 0, 10 ); 347 lay-> setColStretch ( 0, 10 );
320 348
@@ -322,18 +350,18 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
322 QListViewItem *lvit = 0; 350 QListViewItem *lvit = 0;
323 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 351 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
324 int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); 352 int fl = ( *it ). left ( 1 ). toInt ( 0, 32 );
325 353
326 lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 ); 354 lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 );
327 } 355 }
328 356
329 357
330 vertLayout-> addSpacing ( 3 ); 358 vertLayout-> addSpacing ( 3 );
331 QFrame *f = new QFrame ( tab ); 359 QFrame *f = new QFrame ( tab );
332 f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); 360 f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken );
333 vertLayout-> addWidget ( f ); 361 vertLayout-> addWidget ( f );
334 vertLayout-> addSpacing ( 3 ); 362 vertLayout-> addSpacing ( 3 );
335 363
336 364
337 QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); 365 QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 );
338 366
339 int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1; 367 int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1;
@@ -341,6 +369,8 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
341 369
342 QLabel* label = new QLabel( tr( "Tab style:" ), tab ); 370 QLabel* label = new QLabel( tr( "Tab style:" ), tab );
343 gridLayout-> addWidget ( label, 0, 0 ); 371 gridLayout-> addWidget ( label, 0, 0 );
372 QWhatsThis::add( label, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) );
373
344 QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); 374 QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" );
345 btngrp-> hide ( ); 375 btngrp-> hide ( );
346 btngrp-> setExclusive ( true ); 376 btngrp-> setExclusive ( true );
@@ -352,14 +382,17 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
352 m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); 382 m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" ));
353 m_tabstyle_list-> setCurrentItem ( style ); 383 m_tabstyle_list-> setCurrentItem ( style );
354 gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 ); 384 gridLayout-> addMultiCellWidget ( m_tabstyle_list, 0, 0, 1, 2 );
385 QWhatsThis::add( m_tabstyle_list, tr( "Click here to select a desired style for tabbed dialogs (such as this application). The styles available are:\n\n1. Tabs - normal tabs with text labels only\n2. Tabs w/icons - tabs with icons for each tab, text label only appears on current tab\n3. Drop down list - a vertical listing of tabs\n4. Drop down list w/icons - a vertical listing of tabs with icons" ) );
355 386
356 m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); 387 m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" );
357 btngrp-> insert ( m_tabstyle_top ); 388 btngrp-> insert ( m_tabstyle_top );
358 gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); 389 gridLayout-> addWidget( m_tabstyle_top, 1, 1 );
359 390 QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) );
391
360 m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); 392 m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" );
361 btngrp-> insert ( m_tabstyle_bottom ); 393 btngrp-> insert ( m_tabstyle_bottom );
362 gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 ); 394 gridLayout-> addWidget( m_tabstyle_bottom, 1, 2 );
395 QWhatsThis::add( m_tabstyle_bottom, tr( "Click here so that tabs appear at the bottom of the window." ) );
363 396
364 m_tabstyle_top-> setChecked ( tabtop ); 397 m_tabstyle_top-> setChecked ( tabtop );
365 m_tabstyle_bottom-> setChecked ( !tabtop ); 398 m_tabstyle_bottom-> setChecked ( !tabtop );
@@ -372,7 +405,7 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
372 405
373 406
374Appearance::Appearance( QWidget* parent, const char* name, WFlags ) 407Appearance::Appearance( QWidget* parent, const char* name, WFlags )
375 : QDialog ( parent, name, true ) 408 : QDialog ( parent, name, true, WStyle_ContextHelp )
376{ 409{
377 setCaption( tr( "Appearance" ) ); 410 setCaption( tr( "Appearance" ) );
378 411
@@ -383,22 +416,23 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags )
383 416
384 m_sample = new SampleWindow ( this ); 417 m_sample = new SampleWindow ( this );
385 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 418 m_sample-> setDecoration ( new DefaultWindowDecoration ( ));
386 419 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) );
420
387 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); 421 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom );
388 QWidget *styletab; 422 QWidget *styletab;
389 423
390 tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance/style.png", tr( "Style" )); 424 tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance/style.png", tr( "Style" ));
391 tw-> addTab ( createFontTab ( tw, config ), "appearance/font.png", tr( "Font" )); 425 tw-> addTab ( createFontTab ( tw, config ), "appearance/font.png", tr( "Font" ));
392 tw-> addTab ( createColorTab ( tw, config ), "appearance/color.png", tr( "Colors" ) ); 426 tw-> addTab ( createColorTab ( tw, config ), "appearance/color.png", tr( "Colors" ) );
393 tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco.png", tr( "Windows" ) ); 427 tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco.png", tr( "Windows" ) );
394 tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "appearance/advanced.png", tr( "Advanced" ) ); 428 tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "appearance/advanced.png", tr( "Advanced" ) );
395 429
396 top-> addWidget ( tw, 10 ); 430 top-> addWidget ( tw, 10 );
397 top-> addWidget ( m_sample, 1 ); 431 top-> addWidget ( m_sample, 1 );
398 432
399 tw-> setCurrentTab ( styletab ); 433 tw-> setCurrentTab ( styletab );
400 connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * ))); 434 connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * )));
401 435
402 m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; 436 m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false;
403} 437}
404 438
@@ -424,17 +458,17 @@ void Appearance::accept ( )
424 Config config ( "qpe" ); 458 Config config ( "qpe" );
425 config. setGroup ( "Appearance" ); 459 config. setGroup ( "Appearance" );
426 460
427 if ( m_style_changed ) { 461 if ( m_style_changed ) {
428 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 462 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
429 if ( item ) 463 if ( item )
430 config.writeEntry( "Style", item-> key ( )); 464 config.writeEntry( "Style", item-> key ( ));
431 } 465 }
432 466
433 if ( m_deco_changed ) { 467 if ( m_deco_changed ) {
434 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); 468 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( ));
435 if ( item ) 469 if ( item )
436 config.writeEntry( "Decoration", item-> key ( )); 470 config.writeEntry( "Decoration", item-> key ( ));
437 } 471 }
438 472
439 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) { 473 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) {
440 config. writeEntry ( "TabStyle", newtabstyle + 1 ); 474 config. writeEntry ( "TabStyle", newtabstyle + 1 );
@@ -451,8 +485,8 @@ void Appearance::accept ( )
451 if ( m_color_changed ) 485 if ( m_color_changed )
452 { 486 {
453 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 487 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
454 488
455 if ( item ) 489 if ( item )
456 item-> save ( config ); 490 item-> save ( config );
457 } 491 }
458 492
@@ -460,23 +494,26 @@ void Appearance::accept ( )
460 m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated 494 m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated
461 495
462 QStringList sl; 496 QStringList sl;
497 QString exceptstr;
463 for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) { 498 for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) {
464 int fl = 0; 499 int fl = 0;
465 fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); 500 fl |= ( it-> noStyle ( ) ? 0x01 : 0 );
466 fl |= ( it-> noFont ( ) ? 0x02 : 0 ); 501 fl |= ( it-> noFont ( ) ? 0x02 : 0 );
467 fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); 502 fl |= ( it-> noDeco ( ) ? 0x04 : 0 );
468 sl << ( QString::number ( fl, 32 ) + it-> pattern ( )); 503 exceptstr = QString::number ( fl, 32 );
504 exceptstr.append( it-> pattern ( ));
505 sl << exceptstr;
469 } 506 }
470 config. writeEntry ( "NoStyle", sl, ';' ); 507 config. writeEntry ( "NoStyle", sl, ';' );
471 config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); 508 config. writeEntry ( "ForceStyle", m_force-> isChecked ( ));
472 509
473 config. write ( ); // need to flush the config info first 510 config. write ( ); // need to flush the config info first
474 Global::applyStyle ( ); 511 Global::applyStyle ( );
475 512
476 if ( QMessageBox::warning ( this, tr( "Restart" ), tr( "Do you want to restart %1 now?" ). arg ( ODevice::inst ( )-> system ( ) == System_Zaurus ? "Qtopia" : "Opie" ), tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) { 513 if ( QMessageBox::warning ( this, tr( "Restart" ), tr( "Do you want to restart %1 now?" ). arg ( ODevice::inst ( )-> system ( ) == System_Zaurus ? "Qtopia" : "Opie" ), tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) {
477 QCopEnvelope e( "QPE/System", "restart()" ); 514 QCopEnvelope e( "QPE/System", "restart()" );
478 } 515 }
479 516
480 QDialog::accept ( ); 517 QDialog::accept ( );
481} 518}
482 519
@@ -491,10 +528,10 @@ void Appearance::styleClicked ( int index )
491{ 528{
492 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); 529 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index );
493 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); 530 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false );
494 531
495 if ( m_sample && sli && sli-> style ( )) 532 if ( m_sample && sli && sli-> style ( ))
496 m_sample-> setStyle2 ( sli-> style ( )); 533 m_sample-> setStyle2 ( sli-> style ( ));
497 534
498 m_style_changed |= ( index != m_original_style ); 535 m_style_changed |= ( index != m_original_style );
499} 536}
500 537
@@ -610,7 +647,11 @@ void Appearance::saveSchemeClicked()
610 647
611 if ( d-> exec ( ) == QDialog::Accepted ) { 648 if ( d-> exec ( ) == QDialog::Accepted ) {
612 QString schemename = ed-> text ( ); 649 QString schemename = ed-> text ( );
613 QFile file ( QPEApplication::qpeDir() + "/etc/colors/" + schemename + ".scheme" ); 650 QString filestr = QPEApplication::qpeDir();
651 filestr.append( "/etc/colors/" );
652 filestr.append( schemename );
653 filestr.append( ".scheme" );
654 QFile file ( filestr );
614 if ( !file. exists ( )) 655 if ( !file. exists ( ))
615 { 656 {
616 QPalette p = item-> palette ( ); 657 QPalette p = item-> palette ( );
@@ -641,9 +682,13 @@ void Appearance::deleteSchemeClicked()
641 682
642 if ( m_color_list-> currentItem ( ) > 0 ) 683 if ( m_color_list-> currentItem ( ) > 0 )
643 { 684 {
644 if ( QMessageBox::warning ( this, tr( "Delete scheme" ), tr( "Do you really want to delete\n" ) + item-> text ( ) + "?", 685 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) )
645 tr( "Yes" ), tr( "No" ), 0, 0, 1 ) == 0 ) { 686 {
646 QFile::remove ( QPEApplication::qpeDir ( ) + "/etc/colors/" + item-> text ( ) + ".scheme" ); 687 QString filestr = QPEApplication::qpeDir ( );
688 filestr.append( "/etc/colors/" );
689 filestr.append( item-> text ( ) );
690 filestr.append( ".scheme" );
691 QFile::remove ( filestr );
647 delete item; 692 delete item;
648 } 693 }
649 } 694 }
diff --git a/noncore/settings/appearance2/editScheme.cpp b/noncore/settings/appearance2/editScheme.cpp
index eefeccc..7e5225f 100644
--- a/noncore/settings/appearance2/editScheme.cpp
+++ b/noncore/settings/appearance2/editScheme.cpp
@@ -16,7 +16,7 @@
16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
18..}^=.=       =       ; Public License for more details. 18..}^=.=       =       ; Public License for more details.
19++=   -.     .`     .: 19++=   -.     .`     .:
20 :     =  ...= . :.=- You should have received a copy of the GNU 20 :     =  ...= . :.=- You should have received a copy of the GNU
21 -.   .:....=;==+<; General Public License along with this file; 21 -.   .:....=;==+<; General Public License along with this file;
22  -_. . .   )=.  = see the file COPYING. If not, write to the 22  -_. . .   )=.  = see the file COPYING. If not, write to the
@@ -36,9 +36,10 @@
36#include <qpopupmenu.h> 36#include <qpopupmenu.h>
37#include <qscrollview.h> 37#include <qscrollview.h>
38#include <qtoolbutton.h> 38#include <qtoolbutton.h>
39#include <qwhatsthis.h>
39 40
40EditScheme::EditScheme ( int cnt, const QString *labels, QColor *colors, QWidget* parent, const char* name, bool modal, WFlags fl ) 41EditScheme::EditScheme ( int cnt, const QString *labels, QColor *colors, QWidget* parent, const char* name, bool modal, WFlags )
41 : QDialog ( parent, name, modal, fl ) 42 : QDialog ( parent, name, modal, WStyle_ContextHelp )
42{ 43{
43 setCaption ( tr( "Edit scheme" ) ); 44 setCaption ( tr( "Edit scheme" ) );
44 QGridLayout *layout = new QGridLayout ( this, 0, 0, 4, 4 ); 45 QGridLayout *layout = new QGridLayout ( this, 0, 0, 4, 4 );
@@ -51,9 +52,11 @@ EditScheme::EditScheme ( int cnt, const QString *labels, QColor *colors, QWidget
51 { 52 {
52 QLabel *l = new QLabel ( labels [i], this ); 53 QLabel *l = new QLabel ( labels [i], this );
53 layout-> addWidget ( l, i, 0 ); 54 layout-> addWidget ( l, i, 0 );
55 QWhatsThis::add( l, tr( "Click here to select a color for: " ).arg( labels [i] ) );
54 56
55 m_buttons [i] = new OColorButton ( this, colors [i] ); 57 m_buttons [i] = new OColorButton ( this, colors [i] );
56 layout-> addWidget ( m_buttons [i], i, 1 ); 58 layout-> addWidget ( m_buttons [i], i, 1 );
59 QWhatsThis::add( m_buttons [i], tr( "Click here to select a color for: " ).arg( labels [i] ) );
57 } 60 }
58} 61}
59 62