summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-03-27 05:03:39 (UTC)
committer kergoth <kergoth>2003-03-27 05:03:39 (UTC)
commitcc8374957bcd95868d3dc52c854786239083cffc (patch) (unidiff)
treec6bdfb92b736bd59b1329d55fb580e128aeca53d
parent72673ba6769cef021f23002cb0a8e1545ee43632 (diff)
downloadopie-cc8374957bcd95868d3dc52c854786239083cffc.zip
opie-cc8374957bcd95868d3dc52c854786239083cffc.tar.gz
opie-cc8374957bcd95868d3dc52c854786239083cffc.tar.bz2
Add the ability to change from clockwise to counterclockwise rotation behavior.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp30
-rw-r--r--noncore/settings/appearance2/appearance.h3
2 files changed, 33 insertions, 0 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp
index db863d6..32234f0 100644
--- a/noncore/settings/appearance2/appearance.cpp
+++ b/noncore/settings/appearance2/appearance.cpp
@@ -1,808 +1,838 @@
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 <qbuttongroup.h> 30#include <qbuttongroup.h>
31#include <qcheckbox.h> 31#include <qcheckbox.h>
32#include <qcombobox.h> 32#include <qcombobox.h>
33#include <qdialog.h> 33#include <qdialog.h>
34#include <qdir.h> 34#include <qdir.h>
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qlayout.h> 36#include <qlayout.h>
37#include <qlineedit.h> 37#include <qlineedit.h>
38#include <qlistbox.h> 38#include <qlistbox.h>
39#include <qmessagebox.h> 39#include <qmessagebox.h>
40#include <qpushbutton.h> 40#include <qpushbutton.h>
41#include <qradiobutton.h> 41#include <qradiobutton.h>
42#if QT_VERSION >= 300 42#if QT_VERSION >= 300
43#include <qstylefactory.h> 43#include <qstylefactory.h>
44#endif 44#endif
45#include <qtoolbutton.h> 45#include <qtoolbutton.h>
46#include <qwindowsstyle.h> 46#include <qwindowsstyle.h>
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#include <qwhatsthis.h>
51 51
52#include <qpe/config.h> 52#include <qpe/config.h>
53#include <qpe/global.h> 53#include <qpe/global.h>
54#include <qpe/resource.h> 54#include <qpe/resource.h>
55#include <qpe/qpeapplication.h> 55#include <qpe/qpeapplication.h>
56#include <qpe/qpemessagebox.h> 56#include <qpe/qpemessagebox.h>
57#include <qpe/qcopenvelope_qws.h> 57#include <qpe/qcopenvelope_qws.h>
58#include <qpe/qpestyle.h> 58#include <qpe/qpestyle.h>
59#include <qpe/lightstyle.h> 59#include <qpe/lightstyle.h>
60#include <qpe/qlibrary.h> 60#include <qpe/qlibrary.h>
61#include <qpe/styleinterface.h> 61#include <qpe/styleinterface.h>
62 62
63#include <opie/ofontselector.h> 63#include <opie/ofontselector.h>
64#include <opie/odevice.h> 64#include <opie/odevice.h>
65#include <opie/ofiledialog.h> 65#include <opie/ofiledialog.h>
66#include <opie/otabwidget.h> 66#include <opie/otabwidget.h>
67 67
68#include "appearance.h" 68#include "appearance.h"
69#include "editScheme.h" 69#include "editScheme.h"
70#include "stylelistitem.h" 70#include "stylelistitem.h"
71#include "decolistitem.h" 71#include "decolistitem.h"
72#include "colorlistitem.h" 72#include "colorlistitem.h"
73#include "exceptlistitem.h" 73#include "exceptlistitem.h"
74#include "sample.h" 74#include "sample.h"
75 75
76 76
77using namespace Opie; 77using namespace Opie;
78 78
79 79
80class DefaultWindowDecoration : public WindowDecorationInterface 80class DefaultWindowDecoration : public WindowDecorationInterface
81{ 81{
82public: 82public:
83 DefaultWindowDecoration() : ref(0) {} 83 DefaultWindowDecoration() : ref(0) {}
84 QString name() const { 84 QString name() const {
85 return "Default"; 85 return "Default";
86 } 86 }
87 QPixmap icon() const { 87 QPixmap icon() const {
88 return QPixmap(); 88 return QPixmap();
89 } 89 }
90 QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { 90 QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) {
91 *iface = 0; 91 *iface = 0;
92 if ( uuid == IID_QUnknown ) 92 if ( uuid == IID_QUnknown )
93 *iface = this; 93 *iface = this;
94 else if ( uuid == IID_WindowDecoration ) 94 else if ( uuid == IID_WindowDecoration )
95 *iface = this; 95 *iface = this;
96 96
97 if ( *iface ) 97 if ( *iface )
98 (*iface)->addRef(); 98 (*iface)->addRef();
99 return QS_OK; 99 return QS_OK;
100 } 100 }
101 Q_REFCOUNT 101 Q_REFCOUNT
102 102
103private: 103private:
104 ulong ref; 104 ulong ref;
105}; 105};
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg ) 113QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg )
114{ 114{
115 QWidget* tab = new QWidget( parent, "StyleTab" ); 115 QWidget* tab = new QWidget( parent, "StyleTab" );
116 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); 116 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 );
117 117
118 m_style_list = new QListBox( tab, "m_style_list" ); 118 m_style_list = new QListBox( tab, "m_style_list" );
119 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." ) ); 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." ) );
121 121
122 m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); 122 m_style_settings = new QPushButton ( tr( "Settings..." ), tab );
123 connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( ))); 123 connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( )));
124 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." ) ); 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." ) );
126 126
127 QString s = cfg. readEntry ( "Style", "Light" ); 127 QString s = cfg. readEntry ( "Style", "Light" );
128 128
129 129
130#if QT_VERSION >= 300 130#if QT_VERSION >= 300
131 m_style_list->insertStringList(QStyleFactory::styles()); 131 m_style_list->insertStringList(QStyleFactory::styles());
132#else 132#else
133 m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); 133 m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( )));
134 m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); 134 m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( )));
135 m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); 135 m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( )));
136#endif 136#endif
137 { 137 {
138 QString path = QPEApplication::qpeDir ( ); 138 QString path = QPEApplication::qpeDir ( );
139 path.append( "/plugins/styles/" ); 139 path.append( "/plugins/styles/" );
140 QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); 140 QStringList sl = QDir ( path, "lib*.so" ). entryList ( );
141 141
142 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 142 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
143 QString libstr = path; 143 QString libstr = path;
144 libstr.append( "/" ); 144 libstr.append( "/" );
145 libstr.append( *it ); 145 libstr.append( *it );
146 QLibrary *lib = new QLibrary ( libstr ); 146 QLibrary *lib = new QLibrary ( libstr );
147 StyleInterface *iface; 147 StyleInterface *iface;
148 148
149 if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) { 149 if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) {
150 StyleListItem *slit = new StyleListItem ( lib, iface ); 150 StyleListItem *slit = new StyleListItem ( lib, iface );
151 m_style_list-> insertItem ( slit ); 151 m_style_list-> insertItem ( slit );
152 152
153 if ( slit-> key ( ) == s ) 153 if ( slit-> key ( ) == s )
154 m_style_list-> setCurrentItem ( slit ); 154 m_style_list-> setCurrentItem ( slit );
155 } 155 }
156 else 156 else
157 delete lib; 157 delete lib;
158 } 158 }
159 } 159 }
160 160
161 m_original_style = m_style_list-> currentItem ( ); 161 m_original_style = m_style_list-> currentItem ( );
162 styleClicked ( m_original_style ); 162 styleClicked ( m_original_style );
163 163
164 connect( m_style_list, SIGNAL( highlighted( int ) ), this, SLOT( styleClicked( int ) ) ); 164 connect( m_style_list, SIGNAL( highlighted( int ) ), this, SLOT( styleClicked( int ) ) );
165 165
166 return tab; 166 return tab;
167} 167}
168 168
169QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) 169QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg )
170{ 170{
171 QWidget* tab = new QWidget( parent, "DecoTab" ); 171 QWidget* tab = new QWidget( parent, "DecoTab" );
172 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 ); 172 QVBoxLayout* vertLayout = new QVBoxLayout( tab, 3, 3 );
173 173
174 m_deco_list = new QListBox( tab, "m_deco_list" ); 174 m_deco_list = new QListBox( tab, "m_deco_list" );
175 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." ) ); 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." ) );
177 177
178 QString s = cfg. readEntry ( "Decoration" ); 178 QString s = cfg. readEntry ( "Decoration" );
179 179
180 m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); 180 m_deco_list-> insertItem ( new DecoListItem ( "QPE" ));
181 181
182 { 182 {
183 QString path = QPEApplication::qpeDir(); 183 QString path = QPEApplication::qpeDir();
184 path.append( "/plugins/decorations/" ); 184 path.append( "/plugins/decorations/" );
185 QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); 185 QStringList sl = QDir ( path, "lib*.so" ). entryList ( );
186 186
187 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 187 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
188 QString libstr = path; 188 QString libstr = path;
189 libstr.append( "/" ); 189 libstr.append( "/" );
190 libstr.append( *it ); 190 libstr.append( *it );
191 QLibrary *lib = new QLibrary ( libstr ); 191 QLibrary *lib = new QLibrary ( libstr );
192 WindowDecorationInterface *iface; 192 WindowDecorationInterface *iface;
193 193
194 if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) { 194 if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) {
195 DecoListItem *dlit = new DecoListItem ( lib, iface ); 195 DecoListItem *dlit = new DecoListItem ( lib, iface );
196 m_deco_list-> insertItem ( dlit ); 196 m_deco_list-> insertItem ( dlit );
197 197
198 if ( dlit-> key ( ) == s ) 198 if ( dlit-> key ( ) == s )
199 m_deco_list-> setCurrentItem ( dlit ); 199 m_deco_list-> setCurrentItem ( dlit );
200 } 200 }
201 else 201 else
202 delete lib; 202 delete lib;
203 } 203 }
204 } 204 }
205 205
206 m_original_deco = m_deco_list-> currentItem ( ); 206 m_original_deco = m_deco_list-> currentItem ( );
207 if ( m_deco_list-> currentItem ( ) < 0 ) 207 if ( m_deco_list-> currentItem ( ) < 0 )
208 m_deco_list-> setCurrentItem ( 0 ); 208 m_deco_list-> setCurrentItem ( 0 );
209 decoClicked ( m_original_deco ); 209 decoClicked ( m_original_deco );
210 210
211 connect( m_deco_list, SIGNAL( highlighted( int ) ), this, SLOT( decoClicked( int ) ) ); 211 connect( m_deco_list, SIGNAL( highlighted( int ) ), this, SLOT( decoClicked( int ) ) );
212 212
213 return tab; 213 return tab;
214} 214}
215 215
216QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg ) 216QWidget *Appearance::createFontTab ( QWidget *parent, Config &cfg )
217{ 217{
218 QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" ); 218 QString familyStr = cfg. readEntry ( "FontFamily", "Helvetica" );
219 QString styleStr = cfg. readEntry ( "FontStyle", "Regular" ); 219 QString styleStr = cfg. readEntry ( "FontStyle", "Regular" );
220 int size = cfg. readNumEntry ( "FontSize", 10 ); 220 int size = cfg. readNumEntry ( "FontSize", 10 );
221 221
222 m_fontselect = new OFontSelector ( false, parent, "FontTab" ); 222 m_fontselect = new OFontSelector ( false, parent, "FontTab" );
223 m_fontselect-> setSelectedFont ( familyStr, styleStr, size ); 223 m_fontselect-> setSelectedFont ( familyStr, styleStr, size );
224 QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) ); 224 QWhatsThis::add( m_fontselect, tr( "Select the desired name, style and size of the default font applications will use." ) );
225 225
226 connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )), 226 connect( m_fontselect, SIGNAL( fontSelected ( const QFont & )),
227 this, SLOT( fontClicked ( const QFont & ))); 227 this, SLOT( fontClicked ( const QFont & )));
228 228
229 return m_fontselect; 229 return m_fontselect;
230} 230}
231 231
232QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) 232QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg )
233{ 233{
234 QWidget *tab = new QWidget( parent, "ColorTab" ); 234 QWidget *tab = new QWidget( parent, "ColorTab" );
235 QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 3, 3 ); 235 QGridLayout *gridLayout = new QGridLayout( tab, 0, 0, 3, 3 );
236 gridLayout->setRowStretch ( 3, 10 ); 236 gridLayout->setRowStretch ( 3, 10 );
237 237
238 m_color_list = new QListBox ( tab ); 238 m_color_list = new QListBox ( tab );
239 gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); 239 gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 );
240 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." ) ); 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." ) );
242 242
243 m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); 243 m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg ));
244 244
245 QString path = QPEApplication::qpeDir ( ); 245 QString path = QPEApplication::qpeDir ( );
246 path.append( "/etc/colors/" ); 246 path.append( "/etc/colors/" );
247 QStringList sl = QDir ( path ). entryList ( "*.scheme" ); 247 QStringList sl = QDir ( path ). entryList ( "*.scheme" );
248 248
249 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 249 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
250 QString name = (*it). left ((*it). find ( ".scheme" )); 250 QString name = (*it). left ((*it). find ( ".scheme" ));
251 QString pathstr = path; 251 QString pathstr = path;
252 pathstr.append( *it ); 252 pathstr.append( *it );
253 Config config ( pathstr, Config::File ); 253 Config config ( pathstr, Config::File );
254 config. setGroup ( "Colors" ); 254 config. setGroup ( "Colors" );
255 255
256 m_color_list-> insertItem ( new ColorListItem ( name, config )); 256 m_color_list-> insertItem ( new ColorListItem ( name, config ));
257 } 257 }
258 258
259 m_color_list-> setCurrentItem ( 0 ); 259 m_color_list-> setCurrentItem ( 0 );
260 260
261 QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); 261 QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" );
262 tempButton->setText( tr( "Edit..." ) ); 262 tempButton->setText( tr( "Edit..." ) );
263 connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) ); 263 connect( tempButton, SIGNAL( clicked() ), this, SLOT( editSchemeClicked() ) );
264 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." ) ); 265 QWhatsThis::add( tempButton, tr( "Click here to change the colors in the current color scheme." ) );
266 266
267 tempButton = new QPushButton( tab, "deleteSchemeButton" ); 267 tempButton = new QPushButton( tab, "deleteSchemeButton" );
268 tempButton->setText( tr( "Delete" ) ); 268 tempButton->setText( tr( "Delete" ) );
269 connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) ); 269 connect( tempButton, SIGNAL( clicked() ), this, SLOT( deleteSchemeClicked() ) );
270 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." ) ); 271 QWhatsThis::add( tempButton, tr( "Click here to delete the color scheme selected in the list to the left." ) );
272 272
273 tempButton = new QPushButton( tab, "saveSchemeButton" ); 273 tempButton = new QPushButton( tab, "saveSchemeButton" );
274 tempButton->setText( tr( "Save" ) ); 274 tempButton->setText( tr( "Save" ) );
275 connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) ); 275 connect( tempButton, SIGNAL( clicked() ), this, SLOT( saveSchemeClicked() ) );
276 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." ) ); 277 QWhatsThis::add( tempButton, tr( "Click here to name and save the current color scheme." ) );
278 278
279 return tab; 279 return tab;
280} 280}
281 281
282QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) 282QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
283{ 283{
284 QWidget *tab = new QWidget ( parent ); 284 QWidget *tab = new QWidget ( parent );
285 QVBoxLayout *vertLayout = new QVBoxLayout( tab, 3, 3 ); 285 QVBoxLayout *vertLayout = new QVBoxLayout( tab, 3, 3 );
286 286
287 QGridLayout *lay = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); 287 QGridLayout *lay = new QGridLayout ( vertLayout, 0, 0, 3, 0 );
288 288
289 m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab ); 289 m_force = new QCheckBox ( tr( "Force styling for all applications." ), tab );
290 m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" )); 290 m_force-> setChecked ( cfg. readBoolEntry ( "ForceStyle" ));
291 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." ) ); 292 QWhatsThis::add( m_force, tr( "Click here to allow all applications to use global appearance settings." ) );
293 293
294 QLabel *l = new QLabel ( tab ); 294 QLabel *l = new QLabel ( tab );
295 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):" )));
296 lay-> addMultiCellWidget ( l, 1, 1, 0, 1 ); 296 lay-> addMultiCellWidget ( l, 1, 1, 0, 1 );
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." ) ); 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 298
299 m_except = new QListView ( tab ); 299 m_except = new QListView ( tab );
300 m_except-> addColumn ( Resource::loadIconSet ( "appearance" ), "", 24 ); 300 m_except-> addColumn ( Resource::loadIconSet ( "appearance" ), "", 24 );
301 m_except-> addColumn ( Resource::loadIconSet ( "font" ), "", 24 ); 301 m_except-> addColumn ( Resource::loadIconSet ( "font" ), "", 24 );
302 m_except-> addColumn ( Resource::loadIconSet ( "appearance/deco" ), "", 24 ); 302 m_except-> addColumn ( Resource::loadIconSet ( "appearance/deco" ), "", 24 );
303 m_except-> addColumn ( tr( "Binary file(s)" )); 303 m_except-> addColumn ( tr( "Binary file(s)" ));
304 m_except-> setColumnAlignment ( 0, AlignCenter ); 304 m_except-> setColumnAlignment ( 0, AlignCenter );
305 m_except-> setColumnAlignment ( 1, AlignCenter ); 305 m_except-> setColumnAlignment ( 1, AlignCenter );
306 m_except-> setColumnAlignment ( 2, AlignCenter ); 306 m_except-> setColumnAlignment ( 2, AlignCenter );
307 m_except-> setAllColumnsShowFocus ( true ); 307 m_except-> setAllColumnsShowFocus ( true );
308 m_except-> setMinimumHeight ( 30 ); 308 m_except-> setMinimumHeight ( 30 );
309 m_except-> header ( )-> setClickEnabled ( false ); 309 m_except-> header ( )-> setClickEnabled ( false );
310 m_except-> header ( )-> setResizeEnabled ( false ); 310 m_except-> header ( )-> setResizeEnabled ( false );
311 m_except-> header ( )-> setMovingEnabled ( false ); 311 m_except-> header ( )-> setMovingEnabled ( false );
312 m_except-> setSorting ( -1 ); 312 m_except-> setSorting ( -1 );
313 lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 ); 313 lay-> addMultiCellWidget ( m_except, 2, 6, 0, 0 );
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." ) ); 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 315
316 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 )));
317 317
318 QToolButton *tb = new QToolButton ( tab ); 318 QToolButton *tb = new QToolButton ( tab );
319 tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" )); 319 tb-> setIconSet ( Resource::loadIconSet ( "appearance/add" ));
320 tb-> setFocusPolicy ( QWidget::StrongFocus ); 320 tb-> setFocusPolicy ( QWidget::StrongFocus );
321 lay-> addWidget ( tb, 2, 1 ); 321 lay-> addWidget ( tb, 2, 1 );
322 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." ) ); 323 QWhatsThis::add( tb, tr( "Click here to add an application to the list above." ) );
324 324
325 tb = new QToolButton ( tab ); 325 tb = new QToolButton ( tab );
326 tb-> setIconSet ( Resource::loadIconSet ( "editdelete" )); 326 tb-> setIconSet ( Resource::loadIconSet ( "editdelete" ));
327 tb-> setFocusPolicy ( QWidget::StrongFocus ); 327 tb-> setFocusPolicy ( QWidget::StrongFocus );
328 lay-> addWidget ( tb, 3, 1 ); 328 lay-> addWidget ( tb, 3, 1 );
329 connect ( tb, SIGNAL( clicked ( )), this, SLOT( delExcept ( ))); 329 connect ( tb, SIGNAL( clicked ( )), this, SLOT( delExcept ( )));
330 QWhatsThis::add( tb, tr( "Click here to delete the currently selected application." ) ); 330 QWhatsThis::add( tb, tr( "Click here to delete the currently selected application." ) );
331 331
332 tb = new QToolButton ( tab ); 332 tb = new QToolButton ( tab );
333 tb-> setIconSet ( Resource::loadIconSet ( "up" )); 333 tb-> setIconSet ( Resource::loadIconSet ( "up" ));
334 tb-> setFocusPolicy ( QWidget::StrongFocus ); 334 tb-> setFocusPolicy ( QWidget::StrongFocus );
335 lay-> addWidget ( tb, 4, 1 ); 335 lay-> addWidget ( tb, 4, 1 );
336 connect ( tb, SIGNAL( clicked ( )), this, SLOT( upExcept ( ))); 336 connect ( tb, SIGNAL( clicked ( )), this, SLOT( upExcept ( )));
337 QWhatsThis::add( tb, tr( "Click here to move the currently selected application up in the list." ) ); 337 QWhatsThis::add( tb, tr( "Click here to move the currently selected application up in the list." ) );
338 338
339 tb = new QToolButton ( tab ); 339 tb = new QToolButton ( tab );
340 tb-> setIconSet ( Resource::loadIconSet ( "down" )); 340 tb-> setIconSet ( Resource::loadIconSet ( "down" ));
341 tb-> setFocusPolicy ( QWidget::StrongFocus ); 341 tb-> setFocusPolicy ( QWidget::StrongFocus );
342 lay-> addWidget ( tb, 5, 1 ); 342 lay-> addWidget ( tb, 5, 1 );
343 connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( ))); 343 connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( )));
344 QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) ); 344 QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) );
345 345
346 lay-> setRowStretch ( 6, 10 ); 346 lay-> setRowStretch ( 6, 10 );
347 lay-> setColStretch ( 0, 10 ); 347 lay-> setColStretch ( 0, 10 );
348 348
349 QStringList sl = cfg. readListEntry ( "NoStyle", ';' ); 349 QStringList sl = cfg. readListEntry ( "NoStyle", ';' );
350 QListViewItem *lvit = 0; 350 QListViewItem *lvit = 0;
351 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { 351 for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) {
352 int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); 352 int fl = ( *it ). left ( 1 ). toInt ( 0, 32 );
353 353
354 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 );
355 } 355 }
356 356
357 357
358 vertLayout-> addSpacing ( 3 ); 358 vertLayout-> addSpacing ( 3 );
359 QFrame *f = new QFrame ( tab ); 359 QFrame *f = new QFrame ( tab );
360 f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); 360 f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken );
361 vertLayout-> addWidget ( f ); 361 vertLayout-> addWidget ( f );
362 vertLayout-> addSpacing ( 3 ); 362 vertLayout-> addSpacing ( 3 );
363 363
364 364
365 QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 ); 365 QGridLayout* gridLayout = new QGridLayout ( vertLayout, 0, 0, 3, 0 );
366 366
367 int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1; 367 int style = cfg. readNumEntry ( "TabStyle", 2 ) - 1;
368 bool tabtop = ( cfg. readEntry ( "TabPosition", "Top" ) == "Top" ); 368 bool tabtop = ( cfg. readEntry ( "TabPosition", "Top" ) == "Top" );
369 369
370 QLabel* label = new QLabel( tr( "Tab style:" ), tab ); 370 QLabel* label = new QLabel( tr( "Tab style:" ), tab );
371 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" ) ); 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 373
374 QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" ); 374 QButtonGroup* btngrp = new QButtonGroup( tab, "buttongroup" );
375 btngrp-> hide ( ); 375 btngrp-> hide ( );
376 btngrp-> setExclusive ( true ); 376 btngrp-> setExclusive ( true );
377 377
378 m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" ); 378 m_tabstyle_list = new QComboBox ( false, tab, "tabstyle" );
379 m_tabstyle_list-> insertItem ( tr( "Tabs" )); 379 m_tabstyle_list-> insertItem ( tr( "Tabs" ));
380 m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" )); 380 m_tabstyle_list-> insertItem ( tr( "Tabs w/icons" ));
381 m_tabstyle_list-> insertItem ( tr( "Drop down list" )); 381 m_tabstyle_list-> insertItem ( tr( "Drop down list" ));
382 m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" )); 382 m_tabstyle_list-> insertItem ( tr( "Drop down list w/icons" ));
383 m_tabstyle_list-> setCurrentItem ( style ); 383 m_tabstyle_list-> setCurrentItem ( style );
384 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" ) ); 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" ) );
386 386
387 m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" ); 387 m_tabstyle_top = new QRadioButton( tr( "Top" ), tab, "tabpostop" );
388 btngrp-> insert ( m_tabstyle_top ); 388 btngrp-> insert ( m_tabstyle_top );
389 gridLayout-> addWidget( m_tabstyle_top, 1, 1 ); 389 gridLayout-> addWidget( m_tabstyle_top, 1, 1 );
390 QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) ); 390 QWhatsThis::add( m_tabstyle_top, tr( "Click here so that tabs appear at the top of the window." ) );
391 391
392 m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" ); 392 m_tabstyle_bottom = new QRadioButton( tr( "Bottom" ), tab, "tabposbottom" );
393 btngrp-> insert ( m_tabstyle_bottom ); 393 btngrp-> insert ( m_tabstyle_bottom );
394 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." ) ); 395 QWhatsThis::add( m_tabstyle_bottom, tr( "Click here so that tabs appear at the bottom of the window." ) );
396 396
397 m_tabstyle_top-> setChecked ( tabtop ); 397 m_tabstyle_top-> setChecked ( tabtop );
398 m_tabstyle_bottom-> setChecked ( !tabtop ); 398 m_tabstyle_bottom-> setChecked ( !tabtop );
399 399
400 m_original_tabstyle = style; 400 m_original_tabstyle = style;
401 m_original_tabpos = tabtop; 401 m_original_tabpos = tabtop;
402 402
403 vertLayout-> addSpacing ( 3 );
404 QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 );
405
406 QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab );
407 m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" );
408 QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( );
409 m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" );
410 QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 );
411 QPixmap ccw1;
412 QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" );
413
414 rotbtngrp-> hide ( );
415 rotbtngrp-> setExclusive ( true );
416 rotbtngrp-> insert ( m_rotdir_cw );
417 rotbtngrp-> insert ( m_rotdir_ccw );
418
419 ccw1. convertFromImage( ccwImage );
420 m_rotdir_cw-> setPixmap( cw1 );
421 m_rotdir_ccw-> setPixmap( ccw1 );
422
423 rotLay-> addWidget ( rotlabel, 0 );
424 rotLay-> addWidget ( m_rotdir_cw, 0 );
425 rotLay-> addWidget ( m_rotdir_ccw, 0 );
426
427 bool rotcw = !(cfg. readBoolEntry ( "rotatedir", 0 ));
428 m_rotdir_cw-> setChecked ( rotcw );
429 m_rotdir_ccw-> setChecked ( !rotcw );
430
403 return tab; 431 return tab;
404} 432}
405 433
406 434
407Appearance::Appearance( QWidget* parent, const char* name, WFlags ) 435Appearance::Appearance( QWidget* parent, const char* name, WFlags )
408 : QDialog ( parent, name, true, WStyle_ContextHelp ) 436 : QDialog ( parent, name, true, WStyle_ContextHelp )
409{ 437{
410 setCaption( tr( "Appearance Settings" ) ); 438 setCaption( tr( "Appearance Settings" ) );
411 439
412 Config config( "qpe" ); 440 Config config( "qpe" );
413 config.setGroup( "Appearance" ); 441 config.setGroup( "Appearance" );
414 442
415 QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); 443 QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 );
416 444
417 m_sample = new SampleWindow ( this ); 445 m_sample = new SampleWindow ( this );
418 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 446 m_sample-> setDecoration ( new DefaultWindowDecoration ( ));
419 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); 447 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) );
420 448
421 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); 449 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom );
422 QWidget *styletab; 450 QWidget *styletab;
423 451
424 m_color_list = 0; 452 m_color_list = 0;
425 453
426 tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" )); 454 tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" ));
427 tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" )); 455 tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" ));
428 tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); 456 tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) );
429 tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); 457 tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) );
430 tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); 458 tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) );
431 459
432 top-> addWidget ( tw, 10 ); 460 top-> addWidget ( tw, 10 );
433 top-> addWidget ( m_sample, 1 ); 461 top-> addWidget ( m_sample, 1 );
434 462
435 tw-> setCurrentTab ( styletab ); 463 tw-> setCurrentTab ( styletab );
436 connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * ))); 464 connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * )));
437 465
438 m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; 466 m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false;
439} 467}
440 468
441Appearance::~Appearance() 469Appearance::~Appearance()
442{ 470{
443} 471}
444 472
445void Appearance::tabChanged ( QWidget *w ) 473void Appearance::tabChanged ( QWidget *w )
446{ 474{
447 if ( w == m_advtab ) { 475 if ( w == m_advtab ) {
448 m_sample-> hide ( ); 476 m_sample-> hide ( );
449 updateGeometry ( ); // shouldn't be necessary ... 477 updateGeometry ( ); // shouldn't be necessary ...
450 } 478 }
451 else 479 else
452 m_sample-> show ( ); 480 m_sample-> show ( );
453} 481}
454 482
455void Appearance::accept ( ) 483void Appearance::accept ( )
456{ 484{
457 bool newtabpos = m_tabstyle_top-> isChecked ( ); 485 bool newtabpos = m_tabstyle_top-> isChecked ( );
486 bool is_rotdir_ccw = m_rotdir_ccw-> isChecked ( );
458 int newtabstyle = m_tabstyle_list-> currentItem ( ); 487 int newtabstyle = m_tabstyle_list-> currentItem ( );
459 488
460 Config config ( "qpe" ); 489 Config config ( "qpe" );
461 config. setGroup ( "Appearance" ); 490 config. setGroup ( "Appearance" );
462 491
463 if ( m_style_changed ) { 492 if ( m_style_changed ) {
464 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 493 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
465 if ( item ) 494 if ( item )
466 config.writeEntry( "Style", item-> key ( )); 495 config.writeEntry( "Style", item-> key ( ));
467 } 496 }
468 497
469 if ( m_deco_changed ) { 498 if ( m_deco_changed ) {
470 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); 499 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( ));
471 if ( item ) 500 if ( item )
472 config.writeEntry( "Decoration", item-> key ( )); 501 config.writeEntry( "Decoration", item-> key ( ));
473 } 502 }
474 503
475 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) { 504 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) {
476 config. writeEntry ( "TabStyle", newtabstyle + 1 ); 505 config. writeEntry ( "TabStyle", newtabstyle + 1 );
477 config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); 506 config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" );
478 } 507 }
479 508
480 if ( m_font_changed ) { 509 if ( m_font_changed ) {
481 config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); 510 config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( ));
482 config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); 511 config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( ));
483 config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); 512 config. writeEntry ( "FontSize", m_fontselect-> fontSize ( ));
484 } 513 }
485 514
486 515
487 if ( m_color_changed ) 516 if ( m_color_changed )
488 { 517 {
489 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 518 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
490 519
491 if ( item ) 520 if ( item )
492 item-> save ( config ); 521 item-> save ( config );
493 } 522 }
494 523
524 config. writeEntry ( "rotatedir", is_rotdir_ccw );
495 525
496 m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated 526 m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated
497 527
498 QStringList sl; 528 QStringList sl;
499 QString exceptstr; 529 QString exceptstr;
500 for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) { 530 for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) {
501 int fl = 0; 531 int fl = 0;
502 fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); 532 fl |= ( it-> noStyle ( ) ? 0x01 : 0 );
503 fl |= ( it-> noFont ( ) ? 0x02 : 0 ); 533 fl |= ( it-> noFont ( ) ? 0x02 : 0 );
504 fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); 534 fl |= ( it-> noDeco ( ) ? 0x04 : 0 );
505 exceptstr = QString::number ( fl, 32 ); 535 exceptstr = QString::number ( fl, 32 );
506 exceptstr.append( it-> pattern ( )); 536 exceptstr.append( it-> pattern ( ));
507 sl << exceptstr; 537 sl << exceptstr;
508 } 538 }
509 config. writeEntry ( "NoStyle", sl, ';' ); 539 config. writeEntry ( "NoStyle", sl, ';' );
510 config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); 540 config. writeEntry ( "ForceStyle", m_force-> isChecked ( ));
511 541
512 config. write ( ); // need to flush the config info first 542 config. write ( ); // need to flush the config info first
513 Global::applyStyle ( ); 543 Global::applyStyle ( );
514 544
515 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 ) { 545 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 ) {
516 QCopEnvelope e( "QPE/System", "restart()" ); 546 QCopEnvelope e( "QPE/System", "restart()" );
517 } 547 }
518 548
519 QDialog::accept ( ); 549 QDialog::accept ( );
520} 550}
521 551
522void Appearance::done ( int r ) 552void Appearance::done ( int r )
523{ 553{
524 QDialog::done ( r ); 554 QDialog::done ( r );
525 close ( ); 555 close ( );
526} 556}
527 557
528 558
529void Appearance::styleClicked ( int index ) 559void Appearance::styleClicked ( int index )
530{ 560{
531 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); 561 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index );
532 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); 562 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false );
533 563
534 if ( m_sample && sli && sli-> style ( )) { 564 if ( m_sample && sli && sli-> style ( )) {
535 int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; 565 int ci = m_color_list ? m_color_list-> currentItem ( ) : -1;
536 566
537 m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); 567 m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( ));
538 } 568 }
539 569
540 m_style_changed |= ( index != m_original_style ); 570 m_style_changed |= ( index != m_original_style );
541} 571}
542 572
543void Appearance::styleSettingsClicked ( ) 573void Appearance::styleSettingsClicked ( )
544{ 574{
545 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 575 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
546 576
547 if ( item && item-> hasSettings ( )) { 577 if ( item && item-> hasSettings ( )) {
548 QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); 578 QDialog *d = new QDialog ( this, "SETTINGS-DLG", true );
549 QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 ); 579 QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 );
550 580
551 QWidget *w = item-> settings ( d ); 581 QWidget *w = item-> settings ( d );
552 582
553 if ( w ) { 583 if ( w ) {
554 vbox-> addWidget ( w ); 584 vbox-> addWidget ( w );
555 585
556 d-> setCaption ( w-> caption ( )); 586 d-> setCaption ( w-> caption ( ));
557 587
558 d-> showMaximized ( ); 588 d-> showMaximized ( );
559 bool accepted = ( d-> exec ( ) == QDialog::Accepted ); 589 bool accepted = ( d-> exec ( ) == QDialog::Accepted );
560 590
561 if ( item-> setSettings ( accepted )) 591 if ( item-> setSettings ( accepted ))
562 m_style_changed = true; 592 m_style_changed = true;
563 } 593 }
564 delete d; 594 delete d;
565 } 595 }
566} 596}
567 597
568void Appearance::decoClicked ( int index ) 598void Appearance::decoClicked ( int index )
569{ 599{
570 DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); 600 DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index );
571 601
572 if ( m_sample ) { 602 if ( m_sample ) {
573 if ( dli && dli-> interface ( )) 603 if ( dli && dli-> interface ( ))
574 m_sample-> setDecoration ( dli-> interface ( )); 604 m_sample-> setDecoration ( dli-> interface ( ));
575 else 605 else
576 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 606 m_sample-> setDecoration ( new DefaultWindowDecoration ( ));
577 m_sample-> repaint ( ); 607 m_sample-> repaint ( );
578 } 608 }
579 m_deco_changed |= ( index != m_original_deco ); 609 m_deco_changed |= ( index != m_original_deco );
580} 610}
581 611
582void Appearance::fontClicked ( const QFont &f ) 612void Appearance::fontClicked ( const QFont &f )
583{ 613{
584 m_font_changed |= ( f != m_sample-> font ( )); 614 m_font_changed |= ( f != m_sample-> font ( ));
585 m_sample-> setFont ( f ); 615 m_sample-> setFont ( f );
586} 616}
587 617
588void Appearance::colorClicked ( int index ) 618void Appearance::colorClicked ( int index )
589{ 619{
590 ColorListItem *item = (ColorListItem *) m_color_list-> item ( index ); 620 ColorListItem *item = (ColorListItem *) m_color_list-> item ( index );
591 621
592 if ( item ) 622 if ( item )
593 m_sample-> setPalette ( item-> palette ( )); 623 m_sample-> setPalette ( item-> palette ( ));
594 624
595 m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); 625 m_color_changed |= ( item-> palette ( ) != qApp-> palette ( ));
596} 626}
597 627
598 628
599void Appearance::editSchemeClicked ( ) 629void Appearance::editSchemeClicked ( )
600{ 630{
601 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 631 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
602 632
603 int cnt = 0; 633 int cnt = 0;
604 QString labels [QColorGroup::NColorRoles]; 634 QString labels [QColorGroup::NColorRoles];
605 QColor colors [QColorGroup::NColorRoles]; 635 QColor colors [QColorGroup::NColorRoles];
606 636
607 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { 637 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
608 QColor col = item-> color ( role ); 638 QColor col = item-> color ( role );
609 639
610 if ( col. isValid ( )) { 640 if ( col. isValid ( )) {
611 labels [cnt] = item-> label ( role ); 641 labels [cnt] = item-> label ( role );
612 colors [cnt] = col; 642 colors [cnt] = col;
613 643
614 cnt++; 644 cnt++;
615 } 645 }
616 } 646 }
617 647
618 EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); 648 EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true );
619 editdlg-> showMaximized ( ); 649 editdlg-> showMaximized ( );
620 if ( editdlg-> exec ( ) == QDialog::Accepted ) { 650 if ( editdlg-> exec ( ) == QDialog::Accepted ) {
621 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); 651 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 );
622 cnt = 0; 652 cnt = 0;
623 653
624 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { 654 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
625 if ( item-> color ( role ). isValid ( )) { 655 if ( item-> color ( role ). isValid ( )) {
626 citem-> setColor ( role, colors [cnt] ); 656 citem-> setColor ( role, colors [cnt] );
627 cnt++; 657 cnt++;
628 } 658 }
629 } 659 }
630 660
631 m_color_list-> setCurrentItem ( 0 ); 661 m_color_list-> setCurrentItem ( 0 );
632 colorClicked ( 0 ); 662 colorClicked ( 0 );
633 663
634 m_color_changed = true; 664 m_color_changed = true;
635 } 665 }
636 delete editdlg; 666 delete editdlg;
637} 667}
638 668
639 669
640void Appearance::saveSchemeClicked() 670void Appearance::saveSchemeClicked()
641{ 671{
642 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 672 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
643 673
644 if ( !item ) 674 if ( !item )
645 return; 675 return;
646 676
647 QDialog *d = new QDialog ( this, 0, true ); 677 QDialog *d = new QDialog ( this, 0, true );
648 d-> setCaption ( tr( "Save Scheme" )); 678 d-> setCaption ( tr( "Save Scheme" ));
649 QLineEdit *ed = new QLineEdit ( d ); 679 QLineEdit *ed = new QLineEdit ( d );
650 ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed ); 680 ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed );
651 ed-> setFocus ( ); 681 ed-> setFocus ( );
652 682
653 if ( d-> exec ( ) == QDialog::Accepted ) { 683 if ( d-> exec ( ) == QDialog::Accepted ) {
654 QString schemename = ed-> text ( ); 684 QString schemename = ed-> text ( );
655 QString filestr = QPEApplication::qpeDir(); 685 QString filestr = QPEApplication::qpeDir();
656 filestr.append( "/etc/colors/" ); 686 filestr.append( "/etc/colors/" );
657 filestr.append( schemename ); 687 filestr.append( schemename );
658 filestr.append( ".scheme" ); 688 filestr.append( ".scheme" );
659 QFile file ( filestr ); 689 QFile file ( filestr );
660 if ( !file. exists ( )) 690 if ( !file. exists ( ))
661 { 691 {
662 QPalette p = item-> palette ( ); 692 QPalette p = item-> palette ( );
663 693
664 Config config ( file.name(), Config::File ); 694 Config config ( file.name(), Config::File );
665 config. setGroup( "Colors" ); 695 config. setGroup( "Colors" );
666 696
667 item-> save ( config ); 697 item-> save ( config );
668 698
669 config. write ( ); // need to flush the config info first 699 config. write ( ); // need to flush the config info first
670 700
671 m_color_list-> insertItem ( new ColorListItem ( schemename, config )); 701 m_color_list-> insertItem ( new ColorListItem ( schemename, config ));
672 } 702 }
673 else 703 else
674 { 704 {
675 QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." )); 705 QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." ));
676 } 706 }
677 } 707 }
678 delete d; 708 delete d;
679} 709}
680 710
681void Appearance::deleteSchemeClicked() 711void Appearance::deleteSchemeClicked()
682{ 712{
683 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 713 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
684 714
685 if ( !item ) 715 if ( !item )
686 return; 716 return;
687 717
688 if ( m_color_list-> currentItem ( ) > 0 ) 718 if ( m_color_list-> currentItem ( ) > 0 )
689 { 719 {
690 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) ) 720 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) )
691 { 721 {
692 QString filestr = QPEApplication::qpeDir ( ); 722 QString filestr = QPEApplication::qpeDir ( );
693 filestr.append( "/etc/colors/" ); 723 filestr.append( "/etc/colors/" );
694 filestr.append( item-> text ( ) ); 724 filestr.append( item-> text ( ) );
695 filestr.append( ".scheme" ); 725 filestr.append( ".scheme" );
696 QFile::remove ( filestr ); 726 QFile::remove ( filestr );
697 delete item; 727 delete item;
698 } 728 }
699 } 729 }
700 else 730 else
701 { 731 {
702 QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." )); 732 QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." ));
703 } 733 }
704} 734}
705 735
706 736
707void Appearance::addExcept ( ) 737void Appearance::addExcept ( )
708{ 738{
709 ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true ); 739 ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true );
710 m_except-> ensureItemVisible ( it ); 740 m_except-> ensureItemVisible ( it );
711 m_except-> setSelected ( it, true ); 741 m_except-> setSelected ( it, true );
712} 742}
713 743
714void Appearance::delExcept ( ) 744void Appearance::delExcept ( )
715{ 745{
716 if ( m_except-> selectedItem ( )) { 746 if ( m_except-> selectedItem ( )) {
717 m_except-> setFocus ( ); 747 m_except-> setFocus ( );
718 delete m_except-> selectedItem ( ); 748 delete m_except-> selectedItem ( );
719 } 749 }
720} 750}
721 751
722void Appearance::upExcept ( ) 752void Appearance::upExcept ( )
723{ 753{
724 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); 754 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( );
725 755
726 if ( it && it-> itemAbove ( )) 756 if ( it && it-> itemAbove ( ))
727 it-> itemAbove ( )-> moveItem ( it ); 757 it-> itemAbove ( )-> moveItem ( it );
728} 758}
729 759
730void Appearance::downExcept ( ) 760void Appearance::downExcept ( )
731{ 761{
732 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); 762 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( );
733 763
734 if ( it && it-> itemBelow ( )) 764 if ( it && it-> itemBelow ( ))
735 it-> moveItem ( it-> itemBelow ( )); 765 it-> moveItem ( it-> itemBelow ( ));
736} 766}
737 767
738class ExEdit : public QLineEdit { 768class ExEdit : public QLineEdit {
739public: 769public:
740 ExEdit ( ExceptListItem *item ) 770 ExEdit ( ExceptListItem *item )
741 : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) 771 : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item )
742 { 772 {
743 setFrame ( false ); 773 setFrame ( false );
744 774
745 QRect r = it-> listView ( )-> itemRect ( it ); 775 QRect r = it-> listView ( )-> itemRect ( it );
746 776
747 int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; 777 int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1;
748 int y = r. y ( ); 778 int y = r. y ( );
749 int w = it-> listView ( )-> viewport ( )-> width ( ) - x; 779 int w = it-> listView ( )-> viewport ( )-> width ( ) - x;
750 int h = r. height ( ); // + 2; 780 int h = r. height ( ); // + 2;
751 781
752 setText ( it-> pattern ( )); 782 setText ( it-> pattern ( ));
753 setGeometry ( x, y, w, h ); 783 setGeometry ( x, y, w, h );
754 784
755 qDebug ( "ExEdit: [%s] at %d,%d %d,%d", it->text(2).latin1(),x,y,w,h); 785 qDebug ( "ExEdit: [%s] at %d,%d %d,%d", it->text(2).latin1(),x,y,w,h);
756 786
757 m_out = true; 787 m_out = true;
758 788
759 show ( ); 789 show ( );
760 setFocus ( ); 790 setFocus ( );
761 selectAll ( ); 791 selectAll ( );
762 end ( true ); 792 end ( true );
763 } 793 }
764 794
765 virtual void focusOutEvent ( QFocusEvent * ) 795 virtual void focusOutEvent ( QFocusEvent * )
766 { 796 {
767 hide ( ); 797 hide ( );
768 if ( m_out ) 798 if ( m_out )
769 it-> setPattern ( text ( )); 799 it-> setPattern ( text ( ));
770 delete this; 800 delete this;
771 } 801 }
772 802
773 virtual void keyPressEvent ( QKeyEvent *e ) 803 virtual void keyPressEvent ( QKeyEvent *e )
774 { 804 {
775 if ( e-> key ( ) == Key_Return ) 805 if ( e-> key ( ) == Key_Return )
776 it-> listView ( )-> setFocus ( ); 806 it-> listView ( )-> setFocus ( );
777 else if ( e-> key ( ) == Key_Escape ) { 807 else if ( e-> key ( ) == Key_Escape ) {
778 m_out = false; 808 m_out = false;
779 it-> listView ( )-> setFocus ( ); 809 it-> listView ( )-> setFocus ( );
780 } 810 }
781 else 811 else
782 QLineEdit::keyPressEvent ( e ); 812 QLineEdit::keyPressEvent ( e );
783 } 813 }
784 814
785private: 815private:
786 ExceptListItem *it; 816 ExceptListItem *it;
787 bool m_out; 817 bool m_out;
788}; 818};
789 819
790void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c ) 820void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c )
791{ 821{
792 if ( !item || c < 0 || c > 3 ) 822 if ( !item || c < 0 || c > 3 )
793 return; 823 return;
794 824
795 ExceptListItem *it = (ExceptListItem *) item; 825 ExceptListItem *it = (ExceptListItem *) item;
796 826
797 if ( c == 0 ) 827 if ( c == 0 )
798 it-> setNoStyle ( !it-> noStyle ( )); 828 it-> setNoStyle ( !it-> noStyle ( ));
799 else if ( c == 1 ) 829 else if ( c == 1 )
800 it-> setNoFont ( !it-> noFont ( )); 830 it-> setNoFont ( !it-> noFont ( ));
801 else if ( c == 2 ) 831 else if ( c == 2 )
802 it-> setNoDeco ( !it-> noDeco ( )); 832 it-> setNoDeco ( !it-> noDeco ( ));
803 else if ( c == 3 ) { 833 else if ( c == 3 ) {
804 m_except-> ensureItemVisible ( it ); 834 m_except-> ensureItemVisible ( it );
805 new ExEdit ( it ); 835 new ExEdit ( it );
806 } 836 }
807} 837}
808 838
diff --git a/noncore/settings/appearance2/appearance.h b/noncore/settings/appearance2/appearance.h
index 065dfb7..0e42298 100644
--- a/noncore/settings/appearance2/appearance.h
+++ b/noncore/settings/appearance2/appearance.h
@@ -1,123 +1,126 @@
1/* 1/*
2                This file is part of the OPIE Project 2                This file is part of the OPIE Project
3 =. Copyright (c) 2002 Dan Williams <williamsdr@acm.org> 3 =. Copyright (c) 2002 Dan Williams <williamsdr@acm.org>
4             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> 4             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
5           .>+-= 5           .>+-=
6 _;:,     .>    :=|. This file is free software; you can 6 _;:,     .>    :=|. This file is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public 8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10 - .   .-<_>     .<> Foundation; either version 2 of the License, 10 - .   .-<_>     .<> Foundation; either version 2 of the License,
11     ._= =}       : or (at your option) any later version. 11     ._= =}       : or (at your option) any later version.
12    .%`+i>       _;_. 12    .%`+i>       _;_.
13    .i_,=:_.      -<s. This file is distributed in the hope that 13    .i_,=:_.      -<s. This file is distributed in the hope that
14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15    : ..    .:,     . . . without even the implied warranty of 15    : ..    .:,     . . . without even the implied warranty of
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
23    --        :-=` Free Software Foundation, Inc., 23    --        :-=` Free Software Foundation, Inc.,
24 59 Temple Place - Suite 330, 24 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#ifndef APPEARANCESETTINGS_H 29#ifndef APPEARANCESETTINGS_H
30#define APPEARANCESETTINGS_H 30#define APPEARANCESETTINGS_H
31 31
32#include <qpe/fontdatabase.h> 32#include <qpe/fontdatabase.h>
33 33
34#include <qdialog.h> 34#include <qdialog.h>
35 35
36class QCheckBox; 36class QCheckBox;
37class QComboBox; 37class QComboBox;
38class QLabel; 38class QLabel;
39class QLineEdit; 39class QLineEdit;
40class QListBox; 40class QListBox;
41class QMultiLineEdit; 41class QMultiLineEdit;
42class QPushButton; 42class QPushButton;
43class QRadioButton; 43class QRadioButton;
44class QToolButton; 44class QToolButton;
45class SampleWindow; 45class SampleWindow;
46class OFontSelector; 46class OFontSelector;
47class QListView; 47class QListView;
48class QListViewItem; 48class QListViewItem;
49class Config; 49class Config;
50 50
51class Appearance : public QDialog 51class Appearance : public QDialog
52{ 52{
53 Q_OBJECT 53 Q_OBJECT
54 54
55public: 55public:
56 Appearance( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 56 Appearance( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
57 ~Appearance(); 57 ~Appearance();
58 58
59protected: 59protected:
60 virtual void accept ( ); 60 virtual void accept ( );
61 virtual void done ( int r ); 61 virtual void done ( int r );
62 62
63protected slots: 63protected slots:
64 void styleClicked ( int ); 64 void styleClicked ( int );
65 void styleSettingsClicked ( ); 65 void styleSettingsClicked ( );
66 void decoClicked ( int ); 66 void decoClicked ( int );
67 void fontClicked ( const QFont & ); 67 void fontClicked ( const QFont & );
68 void colorClicked ( int ); 68 void colorClicked ( int );
69 69
70 void editSchemeClicked(); 70 void editSchemeClicked();
71 void saveSchemeClicked(); 71 void saveSchemeClicked();
72 void deleteSchemeClicked(); 72 void deleteSchemeClicked();
73 73
74 void tabChanged ( QWidget * ); 74 void tabChanged ( QWidget * );
75 75
76 void addExcept ( ); 76 void addExcept ( );
77 void delExcept ( ); 77 void delExcept ( );
78 void upExcept ( ); 78 void upExcept ( );
79 void downExcept ( ); 79 void downExcept ( );
80 void clickedExcept ( QListViewItem *, const QPoint &, int ); 80 void clickedExcept ( QListViewItem *, const QPoint &, int );
81 81
82private: 82private:
83 void changeText(); 83 void changeText();
84 84
85 QWidget *createStyleTab ( QWidget *parent, Config &cfg ); 85 QWidget *createStyleTab ( QWidget *parent, Config &cfg );
86 QWidget *createDecoTab ( QWidget *parent, Config &cfg ); 86 QWidget *createDecoTab ( QWidget *parent, Config &cfg );
87 QWidget *createFontTab ( QWidget *parent, Config &cfg ); 87 QWidget *createFontTab ( QWidget *parent, Config &cfg );
88 QWidget *createColorTab ( QWidget *parent, Config &cfg ); 88 QWidget *createColorTab ( QWidget *parent, Config &cfg );
89 QWidget *createAdvancedTab ( QWidget *parent, Config &cfg ); 89 QWidget *createAdvancedTab ( QWidget *parent, Config &cfg );
90 90
91private: 91private:
92 bool m_style_changed; 92 bool m_style_changed;
93 bool m_font_changed; 93 bool m_font_changed;
94 bool m_scheme_changed; 94 bool m_scheme_changed;
95 bool m_deco_changed; 95 bool m_deco_changed;
96 bool m_color_changed; 96 bool m_color_changed;
97 97
98 int m_original_style; 98 int m_original_style;
99 int m_original_deco; 99 int m_original_deco;
100 int m_original_tabstyle; 100 int m_original_tabstyle;
101 bool m_original_tabpos; 101 bool m_original_tabpos;
102 102
103 QListBox * m_style_list; 103 QListBox * m_style_list;
104 QPushButton * m_style_settings; 104 QPushButton * m_style_settings;
105 105
106 QListBox * m_deco_list; 106 QListBox * m_deco_list;
107 107
108 QListBox * m_color_list; 108 QListBox * m_color_list;
109 109
110 OFontSelector *m_fontselect; 110 OFontSelector *m_fontselect;
111 111
112 SampleWindow *m_sample; 112 SampleWindow *m_sample;
113 113
114 QComboBox * m_tabstyle_list; 114 QComboBox * m_tabstyle_list;
115 QRadioButton *m_tabstyle_top; 115 QRadioButton *m_tabstyle_top;
116 QRadioButton *m_tabstyle_bottom; 116 QRadioButton *m_tabstyle_bottom;
117 117
118 QRadioButton *m_rotdir_cw;
119 QRadioButton *m_rotdir_ccw;
120
118 QWidget * m_advtab; 121 QWidget * m_advtab;
119 QListView * m_except; 122 QListView * m_except;
120 QCheckBox * m_force; 123 QCheckBox * m_force;
121}; 124};
122 125
123#endif 126#endif