summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp4
-rw-r--r--noncore/settings/appearance2/appearance.h3
-rw-r--r--noncore/settings/appearance2/appearance2.pro8
-rw-r--r--noncore/settings/appearance2/main.cpp14
-rw-r--r--noncore/settings/backup/backup.pro7
-rw-r--r--noncore/settings/backup/backuprestore.cpp68
-rw-r--r--noncore/settings/backup/backuprestore.h13
-rw-r--r--noncore/settings/backup/main.cpp10
-rw-r--r--noncore/settings/language/language.pro4
-rw-r--r--noncore/settings/language/main.cpp13
-rw-r--r--noncore/settings/language/settings.h2
-rw-r--r--noncore/settings/mediummount/main.cpp11
-rw-r--r--noncore/settings/mediummount/mainwindow.h1
-rw-r--r--noncore/settings/mediummount/mediummount.pro2
-rw-r--r--noncore/settings/mediummount/mediumwidget.h1
-rw-r--r--noncore/settings/netsystemtime/main.cpp10
-rw-r--r--noncore/settings/netsystemtime/mainwindow.cpp25
-rw-r--r--noncore/settings/netsystemtime/mainwindow.h3
-rw-r--r--noncore/settings/netsystemtime/netsystemtime.pro7
-rw-r--r--noncore/settings/sound/main.cpp10
-rw-r--r--noncore/settings/sound/sound.pro4
-rw-r--r--noncore/settings/sound/soundsettings.h1
-rw-r--r--noncore/settings/sshkeys/opie-sshkeys.control2
-rw-r--r--noncore/settings/usermanager/main.cpp9
-rw-r--r--noncore/settings/usermanager/usermanager.h1
-rw-r--r--noncore/settings/usermanager/usermanager.pro4
26 files changed, 91 insertions, 146 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp
index 00128d3..9e5eede 100644
--- a/noncore/settings/appearance2/appearance.cpp
+++ b/noncore/settings/appearance2/appearance.cpp
@@ -1,860 +1,856 @@
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 }
87QPixmap icon() const { 87QPixmap 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", "libflat.so" ); 178 QString s = cfg. readEntry ( "Decoration", "libflat.so" );
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 ); 403 vertLayout-> addSpacing ( 3 );
404 QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); 404 QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 );
405 405
406 QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); 406 QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab );
407 m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); 407 m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" );
408 QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( ); 408 QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( );
409 m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" ); 409 m_rotdir_ccw = new QRadioButton( tab, "rotdir_ccw" );
410 QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 ); 410 QImage ccwImage = cw1. convertToImage( ). mirror( 1, 0 );
411 QPixmap ccw1; 411 QPixmap ccw1;
412 m_rotdir_flip = new QRadioButton( tab, "rotdir_flip" ); 412 m_rotdir_flip = new QRadioButton( tab, "rotdir_flip" );
413 QPixmap flip1 = Resource::loadIconSet("pass"). pixmap( ); 413 QPixmap flip1 = Resource::loadIconSet("pass"). pixmap( );
414 QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" ); 414 QButtonGroup* rotbtngrp = new QButtonGroup( tab, "rotbuttongroup" );
415 415
416 rotbtngrp-> hide ( ); 416 rotbtngrp-> hide ( );
417 rotbtngrp-> setExclusive ( true ); 417 rotbtngrp-> setExclusive ( true );
418 rotbtngrp-> insert ( m_rotdir_cw ); 418 rotbtngrp-> insert ( m_rotdir_cw );
419 rotbtngrp-> insert ( m_rotdir_ccw ); 419 rotbtngrp-> insert ( m_rotdir_ccw );
420 rotbtngrp-> insert ( m_rotdir_flip ); 420 rotbtngrp-> insert ( m_rotdir_flip );
421 421
422 ccw1. convertFromImage( ccwImage ); 422 ccw1. convertFromImage( ccwImage );
423 m_rotdir_cw-> setPixmap( cw1 ); 423 m_rotdir_cw-> setPixmap( cw1 );
424 m_rotdir_ccw-> setPixmap( ccw1 ); 424 m_rotdir_ccw-> setPixmap( ccw1 );
425 m_rotdir_flip-> setPixmap( flip1 ); 425 m_rotdir_flip-> setPixmap( flip1 );
426 426
427 rotLay-> addWidget ( rotlabel, 0 ); 427 rotLay-> addWidget ( rotlabel, 0 );
428 rotLay-> addWidget ( m_rotdir_cw, 0 ); 428 rotLay-> addWidget ( m_rotdir_cw, 0 );
429 rotLay-> addWidget ( m_rotdir_ccw, 0 ); 429 rotLay-> addWidget ( m_rotdir_ccw, 0 );
430 rotLay-> addWidget ( m_rotdir_flip, 0 ); 430 rotLay-> addWidget ( m_rotdir_flip, 0 );
431 431
432 int rotDirection = cfg.readNumEntry( "rotatedir" ); 432 int rotDirection = cfg.readNumEntry( "rotatedir" );
433 ODirection rot = CW; 433 ODirection rot = CW;
434 434
435 if (rotDirection == -1) { 435 if (rotDirection == -1) {
436 rot = ODevice::inst ( )-> direction ( ); 436 rot = ODevice::inst ( )-> direction ( );
437 } else { 437 } else {
438 rot = (ODirection)rotDirection; 438 rot = (ODirection)rotDirection;
439 } 439 }
440 440
441 m_rotdir_cw-> setChecked ( rot == CW ); 441 m_rotdir_cw-> setChecked ( rot == CW );
442 m_rotdir_ccw-> setChecked ( rot == CCW ); 442 m_rotdir_ccw-> setChecked ( rot == CCW );
443 m_rotdir_flip-> setChecked ( rot == Flip ); 443 m_rotdir_flip-> setChecked ( rot == Flip );
444 444
445 return tab; 445 return tab;
446} 446}
447 447
448 448
449Appearance::Appearance( QWidget* parent, const char* name, WFlags ) 449Appearance::Appearance( QWidget* parent, const char* name, WFlags )
450 : QDialog ( parent, name, true, WStyle_ContextHelp ) 450 : QDialog ( parent, name, true, WStyle_ContextHelp )
451{ 451{
452 setCaption( tr( "Appearance Settings" ) ); 452 setCaption( tr( "Appearance Settings" ) );
453 453
454 Config config( "qpe" ); 454 Config config( "qpe" );
455 config.setGroup( "Appearance" ); 455 config.setGroup( "Appearance" );
456 456
457 QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); 457 QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 );
458 458
459 m_sample = new SampleWindow ( this ); 459 m_sample = new SampleWindow ( this );
460 460
461 m_sample-> setDecoration ( new DefaultWindowDecoration ( ) ); 461 m_sample-> setDecoration ( new DefaultWindowDecoration ( ) );
462 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); 462 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) );
463 463
464 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); 464 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom );
465 QWidget *styletab; 465 QWidget *styletab;
466 466
467 m_color_list = 0; 467 m_color_list = 0;
468 468
469 tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" )); 469 tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance", tr( "Style" ));
470 tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" )); 470 tw-> addTab ( createFontTab ( tw, config ), "font", tr( "Font" ));
471 tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); 471 tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) );
472 tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); 472 tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) );
473 tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); 473 tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) );
474 474
475 top-> addWidget ( tw, 10 ); 475 top-> addWidget ( tw, 10 );
476 top-> addWidget ( m_sample, 1 ); 476 top-> addWidget ( m_sample, 1 );
477 477
478 tw-> setCurrentTab ( styletab ); 478 tw-> setCurrentTab ( styletab );
479 connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * ))); 479 connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * )));
480 480
481 m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; 481 m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false;
482} 482}
483 483
484Appearance::~Appearance() 484Appearance::~Appearance()
485{ 485{
486} 486}
487 487
488void Appearance::tabChanged ( QWidget *w ) 488void Appearance::tabChanged ( QWidget *w )
489{ 489{
490 if ( w == m_advtab ) { 490 if ( w == m_advtab ) {
491 m_sample-> hide ( ); 491 m_sample-> hide ( );
492 updateGeometry ( ); // shouldn't be necessary ... 492 updateGeometry ( ); // shouldn't be necessary ...
493 } 493 }
494 else 494 else
495 m_sample-> show ( ); 495 m_sample-> show ( );
496} 496}
497 497
498void Appearance::accept ( ) 498void Appearance::accept ( )
499{ 499{
500 bool newtabpos = m_tabstyle_top-> isChecked ( ); 500 bool newtabpos = m_tabstyle_top-> isChecked ( );
501 int newtabstyle = m_tabstyle_list-> currentItem ( ); 501 int newtabstyle = m_tabstyle_list-> currentItem ( );
502 502
503 Config config ( "qpe" ); 503 Config config ( "qpe" );
504 config. setGroup ( "Appearance" ); 504 config. setGroup ( "Appearance" );
505 505
506 if ( m_style_changed ) { 506 if ( m_style_changed ) {
507 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 507 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
508 if ( item ) 508 if ( item )
509 config.writeEntry( "Style", item-> key ( )); 509 config.writeEntry( "Style", item-> key ( ));
510 } 510 }
511 511
512 if ( m_deco_changed ) { 512 if ( m_deco_changed ) {
513 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); 513 DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( ));
514 if ( item ) 514 if ( item )
515 config.writeEntry( "Decoration", item-> key ( )); 515 config.writeEntry( "Decoration", item-> key ( ));
516 } 516 }
517 517
518 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) { 518 if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) {
519 config. writeEntry ( "TabStyle", newtabstyle + 1 ); 519 config. writeEntry ( "TabStyle", newtabstyle + 1 );
520 config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); 520 config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" );
521 } 521 }
522 522
523 if ( m_font_changed ) { 523 if ( m_font_changed ) {
524 config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); 524 config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( ));
525 config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); 525 config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( ));
526 config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); 526 config. writeEntry ( "FontSize", m_fontselect-> fontSize ( ));
527 } 527 }
528 528
529 529
530 if ( m_color_changed ) 530 if ( m_color_changed )
531 { 531 {
532 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 532 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
533 533
534 if ( item ) 534 if ( item )
535 item-> save ( config ); 535 item-> save ( config );
536 } 536 }
537 537
538 ODirection rot; 538 ODirection rot;
539 if (m_rotdir_ccw-> isChecked ( )) { 539 if (m_rotdir_ccw-> isChecked ( )) {
540 rot = CCW; 540 rot = CCW;
541 } else if (m_rotdir_cw-> isChecked ( )) { 541 } else if (m_rotdir_cw-> isChecked ( )) {
542 rot = CW; 542 rot = CW;
543 } else { 543 } else {
544 rot = Flip; 544 rot = Flip;
545 } 545 }
546 config. writeEntry ( "rotatedir", (int)rot ); 546 config. writeEntry ( "rotatedir", (int)rot );
547 547
548 m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated 548 m_except-> setFocus ( ); // if the focus was on the embedded line-edit, we have to move it away first, so the contents are updated
549 549
550 QStringList sl; 550 QStringList sl;
551 QString exceptstr; 551 QString exceptstr;
552 for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) { 552 for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) {
553 int fl = 0; 553 int fl = 0;
554 fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); 554 fl |= ( it-> noStyle ( ) ? 0x01 : 0 );
555 fl |= ( it-> noFont ( ) ? 0x02 : 0 ); 555 fl |= ( it-> noFont ( ) ? 0x02 : 0 );
556 fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); 556 fl |= ( it-> noDeco ( ) ? 0x04 : 0 );
557 exceptstr = QString::number ( fl, 32 ); 557 exceptstr = QString::number ( fl, 32 );
558 exceptstr.append( it-> pattern ( )); 558 exceptstr.append( it-> pattern ( ));
559 sl << exceptstr; 559 sl << exceptstr;
560 } 560 }
561 config. writeEntry ( "NoStyle", sl, ';' ); 561 config. writeEntry ( "NoStyle", sl, ';' );
562 config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); 562 config. writeEntry ( "ForceStyle", m_force-> isChecked ( ));
563 563
564 config. write ( ); // need to flush the config info first 564 config. write ( ); // need to flush the config info first
565 Global::applyStyle ( ); 565 Global::applyStyle ( );
566 566
567 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 ) {
568 QCopEnvelope e( "QPE/System", "restart()" );
569 }
570
571 QDialog::accept ( ); 567 QDialog::accept ( );
572} 568}
573 569
574void Appearance::done ( int r ) 570void Appearance::done ( int r )
575{ 571{
576 QDialog::done ( r ); 572 QDialog::done ( r );
577 close ( ); 573 close ( );
578} 574}
579 575
580 576
581void Appearance::styleClicked ( int index ) 577void Appearance::styleClicked ( int index )
582{ 578{
583 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); 579 StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index );
584 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); 580 m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false );
585 581
586 if ( m_sample && sli && sli-> style ( )) { 582 if ( m_sample && sli && sli-> style ( )) {
587 int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; 583 int ci = m_color_list ? m_color_list-> currentItem ( ) : -1;
588 584
589 m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); 585 m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( ));
590 } 586 }
591 587
592 m_style_changed |= ( index != m_original_style ); 588 m_style_changed |= ( index != m_original_style );
593} 589}
594 590
595void Appearance::styleSettingsClicked ( ) 591void Appearance::styleSettingsClicked ( )
596{ 592{
597 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); 593 StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( ));
598 594
599 if ( item && item-> hasSettings ( )) { 595 if ( item && item-> hasSettings ( )) {
600 QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); 596 QDialog *d = new QDialog ( this, "SETTINGS-DLG", true );
601 QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 ); 597 QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 );
602 598
603 QWidget *w = item-> settings ( d ); 599 QWidget *w = item-> settings ( d );
604 600
605 if ( w ) { 601 if ( w ) {
606 vbox-> addWidget ( w ); 602 vbox-> addWidget ( w );
607 603
608 d-> setCaption ( w-> caption ( )); 604 d-> setCaption ( w-> caption ( ));
609 605
610 d-> showMaximized ( ); 606 d-> showMaximized ( );
611 bool accepted = ( d-> exec ( ) == QDialog::Accepted ); 607 bool accepted = ( d-> exec ( ) == QDialog::Accepted );
612 608
613 if ( item-> setSettings ( accepted )) 609 if ( item-> setSettings ( accepted ))
614 m_style_changed = true; 610 m_style_changed = true;
615 } 611 }
616 delete d; 612 delete d;
617 } 613 }
618} 614}
619 615
620void Appearance::decoClicked ( int index ) 616void Appearance::decoClicked ( int index )
621{ 617{
622 DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); 618 DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index );
623 619
624 if ( m_sample ) { 620 if ( m_sample ) {
625 if ( dli && dli-> interface ( )) 621 if ( dli && dli-> interface ( ))
626 m_sample-> setDecoration ( dli-> interface ( )); 622 m_sample-> setDecoration ( dli-> interface ( ));
627 else 623 else
628 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 624 m_sample-> setDecoration ( new DefaultWindowDecoration ( ));
629 m_sample-> repaint ( ); 625 m_sample-> repaint ( );
630 } 626 }
631 m_deco_changed |= ( index != m_original_deco ); 627 m_deco_changed |= ( index != m_original_deco );
632} 628}
633 629
634void Appearance::fontClicked ( const QFont &f ) 630void Appearance::fontClicked ( const QFont &f )
635{ 631{
636 m_font_changed |= ( f != m_sample-> font ( )); 632 m_font_changed |= ( f != m_sample-> font ( ));
637 m_sample-> setFont ( f ); 633 m_sample-> setFont ( f );
638} 634}
639 635
640void Appearance::colorClicked ( int index ) 636void Appearance::colorClicked ( int index )
641{ 637{
642 ColorListItem *item = (ColorListItem *) m_color_list-> item ( index ); 638 ColorListItem *item = (ColorListItem *) m_color_list-> item ( index );
643 639
644 if ( item ) 640 if ( item )
645 m_sample-> setPalette ( item-> palette ( )); 641 m_sample-> setPalette ( item-> palette ( ));
646 642
647 m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); 643 m_color_changed |= ( item-> palette ( ) != qApp-> palette ( ));
648} 644}
649 645
650 646
651void Appearance::editSchemeClicked ( ) 647void Appearance::editSchemeClicked ( )
652{ 648{
653 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 649 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
654 650
655 int cnt = 0; 651 int cnt = 0;
656 QString labels [QColorGroup::NColorRoles]; 652 QString labels [QColorGroup::NColorRoles];
657 QColor colors [QColorGroup::NColorRoles]; 653 QColor colors [QColorGroup::NColorRoles];
658 654
659 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { 655 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
660 QColor col = item-> color ( role ); 656 QColor col = item-> color ( role );
661 657
662 if ( col. isValid ( )) { 658 if ( col. isValid ( )) {
663 labels [cnt] = item-> label ( role ); 659 labels [cnt] = item-> label ( role );
664 colors [cnt] = col; 660 colors [cnt] = col;
665 661
666 cnt++; 662 cnt++;
667 } 663 }
668 } 664 }
669 665
670 EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); 666 EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true );
671 editdlg-> showMaximized ( ); 667 editdlg-> showMaximized ( );
672 if ( editdlg-> exec ( ) == QDialog::Accepted ) { 668 if ( editdlg-> exec ( ) == QDialog::Accepted ) {
673 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); 669 ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 );
674 cnt = 0; 670 cnt = 0;
675 671
676 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { 672 for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) {
677 if ( item-> color ( role ). isValid ( )) { 673 if ( item-> color ( role ). isValid ( )) {
678 citem-> setColor ( role, colors [cnt] ); 674 citem-> setColor ( role, colors [cnt] );
679 cnt++; 675 cnt++;
680 } 676 }
681 } 677 }
682 678
683 m_color_list-> setCurrentItem ( 0 ); 679 m_color_list-> setCurrentItem ( 0 );
684 colorClicked ( 0 ); 680 colorClicked ( 0 );
685 681
686 m_color_changed = true; 682 m_color_changed = true;
687 } 683 }
688 delete editdlg; 684 delete editdlg;
689} 685}
690 686
691 687
692void Appearance::saveSchemeClicked() 688void Appearance::saveSchemeClicked()
693{ 689{
694 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 690 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
695 691
696 if ( !item ) 692 if ( !item )
697 return; 693 return;
698 694
699 QDialog *d = new QDialog ( this, 0, true ); 695 QDialog *d = new QDialog ( this, 0, true );
700 d-> setCaption ( tr( "Save Scheme" )); 696 d-> setCaption ( tr( "Save Scheme" ));
701 QLineEdit *ed = new QLineEdit ( d ); 697 QLineEdit *ed = new QLineEdit ( d );
702 ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed ); 698 ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed );
703 ed-> setFocus ( ); 699 ed-> setFocus ( );
704 700
705 if ( d-> exec ( ) == QDialog::Accepted ) { 701 if ( d-> exec ( ) == QDialog::Accepted ) {
706 QString schemename = ed-> text ( ); 702 QString schemename = ed-> text ( );
707 QString filestr = QPEApplication::qpeDir(); 703 QString filestr = QPEApplication::qpeDir();
708 filestr.append( "/etc/colors/" ); 704 filestr.append( "/etc/colors/" );
709 filestr.append( schemename ); 705 filestr.append( schemename );
710 filestr.append( ".scheme" ); 706 filestr.append( ".scheme" );
711 QFile file ( filestr ); 707 QFile file ( filestr );
712 if ( !file. exists ( )) 708 if ( !file. exists ( ))
713 { 709 {
714 QPalette p = item-> palette ( ); 710 QPalette p = item-> palette ( );
715 711
716 Config config ( file.name(), Config::File ); 712 Config config ( file.name(), Config::File );
717 config. setGroup( "Colors" ); 713 config. setGroup( "Colors" );
718 714
719 item-> save ( config ); 715 item-> save ( config );
720 716
721 config. write ( ); // need to flush the config info first 717 config. write ( ); // need to flush the config info first
722 718
723 m_color_list-> insertItem ( new ColorListItem ( schemename, config )); 719 m_color_list-> insertItem ( new ColorListItem ( schemename, config ));
724 } 720 }
725 else 721 else
726 { 722 {
727 QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." )); 723 QMessageBox::information ( this, tr( "Save scheme" ), tr( "Scheme does already exist." ));
728 } 724 }
729 } 725 }
730 delete d; 726 delete d;
731} 727}
732 728
733void Appearance::deleteSchemeClicked() 729void Appearance::deleteSchemeClicked()
734{ 730{
735 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); 731 ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( ));
736 732
737 if ( !item ) 733 if ( !item )
738 return; 734 return;
739 735
740 if ( m_color_list-> currentItem ( ) > 0 ) 736 if ( m_color_list-> currentItem ( ) > 0 )
741 { 737 {
742 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) ) 738 if ( QPEMessageBox::confirmDelete ( this, tr( "Delete scheme" ), item-> text ( ) ) )
743 { 739 {
744 QString filestr = QPEApplication::qpeDir ( ); 740 QString filestr = QPEApplication::qpeDir ( );
745 filestr.append( "/etc/colors/" ); 741 filestr.append( "/etc/colors/" );
746 filestr.append( item-> text ( ) ); 742 filestr.append( item-> text ( ) );
747 filestr.append( ".scheme" ); 743 filestr.append( ".scheme" );
748 QFile::remove ( filestr ); 744 QFile::remove ( filestr );
749 delete item; 745 delete item;
750 } 746 }
751 } 747 }
752 else 748 else
753 { 749 {
754 QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." )); 750 QMessageBox::information( this, tr( "Delete scheme" ), tr( "Unable to delete current scheme." ));
755 } 751 }
756} 752}
757 753
758 754
759void Appearance::addExcept ( ) 755void Appearance::addExcept ( )
760{ 756{
761 ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true ); 757 ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true );
762 m_except-> ensureItemVisible ( it ); 758 m_except-> ensureItemVisible ( it );
763 m_except-> setSelected ( it, true ); 759 m_except-> setSelected ( it, true );
764} 760}
765 761
766void Appearance::delExcept ( ) 762void Appearance::delExcept ( )
767{ 763{
768 if ( m_except-> selectedItem ( )) { 764 if ( m_except-> selectedItem ( )) {
769 m_except-> setFocus ( ); 765 m_except-> setFocus ( );
770 delete m_except-> selectedItem ( ); 766 delete m_except-> selectedItem ( );
771 } 767 }
772} 768}
773 769
774void Appearance::upExcept ( ) 770void Appearance::upExcept ( )
775{ 771{
776 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); 772 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( );
777 773
778 if ( it && it-> itemAbove ( )) 774 if ( it && it-> itemAbove ( ))
779 it-> itemAbove ( )-> moveItem ( it ); 775 it-> itemAbove ( )-> moveItem ( it );
780} 776}
781 777
782void Appearance::downExcept ( ) 778void Appearance::downExcept ( )
783{ 779{
784 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); 780 ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( );
785 781
786 if ( it && it-> itemBelow ( )) 782 if ( it && it-> itemBelow ( ))
787 it-> moveItem ( it-> itemBelow ( )); 783 it-> moveItem ( it-> itemBelow ( ));
788} 784}
789 785
790class ExEdit : public QLineEdit { 786class ExEdit : public QLineEdit {
791public: 787public:
792 ExEdit ( ExceptListItem *item ) 788 ExEdit ( ExceptListItem *item )
793 : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) 789 : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item )
794 { 790 {
795 setFrame ( false ); 791 setFrame ( false );
796 792
797 QRect r = it-> listView ( )-> itemRect ( it ); 793 QRect r = it-> listView ( )-> itemRect ( it );
798 794
799 int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; 795 int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1;
800 int y = r. y ( ); 796 int y = r. y ( );
801 int w = it-> listView ( )-> viewport ( )-> width ( ) - x; 797 int w = it-> listView ( )-> viewport ( )-> width ( ) - x;
802 int h = r. height ( ); // + 2; 798 int h = r. height ( ); // + 2;
803 799
804 setText ( it-> pattern ( )); 800 setText ( it-> pattern ( ));
805 setGeometry ( x, y, w, h ); 801 setGeometry ( x, y, w, h );
806 802
807 qDebug ( "ExEdit: [%s] at %d,%d %d,%d", it->text(2).latin1(),x,y,w,h); 803 qDebug ( "ExEdit: [%s] at %d,%d %d,%d", it->text(2).latin1(),x,y,w,h);
808 804
809 m_out = true; 805 m_out = true;
810 806
811 show ( ); 807 show ( );
812 setFocus ( ); 808 setFocus ( );
813 selectAll ( ); 809 selectAll ( );
814 end ( true ); 810 end ( true );
815 } 811 }
816 812
817 virtual void focusOutEvent ( QFocusEvent * ) 813 virtual void focusOutEvent ( QFocusEvent * )
818 { 814 {
819 hide ( ); 815 hide ( );
820 if ( m_out ) 816 if ( m_out )
821 it-> setPattern ( text ( )); 817 it-> setPattern ( text ( ));
822 delete this; 818 delete this;
823 } 819 }
824 820
825 virtual void keyPressEvent ( QKeyEvent *e ) 821 virtual void keyPressEvent ( QKeyEvent *e )
826 { 822 {
827 if ( e-> key ( ) == Key_Return ) 823 if ( e-> key ( ) == Key_Return )
828 it-> listView ( )-> setFocus ( ); 824 it-> listView ( )-> setFocus ( );
829 else if ( e-> key ( ) == Key_Escape ) { 825 else if ( e-> key ( ) == Key_Escape ) {
830 m_out = false; 826 m_out = false;
831 it-> listView ( )-> setFocus ( ); 827 it-> listView ( )-> setFocus ( );
832 } 828 }
833 else 829 else
834 QLineEdit::keyPressEvent ( e ); 830 QLineEdit::keyPressEvent ( e );
835 } 831 }
836 832
837private: 833private:
838 ExceptListItem *it; 834 ExceptListItem *it;
839 bool m_out; 835 bool m_out;
840}; 836};
841 837
842void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c ) 838void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c )
843{ 839{
844 if ( !item || c < 0 || c > 3 ) 840 if ( !item || c < 0 || c > 3 )
845 return; 841 return;
846 842
847 ExceptListItem *it = (ExceptListItem *) item; 843 ExceptListItem *it = (ExceptListItem *) item;
848 844
849 if ( c == 0 ) 845 if ( c == 0 )
850 it-> setNoStyle ( !it-> noStyle ( )); 846 it-> setNoStyle ( !it-> noStyle ( ));
851 else if ( c == 1 ) 847 else if ( c == 1 )
852 it-> setNoFont ( !it-> noFont ( )); 848 it-> setNoFont ( !it-> noFont ( ));
853 else if ( c == 2 ) 849 else if ( c == 2 )
854 it-> setNoDeco ( !it-> noDeco ( )); 850 it-> setNoDeco ( !it-> noDeco ( ));
855 else if ( c == 3 ) { 851 else if ( c == 3 ) {
856 m_except-> ensureItemVisible ( it ); 852 m_except-> ensureItemVisible ( it );
857 new ExEdit ( it ); 853 new ExEdit ( it );
858 } 854 }
859} 855}
860 856
diff --git a/noncore/settings/appearance2/appearance.h b/noncore/settings/appearance2/appearance.h
index da9e976..51e9636 100644
--- a/noncore/settings/appearance2/appearance.h
+++ b/noncore/settings/appearance2/appearance.h
@@ -1,127 +1,128 @@
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 static QString appName() { return QString::fromLatin1("appearance"); }
58 59
59protected: 60protected:
60 virtual void accept ( ); 61 virtual void accept ( );
61 virtual void done ( int r ); 62 virtual void done ( int r );
62 63
63protected slots: 64protected slots:
64 void styleClicked ( int ); 65 void styleClicked ( int );
65 void styleSettingsClicked ( ); 66 void styleSettingsClicked ( );
66 void decoClicked ( int ); 67 void decoClicked ( int );
67 void fontClicked ( const QFont & ); 68 void fontClicked ( const QFont & );
68 void colorClicked ( int ); 69 void colorClicked ( int );
69 70
70 void editSchemeClicked(); 71 void editSchemeClicked();
71 void saveSchemeClicked(); 72 void saveSchemeClicked();
72 void deleteSchemeClicked(); 73 void deleteSchemeClicked();
73 74
74 void tabChanged ( QWidget * ); 75 void tabChanged ( QWidget * );
75 76
76 void addExcept ( ); 77 void addExcept ( );
77 void delExcept ( ); 78 void delExcept ( );
78 void upExcept ( ); 79 void upExcept ( );
79 void downExcept ( ); 80 void downExcept ( );
80 void clickedExcept ( QListViewItem *, const QPoint &, int ); 81 void clickedExcept ( QListViewItem *, const QPoint &, int );
81 82
82private: 83private:
83 void changeText(); 84 void changeText();
84 85
85 QWidget *createStyleTab ( QWidget *parent, Config &cfg ); 86 QWidget *createStyleTab ( QWidget *parent, Config &cfg );
86 QWidget *createDecoTab ( QWidget *parent, Config &cfg ); 87 QWidget *createDecoTab ( QWidget *parent, Config &cfg );
87 QWidget *createFontTab ( QWidget *parent, Config &cfg ); 88 QWidget *createFontTab ( QWidget *parent, Config &cfg );
88 QWidget *createColorTab ( QWidget *parent, Config &cfg ); 89 QWidget *createColorTab ( QWidget *parent, Config &cfg );
89 QWidget *createAdvancedTab ( QWidget *parent, Config &cfg ); 90 QWidget *createAdvancedTab ( QWidget *parent, Config &cfg );
90 91
91private: 92private:
92 bool m_style_changed; 93 bool m_style_changed;
93 bool m_font_changed; 94 bool m_font_changed;
94 bool m_scheme_changed; 95 bool m_scheme_changed;
95 bool m_deco_changed; 96 bool m_deco_changed;
96 bool m_color_changed; 97 bool m_color_changed;
97 98
98 int m_original_style; 99 int m_original_style;
99 int m_original_deco; 100 int m_original_deco;
100 int m_original_tabstyle; 101 int m_original_tabstyle;
101 bool m_original_tabpos; 102 bool m_original_tabpos;
102 103
103 QListBox * m_style_list; 104 QListBox * m_style_list;
104 QPushButton * m_style_settings; 105 QPushButton * m_style_settings;
105 106
106 QListBox * m_deco_list; 107 QListBox * m_deco_list;
107 108
108 QListBox * m_color_list; 109 QListBox * m_color_list;
109 110
110 OFontSelector *m_fontselect; 111 OFontSelector *m_fontselect;
111 112
112 SampleWindow *m_sample; 113 SampleWindow *m_sample;
113 114
114 QComboBox * m_tabstyle_list; 115 QComboBox * m_tabstyle_list;
115 QRadioButton *m_tabstyle_top; 116 QRadioButton *m_tabstyle_top;
116 QRadioButton *m_tabstyle_bottom; 117 QRadioButton *m_tabstyle_bottom;
117 118
118 QRadioButton *m_rotdir_cw; 119 QRadioButton *m_rotdir_cw;
119 QRadioButton *m_rotdir_ccw; 120 QRadioButton *m_rotdir_ccw;
120 QRadioButton *m_rotdir_flip; 121 QRadioButton *m_rotdir_flip;
121 122
122 QWidget * m_advtab; 123 QWidget * m_advtab;
123 QListView * m_except; 124 QListView * m_except;
124 QCheckBox * m_force; 125 QCheckBox * m_force;
125}; 126};
126 127
127#endif 128#endif
diff --git a/noncore/settings/appearance2/appearance2.pro b/noncore/settings/appearance2/appearance2.pro
index e37536d..145de2f 100644
--- a/noncore/settings/appearance2/appearance2.pro
+++ b/noncore/settings/appearance2/appearance2.pro
@@ -1,33 +1,31 @@
1TEMPLATE = app 1CONFIG = qt warn_on release quick-app
2CONFIG = qt warn_on release
3DESTDIR = $(OPIEDIR)/bin
4HEADERS = appearance.h editScheme.h sample.h 2HEADERS = appearance.h editScheme.h sample.h
5SOURCES = appearance.cpp editScheme.cpp main.cpp sample.cpp 3SOURCES = appearance.cpp editScheme.cpp main.cpp sample.cpp
6INCLUDEPATH += $(OPIEDIR)/include 4INCLUDEPATH += $(OPIEDIR)/include
7DEPENDPATH += ../$(OPIEDIR)/include 5DEPENDPATH += ../$(OPIEDIR)/include
8LIBS += -lqpe -lopie 6LIBS += -lqpe -lopie
9TARGET = appearance
10INCLUDEPATH += $(OPIEDIR)/include 7INCLUDEPATH += $(OPIEDIR)/include
11DEPENDPATH += $(OPIEDIR)/include 8DEPENDPATH += $(OPIEDIR)/include
12 9
10 TARGET = appearance
11
13TRANSLATIONS = ../../../i18n/de/appearance.ts \ 12TRANSLATIONS = ../../../i18n/de/appearance.ts \
14 ../../../i18n/nl/appearance.ts \ 13 ../../../i18n/nl/appearance.ts \
15 ../../../i18n/xx/appearance.ts \ 14 ../../../i18n/xx/appearance.ts \
16 ../../../i18n/en/appearance.ts \ 15 ../../../i18n/en/appearance.ts \
17 ../../../i18n/es/appearance.ts \ 16 ../../../i18n/es/appearance.ts \
18 ../../../i18n/fr/appearance.ts \ 17 ../../../i18n/fr/appearance.ts \
19 ../../../i18n/hu/appearance.ts \ 18 ../../../i18n/hu/appearance.ts \
20 ../../../i18n/ja/appearance.ts \ 19 ../../../i18n/ja/appearance.ts \
21 ../../../i18n/ko/appearance.ts \ 20 ../../../i18n/ko/appearance.ts \
22 ../../../i18n/no/appearance.ts \ 21 ../../../i18n/no/appearance.ts \
23 ../../../i18n/pl/appearance.ts \ 22 ../../../i18n/pl/appearance.ts \
24 ../../../i18n/pt/appearance.ts \ 23 ../../../i18n/pt/appearance.ts \
25 ../../../i18n/pt_BR/appearance.ts \ 24 ../../../i18n/pt_BR/appearance.ts \
26 ../../../i18n/sl/appearance.ts \ 25 ../../../i18n/sl/appearance.ts \
27 ../../../i18n/zh_CN/appearance.ts \ 26 ../../../i18n/zh_CN/appearance.ts \
28 ../../../i18n/zh_TW/appearance.ts \ 27 ../../../i18n/zh_TW/appearance.ts \
29 ../../../i18n/da/appearance.ts 28 ../../../i18n/da/appearance.ts
30 29
31 30
32
33include ( $(OPIEDIR)/include.pro ) 31include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/appearance2/main.cpp b/noncore/settings/appearance2/main.cpp
index ad24cf3..5595429 100644
--- a/noncore/settings/appearance2/main.cpp
+++ b/noncore/settings/appearance2/main.cpp
@@ -1,42 +1,34 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> 3             .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This file is free software; you can 5 _;:,     .>    :=|. This file is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU General Public 7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This file is distributed in the hope that 12    .i_,=:_.      -<s. This file is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
17..}^=.=       =       ; Public License for more details. 17..}^=.=       =       ; Public License for more details.
18++=   -.     .`     .: 18++=   -.     .`     .:
19 :     =  ...= . :.=- You should have received a copy of the GNU 19 :     =  ...= . :.=- You should have received a copy of the GNU
20 -.   .:....=;==+<; General Public License along with this file; 20 -.   .:....=;==+<; General Public License along with this file;
21  -_. . .   )=.  = see the file COPYING. If not, write to the 21  -_. . .   )=.  = see the file COPYING. If not, write to the
22    --        :-=` Free Software Foundation, Inc., 22    --        :-=` Free Software Foundation, Inc.,
23 59 Temple Place - Suite 330, 23 59 Temple Place - Suite 330,
24 Boston, MA 02111-1307, USA. 24 Boston, MA 02111-1307, USA.
25 25
26*/ 26*/
27 27
28#include "appearance.h" 28#include "appearance.h"
29 29
30#include <qpe/qpeapplication.h> 30#include <qpe/qpeapplication.h>
31#include <opie/oapplicationfactory.h>
31 32
32 33
33int main ( int argc, char **argv ) 34OPIE_EXPORT_APP( OApplicationFactory<Appearance> )
34{
35 QPEApplication app ( argc, argv );
36
37 Appearance m;
38 app. showMainDocumentWidget ( &m );
39
40 return app. exec ( );
41}
42
diff --git a/noncore/settings/backup/backup.pro b/noncore/settings/backup/backup.pro
index cadb381..1e9af61 100644
--- a/noncore/settings/backup/backup.pro
+++ b/noncore/settings/backup/backup.pro
@@ -1,35 +1,30 @@
1 TEMPLATE= app 1 CONFIG = qt warn_on release quick-app
2 #CONFIG = qt warn_on debug
3 CONFIG = qt warn_on release
4 HEADERS = backuprestore.h 2 HEADERS = backuprestore.h
5 SOURCES = main.cpp backuprestore.cpp 3 SOURCES = main.cpp backuprestore.cpp
6 INCLUDEPATH+= $(OPIEDIR)/include 4 INCLUDEPATH+= $(OPIEDIR)/include
7 DEPENDPATH+= $(OPIEDIR)/include 5 DEPENDPATH+= $(OPIEDIR)/include
8LIBS += -lqpe 6LIBS += -lqpe
9 INTERFACES= backuprestorebase.ui errordialog.ui 7 INTERFACES= backuprestorebase.ui errordialog.ui
10 TARGET = backup 8 TARGET = backup
11 DESTDIR = $(OPIEDIR)/bin
12 9
13TRANSLATIONS = ../../../i18n/de/backup.ts \ 10TRANSLATIONS = ../../../i18n/de/backup.ts \
14 ../../../i18n/nl/backup.ts \ 11 ../../../i18n/nl/backup.ts \
15 ../../../i18n/xx/backup.ts \ 12 ../../../i18n/xx/backup.ts \
16 ../../../i18n/en/backup.ts \ 13 ../../../i18n/en/backup.ts \
17 ../../../i18n/es/backup.ts \ 14 ../../../i18n/es/backup.ts \
18 ../../../i18n/fr/backup.ts \ 15 ../../../i18n/fr/backup.ts \
19 ../../../i18n/hu/backup.ts \ 16 ../../../i18n/hu/backup.ts \
20 ../../../i18n/ja/backup.ts \ 17 ../../../i18n/ja/backup.ts \
21 ../../../i18n/ko/backup.ts \ 18 ../../../i18n/ko/backup.ts \
22 ../../../i18n/no/backup.ts \ 19 ../../../i18n/no/backup.ts \
23 ../../../i18n/pl/backup.ts \ 20 ../../../i18n/pl/backup.ts \
24 ../../../i18n/pt/backup.ts \ 21 ../../../i18n/pt/backup.ts \
25 ../../../i18n/pt_BR/backup.ts \ 22 ../../../i18n/pt_BR/backup.ts \
26 ../../../i18n/sl/backup.ts \ 23 ../../../i18n/sl/backup.ts \
27 ../../../i18n/zh_CN/backup.ts \ 24 ../../../i18n/zh_CN/backup.ts \
28 ../../../i18n/zh_TW/backup.ts \ 25 ../../../i18n/zh_TW/backup.ts \
29 ../../../i18n/it/backup.ts \ 26 ../../../i18n/it/backup.ts \
30 ../../../i18n/da/backup.ts 27 ../../../i18n/da/backup.ts
31 28
32 29
33
34
35include ( $(OPIEDIR)/include.pro ) 30include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp
index 922523b..1c854d9 100644
--- a/noncore/settings/backup/backuprestore.cpp
+++ b/noncore/settings/backup/backuprestore.cpp
@@ -1,400 +1,400 @@
1 1
2#include "backuprestore.h" 2#include "backuprestore.h"
3//#include "output.h" 3//#include "output.h"
4#include "errordialog.h" 4#include "errordialog.h"
5 5
6#include <qapplication.h> 6#include <qapplication.h>
7#include <qmultilineedit.h> 7#include <qmultilineedit.h>
8 8
9#include <qdir.h> 9#include <qdir.h>
10#include <qfile.h> 10#include <qfile.h>
11#include <qfileinfo.h> 11#include <qfileinfo.h>
12#include <qlistview.h> 12#include <qlistview.h>
13#include <qpushbutton.h> 13#include <qpushbutton.h>
14#include <qheader.h> 14#include <qheader.h>
15#include <qpe/resource.h> 15#include <qpe/resource.h>
16#include <qpe/config.h> 16#include <qpe/config.h>
17#include <qmessagebox.h> 17#include <qmessagebox.h>
18#include <qcombobox.h> 18#include <qcombobox.h>
19#include <qlist.h> 19#include <qlist.h>
20#include <stdlib.h> 20#include <stdlib.h>
21#include <qregexp.h> 21#include <qregexp.h>
22#include <qtextstream.h> 22#include <qtextstream.h>
23#include <qtextview.h> 23#include <qtextview.h>
24 24
25#include <errno.h> 25#include <errno.h>
26#include <stdlib.h> 26#include <stdlib.h>
27#include <unistd.h> 27#include <unistd.h>
28#include <sys/stat.h> 28#include <sys/stat.h>
29#include <dirent.h> 29#include <dirent.h>
30 30
31#define HEADER_NAME 0 31#define HEADER_NAME 0
32#define HEADER_BACKUP 1 32#define HEADER_BACKUP 1
33#define BACKUP_LOCATION 2 33#define BACKUP_LOCATION 2
34 34
35#define EXTENSION ".bck" 35#define EXTENSION ".bck"
36 36
37const QString tempFileName = "/tmp/backup.err"; 37const QString tempFileName = "/tmp/backup.err";
38 38
39 39
40BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name) 40BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl)
41 : BackupAndRestoreBase(parent, name){ 41 : BackupAndRestoreBase(parent, name, fl){
42 this->showMaximized(); 42 this->showMaximized();
43 backupList->header()->hide(); 43 backupList->header()->hide();
44 restoreList->header()->hide(); 44 restoreList->header()->hide();
45 connect(backupButton, SIGNAL(clicked()), 45 connect(backupButton, SIGNAL(clicked()),
46 this, SLOT(backupPressed())); 46 this, SLOT(backupPressed()));
47 connect(restoreButton, SIGNAL(clicked()), 47 connect(restoreButton, SIGNAL(clicked()),
48 this, SLOT(restore())); 48 this, SLOT(restore()));
49 connect(backupList, SIGNAL(clicked( QListViewItem * )), 49 connect(backupList, SIGNAL(clicked( QListViewItem * )),
50 this, SLOT(selectItem(QListViewItem*))); 50 this, SLOT(selectItem(QListViewItem*)));
51 connect(restoreSource, SIGNAL(activated( int )), 51 connect(restoreSource, SIGNAL(activated( int )),
52 this, SLOT(sourceDirChanged(int))); 52 this, SLOT(sourceDirChanged(int)));
53 connect(updateList, SIGNAL(clicked()), 53 connect(updateList, SIGNAL(clicked()),
54 this, SLOT( fileListUpdate())); 54 this, SLOT( fileListUpdate()));
55 55
56 applicationSettings = new QListViewItem(backupList, "Application Settings", "", 56 applicationSettings = new QListViewItem(backupList, "Application Settings", "",
57 QDir::homeDirPath() + "/Settings/"); 57 QDir::homeDirPath() + "/Settings/");
58 selectItem(applicationSettings); 58 selectItem(applicationSettings);
59 applicationSettings = new QListViewItem(backupList, "Application Data", "", 59 applicationSettings = new QListViewItem(backupList, "Application Data", "",
60 QDir::homeDirPath() + "/Applications/"); 60 QDir::homeDirPath() + "/Applications/");
61 selectItem(applicationSettings); 61 selectItem(applicationSettings);
62 documents= new QListViewItem(backupList, "Documents", "", 62 documents= new QListViewItem(backupList, "Documents", "",
63 QDir::homeDirPath() + "/Documents/"); 63 QDir::homeDirPath() + "/Documents/");
64 selectItem(documents); 64 selectItem(documents);
65 65
66 scanForApplicationSettings(); 66 scanForApplicationSettings();
67 67
68 Config config("BackupAndRestore"); 68 Config config("BackupAndRestore");
69 config.setGroup("General"); 69 config.setGroup("General");
70 int totalLocations = config.readNumEntry("totalLocations",0); 70 int totalLocations = config.readNumEntry("totalLocations",0);
71 71
72//todo make less static here and use Storage class to get infos 72//todo make less static here and use Storage class to get infos
73 if(totalLocations == 0){ 73 if(totalLocations == 0){
74 backupLocations.insert("Documents", "/root/Documents"); 74 backupLocations.insert("Documents", "/root/Documents");
75 backupLocations.insert("CF", "/mnt/cf"); 75 backupLocations.insert("CF", "/mnt/cf");
76 backupLocations.insert("SD", "/mnt/card"); 76 backupLocations.insert("SD", "/mnt/card");
77 } 77 }
78 else{ 78 else{
79 for(int i = 0; i < totalLocations; i++){ 79 for(int i = 0; i < totalLocations; i++){
80 backupLocations.insert(config.readEntry(QString("backupLocationName_%1").arg(i)), 80 backupLocations.insert(config.readEntry(QString("backupLocationName_%1").arg(i)),
81 config.readEntry(QString("backupLocation_%1").arg(i))); 81 config.readEntry(QString("backupLocation_%1").arg(i)));
82 } 82 }
83 } 83 }
84 QMap<QString, QString>::Iterator it; 84 QMap<QString, QString>::Iterator it;
85 for( it = backupLocations.begin(); it != backupLocations.end(); ++it ){ 85 for( it = backupLocations.begin(); it != backupLocations.end(); ++it ){
86 storeToLocation->insertItem(it.key()); 86 storeToLocation->insertItem(it.key());
87 restoreSource->insertItem(it.key()); 87 restoreSource->insertItem(it.key());
88 } 88 }
89 89
90 // Read the list of items to ignore. 90 // Read the list of items to ignore.
91 QList<QString> dontBackupList; 91 QList<QString> dontBackupList;
92 dontBackupList.setAutoDelete(true); 92 dontBackupList.setAutoDelete(true);
93 config.setGroup("DontBackup"); 93 config.setGroup("DontBackup");
94 int total = config.readNumEntry("Total", 0); 94 int total = config.readNumEntry("Total", 0);
95 for(int i = 0; i < total; i++){ 95 for(int i = 0; i < total; i++){
96 dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), ""))); 96 dontBackupList.append(new QString(config.readEntry(QString("%1").arg(i), "")));
97 } 97 }
98 98
99 QList<QListViewItem> list; 99 QList<QListViewItem> list;
100 getAllItems(backupList->firstChild(), list); 100 getAllItems(backupList->firstChild(), list);
101 101
102 for(uint i = 0; i < list.count(); i++){ 102 for(uint i = 0; i < list.count(); i++){
103 QString text = list.at(i)->text(HEADER_NAME); 103 QString text = list.at(i)->text(HEADER_NAME);
104 for(uint i2 = 0; i2 < dontBackupList.count(); i2++){ 104 for(uint i2 = 0; i2 < dontBackupList.count(); i2++){
105 if(*dontBackupList.at(i2) == text){ 105 if(*dontBackupList.at(i2) == text){
106 selectItem(list.at(i)); 106 selectItem(list.at(i));
107 break; 107 break;
108 } 108 }
109 } 109 }
110 } 110 }
111} 111}
112 112
113BackupAndRestore::~BackupAndRestore(){ 113BackupAndRestore::~BackupAndRestore(){
114 QList<QListViewItem> list; 114 QList<QListViewItem> list;
115 getAllItems(backupList->firstChild(), list); 115 getAllItems(backupList->firstChild(), list);
116 116
117 Config config("BackupAndRestore"); 117 Config config("BackupAndRestore");
118 config.setGroup("DontBackup"); 118 config.setGroup("DontBackup");
119 config.clearGroup(); 119 config.clearGroup();
120 120
121 int count = 0; 121 int count = 0;
122 for(uint i = 0; i < list.count(); i++){ 122 for(uint i = 0; i < list.count(); i++){
123 if(list.at(i)->text(HEADER_BACKUP) == ""){ 123 if(list.at(i)->text(HEADER_BACKUP) == ""){
124 config.writeEntry(QString("%1").arg(count), list.at(i)->text(HEADER_NAME)); 124 config.writeEntry(QString("%1").arg(count), list.at(i)->text(HEADER_NAME));
125 count++; 125 count++;
126 } 126 }
127 } 127 }
128 config.writeEntry("Total", count); 128 config.writeEntry("Total", count);
129 129
130 // Remove Temp File 130 // Remove Temp File
131 if ( QFile::exists( tempFileName ) ) 131 if ( QFile::exists( tempFileName ) )
132 QFile::remove( tempFileName ); 132 QFile::remove( tempFileName );
133} 133}
134 134
135QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list){ 135QList<QListViewItem> BackupAndRestore::getAllItems(QListViewItem *item, QList<QListViewItem> &list){
136 while(item){ 136 while(item){
137 if(item->childCount() > 0) 137 if(item->childCount() > 0)
138 getAllItems(item->firstChild(), list); 138 getAllItems(item->firstChild(), list);
139 list.append(item); 139 list.append(item);
140 item = item->nextSibling(); 140 item = item->nextSibling();
141 } 141 }
142 return list; 142 return list;
143} 143}
144 144
145/** 145/**
146 * Selects and unselects the item by setting the HEADER_BACKUP to B or !. 146 * Selects and unselects the item by setting the HEADER_BACKUP to B or !.
147 * and changing the icon to match 147 * and changing the icon to match
148 * @param currentItem the item to swich the selection choice. 148 * @param currentItem the item to swich the selection choice.
149 */ 149 */
150void BackupAndRestore::selectItem(QListViewItem *currentItem){ 150void BackupAndRestore::selectItem(QListViewItem *currentItem){
151 if(!currentItem) 151 if(!currentItem)
152 return; 152 return;
153 153
154 if(currentItem->text(HEADER_BACKUP) == "B"){ 154 if(currentItem->text(HEADER_BACKUP) == "B"){
155 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/null")); 155 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/null"));
156 currentItem->setText(HEADER_BACKUP, ""); 156 currentItem->setText(HEADER_BACKUP, "");
157 } 157 }
158 else{ 158 else{
159 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/check")); 159 currentItem->setPixmap(HEADER_NAME, Resource::loadPixmap("backup/check"));
160 currentItem->setText(HEADER_BACKUP, "B"); 160 currentItem->setText(HEADER_BACKUP, "B");
161 } 161 }
162} 162}
163 163
164void BackupAndRestore::scanForApplicationSettings(){ 164void BackupAndRestore::scanForApplicationSettings(){
165 QDir d(applicationSettings->text(BACKUP_LOCATION)); 165 QDir d(applicationSettings->text(BACKUP_LOCATION));
166 d.setFilter( QDir::Dirs | QDir::Files | QDir::NoSymLinks ); 166 d.setFilter( QDir::Dirs | QDir::Files | QDir::NoSymLinks );
167 const QFileInfoList *list = d.entryInfoList(); 167 const QFileInfoList *list = d.entryInfoList();
168 QFileInfoListIterator it( *list ); 168 QFileInfoListIterator it( *list );
169 QFileInfo *fi; 169 QFileInfo *fi;
170 while ( (fi=it.current()) ) { 170 while ( (fi=it.current()) ) {
171 // qDebug((d.path()+fi->fileName()).latin1()); 171 // qDebug((d.path()+fi->fileName()).latin1());
172 if ( ( fi->fileName() != "." ) && ( fi->fileName() != ".." ) ) { 172 if ( ( fi->fileName() != "." ) && ( fi->fileName() != ".." ) ) {
173 QListViewItem *newItem = new QListViewItem(applicationSettings, fi->fileName()); 173 QListViewItem *newItem = new QListViewItem(applicationSettings, fi->fileName());
174 selectItem(newItem); 174 selectItem(newItem);
175 } 175 }
176 ++it; 176 ++it;
177 } 177 }
178} 178}
179 179
180/** 180/**
181 * The "Backup" button has been pressed. Get a list of all of the files that 181 * The "Backup" button has been pressed. Get a list of all of the files that
182 * should be backed up. If there are no files, emit and error and exit. 182 * should be backed up. If there are no files, emit and error and exit.
183 * Determine the file name to store the backup in. Backup the file(s) using 183 * Determine the file name to store the backup in. Backup the file(s) using
184 * tar and gzip --best. Report failure or success 184 * tar and gzip --best. Report failure or success
185 */ 185 */
186void BackupAndRestore::backupPressed(){ 186void BackupAndRestore::backupPressed(){
187 QString backupFiles; 187 QString backupFiles;
188 if(getBackupFiles(backupFiles, NULL) == 0){ 188 if(getBackupFiles(backupFiles, NULL) == 0){
189 QMessageBox::critical(this, "Message", 189 QMessageBox::critical(this, "Message",
190 "No items selected.",QString("Ok") ); 190 "No items selected.",QString("Ok") );
191 return; 191 return;
192 } 192 }
193 193
194 setCaption(tr("Backup and Restore... working...")); 194 setCaption(tr("Backup and Restore... working..."));
195 QString outputFile = backupLocations[storeToLocation->currentText()]; 195 QString outputFile = backupLocations[storeToLocation->currentText()];
196 196
197 QDateTime datetime = QDateTime::currentDateTime(); 197 QDateTime datetime = QDateTime::currentDateTime();
198 QString dateString = QString::number( datetime.date().year() ) + QString::number( datetime.date().month() ).rightJustify(2, '0') + 198 QString dateString = QString::number( datetime.date().year() ) + QString::number( datetime.date().month() ).rightJustify(2, '0') +
199 QString::number( datetime.date().day() ).rightJustify(2, '0'); 199 QString::number( datetime.date().day() ).rightJustify(2, '0');
200 200
201 outputFile += "/" + dateString; 201 outputFile += "/" + dateString;
202 202
203 QString t = outputFile; 203 QString t = outputFile;
204 int c = 1; 204 int c = 1;
205 while(QFile::exists(outputFile + EXTENSION)){ 205 while(QFile::exists(outputFile + EXTENSION)){
206 outputFile = t + QString("%1").arg(c); 206 outputFile = t + QString("%1").arg(c);
207 c++; 207 c++;
208 } 208 }
209 209
210 // We execute tar and compressing its output with gzip.. 210 // We execute tar and compressing its output with gzip..
211 // The error output will be written into a temp-file which could be provided 211 // The error output will be written into a temp-file which could be provided
212 // for debugging.. 212 // for debugging..
213 qDebug( "Storing file: %s", outputFile.latin1() ); 213 qDebug( "Storing file: %s", outputFile.latin1() );
214 outputFile += EXTENSION; 214 outputFile += EXTENSION;
215 215
216 qWarning( QString("(tar -c %1 | gzip > %2 ) 2> %3") 216 qWarning( QString("(tar -c %1 | gzip > %2 ) 2> %3")
217 .arg( backupFiles ) 217 .arg( backupFiles )
218 .arg( outputFile.latin1() ) 218 .arg( outputFile.latin1() )
219 .arg( tempFileName.latin1() ) ); 219 .arg( tempFileName.latin1() ) );
220 220
221 221
222 int r = system( QString("(tar -c %1 | gzip > %2 ) 2> %3") 222 int r = system( QString("(tar -c %1 | gzip > %2 ) 2> %3")
223 .arg( backupFiles ) 223 .arg( backupFiles )
224 .arg( outputFile.latin1() ) 224 .arg( outputFile.latin1() )
225 .arg( tempFileName.latin1() ) ); 225 .arg( tempFileName.latin1() ) );
226 226
227 if(r != 0){ 227 if(r != 0){
228 perror("Error: "); 228 perror("Error: ");
229 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno ); 229 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno );
230 230
231 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Backup Failed!" ) + "\n" 231 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Backup Failed!" ) + "\n"
232 + errorMsg, QString( tr( "Ok" ) ), QString( tr( "Details" ) ) ) ){ 232 + errorMsg, QString( tr( "Ok" ) ), QString( tr( "Details" ) ) ) ){
233 233
234 case 1: 234 case 1:
235 qWarning("Details pressed !"); 235 qWarning("Details pressed !");
236 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true ); 236 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true );
237 QFile errorFile( tempFileName ); 237 QFile errorFile( tempFileName );
238 if ( errorFile.open(IO_ReadOnly) ) { 238 if ( errorFile.open(IO_ReadOnly) ) {
239 QTextStream t( &errorFile ); 239 QTextStream t( &errorFile );
240 QString s; 240 QString s;
241 while ( !t.eof() ) { // until end of file... 241 while ( !t.eof() ) { // until end of file...
242 s += t.readLine(); // line of text excluding '\n' 242 s += t.readLine(); // line of text excluding '\n'
243 } 243 }
244 errorFile.close(); 244 errorFile.close();
245 245
246 pErrDialog->m_textarea->setText( s ); 246 pErrDialog->m_textarea->setText( s );
247 }else{ 247 }else{
248 pErrDialog->m_textarea->setText( "Unable to open File: /tmp/backup.er" ); 248 pErrDialog->m_textarea->setText( "Unable to open File: /tmp/backup.er" );
249 } 249 }
250 pErrDialog->showMaximized(); 250 pErrDialog->showMaximized();
251 pErrDialog->exec(); 251 pErrDialog->exec();
252 delete pErrDialog; 252 delete pErrDialog;
253 break; 253 break;
254 } 254 }
255 setCaption(tr("Backup and Restore.. Failed !!")); 255 setCaption(tr("Backup and Restore.. Failed !!"));
256 return; 256 return;
257 } 257 }
258 else{ 258 else{
259 QMessageBox::information(this, tr( "Message" ), tr( "Backup Successfull." ), QString(tr( "Ok" ) ) ); 259 QMessageBox::information(this, tr( "Message" ), tr( "Backup Successfull." ), QString(tr( "Ok" ) ) );
260 260
261 } 261 }
262 setCaption(tr("Backup and Restore")); 262 setCaption(tr("Backup and Restore"));
263} 263}
264 264
265/*** 265/***
266 * Get a list of all of the files to backup. 266 * Get a list of all of the files to backup.
267 */ 267 */
268int BackupAndRestore::getBackupFiles(QString &backupFiles, QListViewItem *parent){ 268int BackupAndRestore::getBackupFiles(QString &backupFiles, QListViewItem *parent){
269 QListViewItem * currentItem; 269 QListViewItem * currentItem;
270 QString currentHome; 270 QString currentHome;
271 if(!parent) 271 if(!parent)
272 currentItem = backupList->firstChild(); 272 currentItem = backupList->firstChild();
273 else{ 273 else{
274 currentItem = parent->firstChild(); 274 currentItem = parent->firstChild();
275 currentHome = parent->text(BACKUP_LOCATION); 275 currentHome = parent->text(BACKUP_LOCATION);
276 } 276 }
277 277
278 uint count = 0; 278 uint count = 0;
279 while( currentItem != 0 ){ 279 while( currentItem != 0 ){
280 if(currentItem->text(HEADER_BACKUP) == "B" ){ 280 if(currentItem->text(HEADER_BACKUP) == "B" ){
281 if(currentItem->childCount() == 0 ){ 281 if(currentItem->childCount() == 0 ){
282 if(parent == NULL) 282 if(parent == NULL)
283 backupFiles += currentItem->text(BACKUP_LOCATION); 283 backupFiles += currentItem->text(BACKUP_LOCATION);
284 else 284 else
285 backupFiles += currentHome + currentItem->text(HEADER_NAME); 285 backupFiles += currentHome + currentItem->text(HEADER_NAME);
286 backupFiles += " "; 286 backupFiles += " ";
287 count++; 287 count++;
288 } 288 }
289 else{ 289 else{
290 count += getBackupFiles(backupFiles, currentItem); 290 count += getBackupFiles(backupFiles, currentItem);
291 } 291 }
292 } 292 }
293 currentItem = currentItem->nextSibling(); 293 currentItem = currentItem->nextSibling();
294 } 294 }
295 return count; 295 return count;
296} 296}
297 297
298void BackupAndRestore::sourceDirChanged(int selection){ 298void BackupAndRestore::sourceDirChanged(int selection){
299 restoreList->clear(); 299 restoreList->clear();
300 rescanFolder(backupLocations[restoreSource->text(selection)]); 300 rescanFolder(backupLocations[restoreSource->text(selection)]);
301} 301}
302 302
303void BackupAndRestore::fileListUpdate() 303void BackupAndRestore::fileListUpdate()
304{ 304{
305 qWarning("void BackupAndRestore::fileListUpdate()"); 305 qWarning("void BackupAndRestore::fileListUpdate()");
306 restoreList->clear(); 306 restoreList->clear();
307 rescanFolder( backupLocations[restoreSource->currentText()] ); 307 rescanFolder( backupLocations[restoreSource->currentText()] );
308} 308}
309 309
310/** 310/**
311 * Scans directory for any backup files. Will recursivly go down, 311 * Scans directory for any backup files. Will recursivly go down,
312 * but will not follow symlinks. 312 * but will not follow symlinks.
313 * @param directory - the directory to look in. 313 * @param directory - the directory to look in.
314 */ 314 */
315void BackupAndRestore::rescanFolder(QString directory){ 315void BackupAndRestore::rescanFolder(QString directory){
316 //qDebug(QString("rescanFolder: ") + directory.latin1()); 316 //qDebug(QString("rescanFolder: ") + directory.latin1());
317 QDir d(directory); 317 QDir d(directory);
318 if(!d.exists()) 318 if(!d.exists())
319 return; 319 return;
320 320
321 d.setFilter( QDir::Files | QDir::Hidden | QDir::Dirs); 321 d.setFilter( QDir::Files | QDir::Hidden | QDir::Dirs);
322 const QFileInfoList *list = d.entryInfoList(); 322 const QFileInfoList *list = d.entryInfoList();
323 QFileInfoListIterator it( *list ); 323 QFileInfoListIterator it( *list );
324 QFileInfo *file; 324 QFileInfo *file;
325 while ( (file=it.current()) ) { // for each file... 325 while ( (file=it.current()) ) { // for each file...
326 // If it is a dir and not .. or . then add it as a tab and go down. 326 // If it is a dir and not .. or . then add it as a tab and go down.
327 if(file->isDir()){ 327 if(file->isDir()){
328 if(file->fileName() != ".." && file->fileName() != ".") { 328 if(file->fileName() != ".." && file->fileName() != ".") {
329 rescanFolder(directory + "/" + file->fileName()); 329 rescanFolder(directory + "/" + file->fileName());
330 } 330 }
331 } 331 }
332 else{ 332 else{
333 // If it is a backup file add to list. 333 // If it is a backup file add to list.
334 if(file->fileName().contains(EXTENSION)) 334 if(file->fileName().contains(EXTENSION))
335 (void)new QListViewItem(restoreList, file->fileName()); 335 (void)new QListViewItem(restoreList, file->fileName());
336 } 336 }
337 ++it; 337 ++it;
338 } 338 }
339} 339}
340 340
341/** 341/**
342 * Restore a backup file. 342 * Restore a backup file.
343 * Report errors or success 343 * Report errors or success
344 */ 344 */
345void BackupAndRestore::restore(){ 345void BackupAndRestore::restore(){
346 QListViewItem *restoreItem = restoreList->currentItem(); 346 QListViewItem *restoreItem = restoreList->currentItem();
347 if(!restoreItem){ 347 if(!restoreItem){
348 QMessageBox::critical(this, tr( "Message" ), 348 QMessageBox::critical(this, tr( "Message" ),
349 tr( "Please select something to restore." ),QString( tr( "Ok") ) ); 349 tr( "Please select something to restore." ),QString( tr( "Ok") ) );
350 return; 350 return;
351 } 351 }
352 setCaption(tr("Backup and Restore... working...")); 352 setCaption(tr("Backup and Restore... working..."));
353 353
354 QString restoreFile = backupLocations[restoreSource->currentText()]; 354 QString restoreFile = backupLocations[restoreSource->currentText()];
355 355
356 restoreFile += "/" + restoreItem->text(0); 356 restoreFile += "/" + restoreItem->text(0);
357 357
358 int r = system(QString("tar -C / -zxf %1 2> %3") 358 int r = system(QString("tar -C / -zxf %1 2> %3")
359 .arg( restoreFile.latin1() ) 359 .arg( restoreFile.latin1() )
360 .arg( tempFileName.latin1() ) ); 360 .arg( tempFileName.latin1() ) );
361 if(r != 0){ 361 if(r != 0){
362 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno ); 362 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno );
363 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Restore Failed." ) + "\n" 363 switch( QMessageBox::critical(this, tr( "Message" ), tr( "Restore Failed." ) + "\n"
364 + errorMsg, QString( tr( "Ok") ), QString( tr( "Details" ) ) ) ) { 364 + errorMsg, QString( tr( "Ok") ), QString( tr( "Details" ) ) ) ) {
365 case 1: 365 case 1:
366 qWarning("Details pressed !"); 366 qWarning("Details pressed !");
367 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true ); 367 ErrorDialog* pErrDialog = new ErrorDialog( this, NULL, true );
368 QFile errorFile( tempFileName ); 368 QFile errorFile( tempFileName );
369 if ( errorFile.open(IO_ReadOnly) ) { 369 if ( errorFile.open(IO_ReadOnly) ) {
370 QTextStream t( &errorFile ); 370 QTextStream t( &errorFile );
371 QString s; 371 QString s;
372 while ( !t.eof() ) { // until end of file... 372 while ( !t.eof() ) { // until end of file...
373 s += t.readLine(); // line of text excluding '\n' 373 s += t.readLine(); // line of text excluding '\n'
374 } 374 }
375 errorFile.close(); 375 errorFile.close();
376 376
377 pErrDialog->m_textarea->setText( s ); 377 pErrDialog->m_textarea->setText( s );
378 }else{ 378 }else{
379 pErrDialog->m_textarea->setText( tr( "Unable to open File: %1" ).arg( "/tmp/backup.er" ) ); 379 pErrDialog->m_textarea->setText( tr( "Unable to open File: %1" ).arg( "/tmp/backup.er" ) );
380 } 380 }
381 pErrDialog->showMaximized(); 381 pErrDialog->showMaximized();
382 pErrDialog->exec(); 382 pErrDialog->exec();
383 delete pErrDialog; 383 delete pErrDialog;
384 384
385 setCaption(tr("Backup and Restore.. Failed !!")); 385 setCaption(tr("Backup and Restore.. Failed !!"));
386 return; 386 return;
387 387
388 break; 388 break;
389 389
390 } 390 }
391 } 391 }
392 else{ 392 else{
393 QMessageBox::critical(this, tr( "Message" ), 393 QMessageBox::critical(this, tr( "Message" ),
394 tr( "Restore Successfull." ), QString( tr( "Ok") ) ); 394 tr( "Restore Successfull." ), QString( tr( "Ok") ) );
395 } 395 }
396 setCaption(tr("Backup and Restore")); 396 setCaption(tr("Backup and Restore"));
397} 397}
398 398
399// backuprestore.cpp 399// backuprestore.cpp
400 400
diff --git a/noncore/settings/backup/backuprestore.h b/noncore/settings/backup/backuprestore.h
index 8c733e3..4bdc758 100644
--- a/noncore/settings/backup/backuprestore.h
+++ b/noncore/settings/backup/backuprestore.h
@@ -1,44 +1,45 @@
1#ifndef WINDOW_H 1#ifndef WINDOW_H
2#define WINDOW_H 2#define WINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include "backuprestorebase.h" 5#include "backuprestorebase.h"
6#include <qmap.h> 6#include <qmap.h>
7#include <qlist.h> 7#include <qlist.h>
8 8
9class QListViewItem; 9class QListViewItem;
10 10
11class BackupAndRestore : public BackupAndRestoreBase { 11class BackupAndRestore : public BackupAndRestoreBase {
12 12
13Q_OBJECT 13Q_OBJECT
14 14
15public: 15public:
16 16
17 BackupAndRestore( QWidget* parent = 0, const char* name = 0); 17 BackupAndRestore( QWidget* parent = 0, const char* name = 0, WFlags fl = 0);
18 ~BackupAndRestore(); 18 ~BackupAndRestore();
19 19
20 20 static QString appName() { return QString::fromLatin1("backup"); }
21
21private slots: 22private slots:
22 void backupPressed(); 23 void backupPressed();
23 void restore(); 24 void restore();
24 void selectItem(QListViewItem *currentItem); 25 void selectItem(QListViewItem *currentItem);
25 void sourceDirChanged(int); 26 void sourceDirChanged(int);
26 void rescanFolder(QString directory); 27 void rescanFolder(QString directory);
27 void fileListUpdate(); 28 void fileListUpdate();
28 29
29private: 30private:
30 void scanForApplicationSettings(); 31 void scanForApplicationSettings();
31 int getBackupFiles(QString &backupFiles, QListViewItem *parent); 32 int getBackupFiles(QString &backupFiles, QListViewItem *parent);
32 QMap<QString, QString> backupLocations; 33 QMap<QString, QString> backupLocations;
33 QList<QListViewItem> getAllItems(QListViewItem *item, QList<QListViewItem> &list); 34 QList<QListViewItem> getAllItems(QListViewItem *item, QList<QListViewItem> &list);
34 35
35 QListViewItem *systemSettings; 36 QListViewItem *systemSettings;
36 QListViewItem *applicationSettings; 37 QListViewItem *applicationSettings;
37 QListViewItem *documents; 38 QListViewItem *documents;
38 39
39}; 40};
40 41
41#endif 42#endif
42 43
43// backuprestore.h 44// backuprestore.h
44 45
diff --git a/noncore/settings/backup/main.cpp b/noncore/settings/backup/main.cpp
index 676e1f0..b375a3b 100644
--- a/noncore/settings/backup/main.cpp
+++ b/noncore/settings/backup/main.cpp
@@ -1,14 +1,8 @@
1#include "backuprestore.h" 1#include "backuprestore.h"
2#include "qnetworkprotocol.h" 2#include "qnetworkprotocol.h"
3#include <qpe/qpeapplication.h> 3#include <qpe/qpeapplication.h>
4#include <opie/oapplicationfactory.h>
4 5
5int main(int argc, char *argv[]) {
6 QPEApplication a( argc, argv );
7
8 BackupAndRestore app(0, "mainwindow");
9 a.showMainWidget(&app);
10 return a.exec();
11}
12 6
13// main.cpp 7OPIE_EXPORT_APP( OApplicationFactory<BackupAndRestore> )
14 8
diff --git a/noncore/settings/language/language.pro b/noncore/settings/language/language.pro
index eb9e0b9..f181f7e 100644
--- a/noncore/settings/language/language.pro
+++ b/noncore/settings/language/language.pro
@@ -1,32 +1,30 @@
1 TEMPLATE= app 1 CONFIG += qt warn_on release quick-app
2 CONFIG += qt warn_on release
3 DESTDIR = $(OPIEDIR)/bin
4 HEADERS = settings.h 2 HEADERS = settings.h
5 SOURCES = language.cpp main.cpp 3 SOURCES = language.cpp main.cpp
6 INTERFACES= languagesettingsbase.ui 4 INTERFACES= languagesettingsbase.ui
7INCLUDEPATH += $(OPIEDIR)/include 5INCLUDEPATH += $(OPIEDIR)/include
8 DEPENDPATH+= ../$(OPIEDIR)/include 6 DEPENDPATH+= ../$(OPIEDIR)/include
9LIBS += -lqpe 7LIBS += -lqpe
10 TARGET = language 8 TARGET = language
11 9
12TRANSLATIONS = ../../../i18n/de/language.ts \ 10TRANSLATIONS = ../../../i18n/de/language.ts \
13 ../../../i18n/nl/language.ts \ 11 ../../../i18n/nl/language.ts \
14 ../../../i18n/xx/language.ts \ 12 ../../../i18n/xx/language.ts \
15 ../../../i18n/en/language.ts \ 13 ../../../i18n/en/language.ts \
16 ../../../i18n/es/language.ts \ 14 ../../../i18n/es/language.ts \
17 ../../../i18n/fr/language.ts \ 15 ../../../i18n/fr/language.ts \
18 ../../../i18n/hu/language.ts \ 16 ../../../i18n/hu/language.ts \
19 ../../../i18n/ja/language.ts \ 17 ../../../i18n/ja/language.ts \
20 ../../../i18n/ko/language.ts \ 18 ../../../i18n/ko/language.ts \
21 ../../../i18n/no/language.ts \ 19 ../../../i18n/no/language.ts \
22 ../../../i18n/pl/language.ts \ 20 ../../../i18n/pl/language.ts \
23 ../../../i18n/pt/language.ts \ 21 ../../../i18n/pt/language.ts \
24 ../../../i18n/pt_BR/language.ts \ 22 ../../../i18n/pt_BR/language.ts \
25 ../../../i18n/sl/language.ts \ 23 ../../../i18n/sl/language.ts \
26 ../../../i18n/zh_CN/language.ts \ 24 ../../../i18n/zh_CN/language.ts \
27 ../../../i18n/zh_TW/language.ts \ 25 ../../../i18n/zh_TW/language.ts \
28 ../../../i18n/da/language.ts 26 ../../../i18n/da/language.ts
29 27
30 28
31 29
32include ( $(OPIEDIR)/include.pro ) 30include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/language/main.cpp b/noncore/settings/language/main.cpp
index a760ff3..8bdf8a5 100644
--- a/noncore/settings/language/main.cpp
+++ b/noncore/settings/language/main.cpp
@@ -1,36 +1,27 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "settings.h" 21#include "settings.h"
22 22
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <opie/oapplicationfactory.h>
24 25
25 26
26int main(int argc, char** argv) 27OPIE_EXPORT_APP( OApplicationFactory<LanguageSettings> )
27{
28 QPEApplication a(argc,argv);
29
30 LanguageSettings dlg;
31
32 a.showMainWidget(&dlg);
33
34 return a.exec();
35}
36
diff --git a/noncore/settings/language/settings.h b/noncore/settings/language/settings.h
index 22cc987..a157d26 100644
--- a/noncore/settings/language/settings.h
+++ b/noncore/settings/language/settings.h
@@ -1,58 +1,60 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#ifndef SETTINGS_H 20#ifndef SETTINGS_H
21#define SETTINGS_H 21#define SETTINGS_H
22 22
23 23
24#include <qstrlist.h> 24#include <qstrlist.h>
25#include <qasciidict.h> 25#include <qasciidict.h>
26#include "languagesettingsbase.h" 26#include "languagesettingsbase.h"
27 27
28class QPEDialogListener; 28class QPEDialogListener;
29 29
30class LanguageSettings : public LanguageSettingsBase 30class LanguageSettings : public LanguageSettingsBase
31{ 31{
32 Q_OBJECT 32 Q_OBJECT
33 33
34public: 34public:
35 LanguageSettings( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 35 LanguageSettings( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
36 ~LanguageSettings(); 36 ~LanguageSettings();
37 37
38 static QString appName() { return QString::fromLatin1("language"); }
39
38protected: 40protected:
39 void accept(); 41 void accept();
40 void reject(); 42 void reject();
41 void done(int); 43 void done(int);
42 44
43 QStrList langAvail; 45 QStrList langAvail;
44 46
45private slots: 47private slots:
46 void applyLanguage(); 48 void applyLanguage();
47 void reset(); 49 void reset();
48 50
49private: 51private:
50 static void setLanguage(const QString&); 52 static void setLanguage(const QString&);
51 static QString actualLanguage; 53 static QString actualLanguage;
52 54
53 QPEDialogListener *dl; 55 QPEDialogListener *dl;
54}; 56};
55 57
56 58
57#endif // SETTINGS_H 59#endif // SETTINGS_H
58 60
diff --git a/noncore/settings/mediummount/main.cpp b/noncore/settings/mediummount/main.cpp
index 118a725..b8cdeaf 100644
--- a/noncore/settings/mediummount/main.cpp
+++ b/noncore/settings/mediummount/main.cpp
@@ -1,17 +1,10 @@
1#include "mediumwidget.h" 1#include "mediumwidget.h"
2#include "mediumglobal.h" 2#include "mediumglobal.h"
3#include "mainwindow.h" 3#include "mainwindow.h"
4 4
5#include <qpixmap.h> 5#include <qpixmap.h>
6#include <qpe/qpeapplication.h> 6#include <qpe/qpeapplication.h>
7#include <opie/oapplicationfactory.h>
7 8
8int main( int argc, char ** argv ) 9OPIE_EXPORT_APP( OApplicationFactory<MediumMountSetting::MainWindow> )
9{
10 QPEApplication a( argc, argv );
11 10
12 MediumMountSetting::MainWindow mw;
13 a.showMainWidget( &mw );
14 mw.showMaximized();
15
16 return a.exec();
17}
diff --git a/noncore/settings/mediummount/mainwindow.h b/noncore/settings/mediummount/mainwindow.h
index 71dac79..9649863 100644
--- a/noncore/settings/mediummount/mainwindow.h
+++ b/noncore/settings/mediummount/mainwindow.h
@@ -1,35 +1,36 @@
1 1
2 2
3#ifndef MediumMountMainwindow_h 3#ifndef MediumMountMainwindow_h
4#define MediumMountMainwindow_h 4#define MediumMountMainwindow_h
5 5
6#include <qlist.h> 6#include <qlist.h>
7#include <qdialog.h> 7#include <qdialog.h>
8 8
9class QVBoxLayout; 9class QVBoxLayout;
10class QTabWidget; 10class QTabWidget;
11 11
12namespace MediumMountSetting { 12namespace MediumMountSetting {
13 class MediumMountWidget; 13 class MediumMountWidget;
14 class MediumGlobalWidget; 14 class MediumGlobalWidget;
15 class MainWindow : public QDialog { 15 class MainWindow : public QDialog {
16 Q_OBJECT 16 Q_OBJECT
17 public: 17 public:
18 MainWindow(QWidget *parent = 0, const char *name = 0 , bool modal = FALSE, WFlags = 0); 18 MainWindow(QWidget *parent = 0, const char *name = 0 , bool modal = FALSE, WFlags = 0);
19 ~MainWindow(); 19 ~MainWindow();
20 static QString appName() { return QString::fromLatin1("mediummount"); }
20 21
21 private slots: 22 private slots:
22 void slotGlobalChanged(int ); 23 void slotGlobalChanged(int );
23 void slotCheckingChanged(int ); 24 void slotCheckingChanged(int );
24 void accept(); 25 void accept();
25 void done( int ); 26 void done( int );
26 private: 27 private:
27 void init(); 28 void init();
28 QTabWidget *m_tab; 29 QTabWidget *m_tab;
29 QVBoxLayout *m_lay; 30 QVBoxLayout *m_lay;
30 MediumGlobalWidget *m_global; 31 MediumGlobalWidget *m_global;
31 QList<MediumMountWidget> m_mediums; 32 QList<MediumMountWidget> m_mediums;
32 }; 33 };
33}; 34};
34 35
35#endif 36#endif
diff --git a/noncore/settings/mediummount/mediummount.pro b/noncore/settings/mediummount/mediummount.pro
index 97bbbaf..6e29fa5 100644
--- a/noncore/settings/mediummount/mediummount.pro
+++ b/noncore/settings/mediummount/mediummount.pro
@@ -1,32 +1,32 @@
1 TEMPLATE= app 1 TEMPLATE= app
2DESTDIR = $(OPIEDIR)/bin/ 2DESTDIR = $(OPIEDIR)/bin/
3 #CONFIG = qt warn_on debug 3 #CONFIG = qt warn_on debug
4 CONFIG = qt warn_on release 4 CONFIG = qt warn_on release quick-app
5 HEADERS = mediumwidget.h mediumglobal.h mainwindow.h 5 HEADERS = mediumwidget.h mediumglobal.h mainwindow.h
6 SOURCES = main.cpp mediumwidget.cc mediumglobal.cc mainwindow.cc 6 SOURCES = main.cpp mediumwidget.cc mediumglobal.cc mainwindow.cc
7 INCLUDEPATH+= $(OPIEDIR)/include 7 INCLUDEPATH+= $(OPIEDIR)/include
8 DEPENDPATH+= $(OPIEDIR)/include 8 DEPENDPATH+= $(OPIEDIR)/include
9LIBS += -lqpe 9LIBS += -lqpe
10TARGET = mediummount 10TARGET = mediummount
11 11
12TRANSLATIONS = ../../../i18n/de/mediummount.ts \ 12TRANSLATIONS = ../../../i18n/de/mediummount.ts \
13 ../../../i18n/nl/mediummount.ts \ 13 ../../../i18n/nl/mediummount.ts \
14 ../../../i18n/da/mediummount.ts \ 14 ../../../i18n/da/mediummount.ts \
15 ../../../i18n/xx/mediummount.ts \ 15 ../../../i18n/xx/mediummount.ts \
16 ../../../i18n/en/mediummount.ts \ 16 ../../../i18n/en/mediummount.ts \
17 ../../../i18n/es/mediummount.ts \ 17 ../../../i18n/es/mediummount.ts \
18 ../../../i18n/fr/mediummount.ts \ 18 ../../../i18n/fr/mediummount.ts \
19 ../../../i18n/hu/mediummount.ts \ 19 ../../../i18n/hu/mediummount.ts \
20 ../../../i18n/ja/mediummount.ts \ 20 ../../../i18n/ja/mediummount.ts \
21 ../../../i18n/ko/mediummount.ts \ 21 ../../../i18n/ko/mediummount.ts \
22 ../../../i18n/no/mediummount.ts \ 22 ../../../i18n/no/mediummount.ts \
23 ../../../i18n/pl/mediummount.ts \ 23 ../../../i18n/pl/mediummount.ts \
24 ../../../i18n/pt/mediummount.ts \ 24 ../../../i18n/pt/mediummount.ts \
25 ../../../i18n/pt_BR/mediummount.ts \ 25 ../../../i18n/pt_BR/mediummount.ts \
26 ../../../i18n/sl/mediummount.ts \ 26 ../../../i18n/sl/mediummount.ts \
27 ../../../i18n/zh_CN/mediummount.ts \ 27 ../../../i18n/zh_CN/mediummount.ts \
28 ../../../i18n/zh_TW/mediummount.ts 28 ../../../i18n/zh_TW/mediummount.ts
29 29
30 30
31 31
32include ( $(OPIEDIR)/include.pro ) 32include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/mediummount/mediumwidget.h b/noncore/settings/mediummount/mediumwidget.h
index 7f7b755..0f27117 100644
--- a/noncore/settings/mediummount/mediumwidget.h
+++ b/noncore/settings/mediummount/mediumwidget.h
@@ -1,78 +1,79 @@
1 1
2#ifndef MediumMountWidget_H 2#ifndef MediumMountWidget_H
3#define MediumMountWidget_H 3#define MediumMountWidget_H
4 4
5//#include <qpixmap.h> 5//#include <qpixmap.h>
6#include <qwidget.h> 6#include <qwidget.h>
7 7
8 8
9class QLabel; 9class QLabel;
10class QPixmap; 10class QPixmap;
11class Config; 11class Config;
12class QGridLayout; 12class QGridLayout;
13class QCheckBox; 13class QCheckBox;
14class QPushButton; 14class QPushButton;
15class QVBoxLayout; 15class QVBoxLayout;
16class QHBoxLayout; 16class QHBoxLayout;
17class QGroupBox; 17class QGroupBox;
18class QVBox; 18class QVBox;
19class QHBox; 19class QHBox;
20class QLineEdit; 20class QLineEdit;
21 21
22namespace MediumMountSetting { 22namespace MediumMountSetting {
23 23
24 class MediumMountWidget : public QWidget { 24 class MediumMountWidget : public QWidget {
25 Q_OBJECT 25 Q_OBJECT
26 public: 26 public:
27 MediumMountWidget(const QString&, const QPixmap &, QWidget *parent, const char *name = 0 ); 27 MediumMountWidget(const QString&, const QPixmap &, QWidget *parent, const char *name = 0 );
28 ~MediumMountWidget(); 28 ~MediumMountWidget();
29
29 30
30 void writeConfig(); 31 void writeConfig();
31 32
32 private slots: 33 private slots:
33 void slotAdd(); 34 void slotAdd();
34 void slotStateChanged(); 35 void slotStateChanged();
35 36
36 private: 37 private:
37 void readConfig(); 38 void readConfig();
38 void initGUI(); 39 void initGUI();
39 40
40 bool m_dirty : 1; 41 bool m_dirty : 1;
41 42
42 class MediumMountWidgetPrivate; 43 class MediumMountWidgetPrivate;
43 MediumMountWidgetPrivate *d; 44 MediumMountWidgetPrivate *d;
44 45
45 QString m_path; 46 QString m_path;
46 47
47 Config *m_config; 48 Config *m_config;
48 49
49 QHBox *m_infoBox; 50 QHBox *m_infoBox;
50 QLabel *m_label; 51 QLabel *m_label;
51 QLabel *m_desc; 52 QLabel *m_desc;
52 53
53 QLineEdit *m_edit; 54 QLineEdit *m_edit;
54 QPushButton *m_add; 55 QPushButton *m_add;
55 56
56 QVBoxLayout *m_box; 57 QVBoxLayout *m_box;
57 QGridLayout *m_checks; 58 QGridLayout *m_checks;
58 59
59 QGroupBox *m_group; 60 QGroupBox *m_group;
60 QCheckBox *m_all; 61 QCheckBox *m_all;
61 QCheckBox *m_audio; 62 QCheckBox *m_audio;
62 QCheckBox *m_image; 63 QCheckBox *m_image;
63 QCheckBox *m_text; 64 QCheckBox *m_text;
64 QCheckBox *m_video; 65 QCheckBox *m_video;
65 66
66 QCheckBox *m_always; 67 QCheckBox *m_always;
67 //QCheckBox *m_yesNo; 68 //QCheckBox *m_yesNo;
68 69
69 QHBox *m_hboxAdd; 70 QHBox *m_hboxAdd;
70 71
71 QLabel *m_lblPath; 72 QLabel *m_lblPath;
72 //////////////// 73 ////////////////
73 74
74 75
75 76
76 }; 77 };
77}; 78};
78#endif 79#endif
diff --git a/noncore/settings/netsystemtime/main.cpp b/noncore/settings/netsystemtime/main.cpp
index 4b20a61..da98eee 100644
--- a/noncore/settings/netsystemtime/main.cpp
+++ b/noncore/settings/netsystemtime/main.cpp
@@ -1,41 +1,35 @@
1/* 1/*
2                This file is part of the OPIE Project 2                This file is part of the OPIE Project
3 =. 3 =.
4             .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> 4             .=l. Copyright (c) 2002 OPIE team <opie@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#include "mainwindow.h" 29#include "mainwindow.h"
30 30
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#include <opie/oapplicationfactory.h>
32 33
33int main( int argc, char ** argv )
34{
35 QPEApplication a( argc, argv );
36 34
37 MainWindow mw; 35OPIE_EXPORT_APP( OApplicationFactory<MainWindow> )
38 a.showMainWidget( &mw );
39
40 return a.exec();
41}
diff --git a/noncore/settings/netsystemtime/mainwindow.cpp b/noncore/settings/netsystemtime/mainwindow.cpp
index 2d240ba..66e1ca3 100644
--- a/noncore/settings/netsystemtime/mainwindow.cpp
+++ b/noncore/settings/netsystemtime/mainwindow.cpp
@@ -1,398 +1,399 @@
1/* 1/*
2                This file is part of the OPIE Project 2                This file is part of the OPIE Project
3 =. 3 =.
4             .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> 4             .=l. Copyright (c) 2002 OPIE team <opie@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#include "mainwindow.h" 29#include "mainwindow.h"
30#include "timetabwidget.h" 30#include "timetabwidget.h"
31#include "formattabwidget.h" 31#include "formattabwidget.h"
32#include "settingstabwidget.h" 32#include "settingstabwidget.h"
33#include "ntptabwidget.h" 33#include "ntptabwidget.h"
34#include "predicttabwidget.h" 34#include "predicttabwidget.h"
35 35
36#include <opie/oprocess.h> 36#include <opie/oprocess.h>
37#include <opie/otabwidget.h> 37#include <opie/otabwidget.h>
38 38
39#include <qpe/config.h> 39#include <qpe/config.h>
40#include <qpe/datebookdb.h> 40#include <qpe/datebookdb.h>
41#include <qpe/qpeapplication.h> 41#include <qpe/qpeapplication.h>
42#include <qpe/qpedialog.h>
42 43
43#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) 44#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
44#include <qpe/qcopenvelope_qws.h> 45#include <qpe/qcopenvelope_qws.h>
45#endif 46#endif
46 47
47#include <qlayout.h> 48#include <qlayout.h>
48#include <qmessagebox.h> 49#include <qmessagebox.h>
49#include <qsocket.h> 50#include <qsocket.h>
50#include <qstring.h> 51#include <qstring.h>
51#include <qtimer.h> 52#include <qtimer.h>
52 53
53MainWindow::MainWindow() 54MainWindow::MainWindow( QWidget *parent , const char *name, bool modal, WFlags f )
54 : QDialog( 0x0, 0x0, TRUE, 0 ) 55 : QDialog( 0x0, 0x0, TRUE, 0 )
55{ 56{
56 setCaption( tr( "SystemTime" ) ); 57 setCaption( tr( "SystemTime" ) );
57 58
58 QVBoxLayout *layout = new QVBoxLayout( this ); 59 QVBoxLayout *layout = new QVBoxLayout( this );
59 layout->setMargin( 2 ); 60 layout->setMargin( 2 );
60 layout->setSpacing( 4 ); 61 layout->setSpacing( 4 );
61 62
62 // Create main tabbed control 63 // Create main tabbed control
63 mainWidget = new OTabWidget( this ); 64 mainWidget = new OTabWidget( this );
64 65
65 // Default object pointers to null 66 // Default object pointers to null
66 ntpProcess = 0x0; 67 ntpProcess = 0x0;
67 ntpTab = 0x0; 68 ntpTab = 0x0;
68 69
69 // Add tab widgets 70 // Add tab widgets
70 mainWidget->addTab( timeTab = new TimeTabWidget( mainWidget ), "netsystemtime/DateTime", tr( "Time" ) ); 71 mainWidget->addTab( timeTab = new TimeTabWidget( mainWidget ), "netsystemtime/DateTime", tr( "Time" ) );
71 mainWidget->addTab( formatTab = new FormatTabWidget( mainWidget ), "netsystemtime/formattab", tr( "Format" ) ); 72 mainWidget->addTab( formatTab = new FormatTabWidget( mainWidget ), "netsystemtime/formattab", tr( "Format" ) );
72 mainWidget->addTab( settingsTab = new SettingsTabWidget( mainWidget ), "SettingsIcon", tr( "Settings" ) ); 73 mainWidget->addTab( settingsTab = new SettingsTabWidget( mainWidget ), "SettingsIcon", tr( "Settings" ) );
73 mainWidget->addTab( predictTab = new PredictTabWidget( mainWidget ), "netsystemtime/predicttab", tr( "Predict" ) ); 74 mainWidget->addTab( predictTab = new PredictTabWidget( mainWidget ), "netsystemtime/predicttab", tr( "Predict" ) );
74 Config config( "ntp" ); 75 Config config( "ntp" );
75 config.setGroup( "settings" ); 76 config.setGroup( "settings" );
76 slotDisplayNTPTab( config.readBoolEntry( "displayNtpTab", FALSE ) ); 77 slotDisplayNTPTab( config.readBoolEntry( "displayNtpTab", FALSE ) );
77 slotDisplayPredictTab( config.readBoolEntry( "displayPredictTab", FALSE ) ); 78 slotDisplayPredictTab( config.readBoolEntry( "displayPredictTab", FALSE ) );
78 79
79 mainWidget->setCurrentTab( tr( "Time" ) ); 80 mainWidget->setCurrentTab( tr( "Time" ) );
80 layout->addWidget( mainWidget ); 81 layout->addWidget( mainWidget );
81 82
82 // Create QCOP channel 83 connect( qApp, SIGNAL(appMessage(const QCString&, const QByteArray&)),
83 QCopChannel *channel = new QCopChannel( "QPE/Application/netsystemtime", this ); 84 this, SLOT(slotQCopReceive(const QCString&, const QByteArray&)) );
84 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), 85
85 this, SLOT(slotQCopReceive(const QCString&, const QByteArray&)) );
86 86
87 // Create NTP socket 87 // Create NTP socket
88 ntpSock = new QSocket( this ); 88 ntpSock = new QSocket( this );
89 connect( ntpSock, SIGNAL(error(int)),SLOT(slotCheckNtp(int)) ); 89 connect( ntpSock, SIGNAL(error(int)),SLOT(slotCheckNtp(int)) );
90 slotProbeNTPServer(); 90 slotProbeNTPServer();
91 91
92 // Create timer for automatic time lookups 92 // Create timer for automatic time lookups
93 ntpTimer = new QTimer( this ); 93 ntpTimer = new QTimer( this );
94 94
95 // Connect everything together 95 // Connect everything together
96 connect( timeTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) ); 96 connect( timeTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) );
97 connect( timeTab, SIGNAL(tzChanged(const QString &)), predictTab, SLOT(slotTZChanged(const QString &)) ); 97 connect( timeTab, SIGNAL(tzChanged(const QString &)), predictTab, SLOT(slotTZChanged(const QString &)) );
98 connect( timeTab, SIGNAL(getPredictedTime()), predictTab, SLOT(slotSetPredictedTime()) ); 98 connect( timeTab, SIGNAL(getPredictedTime()), predictTab, SLOT(slotSetPredictedTime()) );
99 connect( formatTab, SIGNAL(show12HourTime(int)), timeTab, SLOT(slotUse12HourTime( int )) ); 99 connect( formatTab, SIGNAL(show12HourTime(int)), timeTab, SLOT(slotUse12HourTime( int )) );
100 connect( formatTab, SIGNAL(dateFormatChanged(const DateFormat &)), 100 connect( formatTab, SIGNAL(dateFormatChanged(const DateFormat &)),
101 timeTab, SLOT(slotDateFormatChanged(const DateFormat &)) ); 101 timeTab, SLOT(slotDateFormatChanged(const DateFormat &)) );
102 connect( formatTab, SIGNAL(weekStartChanged(int)), timeTab, SLOT(slotWeekStartChanged(int)) ); 102 connect( formatTab, SIGNAL(weekStartChanged(int)), timeTab, SLOT(slotWeekStartChanged(int)) );
103 connect( settingsTab, SIGNAL(ntpDelayChanged(int)), this, SLOT(slotNTPDelayChanged(int)) ); 103 connect( settingsTab, SIGNAL(ntpDelayChanged(int)), this, SLOT(slotNTPDelayChanged(int)) );
104 connect( settingsTab, SIGNAL(displayNTPTab(bool)), this, SLOT(slotDisplayNTPTab(bool)) ); 104 connect( settingsTab, SIGNAL(displayNTPTab(bool)), this, SLOT(slotDisplayNTPTab(bool)) );
105 connect( settingsTab, SIGNAL(displayPredictTab(bool)), this, SLOT(slotDisplayPredictTab(bool)) ); 105 connect( settingsTab, SIGNAL(displayPredictTab(bool)), this, SLOT(slotDisplayPredictTab(bool)) );
106 connect( predictTab, SIGNAL(setTime(const QDateTime &)), this, SLOT(slotSetTime(const QDateTime &)) ); 106 connect( predictTab, SIGNAL(setTime(const QDateTime &)), this, SLOT(slotSetTime(const QDateTime &)) );
107 107
108 // Do initial time server check 108 // Do initial time server check
109 slotNTPDelayChanged( config.readNumEntry( "ntpRefreshFreq", 1440 ) ); 109 slotNTPDelayChanged( config.readNumEntry( "ntpRefreshFreq", 1440 ) );
110 slotCheckNtp( -1 ); 110 slotCheckNtp( -1 );
111 111
112 // Display app 112 // Display app
113 showMaximized(); 113 //showMaximized();
114 (void)new QPEDialogListener(this);
114} 115}
115 116
116MainWindow::~MainWindow() 117MainWindow::~MainWindow()
117{ 118{
118 if ( ntpProcess ) 119 if ( ntpProcess )
119 delete ntpProcess; 120 delete ntpProcess;
120} 121}
121 122
122void MainWindow::accept() 123void MainWindow::accept()
123{ 124{
124 // Turn off the screensaver (Note: needs to be encased in { } so that it deconstructs and sends) 125 // Turn off the screensaver (Note: needs to be encased in { } so that it deconstructs and sends)
125 { 126 {
126 QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); 127 QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
127 disableScreenSaver << 0 << 0 << 0; 128 disableScreenSaver << 0 << 0 << 0;
128 } 129 }
129 130
130 // Update the systemtime 131 // Update the systemtime
131 timeTab->saveSettings( TRUE ); 132 timeTab->saveSettings( TRUE );
132 133
133 // Save format options 134 // Save format options
134 formatTab->saveSettings( TRUE ); 135 formatTab->saveSettings( TRUE );
135 136
136 // Save settings options 137 // Save settings options
137 settingsTab->saveSettings(); 138 settingsTab->saveSettings();
138 139
139 // Since time has changed quickly load in the DateBookDB to allow the alarm server to get a better 140 // Since time has changed quickly load in the DateBookDB to allow the alarm server to get a better
140 // grip on itself (example re-trigger alarms for when we travel back in time). 141 // grip on itself (example re-trigger alarms for when we travel back in time).
141 DateBookDB db; 142 DateBookDB db;
142 143
143 // Turn back on the screensaver 144 // Turn back on the screensaver
144 QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); 145 QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
145 enableScreenSaver << -1 << -1 << -1; 146 enableScreenSaver << -1 << -1 << -1;
146 147
147 // Exit app 148 // Exit app
148 qApp->quit(); 149 qApp->quit();
149} 150}
150 151
151void MainWindow::reject() 152void MainWindow::reject()
152{ 153{
153 // Reset time settings 154 // Reset time settings
154 timeTab->saveSettings( FALSE ); 155 timeTab->saveSettings( FALSE );
155 156
156 // Send notifications but do not save settings 157 // Send notifications but do not save settings
157 formatTab->saveSettings( FALSE ); 158 formatTab->saveSettings( FALSE );
158 159
159 // Exit app 160 // Exit app
160 qApp->quit(); 161 qApp->quit();
161} 162}
162 163
163void MainWindow::runNTP() 164void MainWindow::runNTP()
164{ 165{
165 if ( !ntpDelayElapsed() && ntpInteractive ) 166 if ( !ntpDelayElapsed() && ntpInteractive )
166 { 167 {
167 QString msg = tr( "You asked for a delay of %1 minutes, but only %2 minutes elapsed since last lookup.<br>Continue?" ).arg( QString::number( ntpDelay ) ).arg( QString::number( _lookupDiff / 60 ) ); 168 QString msg = tr( "You asked for a delay of %1 minutes, but only %2 minutes elapsed since last lookup.<br>Continue?" ).arg( QString::number( ntpDelay ) ).arg( QString::number( _lookupDiff / 60 ) );
168 169
169 switch ( 170 switch (
170 QMessageBox::warning( this, tr( "Continue?" ), msg, QMessageBox::Yes, QMessageBox::No ) 171 QMessageBox::warning( this, tr( "Continue?" ), msg, QMessageBox::Yes, QMessageBox::No )
171 ) 172 )
172 { 173 {
173 case QMessageBox::Yes: break; 174 case QMessageBox::Yes: break;
174 case QMessageBox::No: return; 175 case QMessageBox::No: return;
175 default: return; 176 default: return;
176 } 177 }
177 } 178 }
178 179
179 QString srv = settingsTab->ntpServer(); 180 QString srv = settingsTab->ntpServer();
180 181
181 // Send information to time server tab if enabled 182 // Send information to time server tab if enabled
182 if ( ntpTabEnabled ) 183 if ( ntpTabEnabled )
183 { 184 {
184 ntpTab->setStartTime( QDateTime::currentDateTime().toString() ); 185 ntpTab->setStartTime( QDateTime::currentDateTime().toString() );
185 QString output = tr( "Running:\nntpdate " ); 186 QString output = tr( "Running:\nntpdate " );
186 output.append( srv ); 187 output.append( srv );
187 ntpTab->addNtpOutput( output ); 188 ntpTab->addNtpOutput( output );
188 } 189 }
189 190
190 if ( !ntpProcess ) 191 if ( !ntpProcess )
191 { 192 {
192 ntpProcess = new OProcess(); 193 ntpProcess = new OProcess();
193 connect( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)), 194 connect( ntpProcess, SIGNAL(receivedStdout(OProcess*,char*,int)),
194 this, SLOT(slotNtpOutput(OProcess*,char*,int)) ); 195 this, SLOT(slotNtpOutput(OProcess*,char*,int)) );
195 connect( ntpProcess, SIGNAL(processExited(OProcess*)), 196 connect( ntpProcess, SIGNAL(processExited(OProcess*)),
196 this, SLOT(slotNtpFinished(OProcess*)) ); 197 this, SLOT(slotNtpFinished(OProcess*)) );
197 } 198 }
198 199
199 else 200 else
200 ntpProcess->clearArguments(); 201 ntpProcess->clearArguments();
201 202
202 *ntpProcess << "ntpdate" << srv; 203 *ntpProcess << "ntpdate" << srv;
203 bool ret = ntpProcess->start( OProcess::NotifyOnExit, OProcess::AllOutput ); 204 bool ret = ntpProcess->start( OProcess::NotifyOnExit, OProcess::AllOutput );
204 if ( !ret ) 205 if ( !ret )
205 { 206 {
206 QMessageBox::critical( this, tr( "Error" ), tr( "Error while getting time from network." ) ); 207 QMessageBox::critical( this, tr( "Error" ), tr( "Error while getting time from network." ) );
207 if ( ntpTabEnabled ) 208 if ( ntpTabEnabled )
208 ntpTab->addNtpOutput( tr( "Error while executing ntpdate" ) ); 209 ntpTab->addNtpOutput( tr( "Error while executing ntpdate" ) );
209 } 210 }
210} 211}
211 212
212bool MainWindow::ntpDelayElapsed() 213bool MainWindow::ntpDelayElapsed()
213{ 214{
214 // Determine if time elapsed is greater than time delay 215 // Determine if time elapsed is greater than time delay
215 Config config( "ntp" ); 216 Config config( "ntp" );
216 config.setGroup( "lookups" ); 217 config.setGroup( "lookups" );
217 _lookupDiff = TimeConversion::toUTC( QDateTime::currentDateTime() ) - config.readNumEntry( "time", 0 ); 218 _lookupDiff = TimeConversion::toUTC( QDateTime::currentDateTime() ) - config.readNumEntry( "time", 0 );
218 if ( _lookupDiff < 0 ) 219 if ( _lookupDiff < 0 )
219 return true; 220 return true;
220 return ( _lookupDiff - ( ntpDelay * 60) ) > 0; 221 return ( _lookupDiff - ( ntpDelay * 60) ) > 0;
221} 222}
222 223
223void MainWindow::slotSetTime( const QDateTime &dt ) 224void MainWindow::slotSetTime( const QDateTime &dt )
224{ 225{
225 timeTab->setDateTime( dt ); 226 timeTab->setDateTime( dt );
226} 227}
227 228
228void MainWindow::slotQCopReceive( const QCString &msg, const QByteArray & ) 229void MainWindow::slotQCopReceive( const QCString &msg, const QByteArray & )
229{ 230{
230 if ( msg == "ntpLookup(QString)" ) 231 if ( msg == "ntpLookup(QString)" )
231 { 232 {
232 ntpInteractive = false; 233 ntpInteractive = false;
233 runNTP(); 234 runNTP();
234 } 235 }
235 if ( msg == "setPredictedTime(QString)" ) 236 if ( msg == "setPredictedTime(QString)" )
236 { 237 {
237 //setPredictTime(); 238 //setPredictTime();
238 } 239 }
239} 240}
240 241
241void MainWindow::slotDisplayNTPTab( bool display ) 242void MainWindow::slotDisplayNTPTab( bool display )
242{ 243{
243 ntpTabEnabled = display; 244 ntpTabEnabled = display;
244 245
245 // Create widget if it hasn't needed 246 // Create widget if it hasn't needed
246 if ( display && !ntpTab ) 247 if ( display && !ntpTab )
247 { 248 {
248 ntpTab = new NTPTabWidget( mainWidget ); 249 ntpTab = new NTPTabWidget( mainWidget );
249 connect( ntpTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) ); 250 connect( ntpTab, SIGNAL(getNTPTime()), this, SLOT(slotGetNTPTime()) );
250 } 251 }
251 252
252 // Display/hide tab 253 // Display/hide tab
253 display ? mainWidget->addTab( ntpTab, "netsystemtime/ntptab", tr( "Time Server" ) ) 254 display ? mainWidget->addTab( ntpTab, "netsystemtime/ntptab", tr( "Time Server" ) )
254 : mainWidget->removePage( ntpTab ); 255 : mainWidget->removePage( ntpTab );
255} 256}
256 257
257void MainWindow::slotDisplayPredictTab( bool display ) 258void MainWindow::slotDisplayPredictTab( bool display )
258{ 259{
259 predictTabEnabled = display; 260 predictTabEnabled = display;
260 261
261 // Create widget if it hasn't needed 262 // Create widget if it hasn't needed
262 if ( display && !predictTab ) 263 if ( display && !predictTab )
263 { 264 {
264 } 265 }
265 // Display/hide tab 266 // Display/hide tab
266 display ? mainWidget->addTab( predictTab, "netsystemtime/predicttab", tr( "Predict" ) ) 267 display ? mainWidget->addTab( predictTab, "netsystemtime/predicttab", tr( "Predict" ) )
267 : mainWidget->removePage( predictTab ); 268 : mainWidget->removePage( predictTab );
268} 269}
269 270
270void MainWindow::slotGetNTPTime() 271void MainWindow::slotGetNTPTime()
271{ 272{
272 ntpInteractive = TRUE; 273 ntpInteractive = TRUE;
273 runNTP(); 274 runNTP();
274} 275}
275 276
276void MainWindow::slotTimerGetNTPTime() 277void MainWindow::slotTimerGetNTPTime()
277{ 278{
278 ntpInteractive = FALSE; 279 ntpInteractive = FALSE;
279 runNTP(); 280 runNTP();
280} 281}
281 282
282void MainWindow::slotProbeNTPServer() 283void MainWindow::slotProbeNTPServer()
283{ 284{
284 ntpSock->connectToHost( settingsTab->ntpServer(), 123 ); 285 ntpSock->connectToHost( settingsTab->ntpServer(), 123 );
285} 286}
286 287
287void MainWindow::slotNtpOutput( OProcess *, char *buffer, int buflen ) 288void MainWindow::slotNtpOutput( OProcess *, char *buffer, int buflen )
288{ 289{
289 QString output = QString( buffer ).left( buflen ); 290 QString output = QString( buffer ).left( buflen );
290 ntpOutput.append( output ); 291 ntpOutput.append( output );
291 292
292 if ( ntpTabEnabled ) 293 if ( ntpTabEnabled )
293 ntpTab->addNtpOutput( output ); 294 ntpTab->addNtpOutput( output );
294} 295}
295 296
296void MainWindow::slotNtpFinished( OProcess *p ) 297void MainWindow::slotNtpFinished( OProcess *p )
297{ 298{
298 QString output; 299 QString output;
299 QDateTime dt = QDateTime::currentDateTime(); 300 QDateTime dt = QDateTime::currentDateTime();
300 301
301 // Verify run was successful 302 // Verify run was successful
302 if ( p->exitStatus() != 0 || !p->normalExit() ) 303 if ( p->exitStatus() != 0 || !p->normalExit() )
303 { 304 {
304 if ( isVisible() && ntpInteractive ) 305 if ( isVisible() && ntpInteractive )
305 { 306 {
306 output = tr( "Error while getting time from\n server: " ); 307 output = tr( "Error while getting time from\n server: " );
307 output.append( settingsTab->ntpServer() ); 308 output.append( settingsTab->ntpServer() );
308 QMessageBox::critical(this, tr( "Error" ), output ); 309 QMessageBox::critical(this, tr( "Error" ), output );
309 } 310 }
310 // slotCheckNtp(-1); 311 // slotCheckNtp(-1);
311 return; 312 return;
312 } 313 }
313 314
314 // Set controls on time tab to new time value 315 // Set controls on time tab to new time value
315 timeTab->setDateTime( dt ); 316 timeTab->setDateTime( dt );
316 317
317 // Write out lookup information 318 // Write out lookup information
318 Config config( "ntp" ); 319 Config config( "ntp" );
319 config.setGroup( "lookups" ); 320 config.setGroup( "lookups" );
320 int lastLookup = config.readNumEntry( "time", 0 ); 321 int lastLookup = config.readNumEntry( "time", 0 );
321 int lookupCount = config.readNumEntry( "count", 0 ); 322 int lookupCount = config.readNumEntry( "count", 0 );
322 bool lastNtp = config.readBoolEntry( "lastNtp", FALSE ); 323 bool lastNtp = config.readBoolEntry( "lastNtp", FALSE );
323 int time = TimeConversion::toUTC( QDateTime::currentDateTime() ); 324 int time = TimeConversion::toUTC( QDateTime::currentDateTime() );
324 config.writeEntry( "time", time ); 325 config.writeEntry( "time", time );
325 326
326 // Calculate new time/time shift 327 // Calculate new time/time shift
327 QString _offset = "offset"; 328 QString _offset = "offset";
328 QString _sec = "sec"; 329 QString _sec = "sec";
329 QRegExp _reOffset = QRegExp( _offset ); 330 QRegExp _reOffset = QRegExp( _offset );
330 QRegExp _reEndOffset = QRegExp( _sec ); 331 QRegExp _reEndOffset = QRegExp( _sec );
331 int posOffset = _reOffset.match( ntpOutput ); 332 int posOffset = _reOffset.match( ntpOutput );
332 int posEndOffset = _reEndOffset.match( ntpOutput, posOffset ); 333 int posEndOffset = _reEndOffset.match( ntpOutput, posOffset );
333 posOffset += _offset.length() + 1; 334 posOffset += _offset.length() + 1;
334 QString diff = ntpOutput.mid( posOffset, posEndOffset - posOffset - 1 ); 335 QString diff = ntpOutput.mid( posOffset, posEndOffset - posOffset - 1 );
335 336
336 float timeShift = diff.toFloat(); 337 float timeShift = diff.toFloat();
337 if ( timeShift == 0.0 ) 338 if ( timeShift == 0.0 )
338 return; 339 return;
339 int secsSinceLast = time - lastLookup; 340 int secsSinceLast = time - lastLookup;
340 output = tr( "%1 seconds").arg(QString::number( timeShift )); 341 output = tr( "%1 seconds").arg(QString::number( timeShift ));
341 342
342 // Display information on time server tab 343 // Display information on time server tab
343 if ( ntpTabEnabled ) 344 if ( ntpTabEnabled )
344 { 345 {
345 ntpTab->setTimeShift( output ); 346 ntpTab->setTimeShift( output );
346 ntpTab->setNewTime( dt.toString() ); 347 ntpTab->setNewTime( dt.toString() );
347 } 348 }
348 349
349 if ( lastNtp && lastLookup > 0 && secsSinceLast > 60 * ntpDelay ) 350 if ( lastNtp && lastLookup > 0 && secsSinceLast > 60 * ntpDelay )
350 { 351 {
351 QString grpname = QString( "lookup_" ).append( QString::number( lookupCount ) ); 352 QString grpname = QString( "lookup_" ).append( QString::number( lookupCount ) );
352 config.setGroup( grpname ); 353 config.setGroup( grpname );
353 lookupCount++; 354 lookupCount++;
354 predictTab->setShiftPerSec( timeShift / secsSinceLast ); 355 predictTab->setShiftPerSec( timeShift / secsSinceLast );
355 config.writeEntry( "secsSinceLast", secsSinceLast ); 356 config.writeEntry( "secsSinceLast", secsSinceLast );
356 config.writeEntry( "timeShift", QString::number( timeShift ) ); 357 config.writeEntry( "timeShift", QString::number( timeShift ) );
357 config.setGroup( "lookups" ); 358 config.setGroup( "lookups" );
358 config.writeEntry( "count", lookupCount ); 359 config.writeEntry( "count", lookupCount );
359 config.writeEntry( "lastNtp", TRUE ); 360 config.writeEntry( "lastNtp", TRUE );
360 } 361 }
361} 362}
362 363
363void MainWindow::slotNTPDelayChanged( int delay ) 364void MainWindow::slotNTPDelayChanged( int delay )
364{ 365{
365 ntpTimer->changeInterval( delay * 1000 * 60 ); 366 ntpTimer->changeInterval( delay * 1000 * 60 );
366 ntpDelay = delay; 367 ntpDelay = delay;
367} 368}
368 369
369void MainWindow::slotCheckNtp( int i ) 370void MainWindow::slotCheckNtp( int i )
370{ 371{
371 if ( i == 0 ) 372 if ( i == 0 )
372 { 373 {
373 if ( ntpDelayElapsed() ) 374 if ( ntpDelayElapsed() )
374 { 375 {
375 runNTP(); 376 runNTP();
376 disconnect( ntpTimer, SIGNAL(timeout()), this, SLOT(slotProbeNTPServer()) ); 377 disconnect( ntpTimer, SIGNAL(timeout()), this, SLOT(slotProbeNTPServer()) );
377 connect( ntpTimer, SIGNAL(timeout()), SLOT(slotTimerGetNTPTime()) ); 378 connect( ntpTimer, SIGNAL(timeout()), SLOT(slotTimerGetNTPTime()) );
378 } 379 }
379 else 380 else
380 { 381 {
381 disconnect(ntpTimer, SIGNAL(timeout()), this, SLOT(slotTimerGetNTPTime()) ); 382 disconnect(ntpTimer, SIGNAL(timeout()), this, SLOT(slotTimerGetNTPTime()) );
382 connect(ntpTimer, SIGNAL(timeout()), SLOT(slotProbeNTPServer()) ); 383 connect(ntpTimer, SIGNAL(timeout()), SLOT(slotProbeNTPServer()) );
383 } 384 }
384 } 385 }
385 else 386 else
386 { 387 {
387 predictTab->slotPredictTime(); 388 predictTab->slotPredictTime();
388 if ( i > 0 ) 389 if ( i > 0 )
389 { 390 {
390 QString output = tr( "Could not connect to server " ); 391 QString output = tr( "Could not connect to server " );
391 output.append( settingsTab->ntpServer() ); 392 output.append( settingsTab->ntpServer() );
392 ntpOutput.append( output ); 393 ntpOutput.append( output );
393 if ( ntpTabEnabled ) 394 if ( ntpTabEnabled )
394 ntpTab->addNtpOutput( output ); 395 ntpTab->addNtpOutput( output );
395 } 396 }
396 connect( ntpTimer, SIGNAL(timeout()), SLOT(slotProbeNTPServer()) ); 397 connect( ntpTimer, SIGNAL(timeout()), SLOT(slotProbeNTPServer()) );
397 } 398 }
398} 399}
diff --git a/noncore/settings/netsystemtime/mainwindow.h b/noncore/settings/netsystemtime/mainwindow.h
index fa94335..1cdbc1a 100644
--- a/noncore/settings/netsystemtime/mainwindow.h
+++ b/noncore/settings/netsystemtime/mainwindow.h
@@ -1,95 +1,96 @@
1/* 1/*
2                This file is part of the OPIE Project 2                This file is part of the OPIE Project
3 =. 3 =.
4             .=l. Copyright (c) 2002 OPIE team <opie@handhelds.org?> 4             .=l. Copyright (c) 2002 OPIE team <opie@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 MAINWINDOW_H 29#ifndef MAINWINDOW_H
30#define MAINWINDOW_H 30#define MAINWINDOW_H
31 31
32#include <qdialog.h> 32#include <qdialog.h>
33 33
34class TimeTabWidget; 34class TimeTabWidget;
35class FormatTabWidget; 35class FormatTabWidget;
36class SettingsTabWidget; 36class SettingsTabWidget;
37class NTPTabWidget; 37class NTPTabWidget;
38class PredictTabWidget; 38class PredictTabWidget;
39 39
40class OProcess; 40class OProcess;
41class OTabWidget; 41class OTabWidget;
42class QDateTime; 42class QDateTime;
43class QSocket; 43class QSocket;
44class QTimer; 44class QTimer;
45 45
46class MainWindow : public QDialog 46class MainWindow : public QDialog
47{ 47{
48 Q_OBJECT 48 Q_OBJECT
49 49
50public: 50public:
51 MainWindow(); 51 MainWindow( QWidget *parent = 0, const char *name = 0, bool modal = FALSE,WFlags f = 0);
52 ~MainWindow(); 52 ~MainWindow();
53 static QString appName() { return QString::fromLatin1("systemtime"); }
53 54
54protected: 55protected:
55 void accept(); 56 void accept();
56 void reject(); 57 void reject();
57 58
58private: 59private:
59 OTabWidget *mainWidget; 60 OTabWidget *mainWidget;
60 61
61 TimeTabWidget *timeTab; 62 TimeTabWidget *timeTab;
62 FormatTabWidget *formatTab; 63 FormatTabWidget *formatTab;
63 SettingsTabWidget *settingsTab; 64 SettingsTabWidget *settingsTab;
64 NTPTabWidget *ntpTab; 65 NTPTabWidget *ntpTab;
65 PredictTabWidget *predictTab; 66 PredictTabWidget *predictTab;
66 67
67 bool ntpTabEnabled; 68 bool ntpTabEnabled;
68 bool predictTabEnabled; 69 bool predictTabEnabled;
69 70
70 OProcess *ntpProcess; 71 OProcess *ntpProcess;
71 QTimer *ntpTimer; 72 QTimer *ntpTimer;
72 QSocket *ntpSock; 73 QSocket *ntpSock;
73 int ntpDelay; 74 int ntpDelay;
74 bool ntpInteractive; 75 bool ntpInteractive;
75 QString ntpOutput; 76 QString ntpOutput;
76 int _lookupDiff; 77 int _lookupDiff;
77 78
78 void runNTP(); 79 void runNTP();
79 bool ntpDelayElapsed(); 80 bool ntpDelayElapsed();
80 81
81private slots: 82private slots:
82 void slotSetTime( const QDateTime & ); 83 void slotSetTime( const QDateTime & );
83 void slotQCopReceive( const QCString &, const QByteArray & ); 84 void slotQCopReceive( const QCString &, const QByteArray & );
84 void slotDisplayNTPTab( bool ); 85 void slotDisplayNTPTab( bool );
85 void slotDisplayPredictTab( bool ); 86 void slotDisplayPredictTab( bool );
86 void slotGetNTPTime(); 87 void slotGetNTPTime();
87 void slotTimerGetNTPTime(); 88 void slotTimerGetNTPTime();
88 void slotProbeNTPServer(); 89 void slotProbeNTPServer();
89 void slotNtpOutput( OProcess *, char *, int ); 90 void slotNtpOutput( OProcess *, char *, int );
90 void slotNtpFinished( OProcess* ); 91 void slotNtpFinished( OProcess* );
91 void slotNTPDelayChanged( int ); 92 void slotNTPDelayChanged( int );
92 void slotCheckNtp( int ); 93 void slotCheckNtp( int );
93}; 94};
94 95
95#endif 96#endif
diff --git a/noncore/settings/netsystemtime/netsystemtime.pro b/noncore/settings/netsystemtime/netsystemtime.pro
index 7a12dd1..2140f2e 100644
--- a/noncore/settings/netsystemtime/netsystemtime.pro
+++ b/noncore/settings/netsystemtime/netsystemtime.pro
@@ -1,44 +1,41 @@
1 TEMPLATE= app 1 CONFIG = qt warn_on release quick-app
2 CONFIG = qt warn_on debug
3 #CONFIG = qt warn_on release
4 HEADERS = mainwindow.h \ 2 HEADERS = mainwindow.h \
5 timetabwidget.h \ 3 timetabwidget.h \
6 formattabwidget.h \ 4 formattabwidget.h \
7 settingstabwidget.h \ 5 settingstabwidget.h \
8 predicttabwidget.h \ 6 predicttabwidget.h \
9 ntptabwidget.h 7 ntptabwidget.h
10 SOURCES = main.cpp \ 8 SOURCES = main.cpp \
11 mainwindow.cpp \ 9 mainwindow.cpp \
12 timetabwidget.cpp \ 10 timetabwidget.cpp \
13 formattabwidget.cpp \ 11 formattabwidget.cpp \
14 settingstabwidget.cpp \ 12 settingstabwidget.cpp \
15 predicttabwidget.cpp \ 13 predicttabwidget.cpp \
16 ntptabwidget.cpp 14 ntptabwidget.cpp
17 INCLUDEPATH+= $(OPIEDIR)/include 15 INCLUDEPATH+= $(OPIEDIR)/include
18 DEPENDPATH+= $(OPIEDIR)/include 16 DEPENDPATH+= $(OPIEDIR)/include
19 LIBS += -lqpe -lopie 17 LIBS += -lqpe -lopie
20 INTERFACES= 18
21 DESTDIR = $(OPIEDIR)/bin
22 TARGET = systemtime 19 TARGET = systemtime
23 20
24TRANSLATIONS = ../../../i18n/de/systemtime.ts \ 21TRANSLATIONS = ../../../i18n/de/systemtime.ts \
25 ../../../i18n/nl/systemtime.ts \ 22 ../../../i18n/nl/systemtime.ts \
26 ../../../i18n/da/systemtime.ts \ 23 ../../../i18n/da/systemtime.ts \
27 ../../../i18n/xx/systemtime.ts \ 24 ../../../i18n/xx/systemtime.ts \
28 ../../../i18n/en/systemtime.ts \ 25 ../../../i18n/en/systemtime.ts \
29 ../../../i18n/es/systemtime.ts \ 26 ../../../i18n/es/systemtime.ts \
30 ../../../i18n/fr/systemtime.ts \ 27 ../../../i18n/fr/systemtime.ts \
31 ../../../i18n/hu/systemtime.ts \ 28 ../../../i18n/hu/systemtime.ts \
32 ../../../i18n/ja/systemtime.ts \ 29 ../../../i18n/ja/systemtime.ts \
33 ../../../i18n/ko/systemtime.ts \ 30 ../../../i18n/ko/systemtime.ts \
34 ../../../i18n/no/systemtime.ts \ 31 ../../../i18n/no/systemtime.ts \
35 ../../../i18n/pl/systemtime.ts \ 32 ../../../i18n/pl/systemtime.ts \
36 ../../../i18n/pt/systemtime.ts \ 33 ../../../i18n/pt/systemtime.ts \
37 ../../../i18n/pt_BR/systemtime.ts \ 34 ../../../i18n/pt_BR/systemtime.ts \
38 ../../../i18n/sl/systemtime.ts \ 35 ../../../i18n/sl/systemtime.ts \
39 ../../../i18n/zh_CN/systemtime.ts \ 36 ../../../i18n/zh_CN/systemtime.ts \
40 ../../../i18n/zh_TW/systemtime.ts 37 ../../../i18n/zh_TW/systemtime.ts
41 38
42 39
43 40
44include ( $(OPIEDIR)/include.pro ) 41include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/sound/main.cpp b/noncore/settings/sound/main.cpp
index 33b0523..d919ce4 100644
--- a/noncore/settings/sound/main.cpp
+++ b/noncore/settings/sound/main.cpp
@@ -1,33 +1,29 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "soundsettings.h" 21#include "soundsettings.h"
22 22
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <opie/oapplicationfactory.h>
25
26OPIE_EXPORT_APP( OApplicationFactory<SoundSettings> )
24 27
25 28
26int main(int argc, char** argv)
27{
28 QPEApplication a(argc,argv);
29 SoundSettings dlg;
30 a.showMainWidget(&dlg);
31 return a.exec();
32}
33 29
diff --git a/noncore/settings/sound/sound.pro b/noncore/settings/sound/sound.pro
index 48c612e..c0a1ed3 100644
--- a/noncore/settings/sound/sound.pro
+++ b/noncore/settings/sound/sound.pro
@@ -1,32 +1,30 @@
1TEMPLATE = app 1CONFIG += qt warn_on release quick-app
2CONFIG += qt warn_on release
3DESTDIR = $(OPIEDIR)/bin
4HEADERS = soundsettings.h soundsettingsbase.h 2HEADERS = soundsettings.h soundsettingsbase.h
5SOURCES = soundsettings.cpp soundsettingsbase.cpp main.cpp 3SOURCES = soundsettings.cpp soundsettingsbase.cpp main.cpp
6#INTERFACES = soundsettingsbase.ui 4#INTERFACES = soundsettingsbase.ui
7INCLUDEPATH += $(OPIEDIR)/include 5INCLUDEPATH += $(OPIEDIR)/include
8DEPENDPATH += $(OPIEDIR)/include 6DEPENDPATH += $(OPIEDIR)/include
9LIBS += -lqpe 7LIBS += -lqpe
10TARGET = sound 8TARGET = sound
11 9
12TRANSLATIONS = ../../../i18n/de/sound.ts \ 10TRANSLATIONS = ../../../i18n/de/sound.ts \
13 ../../../i18n/nl/sound.ts \ 11 ../../../i18n/nl/sound.ts \
14 ../../../i18n/da/sound.ts \ 12 ../../../i18n/da/sound.ts \
15 ../../../i18n/xx/sound.ts \ 13 ../../../i18n/xx/sound.ts \
16 ../../../i18n/en/sound.ts \ 14 ../../../i18n/en/sound.ts \
17 ../../../i18n/es/sound.ts \ 15 ../../../i18n/es/sound.ts \
18 ../../../i18n/fr/sound.ts \ 16 ../../../i18n/fr/sound.ts \
19 ../../../i18n/hu/sound.ts \ 17 ../../../i18n/hu/sound.ts \
20 ../../../i18n/ja/sound.ts \ 18 ../../../i18n/ja/sound.ts \
21 ../../../i18n/ko/sound.ts \ 19 ../../../i18n/ko/sound.ts \
22 ../../../i18n/no/sound.ts \ 20 ../../../i18n/no/sound.ts \
23 ../../../i18n/pl/sound.ts \ 21 ../../../i18n/pl/sound.ts \
24 ../../../i18n/pt/sound.ts \ 22 ../../../i18n/pt/sound.ts \
25 ../../../i18n/pt_BR/sound.ts \ 23 ../../../i18n/pt_BR/sound.ts \
26 ../../../i18n/sl/sound.ts \ 24 ../../../i18n/sl/sound.ts \
27 ../../../i18n/zh_CN/sound.ts \ 25 ../../../i18n/zh_CN/sound.ts \
28 ../../../i18n/zh_TW/sound.ts 26 ../../../i18n/zh_TW/sound.ts
29 27
30 28
31 29
32include ( $(OPIEDIR)/include.pro ) 30include ( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/sound/soundsettings.h b/noncore/settings/sound/soundsettings.h
index 71ce6f5..57a360f 100644
--- a/noncore/settings/sound/soundsettings.h
+++ b/noncore/settings/sound/soundsettings.h
@@ -1,52 +1,53 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20#ifndef SOUNDSETTINGS_H 20#ifndef SOUNDSETTINGS_H
21#define SOUNDSETTINGS_H 21#define SOUNDSETTINGS_H
22 22
23 23
24#include "soundsettingsbase.h" 24#include "soundsettingsbase.h"
25 25
26 26
27class SoundSettings : public SoundSettingsBase 27class SoundSettings : public SoundSettingsBase
28{ 28{
29Q_OBJECT 29Q_OBJECT
30 30
31public: 31public:
32 static QString appName() { return QString::fromLatin1("sound"); }
32 SoundSettings( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 33 SoundSettings( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
33 34
34protected: 35protected:
35 bool noWarning; 36 bool noWarning;
36/* void accept(); */ 37/* void accept(); */
37/* void reject(); */ 38/* void reject(); */
38 void updateStorageCombo(); 39 void updateStorageCombo();
39 void updateLocationCombo(); 40 void updateLocationCombo();
40 41
41private slots: 42private slots:
42 void setKeyButton( int); 43 void setKeyButton( int);
43 void setSizeLimitButton(const QString &); 44 void setSizeLimitButton(const QString &);
44 void setLocation(const QString &); 45 void setLocation(const QString &);
45 void cleanUp(); 46 void cleanUp();
46 void restartOpie(bool); 47 void restartOpie(bool);
47 void slotAdpcm(bool); 48 void slotAdpcm(bool);
48}; 49};
49 50
50 51
51#endif // SOUNDSETTINGS_H 52#endif // SOUNDSETTINGS_H
52 53
diff --git a/noncore/settings/sshkeys/opie-sshkeys.control b/noncore/settings/sshkeys/opie-sshkeys.control
index d05858c..4deccf4 100644
--- a/noncore/settings/sshkeys/opie-sshkeys.control
+++ b/noncore/settings/sshkeys/opie-sshkeys.control
@@ -1,9 +1,9 @@
1Package: opie-sshkeys 1Package: opie-sshkeys
2Files: plugins/application/libsshkeys.so* bin/sshkeys apps/Settings/sshkeys.desktop pics/sshkeys/sshkeys.png 2Files: bin/sshkeys apps/Settings/sshkeys.desktop pics/sshkeys/sshkeys.png
3Priority: optional 3Priority: optional
4Section: opie/settings 4Section: opie/settings
5Maintainer: David Woodhouse <dwmw2@infradead.org> 5Maintainer: David Woodhouse <dwmw2@infradead.org>
6Architecture: arm 6Architecture: arm
7Depends: task-opie-minimal, ssh, opie-sh-ssh-askpass 7Depends: task-opie-minimal, ssh, opie-sh-ssh-askpass
8Description: Utility for managing ssh-agent keys. 8Description: Utility for managing ssh-agent keys.
9Version: $QPE_VERSION$EXTRAVERSION 9Version: $QPE_VERSION$EXTRAVERSION
diff --git a/noncore/settings/usermanager/main.cpp b/noncore/settings/usermanager/main.cpp
index aa78286..515ea9a 100644
--- a/noncore/settings/usermanager/main.cpp
+++ b/noncore/settings/usermanager/main.cpp
@@ -1,19 +1,14 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10#include "usermanager.h" 10#include "usermanager.h"
11#include <qpe/qpeapplication.h> 11#include <qpe/qpeapplication.h>
12#include <opie/oapplicationfactory.h>
12 13
13int main( int argc, char ** argv ) 14OPIE_EXPORT_APP( OApplicationFactory<UserConfig> )
14{
15 QPEApplication a( argc, argv );
16 UserConfig mw(0,0,0);
17 a.showMainWidget( &mw );
18 return a.exec();
19}
diff --git a/noncore/settings/usermanager/usermanager.h b/noncore/settings/usermanager/usermanager.h
index 6782923..313646a 100644
--- a/noncore/settings/usermanager/usermanager.h
+++ b/noncore/settings/usermanager/usermanager.h
@@ -1,66 +1,67 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * This program is free software; you can redistribute it and/or modify * 3 * This program is free software; you can redistribute it and/or modify *
4 * it under the terms of the GNU General Public License as published by * 4 * it under the terms of the GNU General Public License as published by *
5 * the Free Software Foundation; either version 2 of the License, or * 5 * the Free Software Foundation; either version 2 of the License, or *
6 * (at your option) any later version. * 6 * (at your option) any later version. *
7 * * 7 * *
8 ***************************************************************************/ 8 ***************************************************************************/
9 9
10#ifndef USERCONFIG_H 10#ifndef USERCONFIG_H
11#define USERCONFIG_H 11#define USERCONFIG_H
12 12
13#include <qmainwindow.h> 13#include <qmainwindow.h>
14#include <qtabwidget.h> 14#include <qtabwidget.h>
15#include <qlistview.h> 15#include <qlistview.h>
16#include <qpopupmenu.h> 16#include <qpopupmenu.h>
17#include <qtoolbutton.h> 17#include <qtoolbutton.h>
18 18
19#include <qpe/qpetoolbar.h> 19#include <qpe/qpetoolbar.h>
20 20
21#include "userdialog.h" 21#include "userdialog.h"
22#include "groupdialog.h" 22#include "groupdialog.h"
23#include "passwd.h" 23#include "passwd.h"
24 24
25class UserConfig : public QMainWindow 25class UserConfig : public QMainWindow
26{ 26{
27 Q_OBJECT 27 Q_OBJECT
28 28
29public: 29public:
30 static QString appName() { return QString::fromLatin1("appname"); }
30 UserConfig( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 31 UserConfig( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
31 ~UserConfig(); 32 ~UserConfig();
32 33
33private: 34private:
34 QToolButton *adduserToolButton; 35 QToolButton *adduserToolButton;
35 QToolButton *edituserToolButton; 36 QToolButton *edituserToolButton;
36 QToolButton *deleteuserToolButton; 37 QToolButton *deleteuserToolButton;
37 QToolButton *addgroupToolButton; 38 QToolButton *addgroupToolButton;
38 QToolButton *editgroupToolButton; 39 QToolButton *editgroupToolButton;
39 QToolButton *deletegroupToolButton; 40 QToolButton *deletegroupToolButton;
40 QTabWidget *myTabWidget; 41 QTabWidget *myTabWidget;
41 QListView *usersIconView; 42 QListView *usersIconView;
42 QListView *usersListView; 43 QListView *usersListView;
43 QListView *groupsListView; 44 QListView *groupsListView;
44 QPopupMenu userPopupMenu; 45 QPopupMenu userPopupMenu;
45 QPopupMenu groupPopupMenu; 46 QPopupMenu groupPopupMenu;
46 int availableUID; 47 int availableUID;
47 int availableGID; 48 int availableGID;
48 void setupTabAccounts(); 49 void setupTabAccounts();
49 void setupTabAllUsers(); 50 void setupTabAllUsers();
50 void setupTabAllGroups(); 51 void setupTabAllGroups();
51 void setupTabPrefs(); 52 void setupTabPrefs();
52 void setupTabAbout(); 53 void setupTabAbout();
53 void getUsers(); 54 void getUsers();
54 void getGroups(); 55 void getGroups();
55 56
56private slots: 57private slots:
57 void addUser(); 58 void addUser();
58 void editUser(); 59 void editUser();
59 void delUser(); 60 void delUser();
60 void addGroup(); 61 void addGroup();
61 void editGroup(); 62 void editGroup();
62 void delGroup(); 63 void delGroup();
63 void showUserMenu(QListViewItem *item); 64 void showUserMenu(QListViewItem *item);
64}; 65};
65 66
66#endif // USERCONFIG_H 67#endif // USERCONFIG_H
diff --git a/noncore/settings/usermanager/usermanager.pro b/noncore/settings/usermanager/usermanager.pro
index 576a233..f61fb63 100644
--- a/noncore/settings/usermanager/usermanager.pro
+++ b/noncore/settings/usermanager/usermanager.pro
@@ -1,34 +1,32 @@
1 TEMPLATE= app
2 #CONFIG = qt warn_on debug 1 #CONFIG = qt warn_on debug
3 CONFIG = qt warn_on release 2 CONFIG = qt warn_on release quick-app
4 HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h 3 HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h
5 SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.cpp main.cpp 4 SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.cpp main.cpp
6 INCLUDEPATH+= $(OPIEDIR)/include 5 INCLUDEPATH+= $(OPIEDIR)/include
7 DEPENDPATH+= $(OPIEDIR)/include 6 DEPENDPATH+= $(OPIEDIR)/include
8LIBS += -lqpe -lopie -lcrypt 7LIBS += -lqpe -lopie -lcrypt
9 TARGET = usermanager 8 TARGET = usermanager
10DESTDIR = $(OPIEDIR)/bin
11 9
12TRANSLATIONS = ../../../i18n/de/usermanager.ts \ 10TRANSLATIONS = ../../../i18n/de/usermanager.ts \
13 ../../../i18n/nl/usermanager.ts \ 11 ../../../i18n/nl/usermanager.ts \
14 ../../../i18n/xx/usermanager.ts \ 12 ../../../i18n/xx/usermanager.ts \
15 ../../../i18n/en/usermanager.ts \ 13 ../../../i18n/en/usermanager.ts \
16 ../../../i18n/es/usermanager.ts \ 14 ../../../i18n/es/usermanager.ts \
17 ../../../i18n/fr/usermanager.ts \ 15 ../../../i18n/fr/usermanager.ts \
18 ../../../i18n/hu/usermanager.ts \ 16 ../../../i18n/hu/usermanager.ts \
19 ../../../i18n/ja/usermanager.ts \ 17 ../../../i18n/ja/usermanager.ts \
20 ../../../i18n/ko/usermanager.ts \ 18 ../../../i18n/ko/usermanager.ts \
21 ../../../i18n/no/usermanager.ts \ 19 ../../../i18n/no/usermanager.ts \
22 ../../../i18n/pl/usermanager.ts \ 20 ../../../i18n/pl/usermanager.ts \
23 ../../../i18n/pt/usermanager.ts \ 21 ../../../i18n/pt/usermanager.ts \
24 ../../../i18n/pt_BR/usermanager.ts \ 22 ../../../i18n/pt_BR/usermanager.ts \
25 ../../../i18n/sl/usermanager.ts \ 23 ../../../i18n/sl/usermanager.ts \
26 ../../../i18n/zh_CN/usermanager.ts \ 24 ../../../i18n/zh_CN/usermanager.ts \
27 ../../../i18n/zh_TW/usermanager.ts \ 25 ../../../i18n/zh_TW/usermanager.ts \
28 ../../../i18n/it/usermanager.ts \ 26 ../../../i18n/it/usermanager.ts \
29 ../../../i18n/da/usermanager.ts 27 ../../../i18n/da/usermanager.ts
30 28
31 29
32 30
33 31
34include ( $(OPIEDIR)/include.pro ) 32include ( $(OPIEDIR)/include.pro )