author | ar <ar> | 2004-02-21 16:02:01 (UTC) |
---|---|---|
committer | ar <ar> | 2004-02-21 16:02:01 (UTC) |
commit | db2afda83e495bff9fc19fa14a30072f1cd4c67a (patch) (unidiff) | |
tree | 0281ec10dad24d83179283370661ae9225016de0 /noncore/settings | |
parent | 460258f203be746ff79e14f32a823f381b8ea513 (diff) | |
download | opie-db2afda83e495bff9fc19fa14a30072f1cd4c67a.zip opie-db2afda83e495bff9fc19fa14a30072f1cd4c67a.tar.gz opie-db2afda83e495bff9fc19fa14a30072f1cd4c67a.tar.bz2 |
improve support for BigScreen
-rw-r--r-- | noncore/settings/appearance2/appearance.cpp | 162 | ||||
-rw-r--r-- | noncore/settings/appearance2/stylelistitem.h | 8 | ||||
-rw-r--r-- | noncore/settings/aqpkg/categoryfilterimpl.cpp | 20 | ||||
-rw-r--r-- | noncore/settings/aqpkg/instoptionsimpl.cpp | 16 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 38 | ||||
-rw-r--r-- | noncore/settings/aqpkg/settingsimpl.cpp | 35 | ||||
-rw-r--r-- | noncore/settings/backup/backuprestore.cpp | 17 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/devices.cpp | 25 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/edit.cpp | 233 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesinfo.cpp | 16 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processinfo.cpp | 14 | ||||
-rw-r--r-- | noncore/settings/usermanager/userdialog.cpp | 149 |
12 files changed, 462 insertions, 271 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index 9e5eede..ba12e55 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp | |||
@@ -18,85 +18,87 @@ | |||
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
19 | ..}^=.= = ; Public License for more details. | 19 | ..}^=.= = ; Public License for more details. |
20 | ++= -. .` .: | 20 | ++= -. .` .: |
21 | : = ...= . :.=- You should have received a copy of the GNU | 21 | : = ...= . :.=- You should have received a copy of the GNU |
22 | -. .:....=;==+<; General Public License along with this file; | 22 | -. .:....=;==+<; General Public License along with this file; |
23 | -_. . . )=. = see the file COPYING. If not, write to the | 23 | -_. . . )=. = see the file COPYING. If not, write to the |
24 | -- :-=` Free Software Foundation, Inc., | 24 | -- :-=` Free Software Foundation, Inc., |
25 | 59 Temple Place - Suite 330, | 25 | 59 Temple Place - Suite 330, |
26 | Boston, MA 02111-1307, USA. | 26 | Boston, MA 02111-1307, USA. |
27 | 27 | ||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "appearance.h" | ||
31 | #include "editScheme.h" | ||
32 | #include "stylelistitem.h" | ||
33 | #include "decolistitem.h" | ||
34 | #include "colorlistitem.h" | ||
35 | #include "exceptlistitem.h" | ||
36 | #include "sample.h" | ||
37 | |||
38 | /* OPIE */ | ||
39 | #include <opie/ofontselector.h> | ||
40 | #include <opie/odevice.h> | ||
41 | #include <opie/ofiledialog.h> | ||
42 | #include <opie/otabwidget.h> | ||
43 | |||
44 | #include <qpe/config.h> | ||
45 | #include <qpe/global.h> | ||
46 | #include <qpe/qpeapplication.h> | ||
47 | #include <qpe/qpemessagebox.h> | ||
48 | #include <qpe/qcopenvelope_qws.h> | ||
49 | #include <qpe/qpestyle.h> | ||
50 | #include <qpe/lightstyle.h> | ||
51 | #include <qpe/styleinterface.h> | ||
52 | |||
53 | /* QT */ | ||
30 | #include <qbuttongroup.h> | 54 | #include <qbuttongroup.h> |
31 | #include <qcheckbox.h> | 55 | #include <qcheckbox.h> |
32 | #include <qcombobox.h> | 56 | #include <qcombobox.h> |
33 | #include <qdialog.h> | 57 | #include <qdialog.h> |
34 | #include <qdir.h> | 58 | #include <qdir.h> |
35 | #include <qlabel.h> | 59 | #include <qlabel.h> |
36 | #include <qlayout.h> | 60 | #include <qlayout.h> |
37 | #include <qlineedit.h> | 61 | #include <qlineedit.h> |
38 | #include <qlistbox.h> | 62 | #include <qlistbox.h> |
39 | #include <qmessagebox.h> | 63 | #include <qmessagebox.h> |
40 | #include <qpushbutton.h> | 64 | #include <qpushbutton.h> |
41 | #include <qradiobutton.h> | 65 | #include <qradiobutton.h> |
42 | #if QT_VERSION >= 300 | 66 | #if QT_VERSION >= 300 |
43 | #include <qstylefactory.h> | 67 | #include <qstylefactory.h> |
44 | #endif | 68 | #endif |
45 | #include <qtoolbutton.h> | 69 | #include <qtoolbutton.h> |
46 | #include <qwindowsstyle.h> | 70 | #include <qwindowsstyle.h> |
47 | #include <qlistview.h> | 71 | #include <qlistview.h> |
48 | #include <qheader.h> | 72 | #include <qheader.h> |
49 | #include <qvbox.h> | 73 | #include <qvbox.h> |
50 | #include <qwhatsthis.h> | 74 | #include <qwhatsthis.h> |
51 | 75 | ||
52 | #include <qpe/config.h> | ||
53 | #include <qpe/global.h> | ||
54 | #include <qpe/resource.h> | ||
55 | #include <qpe/qpeapplication.h> | ||
56 | #include <qpe/qpemessagebox.h> | ||
57 | #include <qpe/qcopenvelope_qws.h> | ||
58 | #include <qpe/qpestyle.h> | ||
59 | #include <qpe/lightstyle.h> | ||
60 | #include <qpe/qlibrary.h> | ||
61 | #include <qpe/styleinterface.h> | ||
62 | |||
63 | #include <opie/ofontselector.h> | ||
64 | #include <opie/odevice.h> | ||
65 | #include <opie/ofiledialog.h> | ||
66 | #include <opie/otabwidget.h> | ||
67 | |||
68 | #include "appearance.h" | ||
69 | #include "editScheme.h" | ||
70 | #include "stylelistitem.h" | ||
71 | #include "decolistitem.h" | ||
72 | #include "colorlistitem.h" | ||
73 | #include "exceptlistitem.h" | ||
74 | #include "sample.h" | ||
75 | |||
76 | |||
77 | using namespace Opie; | 76 | using namespace Opie; |
78 | 77 | ||
79 | 78 | ||
80 | class DefaultWindowDecoration : public WindowDecorationInterface | 79 | class DefaultWindowDecoration : public WindowDecorationInterface |
81 | { | 80 | { |
82 | public: | 81 | public: |
83 | DefaultWindowDecoration() : ref(0) {} | 82 | DefaultWindowDecoration() : ref(0) {} |
84 | QString name() const { | 83 | QString name() const |
84 | { | ||
85 | return "Default"; | 85 | return "Default"; |
86 | } | 86 | } |
87 | QPixmap icon() const { | 87 | QPixmap icon() const |
88 | { | ||
88 | return QPixmap(); | 89 | return QPixmap(); |
89 | } | 90 | } |
90 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { | 91 | QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) |
92 | { | ||
91 | *iface = 0; | 93 | *iface = 0; |
92 | if ( uuid == IID_QUnknown ) | 94 | if ( uuid == IID_QUnknown ) |
93 | *iface = this; | 95 | *iface = this; |
94 | else if ( uuid == IID_WindowDecoration ) | 96 | else if ( uuid == IID_WindowDecoration ) |
95 | *iface = this; | 97 | *iface = this; |
96 | 98 | ||
97 | if ( *iface ) | 99 | if ( *iface ) |
98 | (*iface)->addRef(); | 100 | (*iface)->addRef(); |
99 | return QS_OK; | 101 | return QS_OK; |
100 | } | 102 | } |
101 | Q_REFCOUNT | 103 | Q_REFCOUNT |
102 | 104 | ||
@@ -125,37 +127,40 @@ QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg ) | |||
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." ) ); | 127 | 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 | 128 | ||
127 | QString s = cfg. readEntry ( "Style", "Light" ); | 129 | QString s = cfg. readEntry ( "Style", "Light" ); |
128 | 130 | ||
129 | 131 | ||
130 | #if QT_VERSION >= 300 | 132 | #if QT_VERSION >= 300 |
131 | m_style_list->insertStringList(QStyleFactory::styles()); | 133 | m_style_list->insertStringList(QStyleFactory::styles()); |
132 | #else | 134 | #else |
133 | m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); | 135 | m_style_list-> insertItem ( new StyleListItem ( "Windows", new QWindowsStyle ( ))); |
134 | m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); | 136 | m_style_list-> insertItem ( new StyleListItem ( "Light", new LightStyle ( ))); |
135 | m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); | 137 | m_style_list-> insertItem ( new StyleListItem ( "QPE", new QPEStyle ( ))); |
136 | #endif | 138 | #endif |
139 | |||
137 | { | 140 | { |
138 | QString path = QPEApplication::qpeDir ( ); | 141 | QString path = QPEApplication::qpeDir ( ); |
139 | path.append( "/plugins/styles/" ); | 142 | path.append( "/plugins/styles/" ); |
140 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); | 143 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); |
141 | 144 | ||
142 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { | 145 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
146 | { | ||
143 | QString libstr = path; | 147 | QString libstr = path; |
144 | libstr.append( "/" ); | 148 | libstr.append( "/" ); |
145 | libstr.append( *it ); | 149 | libstr.append( *it ); |
146 | QLibrary *lib = new QLibrary ( libstr ); | 150 | QLibrary *lib = new QLibrary ( libstr ); |
147 | StyleInterface *iface; | 151 | StyleInterface *iface; |
148 | 152 | ||
149 | if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) { | 153 | if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) |
154 | { | ||
150 | StyleListItem *slit = new StyleListItem ( lib, iface ); | 155 | StyleListItem *slit = new StyleListItem ( lib, iface ); |
151 | m_style_list-> insertItem ( slit ); | 156 | m_style_list-> insertItem ( slit ); |
152 | 157 | ||
153 | if ( slit-> key ( ) == s ) | 158 | if ( slit-> key ( ) == s ) |
154 | m_style_list-> setCurrentItem ( slit ); | 159 | m_style_list-> setCurrentItem ( slit ); |
155 | } | 160 | } |
156 | else | 161 | else |
157 | delete lib; | 162 | delete lib; |
158 | } | 163 | } |
159 | } | 164 | } |
160 | 165 | ||
161 | m_original_style = m_style_list-> currentItem ( ); | 166 | m_original_style = m_style_list-> currentItem ( ); |
@@ -175,32 +180,34 @@ QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) | |||
175 | vertLayout->addWidget( m_deco_list ); | 180 | 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." ) ); | 181 | 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 | 182 | ||
178 | QString s = cfg. readEntry ( "Decoration", "libflat.so" ); | 183 | QString s = cfg. readEntry ( "Decoration", "libflat.so" ); |
179 | 184 | ||
180 | m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); | 185 | m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); |
181 | 186 | ||
182 | { | 187 | { |
183 | QString path = QPEApplication::qpeDir(); | 188 | QString path = QPEApplication::qpeDir(); |
184 | path.append( "/plugins/decorations/" ); | 189 | path.append( "/plugins/decorations/" ); |
185 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); | 190 | QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); |
186 | 191 | ||
187 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { | 192 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
193 | { | ||
188 | QString libstr = path; | 194 | QString libstr = path; |
189 | libstr.append( "/" ); | 195 | libstr.append( "/" ); |
190 | libstr.append( *it ); | 196 | libstr.append( *it ); |
191 | QLibrary *lib = new QLibrary ( libstr ); | 197 | QLibrary *lib = new QLibrary ( libstr ); |
192 | WindowDecorationInterface *iface; | 198 | WindowDecorationInterface *iface; |
193 | 199 | ||
194 | if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) { | 200 | if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) |
201 | { | ||
195 | DecoListItem *dlit = new DecoListItem ( lib, iface ); | 202 | DecoListItem *dlit = new DecoListItem ( lib, iface ); |
196 | m_deco_list-> insertItem ( dlit ); | 203 | m_deco_list-> insertItem ( dlit ); |
197 | 204 | ||
198 | if ( dlit-> key ( ) == s ) | 205 | if ( dlit-> key ( ) == s ) |
199 | m_deco_list-> setCurrentItem ( dlit ); | 206 | m_deco_list-> setCurrentItem ( dlit ); |
200 | } | 207 | } |
201 | else | 208 | else |
202 | delete lib; | 209 | delete lib; |
203 | } | 210 | } |
204 | } | 211 | } |
205 | 212 | ||
206 | m_original_deco = m_deco_list-> currentItem ( ); | 213 | m_original_deco = m_deco_list-> currentItem ( ); |
@@ -237,25 +244,26 @@ QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg ) | |||
237 | 244 | ||
238 | m_color_list = new QListBox ( tab ); | 245 | m_color_list = new QListBox ( tab ); |
239 | gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); | 246 | gridLayout->addMultiCellWidget ( m_color_list, 0, 3, 0, 0 ); |
240 | connect( m_color_list, SIGNAL( highlighted( int ) ), this, SLOT( colorClicked( int ) ) ); | 247 | 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." ) ); | 248 | 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 | 249 | ||
243 | m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); | 250 | m_color_list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), cfg )); |
244 | 251 | ||
245 | QString path = QPEApplication::qpeDir ( ); | 252 | QString path = QPEApplication::qpeDir ( ); |
246 | path.append( "/etc/colors/" ); | 253 | path.append( "/etc/colors/" ); |
247 | QStringList sl = QDir ( path ). entryList ( "*.scheme" ); | 254 | QStringList sl = QDir ( path ). entryList ( "*.scheme" ); |
248 | 255 | ||
249 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { | 256 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
257 | { | ||
250 | QString name = (*it). left ((*it). find ( ".scheme" )); | 258 | QString name = (*it). left ((*it). find ( ".scheme" )); |
251 | QString pathstr = path; | 259 | QString pathstr = path; |
252 | pathstr.append( *it ); | 260 | pathstr.append( *it ); |
253 | Config config ( pathstr, Config::File ); | 261 | Config config ( pathstr, Config::File ); |
254 | config. setGroup ( "Colors" ); | 262 | config. setGroup ( "Colors" ); |
255 | 263 | ||
256 | m_color_list-> insertItem ( new ColorListItem ( name, config )); | 264 | m_color_list-> insertItem ( new ColorListItem ( name, config )); |
257 | } | 265 | } |
258 | 266 | ||
259 | m_color_list-> setCurrentItem ( 0 ); | 267 | m_color_list-> setCurrentItem ( 0 ); |
260 | 268 | ||
261 | QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); | 269 | QPushButton* tempButton = new QPushButton( tab, "editSchemeButton" ); |
@@ -339,25 +347,26 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) | |||
339 | tb = new QToolButton ( tab ); | 347 | tb = new QToolButton ( tab ); |
340 | tb-> setIconSet ( Resource::loadIconSet ( "down" )); | 348 | tb-> setIconSet ( Resource::loadIconSet ( "down" )); |
341 | tb-> setFocusPolicy ( QWidget::StrongFocus ); | 349 | tb-> setFocusPolicy ( QWidget::StrongFocus ); |
342 | lay-> addWidget ( tb, 5, 1 ); | 350 | lay-> addWidget ( tb, 5, 1 ); |
343 | connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( ))); | 351 | connect ( tb, SIGNAL( clicked ( )), this, SLOT( downExcept ( ))); |
344 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) ); | 352 | QWhatsThis::add( tb, tr( "Click here to move the currently selected application down in the list." ) ); |
345 | 353 | ||
346 | lay-> setRowStretch ( 6, 10 ); | 354 | lay-> setRowStretch ( 6, 10 ); |
347 | lay-> setColStretch ( 0, 10 ); | 355 | lay-> setColStretch ( 0, 10 ); |
348 | 356 | ||
349 | QStringList sl = cfg. readListEntry ( "NoStyle", ';' ); | 357 | QStringList sl = cfg. readListEntry ( "NoStyle", ';' ); |
350 | QListViewItem *lvit = 0; | 358 | QListViewItem *lvit = 0; |
351 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { | 359 | for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) |
360 | { | ||
352 | int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); | 361 | int fl = ( *it ). left ( 1 ). toInt ( 0, 32 ); |
353 | 362 | ||
354 | lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 ); | 363 | lvit = new ExceptListItem ( m_except, lvit, ( *it ). mid ( 1 ), fl & 0x01, fl & 0x02, fl & 0x04 ); |
355 | } | 364 | } |
356 | 365 | ||
357 | 366 | ||
358 | vertLayout-> addSpacing ( 3 ); | 367 | vertLayout-> addSpacing ( 3 ); |
359 | QFrame *f = new QFrame ( tab ); | 368 | QFrame *f = new QFrame ( tab ); |
360 | f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); | 369 | f-> setFrameStyle ( QFrame::HLine | QFrame::Sunken ); |
361 | vertLayout-> addWidget ( f ); | 370 | vertLayout-> addWidget ( f ); |
362 | vertLayout-> addSpacing ( 3 ); | 371 | vertLayout-> addSpacing ( 3 ); |
363 | 372 | ||
@@ -423,27 +432,30 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) | |||
423 | m_rotdir_cw-> setPixmap( cw1 ); | 432 | m_rotdir_cw-> setPixmap( cw1 ); |
424 | m_rotdir_ccw-> setPixmap( ccw1 ); | 433 | m_rotdir_ccw-> setPixmap( ccw1 ); |
425 | m_rotdir_flip-> setPixmap( flip1 ); | 434 | m_rotdir_flip-> setPixmap( flip1 ); |
426 | 435 | ||
427 | rotLay-> addWidget ( rotlabel, 0 ); | 436 | rotLay-> addWidget ( rotlabel, 0 ); |
428 | rotLay-> addWidget ( m_rotdir_cw, 0 ); | 437 | rotLay-> addWidget ( m_rotdir_cw, 0 ); |
429 | rotLay-> addWidget ( m_rotdir_ccw, 0 ); | 438 | rotLay-> addWidget ( m_rotdir_ccw, 0 ); |
430 | rotLay-> addWidget ( m_rotdir_flip, 0 ); | 439 | rotLay-> addWidget ( m_rotdir_flip, 0 ); |
431 | 440 | ||
432 | int rotDirection = cfg.readNumEntry( "rotatedir" ); | 441 | int rotDirection = cfg.readNumEntry( "rotatedir" ); |
433 | ODirection rot = CW; | 442 | ODirection rot = CW; |
434 | 443 | ||
435 | if (rotDirection == -1) { | 444 | if (rotDirection == -1) |
445 | { | ||
436 | rot = ODevice::inst ( )-> direction ( ); | 446 | rot = ODevice::inst ( )-> direction ( ); |
437 | } else { | 447 | } |
448 | else | ||
449 | { | ||
438 | rot = (ODirection)rotDirection; | 450 | rot = (ODirection)rotDirection; |
439 | } | 451 | } |
440 | 452 | ||
441 | m_rotdir_cw-> setChecked ( rot == CW ); | 453 | m_rotdir_cw-> setChecked ( rot == CW ); |
442 | m_rotdir_ccw-> setChecked ( rot == CCW ); | 454 | m_rotdir_ccw-> setChecked ( rot == CCW ); |
443 | m_rotdir_flip-> setChecked ( rot == Flip ); | 455 | m_rotdir_flip-> setChecked ( rot == Flip ); |
444 | 456 | ||
445 | return tab; | 457 | return tab; |
446 | } | 458 | } |
447 | 459 | ||
448 | 460 | ||
449 | Appearance::Appearance( QWidget* parent, const char* name, WFlags ) | 461 | Appearance::Appearance( QWidget* parent, const char* name, WFlags ) |
@@ -473,92 +485,102 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags ) | |||
473 | tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); | 485 | tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "SettingsIcon", tr( "Advanced" ) ); |
474 | 486 | ||
475 | top-> addWidget ( tw, 10 ); | 487 | top-> addWidget ( tw, 10 ); |
476 | top-> addWidget ( m_sample, 1 ); | 488 | top-> addWidget ( m_sample, 1 ); |
477 | 489 | ||
478 | tw-> setCurrentTab ( styletab ); | 490 | tw-> setCurrentTab ( styletab ); |
479 | connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * ))); | 491 | connect ( tw, SIGNAL( currentChanged ( QWidget * )), this, SLOT( tabChanged ( QWidget * ))); |
480 | 492 | ||
481 | m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; | 493 | m_style_changed = m_font_changed = m_color_changed = m_deco_changed = false; |
482 | } | 494 | } |
483 | 495 | ||
484 | Appearance::~Appearance() | 496 | Appearance::~Appearance() |
485 | { | 497 | {} |
486 | } | ||
487 | 498 | ||
488 | void Appearance::tabChanged ( QWidget *w ) | 499 | void Appearance::tabChanged ( QWidget *w ) |
489 | { | 500 | { |
490 | if ( w == m_advtab ) { | 501 | if ( w == m_advtab ) |
502 | { | ||
491 | m_sample-> hide ( ); | 503 | m_sample-> hide ( ); |
492 | updateGeometry ( ); // shouldn't be necessary ... | 504 | updateGeometry ( ); // shouldn't be necessary ... |
493 | } | 505 | } |
494 | else | 506 | else |
495 | m_sample-> show ( ); | 507 | m_sample-> show ( ); |
496 | } | 508 | } |
497 | 509 | ||
498 | void Appearance::accept ( ) | 510 | void Appearance::accept ( ) |
499 | { | 511 | { |
500 | bool newtabpos = m_tabstyle_top-> isChecked ( ); | 512 | bool newtabpos = m_tabstyle_top-> isChecked ( ); |
501 | int newtabstyle = m_tabstyle_list-> currentItem ( ); | 513 | int newtabstyle = m_tabstyle_list-> currentItem ( ); |
502 | 514 | ||
503 | Config config ( "qpe" ); | 515 | Config config ( "qpe" ); |
504 | config. setGroup ( "Appearance" ); | 516 | config. setGroup ( "Appearance" ); |
505 | 517 | ||
506 | if ( m_style_changed ) { | 518 | if ( m_style_changed ) |
519 | { | ||
507 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); | 520 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); |
508 | if ( item ) | 521 | if ( item ) |
509 | config.writeEntry( "Style", item-> key ( )); | 522 | config.writeEntry( "Style", item-> key ( )); |
510 | } | 523 | } |
511 | 524 | ||
512 | if ( m_deco_changed ) { | 525 | if ( m_deco_changed ) |
526 | { | ||
513 | DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); | 527 | DecoListItem *item = (DecoListItem *) m_deco_list-> item ( m_deco_list-> currentItem ( )); |
514 | if ( item ) | 528 | if ( item ) |
515 | config.writeEntry( "Decoration", item-> key ( )); | 529 | config.writeEntry( "Decoration", item-> key ( )); |
516 | } | 530 | } |
517 | 531 | ||
518 | if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) { | 532 | if (( newtabstyle != m_original_tabstyle ) || ( newtabpos != m_original_tabpos )) |
533 | { | ||
519 | config. writeEntry ( "TabStyle", newtabstyle + 1 ); | 534 | config. writeEntry ( "TabStyle", newtabstyle + 1 ); |
520 | config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); | 535 | config. writeEntry ( "TabPosition", newtabpos ? "Top" : "Bottom" ); |
521 | } | 536 | } |
522 | 537 | ||
523 | if ( m_font_changed ) { | 538 | if ( m_font_changed ) |
539 | { | ||
524 | config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); | 540 | config. writeEntry ( "FontFamily", m_fontselect-> fontFamily ( )); |
525 | config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); | 541 | config. writeEntry ( "FontStyle", m_fontselect-> fontStyle ( )); |
526 | config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); | 542 | config. writeEntry ( "FontSize", m_fontselect-> fontSize ( )); |
527 | } | 543 | } |
528 | 544 | ||
529 | 545 | ||
530 | if ( m_color_changed ) | 546 | if ( m_color_changed ) |
531 | { | 547 | { |
532 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 548 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
533 | 549 | ||
534 | if ( item ) | 550 | if ( item ) |
535 | item-> save ( config ); | 551 | item-> save ( config ); |
536 | } | 552 | } |
537 | 553 | ||
538 | ODirection rot; | 554 | ODirection rot; |
539 | if (m_rotdir_ccw-> isChecked ( )) { | 555 | if (m_rotdir_ccw-> isChecked ( )) |
556 | { | ||
540 | rot = CCW; | 557 | rot = CCW; |
541 | } else if (m_rotdir_cw-> isChecked ( )) { | 558 | } |
559 | else if (m_rotdir_cw-> isChecked ( )) | ||
560 | { | ||
542 | rot = CW; | 561 | rot = CW; |
543 | } else { | 562 | } |
563 | else | ||
564 | { | ||
544 | rot = Flip; | 565 | rot = Flip; |
545 | } | 566 | } |
546 | config. writeEntry ( "rotatedir", (int)rot ); | 567 | config. writeEntry ( "rotatedir", (int)rot ); |
547 | 568 | ||
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 | 569 | 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 | 570 | ||
550 | QStringList sl; | 571 | QStringList sl; |
551 | QString exceptstr; | 572 | QString exceptstr; |
552 | for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) { | 573 | for ( ExceptListItem *it = (ExceptListItem *) m_except-> firstChild ( ); it; it = (ExceptListItem *) it-> nextSibling ( )) |
574 | { | ||
553 | int fl = 0; | 575 | int fl = 0; |
554 | fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); | 576 | fl |= ( it-> noStyle ( ) ? 0x01 : 0 ); |
555 | fl |= ( it-> noFont ( ) ? 0x02 : 0 ); | 577 | fl |= ( it-> noFont ( ) ? 0x02 : 0 ); |
556 | fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); | 578 | fl |= ( it-> noDeco ( ) ? 0x04 : 0 ); |
557 | exceptstr = QString::number ( fl, 32 ); | 579 | exceptstr = QString::number ( fl, 32 ); |
558 | exceptstr.append( it-> pattern ( )); | 580 | exceptstr.append( it-> pattern ( )); |
559 | sl << exceptstr; | 581 | sl << exceptstr; |
560 | } | 582 | } |
561 | config. writeEntry ( "NoStyle", sl, ';' ); | 583 | config. writeEntry ( "NoStyle", sl, ';' ); |
562 | config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); | 584 | config. writeEntry ( "ForceStyle", m_force-> isChecked ( )); |
563 | 585 | ||
564 | config. write ( ); // need to flush the config info first | 586 | config. write ( ); // need to flush the config info first |
@@ -570,63 +592,66 @@ void Appearance::accept ( ) | |||
570 | void Appearance::done ( int r ) | 592 | void Appearance::done ( int r ) |
571 | { | 593 | { |
572 | QDialog::done ( r ); | 594 | QDialog::done ( r ); |
573 | close ( ); | 595 | close ( ); |
574 | } | 596 | } |
575 | 597 | ||
576 | 598 | ||
577 | void Appearance::styleClicked ( int index ) | 599 | void Appearance::styleClicked ( int index ) |
578 | { | 600 | { |
579 | StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); | 601 | StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); |
580 | m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); | 602 | m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); |
581 | 603 | ||
582 | if ( m_sample && sli && sli-> style ( )) { | 604 | if ( m_sample && sli && sli-> style ( )) |
605 | { | ||
583 | int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; | 606 | int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; |
584 | 607 | ||
585 | m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); | 608 | m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); |
586 | } | 609 | } |
587 | 610 | ||
588 | m_style_changed |= ( index != m_original_style ); | 611 | m_style_changed |= ( index != m_original_style ); |
589 | } | 612 | } |
590 | 613 | ||
591 | void Appearance::styleSettingsClicked ( ) | 614 | void Appearance::styleSettingsClicked ( ) |
592 | { | 615 | { |
593 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); | 616 | StyleListItem *item = (StyleListItem *) m_style_list-> item ( m_style_list-> currentItem ( )); |
594 | 617 | ||
595 | if ( item && item-> hasSettings ( )) { | 618 | if ( item && item-> hasSettings ( )) |
619 | { | ||
596 | QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); | 620 | QDialog *d = new QDialog ( this, "SETTINGS-DLG", true ); |
597 | QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 ); | 621 | QVBoxLayout *vbox = new QVBoxLayout ( d, 3, 0 ); |
598 | 622 | ||
599 | QWidget *w = item-> settings ( d ); | 623 | QWidget *w = item-> settings ( d ); |
600 | 624 | ||
601 | if ( w ) { | 625 | if ( w ) |
626 | { | ||
602 | vbox-> addWidget ( w ); | 627 | vbox-> addWidget ( w ); |
603 | 628 | ||
604 | d-> setCaption ( w-> caption ( )); | 629 | d-> setCaption ( w-> caption ( )); |
605 | 630 | ||
606 | d-> showMaximized ( ); | 631 | bool accepted = ( QPEApplication::execDialog ( d ) == QDialog::Accepted ); |
607 | bool accepted = ( d-> exec ( ) == QDialog::Accepted ); | ||
608 | 632 | ||
609 | if ( item-> setSettings ( accepted )) | 633 | if ( item-> setSettings ( accepted )) |
610 | m_style_changed = true; | 634 | m_style_changed = true; |
611 | } | 635 | } |
612 | delete d; | 636 | delete d; |
613 | } | 637 | } |
614 | } | 638 | } |
615 | 639 | ||
616 | void Appearance::decoClicked ( int index ) | 640 | void Appearance::decoClicked ( int index ) |
617 | { | 641 | { |
618 | DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); | 642 | DecoListItem *dli = (DecoListItem *) m_deco_list-> item ( index ); |
619 | 643 | ||
620 | if ( m_sample ) { | 644 | if ( m_sample ) |
645 | { | ||
621 | if ( dli && dli-> interface ( )) | 646 | if ( dli && dli-> interface ( )) |
622 | m_sample-> setDecoration ( dli-> interface ( )); | 647 | m_sample-> setDecoration ( dli-> interface ( )); |
623 | else | 648 | else |
624 | m_sample-> setDecoration ( new DefaultWindowDecoration ( )); | 649 | m_sample-> setDecoration ( new DefaultWindowDecoration ( )); |
625 | m_sample-> repaint ( ); | 650 | m_sample-> repaint ( ); |
626 | } | 651 | } |
627 | m_deco_changed |= ( index != m_original_deco ); | 652 | m_deco_changed |= ( index != m_original_deco ); |
628 | } | 653 | } |
629 | 654 | ||
630 | void Appearance::fontClicked ( const QFont &f ) | 655 | void Appearance::fontClicked ( const QFont &f ) |
631 | { | 656 | { |
632 | m_font_changed |= ( f != m_sample-> font ( )); | 657 | m_font_changed |= ( f != m_sample-> font ( )); |
@@ -643,43 +668,47 @@ void Appearance::colorClicked ( int index ) | |||
643 | m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); | 668 | m_color_changed |= ( item-> palette ( ) != qApp-> palette ( )); |
644 | } | 669 | } |
645 | 670 | ||
646 | 671 | ||
647 | void Appearance::editSchemeClicked ( ) | 672 | void Appearance::editSchemeClicked ( ) |
648 | { | 673 | { |
649 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 674 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
650 | 675 | ||
651 | int cnt = 0; | 676 | int cnt = 0; |
652 | QString labels [QColorGroup::NColorRoles]; | 677 | QString labels [QColorGroup::NColorRoles]; |
653 | QColor colors [QColorGroup::NColorRoles]; | 678 | QColor colors [QColorGroup::NColorRoles]; |
654 | 679 | ||
655 | for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { | 680 | for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) |
681 | { | ||
656 | QColor col = item-> color ( role ); | 682 | QColor col = item-> color ( role ); |
657 | 683 | ||
658 | if ( col. isValid ( )) { | 684 | if ( col. isValid ( )) |
685 | { | ||
659 | labels [cnt] = item-> label ( role ); | 686 | labels [cnt] = item-> label ( role ); |
660 | colors [cnt] = col; | 687 | colors [cnt] = col; |
661 | 688 | ||
662 | cnt++; | 689 | cnt++; |
663 | } | 690 | } |
664 | } | 691 | } |
665 | 692 | ||
666 | EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); | 693 | EditScheme* editdlg = new EditScheme( cnt, labels, colors, this, "editScheme", true ); |
667 | editdlg-> showMaximized ( ); | 694 | if ( QPEApplication::execDialog( editdlg ) == QDialog::Accepted ) |
668 | if ( editdlg-> exec ( ) == QDialog::Accepted ) { | 695 | { |
669 | ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); | 696 | ColorListItem *citem = (ColorListItem *) m_color_list-> item ( 0 ); |
670 | cnt = 0; | 697 | cnt = 0; |
671 | 698 | ||
672 | for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) { | 699 | for ( QColorGroup::ColorRole role = (QColorGroup::ColorRole) 0; role != QColorGroup::NColorRoles; ((int) role )++ ) |
673 | if ( item-> color ( role ). isValid ( )) { | 700 | { |
701 | if ( item-> color ( role ). isValid ( )) | ||
702 | { | ||
674 | citem-> setColor ( role, colors [cnt] ); | 703 | citem-> setColor ( role, colors [cnt] ); |
675 | cnt++; | 704 | cnt++; |
676 | } | 705 | } |
677 | } | 706 | } |
678 | 707 | ||
679 | m_color_list-> setCurrentItem ( 0 ); | 708 | m_color_list-> setCurrentItem ( 0 ); |
680 | colorClicked ( 0 ); | 709 | colorClicked ( 0 ); |
681 | 710 | ||
682 | m_color_changed = true; | 711 | m_color_changed = true; |
683 | } | 712 | } |
684 | delete editdlg; | 713 | delete editdlg; |
685 | } | 714 | } |
@@ -689,25 +718,26 @@ void Appearance::saveSchemeClicked() | |||
689 | { | 718 | { |
690 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); | 719 | ColorListItem *item = (ColorListItem *) m_color_list-> item ( m_color_list-> currentItem ( )); |
691 | 720 | ||
692 | if ( !item ) | 721 | if ( !item ) |
693 | return; | 722 | return; |
694 | 723 | ||
695 | QDialog *d = new QDialog ( this, 0, true ); | 724 | QDialog *d = new QDialog ( this, 0, true ); |
696 | d-> setCaption ( tr( "Save Scheme" )); | 725 | d-> setCaption ( tr( "Save Scheme" )); |
697 | QLineEdit *ed = new QLineEdit ( d ); | 726 | QLineEdit *ed = new QLineEdit ( d ); |
698 | ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed ); | 727 | ( new QVBoxLayout ( d, 3, 3 ))-> addWidget ( ed ); |
699 | ed-> setFocus ( ); | 728 | ed-> setFocus ( ); |
700 | 729 | ||
701 | if ( d-> exec ( ) == QDialog::Accepted ) { | 730 | if ( d-> exec ( ) == QDialog::Accepted ) |
731 | { | ||
702 | QString schemename = ed-> text ( ); | 732 | QString schemename = ed-> text ( ); |
703 | QString filestr = QPEApplication::qpeDir(); | 733 | QString filestr = QPEApplication::qpeDir(); |
704 | filestr.append( "/etc/colors/" ); | 734 | filestr.append( "/etc/colors/" ); |
705 | filestr.append( schemename ); | 735 | filestr.append( schemename ); |
706 | filestr.append( ".scheme" ); | 736 | filestr.append( ".scheme" ); |
707 | QFile file ( filestr ); | 737 | QFile file ( filestr ); |
708 | if ( !file. exists ( )) | 738 | if ( !file. exists ( )) |
709 | { | 739 | { |
710 | QPalette p = item-> palette ( ); | 740 | QPalette p = item-> palette ( ); |
711 | 741 | ||
712 | Config config ( file.name(), Config::File ); | 742 | Config config ( file.name(), Config::File ); |
713 | config. setGroup( "Colors" ); | 743 | config. setGroup( "Colors" ); |
@@ -752,47 +782,49 @@ void Appearance::deleteSchemeClicked() | |||
752 | } | 782 | } |
753 | 783 | ||
754 | 784 | ||
755 | void Appearance::addExcept ( ) | 785 | void Appearance::addExcept ( ) |
756 | { | 786 | { |
757 | ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true ); | 787 | ExceptListItem *it = new ExceptListItem ( m_except, 0, tr( "<new>" ), true, true, true ); |
758 | m_except-> ensureItemVisible ( it ); | 788 | m_except-> ensureItemVisible ( it ); |
759 | m_except-> setSelected ( it, true ); | 789 | m_except-> setSelected ( it, true ); |
760 | } | 790 | } |
761 | 791 | ||
762 | void Appearance::delExcept ( ) | 792 | void Appearance::delExcept ( ) |
763 | { | 793 | { |
764 | if ( m_except-> selectedItem ( )) { | 794 | if ( m_except-> selectedItem ( )) |
795 | { | ||
765 | m_except-> setFocus ( ); | 796 | m_except-> setFocus ( ); |
766 | delete m_except-> selectedItem ( ); | 797 | delete m_except-> selectedItem ( ); |
767 | } | 798 | } |
768 | } | 799 | } |
769 | 800 | ||
770 | void Appearance::upExcept ( ) | 801 | void Appearance::upExcept ( ) |
771 | { | 802 | { |
772 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); | 803 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); |
773 | 804 | ||
774 | if ( it && it-> itemAbove ( )) | 805 | if ( it && it-> itemAbove ( )) |
775 | it-> itemAbove ( )-> moveItem ( it ); | 806 | it-> itemAbove ( )-> moveItem ( it ); |
776 | } | 807 | } |
777 | 808 | ||
778 | void Appearance::downExcept ( ) | 809 | void Appearance::downExcept ( ) |
779 | { | 810 | { |
780 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); | 811 | ExceptListItem *it = (ExceptListItem *) m_except-> selectedItem ( ); |
781 | 812 | ||
782 | if ( it && it-> itemBelow ( )) | 813 | if ( it && it-> itemBelow ( )) |
783 | it-> moveItem ( it-> itemBelow ( )); | 814 | it-> moveItem ( it-> itemBelow ( )); |
784 | } | 815 | } |
785 | 816 | ||
786 | class ExEdit : public QLineEdit { | 817 | class ExEdit : public QLineEdit |
818 | { | ||
787 | public: | 819 | public: |
788 | ExEdit ( ExceptListItem *item ) | 820 | ExEdit ( ExceptListItem *item ) |
789 | : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) | 821 | : QLineEdit ( item-> listView ( )-> viewport ( ), "exedit" ), it ( item ) |
790 | { | 822 | { |
791 | setFrame ( false ); | 823 | setFrame ( false ); |
792 | 824 | ||
793 | QRect r = it-> listView ( )-> itemRect ( it ); | 825 | QRect r = it-> listView ( )-> itemRect ( it ); |
794 | 826 | ||
795 | int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; | 827 | int x = it-> listView ( )-> header ( )-> cellPos ( 3 ) - 1; |
796 | int y = r. y ( ); | 828 | int y = r. y ( ); |
797 | int w = it-> listView ( )-> viewport ( )-> width ( ) - x; | 829 | int w = it-> listView ( )-> viewport ( )-> width ( ) - x; |
798 | int h = r. height ( ); // + 2; | 830 | int h = r. height ( ); // + 2; |
@@ -813,25 +845,26 @@ public: | |||
813 | virtual void focusOutEvent ( QFocusEvent * ) | 845 | virtual void focusOutEvent ( QFocusEvent * ) |
814 | { | 846 | { |
815 | hide ( ); | 847 | hide ( ); |
816 | if ( m_out ) | 848 | if ( m_out ) |
817 | it-> setPattern ( text ( )); | 849 | it-> setPattern ( text ( )); |
818 | delete this; | 850 | delete this; |
819 | } | 851 | } |
820 | 852 | ||
821 | virtual void keyPressEvent ( QKeyEvent *e ) | 853 | virtual void keyPressEvent ( QKeyEvent *e ) |
822 | { | 854 | { |
823 | if ( e-> key ( ) == Key_Return ) | 855 | if ( e-> key ( ) == Key_Return ) |
824 | it-> listView ( )-> setFocus ( ); | 856 | it-> listView ( )-> setFocus ( ); |
825 | else if ( e-> key ( ) == Key_Escape ) { | 857 | else if ( e-> key ( ) == Key_Escape ) |
858 | { | ||
826 | m_out = false; | 859 | m_out = false; |
827 | it-> listView ( )-> setFocus ( ); | 860 | it-> listView ( )-> setFocus ( ); |
828 | } | 861 | } |
829 | else | 862 | else |
830 | QLineEdit::keyPressEvent ( e ); | 863 | QLineEdit::keyPressEvent ( e ); |
831 | } | 864 | } |
832 | 865 | ||
833 | private: | 866 | private: |
834 | ExceptListItem *it; | 867 | ExceptListItem *it; |
835 | bool m_out; | 868 | bool m_out; |
836 | }; | 869 | }; |
837 | 870 | ||
@@ -839,18 +872,19 @@ void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c ) | |||
839 | { | 872 | { |
840 | if ( !item || c < 0 || c > 3 ) | 873 | if ( !item || c < 0 || c > 3 ) |
841 | return; | 874 | return; |
842 | 875 | ||
843 | ExceptListItem *it = (ExceptListItem *) item; | 876 | ExceptListItem *it = (ExceptListItem *) item; |
844 | 877 | ||
845 | if ( c == 0 ) | 878 | if ( c == 0 ) |
846 | it-> setNoStyle ( !it-> noStyle ( )); | 879 | it-> setNoStyle ( !it-> noStyle ( )); |
847 | else if ( c == 1 ) | 880 | else if ( c == 1 ) |
848 | it-> setNoFont ( !it-> noFont ( )); | 881 | it-> setNoFont ( !it-> noFont ( )); |
849 | else if ( c == 2 ) | 882 | else if ( c == 2 ) |
850 | it-> setNoDeco ( !it-> noDeco ( )); | 883 | it-> setNoDeco ( !it-> noDeco ( )); |
851 | else if ( c == 3 ) { | 884 | else if ( c == 3 ) |
885 | { | ||
852 | m_except-> ensureItemVisible ( it ); | 886 | m_except-> ensureItemVisible ( it ); |
853 | new ExEdit ( it ); | 887 | new ExEdit ( it ); |
854 | } | 888 | } |
855 | } | 889 | } |
856 | 890 | ||
diff --git a/noncore/settings/appearance2/stylelistitem.h b/noncore/settings/appearance2/stylelistitem.h index caefad8..b6c72c3 100644 --- a/noncore/settings/appearance2/stylelistitem.h +++ b/noncore/settings/appearance2/stylelistitem.h | |||
@@ -19,26 +19,32 @@ | |||
19 | : = ...= . :.=- You should have received a copy of the GNU | 19 | : = ...= . :.=- You should have received a copy of the GNU |
20 | -. .:....=;==+<; General Public License along with this file; | 20 | -. .:....=;==+<; General Public License along with this file; |
21 | -_. . . )=. = see the file COPYING. If not, write to the | 21 | -_. . . )=. = see the file COPYING. If not, write to the |
22 | -- :-=` Free Software Foundation, Inc., | 22 | -- :-=` Free Software Foundation, Inc., |
23 | 59 Temple Place - Suite 330, | 23 | 59 Temple Place - Suite 330, |
24 | Boston, MA 02111-1307, USA. | 24 | Boston, MA 02111-1307, USA. |
25 | 25 | ||
26 | */ | 26 | */ |
27 | 27 | ||
28 | #ifndef STYLELISTITEM_H | 28 | #ifndef STYLELISTITEM_H |
29 | #define STYLELISTITEM_H | 29 | #define STYLELISTITEM_H |
30 | 30 | ||
31 | #include <qlistbox.h> | 31 | /* OPIE */ |
32 | #include <qpe/styleinterface.h> | 32 | #include <qpe/styleinterface.h> |
33 | #include <qpe/qlibrary.h> | ||
34 | #include <qpe/resource.h> | ||
35 | |||
36 | /* QT */ | ||
37 | #include <qlistbox.h> | ||
38 | #include <qfileinfo.h> | ||
33 | 39 | ||
34 | #include <stdio.h> | 40 | #include <stdio.h> |
35 | 41 | ||
36 | class StyleListItem : public QListBoxText { | 42 | class StyleListItem : public QListBoxText { |
37 | public: | 43 | public: |
38 | StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t ) | 44 | StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t ) |
39 | { | 45 | { |
40 | m_lib = 0; | 46 | m_lib = 0; |
41 | m_style_if = 0; | 47 | m_style_if = 0; |
42 | m_settings_if = 0; | 48 | m_settings_if = 0; |
43 | m_style = sty; | 49 | m_style = sty; |
44 | } | 50 | } |
diff --git a/noncore/settings/aqpkg/categoryfilterimpl.cpp b/noncore/settings/aqpkg/categoryfilterimpl.cpp index 61e1f93..217d2c9 100644 --- a/noncore/settings/aqpkg/categoryfilterimpl.cpp +++ b/noncore/settings/aqpkg/categoryfilterimpl.cpp | |||
@@ -18,33 +18,39 @@ | |||
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 <iostream> | 30 | #include "categoryfilterimpl.h" |
31 | using namespace std; | ||
32 | 31 | ||
32 | /* OPIE */ | ||
33 | #include <qpe/qpeapplication.h> | ||
34 | |||
35 | /* QT */ | ||
33 | #include <qgroupbox.h> | 36 | #include <qgroupbox.h> |
34 | #include <qlayout.h> | 37 | #include <qlayout.h> |
35 | #include <qlistbox.h> | 38 | #include <qlistbox.h> |
36 | #include <qstring.h> | 39 | #include <qstring.h> |
37 | 40 | ||
38 | #include "categoryfilterimpl.h" | 41 | /* STD */ |
42 | #include <iostream> | ||
43 | using namespace std; | ||
44 | |||
39 | 45 | ||
40 | CategoryFilterImpl :: CategoryFilterImpl(const QString &categories, const QString &selectedCategories, QWidget *parent, const char *name ) | 46 | CategoryFilterImpl :: CategoryFilterImpl(const QString &categories, const QString &selectedCategories, QWidget *parent, const char *name ) |
41 | : QDialog( parent, name, true ) | 47 | : QDialog( parent, name, true ) |
42 | { | 48 | { |
43 | setCaption( tr( "Category Filter" ) ); | 49 | setCaption( tr( "Category Filter" ) ); |
44 | 50 | ||
45 | QVBoxLayout *layout = new QVBoxLayout( this ); | 51 | QVBoxLayout *layout = new QVBoxLayout( this ); |
46 | layout->setMargin( 2 ); | 52 | layout->setMargin( 2 ); |
47 | layout->setSpacing( 4 ); | 53 | layout->setSpacing( 4 ); |
48 | 54 | ||
49 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Select one or more groups" ), this ); | 55 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Select one or more groups" ), this ); |
50 | grpbox->layout()->setSpacing( 2 ); | 56 | grpbox->layout()->setSpacing( 2 ); |
@@ -67,34 +73,34 @@ CategoryFilterImpl :: CategoryFilterImpl(const QString &categories, const QStrin | |||
67 | { | 73 | { |
68 | end = categories.find( "#", start ); | 74 | end = categories.find( "#", start ); |
69 | item = categories.mid( start, end - start ); | 75 | item = categories.mid( start, end - start ); |
70 | if ( item != "" ) | 76 | if ( item != "" ) |
71 | { | 77 | { |
72 | lstCategories->insertItem( item ); | 78 | lstCategories->insertItem( item ); |
73 | finditem = QString( "#%1#" ).arg( item ); | 79 | finditem = QString( "#%1#" ).arg( item ); |
74 | if ( selectedCategories.find( finditem ) != -1 ) | 80 | if ( selectedCategories.find( finditem ) != -1 ) |
75 | lstCategories->setSelected( lstCategories->count()-1, true ); | 81 | lstCategories->setSelected( lstCategories->count()-1, true ); |
76 | } | 82 | } |
77 | 83 | ||
78 | start = end + 1; | 84 | start = end + 1; |
79 | } while ( start < (int)categories.length() ); | 85 | } |
86 | while ( start < (int)categories.length() ); | ||
80 | 87 | ||
81 | lstCategories->sort( true ); | 88 | lstCategories->sort( true ); |
82 | 89 | ||
83 | showMaximized(); | 90 | QPEApplication::showDialog( this ); |
84 | } | 91 | } |
85 | 92 | ||
86 | CategoryFilterImpl :: ~CategoryFilterImpl() | 93 | CategoryFilterImpl :: ~CategoryFilterImpl() |
87 | { | 94 | {} |
88 | } | ||
89 | 95 | ||
90 | QString CategoryFilterImpl :: getSelectedFilter() | 96 | QString CategoryFilterImpl :: getSelectedFilter() |
91 | { | 97 | { |
92 | // Grab cetegories from listbox | 98 | // Grab cetegories from listbox |
93 | QString ret = "#"; | 99 | QString ret = "#"; |
94 | 100 | ||
95 | for ( int i = 0 ; i < (int)lstCategories->count() ; ++i ) | 101 | for ( int i = 0 ; i < (int)lstCategories->count() ; ++i ) |
96 | { | 102 | { |
97 | if ( lstCategories->isSelected( i ) ) | 103 | if ( lstCategories->isSelected( i ) ) |
98 | { | 104 | { |
99 | ret.append( lstCategories->text( i ) ); | 105 | ret.append( lstCategories->text( i ) ); |
100 | ret.append( "#" ); | 106 | ret.append( "#" ); |
diff --git a/noncore/settings/aqpkg/instoptionsimpl.cpp b/noncore/settings/aqpkg/instoptionsimpl.cpp index 9d52013..126e3b9 100644 --- a/noncore/settings/aqpkg/instoptionsimpl.cpp +++ b/noncore/settings/aqpkg/instoptionsimpl.cpp | |||
@@ -18,38 +18,41 @@ | |||
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 "global.h" | ||
31 | #include "instoptionsimpl.h" | ||
32 | #include "ipkg.h" | ||
33 | |||
34 | /* OPIE */ | ||
30 | #ifdef QWS | 35 | #ifdef QWS |
31 | #include <qpe/config.h> | 36 | #include <qpe/config.h> |
32 | #endif | 37 | #endif |
38 | #include <qpe/qpeapplication.h> | ||
33 | 39 | ||
40 | /* QT */ | ||
34 | #include <qcheckbox.h> | 41 | #include <qcheckbox.h> |
35 | #include <qcombobox.h> | 42 | #include <qcombobox.h> |
36 | #include <qgroupbox.h> | 43 | #include <qgroupbox.h> |
37 | #include <qlabel.h> | 44 | #include <qlabel.h> |
38 | #include <qlayout.h> | 45 | #include <qlayout.h> |
39 | 46 | ||
40 | #include "global.h" | ||
41 | #include "instoptionsimpl.h" | ||
42 | #include "ipkg.h" | ||
43 | |||
44 | InstallOptionsDlgImpl::InstallOptionsDlgImpl( int flags, int verb, QWidget * parent, const char* name, bool modal, WFlags fl ) | 47 | InstallOptionsDlgImpl::InstallOptionsDlgImpl( int flags, int verb, QWidget * parent, const char* name, bool modal, WFlags fl ) |
45 | : QDialog( parent, name, modal, fl ) | 48 | : QDialog( parent, name, modal, fl ) |
46 | { | 49 | { |
47 | setCaption( tr( "Options" ) ); | 50 | setCaption( tr( "Options" ) ); |
48 | 51 | ||
49 | QVBoxLayout *layout = new QVBoxLayout( this ); | 52 | QVBoxLayout *layout = new QVBoxLayout( this ); |
50 | layout->setMargin( 2 ); | 53 | layout->setMargin( 2 ); |
51 | layout->setSpacing( 4 ); | 54 | layout->setSpacing( 4 ); |
52 | 55 | ||
53 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Options" ), this ); | 56 | QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Options" ), this ); |
54 | grpbox->layout()->setSpacing( 2 ); | 57 | grpbox->layout()->setSpacing( 2 ); |
55 | grpbox->layout()->setMargin( 4 ); | 58 | grpbox->layout()->setMargin( 4 ); |
@@ -86,31 +89,30 @@ InstallOptionsDlgImpl::InstallOptionsDlgImpl( int flags, int verb, QWidget * par | |||
86 | forceDepends->setChecked( true ); | 89 | forceDepends->setChecked( true ); |
87 | if ( flags & FORCE_REINSTALL ) | 90 | if ( flags & FORCE_REINSTALL ) |
88 | forceReinstall->setChecked( true ); | 91 | forceReinstall->setChecked( true ); |
89 | if ( flags & FORCE_REMOVE ) | 92 | if ( flags & FORCE_REMOVE ) |
90 | forceRemove->setChecked( true ); | 93 | forceRemove->setChecked( true ); |
91 | if ( flags & FORCE_OVERWRITE ) | 94 | if ( flags & FORCE_OVERWRITE ) |
92 | forceOverwrite->setChecked( true ); | 95 | forceOverwrite->setChecked( true ); |
93 | // if ( flags & VERBOSE_WGET ) | 96 | // if ( flags & VERBOSE_WGET ) |
94 | // verboseWget->setChecked( true ); | 97 | // verboseWget->setChecked( true ); |
95 | // if ( flags & MAKE_LINKS ) | 98 | // if ( flags & MAKE_LINKS ) |
96 | // makeLinks->setChecked( true ); | 99 | // makeLinks->setChecked( true ); |
97 | 100 | ||
98 | showMaximized(); | 101 | QPEApplication::showDialog( this ); |
99 | 102 | ||
100 | } | 103 | } |
101 | 104 | ||
102 | InstallOptionsDlgImpl::~InstallOptionsDlgImpl() | 105 | InstallOptionsDlgImpl::~InstallOptionsDlgImpl() |
103 | { | 106 | {} |
104 | } | ||
105 | 107 | ||
106 | 108 | ||
107 | int InstallOptionsDlgImpl :: getFlags() | 109 | int InstallOptionsDlgImpl :: getFlags() |
108 | { | 110 | { |
109 | int flags = 0; | 111 | int flags = 0; |
110 | 112 | ||
111 | if ( forceDepends->isChecked() ) | 113 | if ( forceDepends->isChecked() ) |
112 | flags |= FORCE_DEPENDS; | 114 | flags |= FORCE_DEPENDS; |
113 | if ( forceReinstall->isChecked() ) | 115 | if ( forceReinstall->isChecked() ) |
114 | flags |= FORCE_REINSTALL; | 116 | flags |= FORCE_REINSTALL; |
115 | if ( forceRemove->isChecked() ) | 117 | if ( forceRemove->isChecked() ) |
116 | flags |= FORCE_REMOVE; | 118 | flags |= FORCE_REMOVE; |
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index dbe694e..6f5c712 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp | |||
@@ -18,60 +18,63 @@ | |||
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 <linux/limits.h> | 30 | #include "categoryfilterimpl.h" |
31 | #include <unistd.h> | 31 | #include "datamgr.h" |
32 | #include "global.h" | ||
33 | #include "inputdlg.h" | ||
34 | #include "ipkg.h" | ||
35 | #include "installdlgimpl.h" | ||
36 | #include "letterpushbutton.h" | ||
37 | #include "mainwin.h" | ||
38 | #include "packagewin.h" | ||
39 | #include "settingsimpl.h" | ||
40 | #include "utils.h" | ||
32 | 41 | ||
42 | /* OPIE */ | ||
33 | #include <qpe/qcopenvelope_qws.h> | 43 | #include <qpe/qcopenvelope_qws.h> |
34 | #include <qmenubar.h> | ||
35 | #include <qpe/qpeapplication.h> | 44 | #include <qpe/qpeapplication.h> |
36 | #include <qtoolbar.h> | ||
37 | #include <qpe/config.h> | 45 | #include <qpe/config.h> |
38 | #include <qpe/resource.h> | 46 | #include <qpe/resource.h> |
39 | 47 | ||
48 | /* QT */ | ||
49 | #include <qmenubar.h> | ||
50 | #include <qtoolbar.h> | ||
40 | #include <qaction.h> | 51 | #include <qaction.h> |
41 | #include <qcombobox.h> | 52 | #include <qcombobox.h> |
42 | #include <qfile.h> | 53 | #include <qfile.h> |
43 | #include <qlabel.h> | 54 | #include <qlabel.h> |
44 | #include <qlayout.h> | 55 | #include <qlayout.h> |
45 | #include <qlineedit.h> | 56 | #include <qlineedit.h> |
46 | #include <qlistview.h> | 57 | #include <qlistview.h> |
47 | #include <qmenubar.h> | 58 | #include <qmenubar.h> |
48 | #include <qmessagebox.h> | 59 | #include <qmessagebox.h> |
49 | #include <qpopupmenu.h> | 60 | #include <qpopupmenu.h> |
50 | #include <qprogressbar.h> | 61 | #include <qprogressbar.h> |
51 | #include <qtimer.h> | 62 | #include <qtimer.h> |
52 | #include <qwhatsthis.h> | 63 | #include <qwhatsthis.h> |
53 | #include <qwidgetstack.h> | 64 | #include <qwidgetstack.h> |
54 | 65 | ||
55 | #include "categoryfilterimpl.h" | 66 | /* STD */ |
56 | #include "datamgr.h" | 67 | #include <linux/limits.h> |
57 | #include "global.h" | 68 | #include <unistd.h> |
58 | #include "inputdlg.h" | ||
59 | #include "ipkg.h" | ||
60 | #include "installdlgimpl.h" | ||
61 | #include "letterpushbutton.h" | ||
62 | #include "mainwin.h" | ||
63 | #include "packagewin.h" | ||
64 | #include "settingsimpl.h" | ||
65 | #include "utils.h" | ||
66 | 69 | ||
67 | extern int compareVersions( const char *v1, const char *v2 ); | 70 | extern int compareVersions( const char *v1, const char *v2 ); |
68 | 71 | ||
69 | MainWindow :: MainWindow( QWidget* parent, const char* name, WFlags fl ) | 72 | MainWindow :: MainWindow( QWidget* parent, const char* name, WFlags fl ) |
70 | :QMainWindow( parent, name, fl || WStyle_ContextHelp ) | 73 | :QMainWindow( parent, name, fl || WStyle_ContextHelp ) |
71 | { | 74 | { |
72 | // Disable suspend mode | 75 | // Disable suspend mode |
73 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; | 76 | QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; |
74 | 77 | ||
75 | LOCAL_SERVER = QObject::tr( "Installed packages" ); | 78 | LOCAL_SERVER = QObject::tr( "Installed packages" ); |
76 | LOCAL_IPKGS = QObject::tr( "Local packages" ); | 79 | LOCAL_IPKGS = QObject::tr( "Local packages" ); |
77 | 80 | ||
@@ -1172,32 +1175,33 @@ void MainWindow :: letterPushed( QString t ) | |||
1172 | do | 1175 | do |
1173 | { | 1176 | { |
1174 | if ( item->text().lower().startsWith( t.lower() ) ) | 1177 | if ( item->text().lower().startsWith( t.lower() ) ) |
1175 | { | 1178 | { |
1176 | packagesList->setSelected( item, true ); | 1179 | packagesList->setSelected( item, true ); |
1177 | packagesList->ensureItemVisible( item ); | 1180 | packagesList->ensureItemVisible( item ); |
1178 | break; | 1181 | break; |
1179 | } | 1182 | } |
1180 | 1183 | ||
1181 | item = (QCheckListItem *)item->nextSibling(); | 1184 | item = (QCheckListItem *)item->nextSibling(); |
1182 | if ( !item ) | 1185 | if ( !item ) |
1183 | item = (QCheckListItem *)packagesList->firstChild(); | 1186 | item = (QCheckListItem *)packagesList->firstChild(); |
1184 | } while ( item != start); | 1187 | } |
1188 | while ( item != start); | ||
1185 | } | 1189 | } |
1186 | 1190 | ||
1187 | void MainWindow :: slotDisplayPackage( QListViewItem *item ) | 1191 | void MainWindow :: slotDisplayPackage( QListViewItem *item ) |
1188 | { | 1192 | { |
1189 | QString itemstr( ((QCheckListItem*)item)->text() ); | 1193 | QString itemstr( ((QCheckListItem*)item)->text() ); |
1190 | PackageWindow *p = new PackageWindow( mgr->getServer( serversList->currentText() )->getPackage( itemstr ) ); | 1194 | PackageWindow *p = new PackageWindow( mgr->getServer( serversList->currentText() )->getPackage( itemstr ) ); |
1191 | p->showMaximized(); | 1195 | QPEApplication::showWidget( p ); |
1192 | } | 1196 | } |
1193 | 1197 | ||
1194 | QuestionDlg::QuestionDlg( const QString &caption, const QString &text, const QString &secondbtn ) | 1198 | QuestionDlg::QuestionDlg( const QString &caption, const QString &text, const QString &secondbtn ) |
1195 | : QWidget( 0x0, 0x0, WType_Modal | WType_TopLevel | WStyle_Dialog ) | 1199 | : QWidget( 0x0, 0x0, WType_Modal | WType_TopLevel | WStyle_Dialog ) |
1196 | { | 1200 | { |
1197 | setCaption( caption ); | 1201 | setCaption( caption ); |
1198 | resize( 175, 100 ); | 1202 | resize( 175, 100 ); |
1199 | 1203 | ||
1200 | QGridLayout *layout = new QGridLayout( this ); | 1204 | QGridLayout *layout = new QGridLayout( this ); |
1201 | 1205 | ||
1202 | QLabel *l = new QLabel( text, this ); | 1206 | QLabel *l = new QLabel( text, this ); |
1203 | l->setAlignment( AlignCenter | WordBreak ); | 1207 | l->setAlignment( AlignCenter | WordBreak ); |
diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp index 4887ceb..9fdf31e 100644 --- a/noncore/settings/aqpkg/settingsimpl.cpp +++ b/noncore/settings/aqpkg/settingsimpl.cpp | |||
@@ -18,46 +18,48 @@ | |||
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 <fstream> | 30 | #include "settingsimpl.h" |
31 | #include <algorithm> | 31 | #include "global.h" |
32 | using namespace std; | 32 | |
33 | /* OPIE */ | ||
34 | #include <opie/otabwidget.h> | ||
35 | #ifdef QWS | ||
36 | #include <qpe/config.h> | ||
37 | #include <qpe/resource.h> | ||
38 | #endif | ||
39 | #include <qpe/qpeapplication.h> | ||
33 | 40 | ||
41 | /* QT */ | ||
34 | #include <qcheckbox.h> | 42 | #include <qcheckbox.h> |
35 | #include <qgroupbox.h> | 43 | #include <qgroupbox.h> |
36 | #include <qlabel.h> | 44 | #include <qlabel.h> |
37 | #include <qlayout.h> | 45 | #include <qlayout.h> |
38 | #include <qlineedit.h> | 46 | #include <qlineedit.h> |
39 | #include <qlistbox.h> | 47 | #include <qlistbox.h> |
40 | #include <qpushbutton.h> | 48 | #include <qpushbutton.h> |
41 | 49 | ||
42 | #include <opie/otabwidget.h> | 50 | /* STD */ |
43 | 51 | #include <fstream> | |
44 | #ifdef QWS | 52 | #include <algorithm> |
45 | #include <qpe/config.h> | 53 | using namespace std; |
46 | #include <qpe/resource.h> | ||
47 | #endif | ||
48 | |||
49 | #include "settingsimpl.h" | ||
50 | |||
51 | #include "global.h" | ||
52 | 54 | ||
53 | SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) | 55 | SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) |
54 | : QDialog( parent, name, modal, fl ) | 56 | : QDialog( parent, name, modal, fl ) |
55 | { | 57 | { |
56 | setCaption( tr( "Configuration" ) ); | 58 | setCaption( tr( "Configuration" ) ); |
57 | 59 | ||
58 | // Setup layout to make everything pretty | 60 | // Setup layout to make everything pretty |
59 | QVBoxLayout *layout = new QVBoxLayout( this ); | 61 | QVBoxLayout *layout = new QVBoxLayout( this ); |
60 | layout->setMargin( 2 ); | 62 | layout->setMargin( 2 ); |
61 | layout->setSpacing( 4 ); | 63 | layout->setSpacing( 4 ); |
62 | 64 | ||
63 | // Setup tabs for all info | 65 | // Setup tabs for all info |
@@ -69,32 +71,29 @@ SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const | |||
69 | tabwidget->addTab( initProxyTab(), "aqpkg/proxytab", tr( "Proxies" ) ); | 71 | tabwidget->addTab( initProxyTab(), "aqpkg/proxytab", tr( "Proxies" ) ); |
70 | tabwidget->setCurrentTab( tr( "Servers" ) ); | 72 | tabwidget->setCurrentTab( tr( "Servers" ) ); |
71 | 73 | ||
72 | dataMgr = dataManager; | 74 | dataMgr = dataManager; |
73 | setupData(); | 75 | setupData(); |
74 | changed = false; | 76 | changed = false; |
75 | newserver = false; | 77 | newserver = false; |
76 | newdestination = false; | 78 | newdestination = false; |
77 | } | 79 | } |
78 | 80 | ||
79 | SettingsImpl :: ~SettingsImpl() | 81 | SettingsImpl :: ~SettingsImpl() |
80 | { | 82 | { |
81 | |||
82 | } | 83 | } |
83 | 84 | ||
84 | bool SettingsImpl :: showDlg() | 85 | bool SettingsImpl :: showDlg() |
85 | { | 86 | { |
86 | showMaximized(); | 87 | QPEApplication::execDialog( this ); |
87 | exec(); | ||
88 | |||
89 | if ( changed ) | 88 | if ( changed ) |
90 | dataMgr->writeOutIpkgConf(); | 89 | dataMgr->writeOutIpkgConf(); |
91 | 90 | ||
92 | return changed; | 91 | return changed; |
93 | } | 92 | } |
94 | 93 | ||
95 | QWidget *SettingsImpl :: initServerTab() | 94 | QWidget *SettingsImpl :: initServerTab() |
96 | { | 95 | { |
97 | QWidget *control = new QWidget( this ); | 96 | QWidget *control = new QWidget( this ); |
98 | 97 | ||
99 | QVBoxLayout *vb = new QVBoxLayout( control ); | 98 | QVBoxLayout *vb = new QVBoxLayout( control ); |
100 | 99 | ||
@@ -453,38 +452,40 @@ void SettingsImpl :: changeDestinationDetails() | |||
453 | d->setDestinationName( newName ); | 452 | d->setDestinationName( newName ); |
454 | 453 | ||
455 | // Update list box | 454 | // Update list box |
456 | destinations->changeItem( newName, currentSelectedDestination ); | 455 | destinations->changeItem( newName, currentSelectedDestination ); |
457 | } | 456 | } |
458 | 457 | ||
459 | #ifdef QWS | 458 | #ifdef QWS |
460 | QString key = newName; | 459 | QString key = newName; |
461 | key += "_linkToRoot"; | 460 | key += "_linkToRoot"; |
462 | int val = d->linkToRoot(); | 461 | int val = d->linkToRoot(); |
463 | cfg.writeEntry( key, val ); | 462 | cfg.writeEntry( key, val ); |
464 | #endif | 463 | #endif |
464 | |||
465 | } | 465 | } |
466 | } | 466 | } |
467 | else | 467 | else |
468 | { | 468 | { |
469 | dataMgr->getDestinationList().append( new Destination( newName, destinationurl->text() ) ); | 469 | dataMgr->getDestinationList().append( new Destination( newName, destinationurl->text() ) ); |
470 | destinations->insertItem( newName ); | 470 | destinations->insertItem( newName ); |
471 | destinations->setCurrentItem( destinations->count() ); | 471 | destinations->setCurrentItem( destinations->count() ); |
472 | newdestination = false; | 472 | newdestination = false; |
473 | 473 | ||
474 | #ifdef QWS | 474 | #ifdef QWS |
475 | QString key = newName; | 475 | QString key = newName; |
476 | key += "_linkToRoot"; | 476 | key += "_linkToRoot"; |
477 | cfg.writeEntry( key, true ); | 477 | cfg.writeEntry( key, true ); |
478 | #endif | 478 | #endif |
479 | |||
479 | } | 480 | } |
480 | } | 481 | } |
481 | 482 | ||
482 | //------------------ Proxy tab ---------------------- | 483 | //------------------ Proxy tab ---------------------- |
483 | void SettingsImpl :: proxyApplyChanges() | 484 | void SettingsImpl :: proxyApplyChanges() |
484 | { | 485 | { |
485 | changed = true; | 486 | changed = true; |
486 | dataMgr->setHttpProxy( txtHttpProxy->text() ); | 487 | dataMgr->setHttpProxy( txtHttpProxy->text() ); |
487 | dataMgr->setFtpProxy( txtFtpProxy->text() ); | 488 | dataMgr->setFtpProxy( txtFtpProxy->text() ); |
488 | dataMgr->setProxyUsername( txtUsername->text() ); | 489 | dataMgr->setProxyUsername( txtUsername->text() ); |
489 | dataMgr->setProxyPassword( txtPassword->text() ); | 490 | dataMgr->setProxyPassword( txtPassword->text() ); |
490 | 491 | ||
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp index a00193d..977c283 100644 --- a/noncore/settings/backup/backuprestore.cpp +++ b/noncore/settings/backup/backuprestore.cpp | |||
@@ -1,56 +1,58 @@ | |||
1 | 1 | ||
2 | #include "backuprestore.h" | 2 | #include "backuprestore.h" |
3 | //#include "output.h" | ||
4 | #include "errordialog.h" | 3 | #include "errordialog.h" |
5 | 4 | ||
5 | /* OPIE */ | ||
6 | #include <opie2/ostorageinfo.h> | ||
7 | #include <qpe/qpeapplication.h> | ||
8 | |||
9 | /* QT */ | ||
6 | #include <qapplication.h> | 10 | #include <qapplication.h> |
7 | #include <qmultilineedit.h> | 11 | #include <qmultilineedit.h> |
8 | |||
9 | #include <qdir.h> | 12 | #include <qdir.h> |
10 | #include <qfile.h> | 13 | #include <qfile.h> |
11 | #include <qfileinfo.h> | 14 | #include <qfileinfo.h> |
12 | #include <qlistview.h> | 15 | #include <qlistview.h> |
13 | #include <qpushbutton.h> | 16 | #include <qpushbutton.h> |
14 | #include <qheader.h> | 17 | #include <qheader.h> |
15 | #include <qpe/resource.h> | 18 | #include <qpe/resource.h> |
16 | #include <qpe/config.h> | 19 | #include <qpe/config.h> |
17 | #include <qmessagebox.h> | 20 | #include <qmessagebox.h> |
18 | #include <qcombobox.h> | 21 | #include <qcombobox.h> |
19 | #include <qlist.h> | 22 | #include <qlist.h> |
20 | #include <stdlib.h> | 23 | #include <stdlib.h> |
21 | #include <qregexp.h> | 24 | #include <qregexp.h> |
22 | #include <qtextstream.h> | 25 | #include <qtextstream.h> |
23 | #include <qtextview.h> | 26 | #include <qtextview.h> |
24 | #include <opie2/ostorageinfo.h> | ||
25 | 27 | ||
28 | /* STD */ | ||
26 | #include <errno.h> | 29 | #include <errno.h> |
27 | #include <stdlib.h> | 30 | #include <stdlib.h> |
28 | #include <unistd.h> | 31 | #include <unistd.h> |
29 | #include <sys/stat.h> | 32 | #include <sys/stat.h> |
30 | #include <dirent.h> | 33 | #include <dirent.h> |
31 | 34 | ||
32 | #define HEADER_NAME 0 | 35 | #define HEADER_NAME 0 |
33 | #define HEADER_BACKUP 1 | 36 | #define HEADER_BACKUP 1 |
34 | #define BACKUP_LOCATION 2 | 37 | #define BACKUP_LOCATION 2 |
35 | 38 | ||
36 | #define EXTENSION ".bck" | 39 | #define EXTENSION ".bck" |
37 | 40 | ||
38 | const QString tempFileName = "/tmp/backup.err"; | 41 | const QString tempFileName = "/tmp/backup.err"; |
39 | 42 | ||
40 | 43 | ||
41 | BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) | 44 | BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) |
42 | : BackupAndRestoreBase(parent, name, fl) | 45 | : BackupAndRestoreBase(parent, name, fl) |
43 | { | 46 | { |
44 | this->showMaximized(); | ||
45 | backupList->header()->hide(); | 47 | backupList->header()->hide(); |
46 | restoreList->header()->hide(); | 48 | restoreList->header()->hide(); |
47 | connect(backupButton, SIGNAL(clicked()), | 49 | connect(backupButton, SIGNAL(clicked()), |
48 | this, SLOT(backup())); | 50 | this, SLOT(backup())); |
49 | connect(restoreButton, SIGNAL(clicked()), | 51 | connect(restoreButton, SIGNAL(clicked()), |
50 | this, SLOT(restore())); | 52 | this, SLOT(restore())); |
51 | connect(backupList, SIGNAL(clicked( QListViewItem * )), | 53 | connect(backupList, SIGNAL(clicked( QListViewItem * )), |
52 | this, SLOT(selectItem(QListViewItem*))); | 54 | this, SLOT(selectItem(QListViewItem*))); |
53 | connect(restoreSource, SIGNAL(activated( int )), | 55 | connect(restoreSource, SIGNAL(activated( int )), |
54 | this, SLOT(sourceDirChanged(int))); | 56 | this, SLOT(sourceDirChanged(int))); |
55 | connect(updateList, SIGNAL(clicked()), | 57 | connect(updateList, SIGNAL(clicked()), |
56 | this, SLOT( fileListUpdate())); | 58 | this, SLOT( fileListUpdate())); |
@@ -121,24 +123,25 @@ BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags f | |||
121 | for(uint i = 0; i < list.count(); i++) | 123 | for(uint i = 0; i < list.count(); i++) |
122 | { | 124 | { |
123 | QString text = list.at(i)->text(HEADER_NAME); | 125 | QString text = list.at(i)->text(HEADER_NAME); |
124 | for(uint i2 = 0; i2 < dontBackupList.count(); i2++) | 126 | for(uint i2 = 0; i2 < dontBackupList.count(); i2++) |
125 | { | 127 | { |
126 | if(*dontBackupList.at(i2) == text) | 128 | if(*dontBackupList.at(i2) == text) |
127 | { | 129 | { |
128 | selectItem(list.at(i)); | 130 | selectItem(list.at(i)); |
129 | break; | 131 | break; |
130 | } | 132 | } |
131 | } | 133 | } |
132 | } | 134 | } |
135 | QPEApplication::showWidget( this ); | ||
133 | } | 136 | } |
134 | 137 | ||
135 | BackupAndRestore::~BackupAndRestore() | 138 | BackupAndRestore::~BackupAndRestore() |
136 | { | 139 | { |
137 | QList<QListViewItem> list; | 140 | QList<QListViewItem> list; |
138 | getAllItems(backupList->firstChild(), list); | 141 | getAllItems(backupList->firstChild(), list); |
139 | 142 | ||
140 | Config config("BackupAndRestore"); | 143 | Config config("BackupAndRestore"); |
141 | config.setGroup("DontBackup"); | 144 | config.setGroup("DontBackup"); |
142 | config.clearGroup(); | 145 | config.clearGroup(); |
143 | 146 | ||
144 | int count = 0; | 147 | int count = 0; |
@@ -278,26 +281,25 @@ void BackupAndRestore::backup() | |||
278 | while ( !t.eof() ) | 281 | while ( !t.eof() ) |
279 | { // until end of file... | 282 | { // until end of file... |
280 | s += t.readLine(); // line of text excluding '\n' | 283 | s += t.readLine(); // line of text excluding '\n' |
281 | } | 284 | } |
282 | errorFile.close(); | 285 | errorFile.close(); |
283 | 286 | ||
284 | pErrDialog->m_textarea->setText( s ); | 287 | pErrDialog->m_textarea->setText( s ); |
285 | } | 288 | } |
286 | else | 289 | else |
287 | { | 290 | { |
288 | pErrDialog->m_textarea->setText( "Unable to open File: /tmp/backup.er" ); | 291 | pErrDialog->m_textarea->setText( "Unable to open File: /tmp/backup.er" ); |
289 | } | 292 | } |
290 | pErrDialog->showMaximized(); | 293 | QPEApplication::execDialog( pErrDialog ); |
291 | pErrDialog->exec(); | ||
292 | delete pErrDialog; | 294 | delete pErrDialog; |
293 | break; | 295 | break; |
294 | } | 296 | } |
295 | setCaption(tr("Backup and Restore.. Failed !!")); | 297 | setCaption(tr("Backup and Restore.. Failed !!")); |
296 | return; | 298 | return; |
297 | } | 299 | } |
298 | else | 300 | else |
299 | { | 301 | { |
300 | QMessageBox::information(this, tr( "Message" ), tr( "Backup Successful." ), QString(tr( "Ok" ) ) ); | 302 | QMessageBox::information(this, tr( "Message" ), tr( "Backup Successful." ), QString(tr( "Ok" ) ) ); |
301 | 303 | ||
302 | } | 304 | } |
303 | 305 | ||
@@ -443,26 +445,25 @@ void BackupAndRestore::restore() | |||
443 | while ( !t.eof() ) | 445 | while ( !t.eof() ) |
444 | { // until end of file... | 446 | { // until end of file... |
445 | s += t.readLine(); // line of text excluding '\n' | 447 | s += t.readLine(); // line of text excluding '\n' |
446 | } | 448 | } |
447 | errorFile.close(); | 449 | errorFile.close(); |
448 | 450 | ||
449 | pErrDialog->m_textarea->setText( s ); | 451 | pErrDialog->m_textarea->setText( s ); |
450 | } | 452 | } |
451 | else | 453 | else |
452 | { | 454 | { |
453 | pErrDialog->m_textarea->setText( tr( "Unable to open File: %1" ).arg( "/tmp/backup.er" ) ); | 455 | pErrDialog->m_textarea->setText( tr( "Unable to open File: %1" ).arg( "/tmp/backup.er" ) ); |
454 | } | 456 | } |
455 | pErrDialog->showMaximized(); | 457 | QPEApplication::execDialog( pErrDialog ); |
456 | pErrDialog->exec(); | ||
457 | delete pErrDialog; | 458 | delete pErrDialog; |
458 | 459 | ||
459 | setCaption(tr("Backup and Restore.. Failed !!")); | 460 | setCaption(tr("Backup and Restore.. Failed !!")); |
460 | return; | 461 | return; |
461 | 462 | ||
462 | break; | 463 | break; |
463 | 464 | ||
464 | } | 465 | } |
465 | } | 466 | } |
466 | else | 467 | else |
467 | { | 468 | { |
468 | QMessageBox::information(this, tr( "Message" ), tr( "Restore Successful." ), QString( tr( "Ok") ) ); | 469 | QMessageBox::information(this, tr( "Message" ), tr( "Restore Successful." ), QString( tr( "Ok") ) ); |
diff --git a/noncore/settings/networksettings/ppp/devices.cpp b/noncore/settings/networksettings/ppp/devices.cpp index e94904b..9da090d 100644 --- a/noncore/settings/networksettings/ppp/devices.cpp +++ b/noncore/settings/networksettings/ppp/devices.cpp | |||
@@ -15,43 +15,49 @@ | |||
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "interfaceppp.h" | ||
28 | #include "devices.h" | ||
29 | #include "authwidget.h" | ||
30 | #include "pppdata.h" | ||
31 | #include "edit.h" | ||
32 | #include "general.h" | ||
33 | |||
34 | /* OPIE */ | ||
35 | #include <qpe/qpeapplication.h> | ||
36 | |||
37 | /* QT */ | ||
27 | #include <qdir.h> | 38 | #include <qdir.h> |
28 | #include <stdlib.h> | ||
29 | #include <qlayout.h> | 39 | #include <qlayout.h> |
30 | #include <qtabwidget.h> | 40 | #include <qtabwidget.h> |
31 | #include <qtabdialog.h> | 41 | #include <qtabdialog.h> |
32 | #include <qwhatsthis.h> | 42 | #include <qwhatsthis.h> |
33 | #include <qmessagebox.h> | 43 | #include <qmessagebox.h> |
34 | |||
35 | #include <qapplication.h> | 44 | #include <qapplication.h> |
36 | #include <qbuttongroup.h> | 45 | #include <qbuttongroup.h> |
37 | #include <qmessagebox.h> | 46 | #include <qmessagebox.h> |
38 | #include <qvgroupbox.h> | 47 | #include <qvgroupbox.h> |
39 | 48 | ||
40 | #include "interfaceppp.h" | 49 | /* STD */ |
41 | #include "devices.h" | 50 | #include <stdlib.h> |
42 | #include "authwidget.h" | 51 | |
43 | #include "pppdata.h" | ||
44 | #include "edit.h" | ||
45 | #include "general.h" | ||
46 | 52 | ||
47 | void parseargs(char* buf, char** args); | 53 | void parseargs(char* buf, char** args); |
48 | 54 | ||
49 | DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) | 55 | DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) |
50 | : ChooserWidget(ip->data(), parent, name, f) | 56 | : ChooserWidget(ip->data(), parent, name, f) |
51 | { | 57 | { |
52 | _ifaceppp = ip; | 58 | _ifaceppp = ip; |
53 | QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); | 59 | QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); |
54 | QWhatsThis::add(new_b, tr("Create a new device") ); | 60 | QWhatsThis::add(new_b, tr("Create a new device") ); |
55 | 61 | ||
56 | QWhatsThis::add(copy_b, | 62 | QWhatsThis::add(copy_b, |
57 | tr("Makes a copy of the selected device. All\n" | 63 | tr("Makes a copy of the selected device. All\n" |
@@ -182,26 +188,25 @@ int DevicesWidget::doTab(){ | |||
182 | isnew = false; | 188 | isnew = false; |
183 | } | 189 | } |
184 | 190 | ||
185 | modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); | 191 | modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); |
186 | tabWindow->addTab( modem1, tr("&Device") ); | 192 | tabWindow->addTab( modem1, tr("&Device") ); |
187 | modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); | 193 | modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); |
188 | tabWindow->addTab( modem2, tr("&Modem") ); | 194 | tabWindow->addTab( modem2, tr("&Modem") ); |
189 | 195 | ||
190 | int result = 0; | 196 | int result = 0; |
191 | bool ok = false; | 197 | bool ok = false; |
192 | 198 | ||
193 | while (!ok){ | 199 | while (!ok){ |
194 | dlg->showMaximized(); | 200 | result = QPEApplication::execDialog( dlg ); |
195 | result = dlg->exec(); | ||
196 | ok = true; | 201 | ok = true; |
197 | 202 | ||
198 | if(result == QDialog::Accepted) { | 203 | if(result == QDialog::Accepted) { |
199 | if (!modem1->save()){ | 204 | if (!modem1->save()){ |
200 | QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); | 205 | QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); |
201 | ok = false; | 206 | ok = false; |
202 | }else{ | 207 | }else{ |
203 | modem2->save(); | 208 | modem2->save(); |
204 | } | 209 | } |
205 | } | 210 | } |
206 | } | 211 | } |
207 | 212 | ||
diff --git a/noncore/settings/networksettings/ppp/edit.cpp b/noncore/settings/networksettings/ppp/edit.cpp index ceac90c..7d21605 100644 --- a/noncore/settings/networksettings/ppp/edit.cpp +++ b/noncore/settings/networksettings/ppp/edit.cpp | |||
@@ -14,41 +14,48 @@ | |||
14 | * version 2 of the License, or (at your option) any later version. | 14 | * version 2 of the License, or (at your option) any later version. |
15 | * | 15 | * |
16 | * This program is distributed in the hope that it will be useful, | 16 | * This program is distributed in the hope that it will be useful, |
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
19 | * Library General Public License for more details. | 19 | * Library General Public License for more details. |
20 | * | 20 | * |
21 | * You should have received a copy of the GNU Library General Public | 21 | * You should have received a copy of the GNU Library General Public |
22 | * License along with this program; if not, write to the Free | 22 | * License along with this program; if not, write to the Free |
23 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <string.h> | 26 | #include "edit.h" |
27 | #include <termios.h> | 27 | #include "pppdata.h" |
28 | #include "iplined.h" | ||
29 | #include "auth.h" | ||
30 | |||
31 | /* OPIE */ | ||
32 | #include <qpe/resource.h> | ||
33 | #include <qpe/qpeapplication.h> | ||
34 | |||
35 | /* QT */ | ||
28 | #include <qlayout.h> | 36 | #include <qlayout.h> |
29 | #include <qmessagebox.h> | 37 | #include <qmessagebox.h> |
30 | #include <qwhatsthis.h> | 38 | #include <qwhatsthis.h> |
31 | #include <qregexp.h> | 39 | #include <qregexp.h> |
32 | #include <qapplication.h> | 40 | #include <qapplication.h> |
33 | #include <qbuttongroup.h> | 41 | #include <qbuttongroup.h> |
34 | #include <qvgroupbox.h> | 42 | #include <qvgroupbox.h> |
35 | #include <qhbox.h> | 43 | #include <qhbox.h> |
36 | #include <qdialog.h> | 44 | #include <qdialog.h> |
37 | #include <qpe/resource.h> | ||
38 | 45 | ||
39 | #include "edit.h" | 46 | /* STD */ |
40 | #include "pppdata.h" | 47 | |
41 | #include "iplined.h" | 48 | #include <string.h> |
42 | #include "auth.h" | 49 | #include <termios.h> |
43 | 50 | ||
44 | DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount | 51 | DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount |
45 | , const char *name ) | 52 | , const char *name ) |
46 | : QWidget(parent, name), _pppdata(pd) | 53 | : QWidget(parent, name), _pppdata(pd) |
47 | { | 54 | { |
48 | const int GRIDROWS = 6; | 55 | const int GRIDROWS = 6; |
49 | 56 | ||
50 | QGridLayout *tl = new QGridLayout(this, GRIDROWS, 2, 0 ); | 57 | QGridLayout *tl = new QGridLayout(this, GRIDROWS, 2, 0 ); |
51 | 58 | ||
52 | connect_label = new QLabel(tr("Connection name:"), this); | 59 | connect_label = new QLabel(tr("Connection name:"), this); |
53 | tl->addWidget(connect_label, 0, 0); | 60 | tl->addWidget(connect_label, 0, 0); |
54 | 61 | ||
@@ -103,129 +110,148 @@ DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount | |||
103 | "arrow buttons.\n\n" | 110 | "arrow buttons.\n\n" |
104 | "When a number is busy or fails, <i>kppp</i> will \n" | 111 | "When a number is busy or fails, <i>kppp</i> will \n" |
105 | "try the next number and so on"); | 112 | "try the next number and so on"); |
106 | 113 | ||
107 | QWhatsThis::add(number_label,tmp); | 114 | QWhatsThis::add(number_label,tmp); |
108 | QWhatsThis::add(numbers,tmp); | 115 | QWhatsThis::add(numbers,tmp); |
109 | 116 | ||
110 | pppdargs = new QPushButton(tr("Customize pppd Arguments..."), this); | 117 | pppdargs = new QPushButton(tr("Customize pppd Arguments..."), this); |
111 | connect(pppdargs, SIGNAL(clicked()), SLOT(pppdargsbutton())); | 118 | connect(pppdargs, SIGNAL(clicked()), SLOT(pppdargsbutton())); |
112 | tl->addMultiCellWidget(pppdargs, 5, 5, 0, 1, AlignCenter); | 119 | tl->addMultiCellWidget(pppdargs, 5, 5, 0, 1, AlignCenter); |
113 | 120 | ||
114 | // Set defaults if editing an existing connection | 121 | // Set defaults if editing an existing connection |
115 | if(!isnewaccount) { | 122 | if(!isnewaccount) |
123 | { | ||
116 | connectname_l->setText(_pppdata->accname()); | 124 | connectname_l->setText(_pppdata->accname()); |
117 | 125 | ||
118 | // insert the phone numbers into the listbox | 126 | // insert the phone numbers into the listbox |
119 | QString n = _pppdata->phonenumber(); | 127 | QString n = _pppdata->phonenumber(); |
120 | QString tmp = ""; | 128 | QString tmp = ""; |
121 | uint idx = 0; | 129 | uint idx = 0; |
122 | while(idx != n.length()) { | 130 | while(idx != n.length()) |
123 | if(n[idx] == ':') { | 131 | { |
132 | if(n[idx] == ':') | ||
133 | { | ||
124 | if(tmp.length() > 0) | 134 | if(tmp.length() > 0) |
125 | numbers->insertItem(tmp); | 135 | numbers->insertItem(tmp); |
126 | tmp = ""; | 136 | tmp = ""; |
127 | } else | 137 | } |
138 | else | ||
128 | tmp += n[idx]; | 139 | tmp += n[idx]; |
129 | idx++; | 140 | idx++; |
130 | } | 141 | } |
131 | if(tmp.length() > 0) | 142 | if(tmp.length() > 0) |
132 | numbers->insertItem(tmp); | 143 | numbers->insertItem(tmp); |
133 | 144 | ||
134 | } | 145 | } |
135 | 146 | ||
136 | numbersChanged(); | 147 | numbersChanged(); |
137 | tl->activate(); | 148 | tl->activate(); |
138 | } | 149 | } |
139 | 150 | ||
140 | bool DialWidget::save() { | 151 | bool DialWidget::save() |
152 | { | ||
141 | //first check to make sure that the account name is unique! | 153 | //first check to make sure that the account name is unique! |
142 | if(connectname_l->text().isEmpty() || | 154 | if(connectname_l->text().isEmpty() || |
143 | !_pppdata->isUniqueAccname(connectname_l->text())) { | 155 | !_pppdata->isUniqueAccname(connectname_l->text())) |
156 | { | ||
144 | return false; | 157 | return false; |
145 | } else { | 158 | } |
159 | else | ||
160 | { | ||
146 | _pppdata->setAccname(connectname_l->text()); | 161 | _pppdata->setAccname(connectname_l->text()); |
147 | 162 | ||
148 | QString number = ""; | 163 | QString number = ""; |
149 | for(uint i = 0; i < numbers->count(); i++) { | 164 | for(uint i = 0; i < numbers->count(); i++) |
165 | { | ||
150 | if(i != 0) | 166 | if(i != 0) |
151 | number += ":"; | 167 | number += ":"; |
152 | number += numbers->text(i); | 168 | number += numbers->text(i); |
153 | } | 169 | } |
154 | 170 | ||
155 | _pppdata->setPhonenumber(number); | 171 | _pppdata->setPhonenumber(number); |
156 | return true; | 172 | return true; |
157 | } | 173 | } |
158 | } | 174 | } |
159 | 175 | ||
160 | 176 | ||
161 | void DialWidget::numbersChanged() { | 177 | void DialWidget::numbersChanged() |
178 | { | ||
162 | int sel = numbers->currentItem(); | 179 | int sel = numbers->currentItem(); |
163 | 180 | ||
164 | del->setEnabled(sel != -1); | 181 | del->setEnabled(sel != -1); |
165 | up->setEnabled(sel != -1 && sel != 0); | 182 | up->setEnabled(sel != -1 && sel != 0); |
166 | down->setEnabled(sel != -1 && sel != (int)numbers->count()-1); | 183 | down->setEnabled(sel != -1 && sel != (int)numbers->count()-1); |
167 | } | 184 | } |
168 | 185 | ||
169 | 186 | ||
170 | void DialWidget::selectionChanged(int) { | 187 | void DialWidget::selectionChanged(int) |
188 | { | ||
171 | numbersChanged(); | 189 | numbersChanged(); |
172 | } | 190 | } |
173 | 191 | ||
174 | 192 | ||
175 | void DialWidget::addNumber() { | 193 | void DialWidget::addNumber() |
194 | { | ||
176 | PhoneNumberDialog dlg(this); | 195 | PhoneNumberDialog dlg(this); |
177 | if(dlg.exec()) { | 196 | if(dlg.exec()) |
197 | { | ||
178 | numbers->insertItem(dlg.phoneNumber()); | 198 | numbers->insertItem(dlg.phoneNumber()); |
179 | numbersChanged(); | 199 | numbersChanged(); |
180 | } | 200 | } |
181 | } | 201 | } |
182 | 202 | ||
183 | 203 | ||
184 | void DialWidget::delNumber() { | 204 | void DialWidget::delNumber() |
185 | if(numbers->currentItem() != -1) { | 205 | { |
206 | if(numbers->currentItem() != -1) | ||
207 | { | ||
186 | numbers->removeItem(numbers->currentItem()); | 208 | numbers->removeItem(numbers->currentItem()); |
187 | numbersChanged(); | 209 | numbersChanged(); |
188 | } | 210 | } |
189 | } | 211 | } |
190 | 212 | ||
191 | 213 | ||
192 | void DialWidget::upNumber() { | 214 | void DialWidget::upNumber() |
215 | { | ||
193 | int idx = numbers->currentItem(); | 216 | int idx = numbers->currentItem(); |
194 | if(idx != -1) { | 217 | if(idx != -1) |
218 | { | ||
195 | QString item = numbers->text(idx); | 219 | QString item = numbers->text(idx); |
196 | numbers->removeItem(idx); | 220 | numbers->removeItem(idx); |
197 | numbers->insertItem(item, idx-1); | 221 | numbers->insertItem(item, idx-1); |
198 | numbers->setCurrentItem(idx-1); | 222 | numbers->setCurrentItem(idx-1); |
199 | numbersChanged(); | 223 | numbersChanged(); |
200 | } | 224 | } |
201 | } | 225 | } |
202 | 226 | ||
203 | 227 | ||
204 | void DialWidget::downNumber() { | 228 | void DialWidget::downNumber() |
229 | { | ||
205 | int idx = numbers->currentItem(); | 230 | int idx = numbers->currentItem(); |
206 | if(idx != -1) { | 231 | if(idx != -1) |
232 | { | ||
207 | QString item = numbers->text(idx); | 233 | QString item = numbers->text(idx); |
208 | numbers->removeItem(idx); | 234 | numbers->removeItem(idx); |
209 | numbers->insertItem(item, idx+1); | 235 | numbers->insertItem(item, idx+1); |
210 | numbers->setCurrentItem(idx+1); | 236 | numbers->setCurrentItem(idx+1); |
211 | numbersChanged(); | 237 | numbersChanged(); |
212 | } | 238 | } |
213 | } | 239 | } |
214 | 240 | ||
215 | 241 | ||
216 | void DialWidget::pppdargsbutton() { | 242 | void DialWidget::pppdargsbutton() |
243 | { | ||
217 | PPPdArguments pa(_pppdata, this); | 244 | PPPdArguments pa(_pppdata, this); |
218 | pa.showMaximized(); | 245 | QPEApplication::execDialog( &pa ); |
219 | pa.exec(); | ||
220 | } | 246 | } |
221 | 247 | ||
222 | 248 | ||
223 | 249 | ||
224 | ///////////////////////////////////////////////////////////////////////////// | 250 | ///////////////////////////////////////////////////////////////////////////// |
225 | // ExecWidget | 251 | // ExecWidget |
226 | ///////////////////////////////////////////////////////////////////////////// | 252 | ///////////////////////////////////////////////////////////////////////////// |
227 | ExecWidget::ExecWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name) : | 253 | ExecWidget::ExecWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name) : |
228 | QWidget(parent, name), _pppdata(pd) | 254 | QWidget(parent, name), _pppdata(pd) |
229 | { | 255 | { |
230 | QVBoxLayout *tl = new QVBoxLayout(this, 0 );//, KDialog::spacingHint()); | 256 | QVBoxLayout *tl = new QVBoxLayout(this, 0 );//, KDialog::spacingHint()); |
231 | 257 | ||
@@ -296,34 +322,36 @@ ExecWidget::ExecWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const ch | |||
296 | 322 | ||
297 | QWhatsThis::add(discommand_label,tmp); | 323 | QWhatsThis::add(discommand_label,tmp); |
298 | QWhatsThis::add(discommand,tmp); | 324 | QWhatsThis::add(discommand,tmp); |
299 | 325 | ||
300 | // extra space between entries | 326 | // extra space between entries |
301 | l1->addRowSpacing(1, 5); | 327 | l1->addRowSpacing(1, 5); |
302 | l1->addRowSpacing(3, 5); | 328 | l1->addRowSpacing(3, 5); |
303 | 329 | ||
304 | tl->addStretch(1); | 330 | tl->addStretch(1); |
305 | tl->activate(); | 331 | tl->activate(); |
306 | 332 | ||
307 | // Set defaults if editing an existing connection | 333 | // Set defaults if editing an existing connection |
308 | if(!isnewaccount) { | 334 | if(!isnewaccount) |
335 | { | ||
309 | before_connect->setText(_pppdata->command_before_connect()); | 336 | before_connect->setText(_pppdata->command_before_connect()); |
310 | command->setText(_pppdata->command_on_connect()); | 337 | command->setText(_pppdata->command_on_connect()); |
311 | discommand->setText(_pppdata->command_on_disconnect()); | 338 | discommand->setText(_pppdata->command_on_disconnect()); |
312 | predisconnect->setText(_pppdata->command_before_disconnect()); | 339 | predisconnect->setText(_pppdata->command_before_disconnect()); |
313 | } | 340 | } |
314 | } | 341 | } |
315 | 342 | ||
316 | 343 | ||
317 | bool ExecWidget::save() { | 344 | bool ExecWidget::save() |
345 | { | ||
318 | _pppdata->setCommand_before_connect(before_connect->text()); | 346 | _pppdata->setCommand_before_connect(before_connect->text()); |
319 | _pppdata->setCommand_on_connect(command->text()); | 347 | _pppdata->setCommand_on_connect(command->text()); |
320 | _pppdata->setCommand_before_disconnect(predisconnect->text()); | 348 | _pppdata->setCommand_before_disconnect(predisconnect->text()); |
321 | _pppdata->setCommand_on_disconnect(discommand->text()); | 349 | _pppdata->setCommand_on_disconnect(discommand->text()); |
322 | return true; | 350 | return true; |
323 | } | 351 | } |
324 | 352 | ||
325 | 353 | ||
326 | 354 | ||
327 | ///////////////////////////////////////////////////////////////////////////// | 355 | ///////////////////////////////////////////////////////////////////////////// |
328 | // | 356 | // |
329 | // IPWidget | 357 | // IPWidget |
@@ -405,84 +433,97 @@ IPWidget::IPWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char | |||
405 | "got from the PPP server. This may be useful\n" | 433 | "got from the PPP server. This may be useful\n" |
406 | "if you need to use a protocol which depends\n" | 434 | "if you need to use a protocol which depends\n" |
407 | "on this information, but it can also cause several\n" | 435 | "on this information, but it can also cause several\n" |
408 | "<a href=\"kppp-7.html#autohostname\">problems</a>.\n" | 436 | "<a href=\"kppp-7.html#autohostname\">problems</a>.\n" |
409 | "\n" | 437 | "\n" |
410 | "Don't enable this unless you really need it.")); | 438 | "Don't enable this unless you really need it.")); |
411 | 439 | ||
412 | topLayout->addWidget(box); | 440 | topLayout->addWidget(box); |
413 | topLayout->addWidget(autoname); | 441 | topLayout->addWidget(autoname); |
414 | topLayout->addStretch(); | 442 | topLayout->addStretch(); |
415 | 443 | ||
416 | //load info from gpppdata | 444 | //load info from gpppdata |
417 | if(!isnewaccount) { | 445 | if(!isnewaccount) |
446 | { | ||
418 | if(_pppdata->ipaddr() == "0.0.0.0" && | 447 | if(_pppdata->ipaddr() == "0.0.0.0" && |
419 | _pppdata->subnetmask() == "0.0.0.0") { | 448 | _pppdata->subnetmask() == "0.0.0.0") |
449 | { | ||
420 | dynamicadd_rb->setChecked(true); | 450 | dynamicadd_rb->setChecked(true); |
421 | hitIPSelect(0); | 451 | hitIPSelect(0); |
422 | autoname->setChecked(_pppdata->autoname()); | 452 | autoname->setChecked(_pppdata->autoname()); |
423 | } | 453 | } |
424 | else { | 454 | else |
455 | { | ||
425 | ipaddress_l->setText(_pppdata->ipaddr()); | 456 | ipaddress_l->setText(_pppdata->ipaddr()); |
426 | subnetmask_l->setText(_pppdata->subnetmask()); | 457 | subnetmask_l->setText(_pppdata->subnetmask()); |
427 | staticadd_rb->setChecked(true); | 458 | staticadd_rb->setChecked(true); |
428 | autoname->setChecked(false); | 459 | autoname->setChecked(false); |
429 | } | 460 | } |
430 | } | 461 | } |
431 | else { | 462 | else |
463 | { | ||
432 | dynamicadd_rb->setChecked(true); | 464 | dynamicadd_rb->setChecked(true); |
433 | hitIPSelect(0); | 465 | hitIPSelect(0); |
434 | } | 466 | } |
435 | 467 | ||
436 | } | 468 | } |
437 | 469 | ||
438 | void IPWidget::autoname_t(bool on) { | 470 | void IPWidget::autoname_t(bool on) |
471 | { | ||
439 | static bool was_warned = false; | 472 | static bool was_warned = false; |
440 | 473 | ||
441 | // big-fat warning when selecting the auto configure hostname option | 474 | // big-fat warning when selecting the auto configure hostname option |
442 | if(on && !was_warned) { | 475 | if(on && !was_warned) |
476 | { | ||
443 | QMessageBox::information(this, | 477 | QMessageBox::information(this, |
444 | tr("Selecting this option might cause some weird " | 478 | tr("Selecting this option might cause some weird " |
445 | "problems with the X-server and applications " | 479 | "problems with the X-server and applications " |
446 | "while kppp is connected. Don't use it until " | 480 | "while kppp is connected. Don't use it until " |
447 | "you know what you are doing!\n" | 481 | "you know what you are doing!\n" |
448 | "For more information take a look at the " | 482 | "For more information take a look at the " |
449 | "handbook (or help) in the section \"Frequently " | 483 | "handbook (or help) in the section \"Frequently " |
450 | "asked questions\"."), | 484 | "asked questions\"."), |
451 | tr("Warning")); | 485 | tr("Warning")); |
452 | was_warned = true; | 486 | was_warned = true; |
453 | } | 487 | } |
454 | } | 488 | } |
455 | 489 | ||
456 | 490 | ||
457 | void IPWidget::save() { | 491 | void IPWidget::save() |
458 | if(dynamicadd_rb->isChecked()) { | 492 | { |
493 | if(dynamicadd_rb->isChecked()) | ||
494 | { | ||
459 | _pppdata->setIpaddr("0.0.0.0"); | 495 | _pppdata->setIpaddr("0.0.0.0"); |
460 | _pppdata->setSubnetmask("0.0.0.0"); | 496 | _pppdata->setSubnetmask("0.0.0.0"); |
461 | } else { | 497 | } |
498 | else | ||
499 | { | ||
462 | _pppdata->setIpaddr(ipaddress_l->text()); | 500 | _pppdata->setIpaddr(ipaddress_l->text()); |
463 | _pppdata->setSubnetmask(subnetmask_l->text()); | 501 | _pppdata->setSubnetmask(subnetmask_l->text()); |
464 | } | 502 | } |
465 | _pppdata->setAutoname(autoname->isChecked()); | 503 | _pppdata->setAutoname(autoname->isChecked()); |
466 | } | 504 | } |
467 | 505 | ||
468 | 506 | ||
469 | void IPWidget::hitIPSelect( int i ) { | 507 | void IPWidget::hitIPSelect( int i ) |
470 | if(i == 0) { | 508 | { |
509 | if(i == 0) | ||
510 | { | ||
471 | ipaddress_label->setEnabled(false); | 511 | ipaddress_label->setEnabled(false); |
472 | sub_label->setEnabled(false); | 512 | sub_label->setEnabled(false); |
473 | ipaddress_l->setEnabled(false); | 513 | ipaddress_l->setEnabled(false); |
474 | subnetmask_l->setEnabled(false); | 514 | subnetmask_l->setEnabled(false); |
475 | } | 515 | } |
476 | else { | 516 | else |
517 | { | ||
477 | ipaddress_label->setEnabled(true); | 518 | ipaddress_label->setEnabled(true); |
478 | sub_label->setEnabled(true); | 519 | sub_label->setEnabled(true); |
479 | ipaddress_l->setEnabled(true); | 520 | ipaddress_l->setEnabled(true); |
480 | subnetmask_l->setEnabled(true); | 521 | subnetmask_l->setEnabled(true); |
481 | } | 522 | } |
482 | } | 523 | } |
483 | 524 | ||
484 | 525 | ||
485 | 526 | ||
486 | DNSWidget::DNSWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) | 527 | DNSWidget::DNSWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) |
487 | : QWidget(parent, name), _pppdata(pd) | 528 | : QWidget(parent, name), _pppdata(pd) |
488 | { | 529 | { |
@@ -588,85 +629,93 @@ DNSWidget::DNSWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const cha | |||
588 | tr("<p>When this option is selected, all DNS\n" | 629 | tr("<p>When this option is selected, all DNS\n" |
589 | "servers specified in <tt>/etc/resolv.conf</tt> are\n" | 630 | "servers specified in <tt>/etc/resolv.conf</tt> are\n" |
590 | "temporary disabled while the dialup connection\n" | 631 | "temporary disabled while the dialup connection\n" |
591 | "is established. After the connection is\n" | 632 | "is established. After the connection is\n" |
592 | "closed, the servers will be re-enabled\n" | 633 | "closed, the servers will be re-enabled\n" |
593 | "\n" | 634 | "\n" |
594 | "Typically, there is no reason to use this\n" | 635 | "Typically, there is no reason to use this\n" |
595 | "option, but it may become useful under \n" | 636 | "option, but it may become useful under \n" |
596 | "some circumstances.")); | 637 | "some circumstances.")); |
597 | 638 | ||
598 | 639 | ||
599 | // restore data if editing | 640 | // restore data if editing |
600 | if(!isnewaccount) { | 641 | if(!isnewaccount) |
642 | { | ||
601 | dnsservers->insertStringList(_pppdata->dns()); | 643 | dnsservers->insertStringList(_pppdata->dns()); |
602 | dnsdomain->setText(_pppdata->domain()); | 644 | dnsdomain->setText(_pppdata->domain()); |
603 | } | 645 | } |
604 | 646 | ||
605 | int mode = _pppdata->autoDNS() ? 0 : 1; | 647 | int mode = _pppdata->autoDNS() ? 0 : 1; |
606 | bg->setButton(mode); | 648 | bg->setButton(mode); |
607 | DNS_Mode_Selected(mode); | 649 | DNS_Mode_Selected(mode); |
608 | 650 | ||
609 | tl->activate(); | 651 | tl->activate(); |
610 | } | 652 | } |
611 | 653 | ||
612 | void DNSWidget::DNS_Edit_Changed(const QString &text) { | 654 | void DNSWidget::DNS_Edit_Changed(const QString &text) |
655 | { | ||
613 | QRegExp r("[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); | 656 | QRegExp r("[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); |
614 | add->setEnabled(text.find(r) != -1); | 657 | add->setEnabled(text.find(r) != -1); |
615 | } | 658 | } |
616 | 659 | ||
617 | void DNSWidget::DNS_Entry_Selected(int) { | 660 | void DNSWidget::DNS_Entry_Selected(int) |
661 | { | ||
618 | remove->setEnabled(true); | 662 | remove->setEnabled(true); |
619 | } | 663 | } |
620 | 664 | ||
621 | void DNSWidget::DNS_Mode_Selected(int mode) { | 665 | void DNSWidget::DNS_Mode_Selected(int mode) |
666 | { | ||
622 | bool on = (mode == 1); | 667 | bool on = (mode == 1); |
623 | dns_label->setEnabled(on); | 668 | dns_label->setEnabled(on); |
624 | servers_label->setEnabled(on); | 669 | servers_label->setEnabled(on); |
625 | dnsipaddr->setText(""); | 670 | dnsipaddr->setText(""); |
626 | dnsipaddr->setEnabled(on); | 671 | dnsipaddr->setEnabled(on); |
627 | add->setEnabled(false); | 672 | add->setEnabled(false); |
628 | remove->setEnabled(dnsservers->count()>0 && on); | 673 | remove->setEnabled(dnsservers->count()>0 && on); |
629 | dnsservers->clearSelection(); | 674 | dnsservers->clearSelection(); |
630 | dnsservers->setEnabled(on); | 675 | dnsservers->setEnabled(on); |
631 | dnsservers->triggerUpdate(false); | 676 | dnsservers->triggerUpdate(false); |
632 | } | 677 | } |
633 | 678 | ||
634 | void DNSWidget::save() { | 679 | void DNSWidget::save() |
680 | { | ||
635 | _pppdata->setAutoDNS(bg->id(bg->selected()) == 0); | 681 | _pppdata->setAutoDNS(bg->id(bg->selected()) == 0); |
636 | QStringList serverlist; | 682 | QStringList serverlist; |
637 | for(uint i=0; i < dnsservers->count(); i++) | 683 | for(uint i=0; i < dnsservers->count(); i++) |
638 | serverlist.append(dnsservers->text(i)); | 684 | serverlist.append(dnsservers->text(i)); |
639 | _pppdata->setDns(serverlist); | 685 | _pppdata->setDns(serverlist); |
640 | 686 | ||
641 | // strip leading dot | 687 | // strip leading dot |
642 | QString s(dnsdomain->text()); | 688 | QString s(dnsdomain->text()); |
643 | if(s.left(1) == ".") | 689 | if(s.left(1) == ".") |
644 | _pppdata->setDomain(s.mid(1)); | 690 | _pppdata->setDomain(s.mid(1)); |
645 | else | 691 | else |
646 | _pppdata->setDomain(dnsdomain->text()); | 692 | _pppdata->setDomain(dnsdomain->text()); |
647 | 693 | ||
648 | _pppdata->setExDNSDisabled(exdnsdisabled_toggle->isChecked()); | 694 | _pppdata->setExDNSDisabled(exdnsdisabled_toggle->isChecked()); |
649 | } | 695 | } |
650 | 696 | ||
651 | 697 | ||
652 | void DNSWidget::adddns() { | 698 | void DNSWidget::adddns() |
653 | if(dnsservers->count() < MAX_DNS_ENTRIES) { | 699 | { |
700 | if(dnsservers->count() < MAX_DNS_ENTRIES) | ||
701 | { | ||
654 | dnsservers->insertItem(dnsipaddr->text()); | 702 | dnsservers->insertItem(dnsipaddr->text()); |
655 | dnsipaddr->setText(""); | 703 | dnsipaddr->setText(""); |
656 | } | 704 | } |
657 | } | 705 | } |
658 | 706 | ||
659 | 707 | ||
660 | void DNSWidget::removedns() { | 708 | void DNSWidget::removedns() |
709 | { | ||
661 | int i; | 710 | int i; |
662 | i = dnsservers->currentItem(); | 711 | i = dnsservers->currentItem(); |
663 | if(i != -1) | 712 | if(i != -1) |
664 | dnsservers->removeItem(i); | 713 | dnsservers->removeItem(i); |
665 | remove->setEnabled(dnsservers->count()>0); | 714 | remove->setEnabled(dnsservers->count()>0); |
666 | } | 715 | } |
667 | 716 | ||
668 | 717 | ||
669 | // | 718 | // |
670 | // GatewayWidget | 719 | // GatewayWidget |
671 | // | 720 | // |
672 | GatewayWidget::GatewayWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) | 721 | GatewayWidget::GatewayWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) |
@@ -712,55 +761,63 @@ GatewayWidget::GatewayWidget( PPPData *pd, QWidget *parent, bool isnewaccount, c | |||
712 | QWhatsThis::add(defaultroute, | 761 | QWhatsThis::add(defaultroute, |
713 | tr("If this option is enabled, all packets not\n" | 762 | tr("If this option is enabled, all packets not\n" |
714 | "going to the local net are routed through\n" | 763 | "going to the local net are routed through\n" |
715 | "the PPP connection.\n" | 764 | "the PPP connection.\n" |
716 | "\n" | 765 | "\n" |
717 | "Normally, you should turn this on")); | 766 | "Normally, you should turn this on")); |
718 | 767 | ||
719 | topLayout->addWidget(box); | 768 | topLayout->addWidget(box); |
720 | topLayout->addWidget(defaultroute); | 769 | topLayout->addWidget(defaultroute); |
721 | topLayout->addStretch(); | 770 | topLayout->addStretch(); |
722 | 771 | ||
723 | //load info from gpppdata | 772 | //load info from gpppdata |
724 | if(!isnewaccount) { | 773 | if(!isnewaccount) |
725 | if(_pppdata->gateway() == "0.0.0.0") { | 774 | { |
775 | if(_pppdata->gateway() == "0.0.0.0") | ||
776 | { | ||
726 | defaultgateway->setChecked(true); | 777 | defaultgateway->setChecked(true); |
727 | hitGatewaySelect(0); | 778 | hitGatewaySelect(0); |
728 | } | 779 | } |
729 | else { | 780 | else |
781 | { | ||
730 | gatewayaddr->setText(_pppdata->gateway()); | 782 | gatewayaddr->setText(_pppdata->gateway()); |
731 | staticgateway->setChecked(true); | 783 | staticgateway->setChecked(true); |
732 | } | 784 | } |
733 | defaultroute->setChecked(_pppdata->defaultroute()); | 785 | defaultroute->setChecked(_pppdata->defaultroute()); |
734 | } | 786 | } |
735 | else { | 787 | else |
788 | { | ||
736 | defaultgateway->setChecked(true); | 789 | defaultgateway->setChecked(true); |
737 | hitGatewaySelect(0); | 790 | hitGatewaySelect(0); |
738 | defaultroute->setChecked(true); | 791 | defaultroute->setChecked(true); |
739 | } | 792 | } |
740 | } | 793 | } |
741 | 794 | ||
742 | void GatewayWidget::save() { | 795 | void GatewayWidget::save() |
796 | { | ||
743 | _pppdata->setGateway(gatewayaddr->text()); | 797 | _pppdata->setGateway(gatewayaddr->text()); |
744 | _pppdata->setDefaultroute(defaultroute->isChecked()); | 798 | _pppdata->setDefaultroute(defaultroute->isChecked()); |
745 | } | 799 | } |
746 | 800 | ||
747 | 801 | ||
748 | void GatewayWidget::hitGatewaySelect( int i ) { | 802 | void GatewayWidget::hitGatewaySelect( int i ) |
749 | if(i == 0) { | 803 | { |
804 | if(i == 0) | ||
805 | { | ||
750 | gatewayaddr->setText("0.0.0.0"); | 806 | gatewayaddr->setText("0.0.0.0"); |
751 | gatewayaddr->setEnabled(false); | 807 | gatewayaddr->setEnabled(false); |
752 | gate_label->setEnabled(false); | 808 | gate_label->setEnabled(false); |
753 | } | 809 | } |
754 | else { | 810 | else |
811 | { | ||
755 | gatewayaddr->setEnabled(true); | 812 | gatewayaddr->setEnabled(true); |
756 | gatewayaddr->setText(""); | 813 | gatewayaddr->setText(""); |
757 | gate_label->setEnabled(true); | 814 | gate_label->setEnabled(true); |
758 | } | 815 | } |
759 | } | 816 | } |
760 | 817 | ||
761 | 818 | ||
762 | 819 | ||
763 | ScriptWidget::ScriptWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) | 820 | ScriptWidget::ScriptWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) |
764 | : QWidget(parent, name),_pppdata(pd) | 821 | : QWidget(parent, name),_pppdata(pd) |
765 | { | 822 | { |
766 | 823 | ||
@@ -794,112 +851,126 @@ ScriptWidget::ScriptWidget( PPPData *pd, QWidget *parent, bool isnewaccount, con | |||
794 | connect(sl, SIGNAL(highlighted(int)), SLOT(slhighlighted(int))); | 851 | connect(sl, SIGNAL(highlighted(int)), SLOT(slhighlighted(int))); |
795 | // sl->setMinimumSize(QSize(150, 140)); | 852 | // sl->setMinimumSize(QSize(150, 140)); |
796 | 853 | ||
797 | slb = new QScrollBar(this); | 854 | slb = new QScrollBar(this); |
798 | // slb->setFixedWidth(slb->sizeHint().width()); | 855 | // slb->setFixedWidth(slb->sizeHint().width()); |
799 | connect(slb, SIGNAL(valueChanged(int)), SLOT(scrolling(int))); | 856 | connect(slb, SIGNAL(valueChanged(int)), SLOT(scrolling(int))); |
800 | 857 | ||
801 | l12->addWidget(stl, 1); | 858 | l12->addWidget(stl, 1); |
802 | l12->addWidget(sl, 3); | 859 | l12->addWidget(sl, 3); |
803 | l12->addWidget(slb, 0); | 860 | l12->addWidget(slb, 0); |
804 | 861 | ||
805 | //load data from gpppdata | 862 | //load data from gpppdata |
806 | if(!isnewaccount) { | 863 | if(!isnewaccount) |
864 | { | ||
807 | QStringList &comlist = _pppdata->scriptType(); | 865 | QStringList &comlist = _pppdata->scriptType(); |
808 | QStringList &arglist = _pppdata->script(); | 866 | QStringList &arglist = _pppdata->script(); |
809 | QStringList::Iterator itcom = comlist.begin(); | 867 | QStringList::Iterator itcom = comlist.begin(); |
810 | QStringList::Iterator itarg = arglist.begin(); | 868 | QStringList::Iterator itarg = arglist.begin(); |
811 | 869 | ||
812 | for ( ; | 870 | for ( ; |
813 | itcom != comlist.end() && itarg != arglist.end(); | 871 | itcom != comlist.end() && itarg != arglist.end(); |
814 | ++itcom, ++itarg ) | 872 | ++itcom, ++itarg ) |
815 | { | 873 | { |
816 | stl->insertItem(*itcom); | 874 | stl->insertItem(*itcom); |
817 | sl->insertItem(*itarg); | 875 | sl->insertItem(*itarg); |
818 | } | 876 | } |
819 | } | 877 | } |
820 | 878 | ||
821 | insert->setEnabled(false); | 879 | insert->setEnabled(false); |
822 | remove->setEnabled(false); | 880 | remove->setEnabled(false); |
823 | adjustScrollBar(); | 881 | adjustScrollBar(); |
824 | tl->activate(); | 882 | tl->activate(); |
825 | } | 883 | } |
826 | 884 | ||
827 | bool ScriptWidget::check() { | 885 | bool ScriptWidget::check() |
886 | { | ||
828 | uint lstart = 0; | 887 | uint lstart = 0; |
829 | uint lend = 0; | 888 | uint lend = 0; |
830 | uint errcnt = 0; | 889 | uint errcnt = 0; |
831 | 890 | ||
832 | if(sl->count() > 0) { | 891 | if(sl->count() > 0) |
833 | for( uint i=0; i <= sl->count()-1; i++) { | 892 | { |
834 | if(stl->text(i) == "LoopStart") { | 893 | for( uint i=0; i <= sl->count()-1; i++) |
894 | { | ||
895 | if(stl->text(i) == "LoopStart") | ||
896 | { | ||
835 | lstart++; | 897 | lstart++; |
836 | } | 898 | } |
837 | if (stl->text(i) == "LoopEnd") { | 899 | if (stl->text(i) == "LoopEnd") |
900 | { | ||
838 | lend++; | 901 | lend++; |
839 | } | 902 | } |
840 | if ( lend > lstart ) errcnt++; | 903 | if ( lend > lstart ) errcnt++; |
841 | } | 904 | } |
842 | return ( (errcnt == 0 ) && (lstart == lend) ); | 905 | return ( (errcnt == 0 ) && (lstart == lend) ); |
843 | } | 906 | } |
844 | return true; | 907 | return true; |
845 | } | 908 | } |
846 | 909 | ||
847 | 910 | ||
848 | void ScriptWidget::save() { | 911 | void ScriptWidget::save() |
912 | { | ||
849 | QStringList typelist, arglist; | 913 | QStringList typelist, arglist; |
850 | for(uint i=0; i < sl->count(); i++) { | 914 | for(uint i=0; i < sl->count(); i++) |
915 | { | ||
851 | typelist.append(stl->text(i)); | 916 | typelist.append(stl->text(i)); |
852 | arglist.append(sl->text(i)); | 917 | arglist.append(sl->text(i)); |
853 | } | 918 | } |
854 | _pppdata->setScriptType(typelist); | 919 | _pppdata->setScriptType(typelist); |
855 | _pppdata->setScript(arglist); | 920 | _pppdata->setScript(arglist); |
856 | } | 921 | } |
857 | 922 | ||
858 | 923 | ||
859 | 924 | ||
860 | void ScriptWidget::adjustScrollBar() { | 925 | void ScriptWidget::adjustScrollBar() |
926 | { | ||
861 | if((int)sl->count() <= sl->numItemsVisible()) | 927 | if((int)sl->count() <= sl->numItemsVisible()) |
862 | slb->setRange(0, 0); | 928 | slb->setRange(0, 0); |
863 | else | 929 | else |
864 | slb->setRange(0, (sl->count() - sl->numItemsVisible())+1); | 930 | slb->setRange(0, (sl->count() - sl->numItemsVisible())+1); |
865 | } | 931 | } |
866 | 932 | ||
867 | 933 | ||
868 | void ScriptWidget::scrolling(int i) { | 934 | void ScriptWidget::scrolling(int i) |
935 | { | ||
869 | sl->setTopItem(i); | 936 | sl->setTopItem(i); |
870 | stl->setTopItem(i); | 937 | stl->setTopItem(i); |
871 | } | 938 | } |
872 | 939 | ||
873 | 940 | ||
874 | void ScriptWidget::slhighlighted(int i) { | 941 | void ScriptWidget::slhighlighted(int i) |
942 | { | ||
875 | insert->setEnabled(true); | 943 | insert->setEnabled(true); |
876 | remove->setEnabled(true); | 944 | remove->setEnabled(true); |
877 | stl->setCurrentItem(i); | 945 | stl->setCurrentItem(i); |
878 | } | 946 | } |
879 | 947 | ||
880 | 948 | ||
881 | void ScriptWidget::stlhighlighted(int i) { | 949 | void ScriptWidget::stlhighlighted(int i) |
950 | { | ||
882 | insert->setEnabled(true); | 951 | insert->setEnabled(true); |
883 | remove->setEnabled(true); | 952 | remove->setEnabled(true); |
884 | sl->setCurrentItem(i); | 953 | sl->setCurrentItem(i); |
885 | } | 954 | } |
886 | 955 | ||
887 | 956 | ||
888 | void ScriptWidget::addButton() { | 957 | void ScriptWidget::addButton() |
958 | { | ||
889 | //don't allow more than the maximum script entries | 959 | //don't allow more than the maximum script entries |
890 | if(sl->count() == MAX_SCRIPT_ENTRIES-1) | 960 | if(sl->count() == MAX_SCRIPT_ENTRIES-1) |
891 | return; | 961 | return; |
892 | 962 | ||
893 | switch(se->type()) { | 963 | switch(se->type()) |
964 | { | ||
894 | case ScriptEdit::Expect: | 965 | case ScriptEdit::Expect: |
895 | stl->insertItem("Expect"); | 966 | stl->insertItem("Expect"); |
896 | sl->insertItem(se->text()); | 967 | sl->insertItem(se->text()); |
897 | break; | 968 | break; |
898 | 969 | ||
899 | case ScriptEdit::Send: | 970 | case ScriptEdit::Send: |
900 | stl->insertItem("Send"); | 971 | stl->insertItem("Send"); |
901 | sl->insertItem(se->text()); | 972 | sl->insertItem(se->text()); |
902 | break; | 973 | break; |
903 | 974 | ||
904 | case ScriptEdit::SendNoEcho: | 975 | case ScriptEdit::SendNoEcho: |
905 | stl->insertItem("SendNoEcho"); | 976 | stl->insertItem("SendNoEcho"); |
@@ -971,31 +1042,33 @@ void ScriptWidget::addButton() { | |||
971 | } | 1042 | } |
972 | 1043 | ||
973 | //get the scrollbar adjusted, and scroll the list so we can see what | 1044 | //get the scrollbar adjusted, and scroll the list so we can see what |
974 | //we're adding to | 1045 | //we're adding to |
975 | adjustScrollBar(); | 1046 | adjustScrollBar(); |
976 | slb->setValue(slb->maxValue()); | 1047 | slb->setValue(slb->maxValue()); |
977 | 1048 | ||
978 | //clear the text in the entry box | 1049 | //clear the text in the entry box |
979 | se->setText(""); | 1050 | se->setText(""); |
980 | } | 1051 | } |
981 | 1052 | ||
982 | 1053 | ||
983 | void ScriptWidget::insertButton() { | 1054 | void ScriptWidget::insertButton() |
1055 | { | ||
984 | //exit if there is no highlighted item, or we've reached the | 1056 | //exit if there is no highlighted item, or we've reached the |
985 | //maximum entries in the script list | 1057 | //maximum entries in the script list |
986 | if(sl->currentItem() < 0 || (sl->count() == MAX_SCRIPT_ENTRIES-1)) | 1058 | if(sl->currentItem() < 0 || (sl->count() == MAX_SCRIPT_ENTRIES-1)) |
987 | return; | 1059 | return; |
988 | 1060 | ||
989 | switch(se->type()) { | 1061 | switch(se->type()) |
1062 | { | ||
990 | case ScriptEdit::Expect: | 1063 | case ScriptEdit::Expect: |
991 | stl->insertItem("Expect", stl->currentItem()); | 1064 | stl->insertItem("Expect", stl->currentItem()); |
992 | sl->insertItem(se->text(), sl->currentItem()); | 1065 | sl->insertItem(se->text(), sl->currentItem()); |
993 | break; | 1066 | break; |
994 | 1067 | ||
995 | case ScriptEdit::Send: | 1068 | case ScriptEdit::Send: |
996 | stl->insertItem("Send", stl->currentItem()); | 1069 | stl->insertItem("Send", stl->currentItem()); |
997 | sl->insertItem(se->text(), sl->currentItem()); | 1070 | sl->insertItem(se->text(), sl->currentItem()); |
998 | break; | 1071 | break; |
999 | 1072 | ||
1000 | case ScriptEdit::SendNoEcho: | 1073 | case ScriptEdit::SendNoEcho: |
1001 | stl->insertItem("SendNoEcho", stl->currentItem()); | 1074 | stl->insertItem("SendNoEcho", stl->currentItem()); |
@@ -1061,26 +1134,28 @@ void ScriptWidget::insertButton() { | |||
1061 | stl->insertItem("Save", stl->currentItem()); | 1134 | stl->insertItem("Save", stl->currentItem()); |
1062 | sl->insertItem(se->text(), sl->currentItem()); | 1135 | sl->insertItem(se->text(), sl->currentItem()); |
1063 | break; | 1136 | break; |
1064 | 1137 | ||
1065 | default: | 1138 | default: |
1066 | break; | 1139 | break; |
1067 | } | 1140 | } |
1068 | adjustScrollBar(); | 1141 | adjustScrollBar(); |
1069 | se->setText(""); | 1142 | se->setText(""); |
1070 | } | 1143 | } |
1071 | 1144 | ||
1072 | 1145 | ||
1073 | void ScriptWidget::removeButton() { | 1146 | void ScriptWidget::removeButton() |
1074 | if(sl->currentItem() >= 0) { | 1147 | { |
1148 | if(sl->currentItem() >= 0) | ||
1149 | { | ||
1075 | int stlc = stl->currentItem(); | 1150 | int stlc = stl->currentItem(); |
1076 | sl->removeItem(sl->currentItem()); | 1151 | sl->removeItem(sl->currentItem()); |
1077 | stl->removeItem(stlc); | 1152 | stl->removeItem(stlc); |
1078 | adjustScrollBar(); | 1153 | adjustScrollBar(); |
1079 | insert->setEnabled(sl->currentItem() != -1); | 1154 | insert->setEnabled(sl->currentItem() != -1); |
1080 | remove->setEnabled(sl->currentItem() != -1); | 1155 | remove->setEnabled(sl->currentItem() != -1); |
1081 | } | 1156 | } |
1082 | } | 1157 | } |
1083 | 1158 | ||
1084 | 1159 | ||
1085 | 1160 | ||
1086 | ///////////////////////////////////////////////////////////////////////////// | 1161 | ///////////////////////////////////////////////////////////////////////////// |
@@ -1110,25 +1185,27 @@ PhoneNumberDialog::PhoneNumberDialog(QWidget *parent) | |||
1110 | layout->addWidget( le ); | 1185 | layout->addWidget( le ); |
1111 | 1186 | ||
1112 | connect(le, SIGNAL(textChanged(const QString &)), | 1187 | connect(le, SIGNAL(textChanged(const QString &)), |
1113 | this, SLOT(textChanged(const QString &))); | 1188 | this, SLOT(textChanged(const QString &))); |
1114 | 1189 | ||
1115 | le->setFocus(); | 1190 | le->setFocus(); |
1116 | textChanged(""); | 1191 | textChanged(""); |
1117 | 1192 | ||
1118 | 1193 | ||
1119 | } | 1194 | } |
1120 | 1195 | ||
1121 | 1196 | ||
1122 | QString PhoneNumberDialog::phoneNumber() { | 1197 | QString PhoneNumberDialog::phoneNumber() |
1198 | { | ||
1123 | QString s = le->text(); | 1199 | QString s = le->text(); |
1124 | 1200 | ||
1125 | return s; | 1201 | return s; |
1126 | } | 1202 | } |
1127 | 1203 | ||
1128 | 1204 | ||
1129 | void PhoneNumberDialog::textChanged(const QString &s) { | 1205 | void PhoneNumberDialog::textChanged(const QString &s) |
1206 | { | ||
1130 | // enableButtonOK(s.length() > 0); | 1207 | // enableButtonOK(s.length() > 0); |
1131 | } | 1208 | } |
1132 | 1209 | ||
1133 | 1210 | ||
1134 | //#include "edit.moc" | 1211 | //#include "edit.moc" |
diff --git a/noncore/settings/sysinfo/modulesinfo.cpp b/noncore/settings/sysinfo/modulesinfo.cpp index 566b179..9cb8ad2 100644 --- a/noncore/settings/sysinfo/modulesinfo.cpp +++ b/noncore/settings/sysinfo/modulesinfo.cpp | |||
@@ -10,35 +10,37 @@ | |||
10 | ** Based on ProcessInfo by Dan Williams <williamsdr@acm.org> | 10 | ** Based on ProcessInfo by Dan Williams <williamsdr@acm.org> |
11 | ** | 11 | ** |
12 | ** This file may be distributed and/or modified under the terms of the | 12 | ** This file may be distributed and/or modified under the terms of the |
13 | ** GNU General Public License version 2 as published by the Free Software | 13 | ** GNU General Public License version 2 as published by the Free Software |
14 | ** Foundation and appearing in the file LICENSE.GPL included in the | 14 | ** Foundation and appearing in the file LICENSE.GPL included in the |
15 | ** packaging of this file. | 15 | ** packaging of this file. |
16 | ** | 16 | ** |
17 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 17 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
18 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 18 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
19 | ** | 19 | ** |
20 | **********************************************************************/ | 20 | **********************************************************************/ |
21 | 21 | ||
22 | #include "modulesinfo.h" | ||
23 | #include "detail.h" | ||
24 | |||
25 | /* OPIE */ | ||
22 | #include <qpe/qpeapplication.h> | 26 | #include <qpe/qpeapplication.h> |
23 | 27 | ||
28 | /* QT */ | ||
24 | #include <qfile.h> | 29 | #include <qfile.h> |
25 | #include <qlayout.h> | 30 | #include <qlayout.h> |
26 | #include <qmessagebox.h> | 31 | #include <qmessagebox.h> |
27 | #include <qtimer.h> | 32 | #include <qtimer.h> |
28 | #include <qwhatsthis.h> | 33 | #include <qwhatsthis.h> |
29 | 34 | ||
30 | #include "modulesinfo.h" | ||
31 | #include "detail.h" | ||
32 | |||
33 | ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) | 35 | ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) |
34 | : QWidget( parent, name, fl ) | 36 | : QWidget( parent, name, fl ) |
35 | { | 37 | { |
36 | QGridLayout *layout = new QGridLayout( this ); | 38 | QGridLayout *layout = new QGridLayout( this ); |
37 | layout->setSpacing( 4 ); | 39 | layout->setSpacing( 4 ); |
38 | layout->setMargin( 4 ); | 40 | layout->setMargin( 4 ); |
39 | 41 | ||
40 | ModulesView = new QListView( this ); | 42 | ModulesView = new QListView( this ); |
41 | int colnum = ModulesView->addColumn( tr( "Module" ) ); | 43 | int colnum = ModulesView->addColumn( tr( "Module" ) ); |
42 | colnum = ModulesView->addColumn( tr( "Size" ) ); | 44 | colnum = ModulesView->addColumn( tr( "Size" ) ); |
43 | ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); | 45 | ModulesView->setColumnAlignment( colnum, Qt::AlignRight ); |
44 | colnum = ModulesView->addColumn( tr( "Use#" ) ); | 46 | colnum = ModulesView->addColumn( tr( "Use#" ) ); |
@@ -73,49 +75,49 @@ ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) | |||
73 | 75 | ||
74 | QTimer *t = new QTimer( this ); | 76 | QTimer *t = new QTimer( this ); |
75 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); | 77 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); |
76 | t->start( 5000 ); | 78 | t->start( 5000 ); |
77 | 79 | ||
78 | updateData(); | 80 | updateData(); |
79 | 81 | ||
80 | ModulesDtl = new Detail(); | 82 | ModulesDtl = new Detail(); |
81 | QWhatsThis::add( ModulesDtl->detailView, tr( "This area shows detailed information about this module." ) ); | 83 | QWhatsThis::add( ModulesDtl->detailView, tr( "This area shows detailed information about this module." ) ); |
82 | } | 84 | } |
83 | 85 | ||
84 | ModulesInfo::~ModulesInfo() | 86 | ModulesInfo::~ModulesInfo() |
85 | { | 87 | {} |
86 | } | ||
87 | 88 | ||
88 | void ModulesInfo::updateData() | 89 | void ModulesInfo::updateData() |
89 | { | 90 | { |
90 | char modname[64]; | 91 | char modname[64]; |
91 | char usage[200]; | 92 | char usage[200]; |
92 | int modsize, usecount; | 93 | int modsize, usecount; |
93 | 94 | ||
94 | QString selectedmod; | 95 | QString selectedmod; |
95 | QListViewItem *curritem = ModulesView->currentItem(); | 96 | QListViewItem *curritem = ModulesView->currentItem(); |
96 | if ( curritem ) | 97 | if ( curritem ) |
97 | { | 98 | { |
98 | selectedmod = curritem->text( 0 ); | 99 | selectedmod = curritem->text( 0 ); |
99 | } | 100 | } |
100 | 101 | ||
101 | ModulesView->clear(); | 102 | ModulesView->clear(); |
102 | 103 | ||
103 | FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); | 104 | FILE *procfile = fopen( ( QString ) ( "/proc/modules"), "r"); |
104 | 105 | ||
105 | if ( procfile ) | 106 | if ( procfile ) |
106 | { | 107 | { |
107 | QListViewItem *newitem; | 108 | QListViewItem *newitem; |
108 | QListViewItem *selecteditem = 0x0; | 109 | QListViewItem *selecteditem = 0x0; |
109 | while ( true ) { | 110 | while ( true ) |
111 | { | ||
110 | modname[0] = '\0'; | 112 | modname[0] = '\0'; |
111 | usage[0] = '\0'; | 113 | usage[0] = '\0'; |
112 | int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); | 114 | int success = fscanf( procfile, "%s%d%d%[^\n]", modname, &modsize, &usecount, usage ); |
113 | 115 | ||
114 | if ( success == EOF ) | 116 | if ( success == EOF ) |
115 | break; | 117 | break; |
116 | 118 | ||
117 | QString qmodname = QString( modname ); | 119 | QString qmodname = QString( modname ); |
118 | QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); | 120 | QString qmodsize = QString::number( modsize ).rightJustify( 6, ' ' ); |
119 | QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); | 121 | QString qusecount = QString::number( usecount ).rightJustify( 2, ' ' ); |
120 | QString qusage = QString( usage ); | 122 | QString qusage = QString( usage ); |
121 | 123 | ||
@@ -174,15 +176,15 @@ void ModulesInfo::viewModules( QListViewItem *modules ) | |||
174 | 176 | ||
175 | while( true ) | 177 | while( true ) |
176 | { | 178 | { |
177 | int success = fscanf( modinfo, "%[^\n]\n", line ); | 179 | int success = fscanf( modinfo, "%[^\n]\n", line ); |
178 | if ( success == EOF ) | 180 | if ( success == EOF ) |
179 | break; | 181 | break; |
180 | ModulesDtl->detailView->append( line ); | 182 | ModulesDtl->detailView->append( line ); |
181 | } | 183 | } |
182 | 184 | ||
183 | pclose( modinfo ); | 185 | pclose( modinfo ); |
184 | } | 186 | } |
185 | 187 | ||
186 | ModulesDtl->showMaximized(); | 188 | QPEApplication::showWidget( ModulesDtl ); |
187 | } | 189 | } |
188 | 190 | ||
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp index af0fe26..2a90b0f 100644 --- a/noncore/settings/sysinfo/processinfo.cpp +++ b/noncore/settings/sysinfo/processinfo.cpp | |||
@@ -8,38 +8,41 @@ | |||
8 | ** http://draknor.net | 8 | ** http://draknor.net |
9 | ** | 9 | ** |
10 | ** This file may be distributed and/or modified under the terms of the | 10 | ** This file may be distributed and/or modified under the terms of the |
11 | ** GNU General Public License version 2 as published by the Free Software | 11 | ** GNU General Public License version 2 as published by the Free Software |
12 | ** Foundation and appearing in the file LICENSE.GPL included in the | 12 | ** Foundation and appearing in the file LICENSE.GPL included in the |
13 | ** packaging of this file. | 13 | ** packaging of this file. |
14 | ** | 14 | ** |
15 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 15 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
16 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 16 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
17 | ** | 17 | ** |
18 | **********************************************************************/ | 18 | **********************************************************************/ |
19 | 19 | ||
20 | #include "processinfo.h" | ||
21 | #include "detail.h" | ||
22 | |||
23 | /* OPIE */ | ||
20 | #include <qpe/qpeapplication.h> | 24 | #include <qpe/qpeapplication.h> |
21 | 25 | ||
26 | /* QT */ | ||
22 | #include <qdir.h> | 27 | #include <qdir.h> |
23 | #include <qlayout.h> | 28 | #include <qlayout.h> |
24 | #include <qmessagebox.h> | 29 | #include <qmessagebox.h> |
25 | #include <qtimer.h> | 30 | #include <qtimer.h> |
26 | #include <qwhatsthis.h> | 31 | #include <qwhatsthis.h> |
27 | 32 | ||
33 | /* STD */ | ||
28 | #include <sys/types.h> | 34 | #include <sys/types.h> |
29 | #include <signal.h> | 35 | #include <signal.h> |
30 | 36 | ||
31 | #include "processinfo.h" | ||
32 | #include "detail.h" | ||
33 | |||
34 | ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | 37 | ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) |
35 | : QWidget( parent, name, fl ) | 38 | : QWidget( parent, name, fl ) |
36 | { | 39 | { |
37 | QGridLayout *layout = new QGridLayout( this ); | 40 | QGridLayout *layout = new QGridLayout( this ); |
38 | layout->setSpacing( 4 ); | 41 | layout->setSpacing( 4 ); |
39 | layout->setMargin( 4 ); | 42 | layout->setMargin( 4 ); |
40 | 43 | ||
41 | 44 | ||
42 | ProcessView = new QListView( this, "ProcessView" ); | 45 | ProcessView = new QListView( this, "ProcessView" ); |
43 | int colnum = ProcessView->addColumn( tr( "PID" ) ); | 46 | int colnum = ProcessView->addColumn( tr( "PID" ) ); |
44 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); | 47 | ProcessView->setColumnAlignment( colnum, Qt::AlignRight ); |
45 | colnum = ProcessView->addColumn( tr( "Command" ),96 ); | 48 | colnum = ProcessView->addColumn( tr( "Command" ),96 ); |
@@ -77,26 +80,25 @@ ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | |||
77 | 80 | ||
78 | QTimer *t = new QTimer( this ); | 81 | QTimer *t = new QTimer( this ); |
79 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); | 82 | connect( t, SIGNAL( timeout() ), this, SLOT( updateData() ) ); |
80 | t->start( 5000 ); | 83 | t->start( 5000 ); |
81 | 84 | ||
82 | updateData(); | 85 | updateData(); |
83 | 86 | ||
84 | ProcessDtl = new Detail(); | 87 | ProcessDtl = new Detail(); |
85 | QWhatsThis::add( ProcessDtl->detailView, tr( "This area shows detailed information about this process." ) ); | 88 | QWhatsThis::add( ProcessDtl->detailView, tr( "This area shows detailed information about this process." ) ); |
86 | } | 89 | } |
87 | 90 | ||
88 | ProcessInfo::~ProcessInfo() | 91 | ProcessInfo::~ProcessInfo() |
89 | { | 92 | {} |
90 | } | ||
91 | 93 | ||
92 | void ProcessInfo::updateData() | 94 | void ProcessInfo::updateData() |
93 | { | 95 | { |
94 | int pid, ppid, pgrp, session, tty, tpgid, utime, stime, cutime, cstime, counter, priority, starttime, | 96 | int pid, ppid, pgrp, session, tty, tpgid, utime, stime, cutime, cstime, counter, priority, starttime, |
95 | signal, blocked, sigignore, sigcatch; | 97 | signal, blocked, sigignore, sigcatch; |
96 | uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, | 98 | uint flags, minflt, cminflt, majflt, cmajflt, timeout, itrealvalue, vsize, rss, rlim, startcode, |
97 | endcode, startstack, kstkesp, kstkeip, wchan; | 99 | endcode, startstack, kstkesp, kstkeip, wchan; |
98 | char state; | 100 | char state; |
99 | char comm[64]; | 101 | char comm[64]; |
100 | 102 | ||
101 | QString selectedpid; | 103 | QString selectedpid; |
102 | QListViewItem *curritem = ProcessView->currentItem(); | 104 | QListViewItem *curritem = ProcessView->currentItem(); |
@@ -187,14 +189,14 @@ void ProcessInfo::viewProcess( QListViewItem *process ) | |||
187 | FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); | 189 | FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); |
188 | if ( statfile ) | 190 | if ( statfile ) |
189 | { | 191 | { |
190 | char line[81]; | 192 | char line[81]; |
191 | fgets( line, 81, statfile ); | 193 | fgets( line, 81, statfile ); |
192 | ProcessDtl->detailView->setText( line ); | 194 | ProcessDtl->detailView->setText( line ); |
193 | while ( fgets( line, 81, statfile ) ) | 195 | while ( fgets( line, 81, statfile ) ) |
194 | { | 196 | { |
195 | ProcessDtl->detailView->append( line ); | 197 | ProcessDtl->detailView->append( line ); |
196 | } | 198 | } |
197 | fclose( statfile ); | 199 | fclose( statfile ); |
198 | } | 200 | } |
199 | ProcessDtl->showMaximized(); | 201 | QPEApplication::showWidget( ProcessDtl ); |
200 | } | 202 | } |
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp index d87a005..08de352 100644 --- a/noncore/settings/usermanager/userdialog.cpp +++ b/noncore/settings/usermanager/userdialog.cpp | |||
@@ -1,75 +1,84 @@ | |||
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 "userdialog.h" | 10 | #include "userdialog.h" |
11 | #include "passwd.h" | ||
12 | |||
13 | /* OPIE */ | ||
14 | #include <opie/odevice.h> | ||
15 | #include <qpe/qpeapplication.h> | ||
11 | 16 | ||
17 | /* QT */ | ||
12 | #include <qlayout.h> | 18 | #include <qlayout.h> |
13 | #include <qlabel.h> | 19 | #include <qlabel.h> |
14 | #include <qmessagebox.h> | 20 | #include <qmessagebox.h> |
15 | #include <qfile.h> | 21 | #include <qfile.h> |
16 | 22 | ||
23 | /* STD */ | ||
17 | #include <sys/types.h> | 24 | #include <sys/types.h> |
18 | #include <sys/wait.h> | 25 | #include <sys/wait.h> |
19 | #include <unistd.h> | 26 | #include <unistd.h> |
20 | #include <signal.h> | 27 | #include <signal.h> |
21 | 28 | ||
22 | #include "passwd.h" | ||
23 | 29 | ||
24 | #include <opie/odevice.h> | ||
25 | using namespace Opie; | 30 | using namespace Opie; |
26 | 31 | ||
27 | 32 | ||
28 | /** | 33 | /** |
29 | * UserDialog constructor. Setup the dialog, fill the groupComboBox & groupsListView with all groups. | 34 | * UserDialog constructor. Setup the dialog, fill the groupComboBox & groupsListView with all groups. |
30 | * | 35 | * |
31 | */ | 36 | */ |
32 | UserDialog::UserDialog(int viewmode, QWidget* parent, const char* name, bool modal, WFlags fl) : QDialog(parent, name, modal, fl) { | 37 | UserDialog::UserDialog(int viewmode, QWidget* parent, const char* name, bool modal, WFlags fl) : QDialog(parent, name, modal, fl) |
38 | { | ||
33 | vm=viewmode; | 39 | vm=viewmode; |
34 | QVBoxLayout *layout = new QVBoxLayout(this); | 40 | QVBoxLayout *layout = new QVBoxLayout(this); |
35 | myTabWidget=new QTabWidget(this,"User Tab Widget"); | 41 | myTabWidget=new QTabWidget(this,"User Tab Widget"); |
36 | layout->addWidget(myTabWidget); | 42 | layout->addWidget(myTabWidget); |
37 | setupTab1(); | 43 | setupTab1(); |
38 | setupTab2(); | 44 | setupTab2(); |
39 | 45 | ||
40 | accounts->groupStringList.sort(); | 46 | accounts->groupStringList.sort(); |
41 | // And also fill the listview & the combobox with all available groups. | 47 | // And also fill the listview & the combobox with all available groups. |
42 | for( QStringList::Iterator it = accounts->groupStringList.begin(); it!=accounts->groupStringList.end(); ++it) { | 48 | for( QStringList::Iterator it = accounts->groupStringList.begin(); it!=accounts->groupStringList.end(); ++it) |
49 | { | ||
43 | accounts->splitGroupEntry(*it); | 50 | accounts->splitGroupEntry(*it); |
44 | if(accounts->gr_name.find(QRegExp("^#"),0)) {// Skip commented lines. | 51 | if(accounts->gr_name.find(QRegExp("^#"),0)) |
52 | {// Skip commented lines. | ||
45 | new QCheckListItem(groupsListView,accounts->gr_name,QCheckListItem::CheckBox); | 53 | new QCheckListItem(groupsListView,accounts->gr_name,QCheckListItem::CheckBox); |
46 | groupComboBox->insertItem(accounts->gr_name); | 54 | groupComboBox->insertItem(accounts->gr_name); |
47 | } | 55 | } |
48 | } | 56 | } |
49 | showMaximized(); | 57 | QPEApplication::showDialog( this ); |
50 | } | 58 | } |
51 | 59 | ||
52 | /** | 60 | /** |
53 | * Empty destructor. | 61 | * Empty destructor. |
54 | * | 62 | * |
55 | */ | 63 | */ |
56 | UserDialog::~UserDialog() { | 64 | UserDialog::~UserDialog() |
57 | } | 65 | {} |
58 | 66 | ||
59 | /** | 67 | /** |
60 | * Creates the first tab, all userinfo is here. | 68 | * Creates the first tab, all userinfo is here. |
61 | * | 69 | * |
62 | */ | 70 | */ |
63 | void UserDialog::setupTab1() { | 71 | void UserDialog::setupTab1() |
72 | { | ||
64 | QPixmap mypixmap; | 73 | QPixmap mypixmap; |
65 | QWidget *tabpage = new QWidget(myTabWidget,"page1"); | 74 | QWidget *tabpage = new QWidget(myTabWidget,"page1"); |
66 | QVBoxLayout *layout = new QVBoxLayout(tabpage); | 75 | QVBoxLayout *layout = new QVBoxLayout(tabpage); |
67 | layout->setMargin(5); | 76 | layout->setMargin(5); |
68 | 77 | ||
69 | // Picture | 78 | // Picture |
70 | picturePushButton = new QPushButton(tabpage,"Label"); | 79 | picturePushButton = new QPushButton(tabpage,"Label"); |
71 | picturePushButton->setMinimumSize(48,48); | 80 | picturePushButton->setMinimumSize(48,48); |
72 | picturePushButton->setMaximumSize(48,48); | 81 | picturePushButton->setMaximumSize(48,48); |
73 | picturePushButton->setPixmap(Resource::loadPixmap("usermanager/usericon"));// Load default usericon. | 82 | picturePushButton->setPixmap(Resource::loadPixmap("usermanager/usericon"));// Load default usericon. |
74 | connect(picturePushButton,SIGNAL(clicked()),this,SLOT(clickedPicture()));// Clicking the picture should invoke pictureselector. | 83 | connect(picturePushButton,SIGNAL(clicked()),this,SLOT(clickedPicture()));// Clicking the picture should invoke pictureselector. |
75 | 84 | ||
@@ -100,25 +109,26 @@ void UserDialog::setupTab1() { | |||
100 | shellLabel->setText("Shell: "); | 109 | shellLabel->setText("Shell: "); |
101 | shellComboBox=new QComboBox(tabpage,"shell"); | 110 | shellComboBox=new QComboBox(tabpage,"shell"); |
102 | shellComboBox->setEditable(true); | 111 | shellComboBox->setEditable(true); |
103 | shellComboBox->insertItem("/bin/sh"); | 112 | shellComboBox->insertItem("/bin/sh"); |
104 | shellComboBox->insertItem("/bin/ash"); | 113 | shellComboBox->insertItem("/bin/ash"); |
105 | shellComboBox->insertItem("/bin/false"); | 114 | shellComboBox->insertItem("/bin/false"); |
106 | 115 | ||
107 | // Primary Group | 116 | // Primary Group |
108 | QLabel *groupLabel=new QLabel(tabpage,"group"); | 117 | QLabel *groupLabel=new QLabel(tabpage,"group"); |
109 | groupLabel->setText("Primary group: "); | 118 | groupLabel->setText("Primary group: "); |
110 | groupComboBox=new QComboBox(tabpage,"PrimaryGroup"); | 119 | groupComboBox=new QComboBox(tabpage,"PrimaryGroup"); |
111 | 120 | ||
112 | if(vm==VIEWMODE_NEW) { | 121 | if(vm==VIEWMODE_NEW) |
122 | { | ||
113 | // Copy /etc/skel | 123 | // Copy /etc/skel |
114 | skelLabel=new QLabel(tabpage,"skel"); | 124 | skelLabel=new QLabel(tabpage,"skel"); |
115 | skelLabel->setText("Copy /etc/skel: "); | 125 | skelLabel->setText("Copy /etc/skel: "); |
116 | skelCheckBox=new QCheckBox(tabpage); | 126 | skelCheckBox=new QCheckBox(tabpage); |
117 | skelCheckBox->setChecked(true); | 127 | skelCheckBox->setChecked(true); |
118 | } | 128 | } |
119 | 129 | ||
120 | // Widget layout | 130 | // Widget layout |
121 | QHBoxLayout *hlayout=new QHBoxLayout(-1,"hlayout"); | 131 | QHBoxLayout *hlayout=new QHBoxLayout(-1,"hlayout"); |
122 | layout->addWidget(picturePushButton); | 132 | layout->addWidget(picturePushButton); |
123 | layout->addSpacing(5); | 133 | layout->addSpacing(5); |
124 | layout->addLayout(hlayout); | 134 | layout->addLayout(hlayout); |
@@ -127,55 +137,58 @@ void UserDialog::setupTab1() { | |||
127 | // First column, labels | 137 | // First column, labels |
128 | vlayout1->addWidget(loginLabel); | 138 | vlayout1->addWidget(loginLabel); |
129 | vlayout1->addSpacing(5); | 139 | vlayout1->addSpacing(5); |
130 | vlayout1->addWidget(uidLabel); | 140 | vlayout1->addWidget(uidLabel); |
131 | vlayout1->addSpacing(5); | 141 | vlayout1->addSpacing(5); |
132 | vlayout1->addWidget(gecosLabel); | 142 | vlayout1->addWidget(gecosLabel); |
133 | vlayout1->addSpacing(5); | 143 | vlayout1->addSpacing(5); |
134 | vlayout1->addWidget(passwordLabel); | 144 | vlayout1->addWidget(passwordLabel); |
135 | vlayout1->addSpacing(5); | 145 | vlayout1->addSpacing(5); |
136 | vlayout1->addWidget(shellLabel); | 146 | vlayout1->addWidget(shellLabel); |
137 | vlayout1->addSpacing(5); | 147 | vlayout1->addSpacing(5); |
138 | vlayout1->addWidget(groupLabel); | 148 | vlayout1->addWidget(groupLabel); |
139 | if(vm==VIEWMODE_NEW) { | 149 | if(vm==VIEWMODE_NEW) |
150 | { | ||
140 | vlayout1->addSpacing(5); | 151 | vlayout1->addSpacing(5); |
141 | vlayout1->addWidget(skelLabel); | 152 | vlayout1->addWidget(skelLabel); |
142 | } | 153 | } |
143 | // Second column, data | 154 | // Second column, data |
144 | vlayout2->addWidget(loginLineEdit); | 155 | vlayout2->addWidget(loginLineEdit); |
145 | vlayout2->addSpacing(5); | 156 | vlayout2->addSpacing(5); |
146 | vlayout2->addWidget(uidLineEdit); | 157 | vlayout2->addWidget(uidLineEdit); |
147 | vlayout2->addSpacing(5); | 158 | vlayout2->addSpacing(5); |
148 | vlayout2->addWidget(gecosLineEdit); | 159 | vlayout2->addWidget(gecosLineEdit); |
149 | vlayout2->addSpacing(5); | 160 | vlayout2->addSpacing(5); |
150 | vlayout2->addWidget(passwordLineEdit); | 161 | vlayout2->addWidget(passwordLineEdit); |
151 | vlayout2->addSpacing(5); | 162 | vlayout2->addSpacing(5); |
152 | vlayout2->addWidget(shellComboBox); | 163 | vlayout2->addWidget(shellComboBox); |
153 | vlayout2->addSpacing(5); | 164 | vlayout2->addSpacing(5); |
154 | vlayout2->addWidget(groupComboBox); | 165 | vlayout2->addWidget(groupComboBox); |
155 | if(vm==VIEWMODE_NEW) { | 166 | if(vm==VIEWMODE_NEW) |
167 | { | ||
156 | vlayout2->addSpacing(5); | 168 | vlayout2->addSpacing(5); |
157 | vlayout2->addWidget(skelCheckBox); | 169 | vlayout2->addWidget(skelCheckBox); |
158 | } | 170 | } |
159 | hlayout->addLayout(vlayout1); | 171 | hlayout->addLayout(vlayout1); |
160 | hlayout->addLayout(vlayout2); | 172 | hlayout->addLayout(vlayout2); |
161 | 173 | ||
162 | myTabWidget->addTab(tabpage,"User Info"); | 174 | myTabWidget->addTab(tabpage,"User Info"); |
163 | } | 175 | } |
164 | 176 | ||
165 | /** | 177 | /** |
166 | * Creates the second tab containing additional groups for the user. | 178 | * Creates the second tab containing additional groups for the user. |
167 | * | 179 | * |
168 | */ | 180 | */ |
169 | void UserDialog::setupTab2() { | 181 | void UserDialog::setupTab2() |
182 | { | ||
170 | QWidget *tabpage = new QWidget(myTabWidget,"page2"); | 183 | QWidget *tabpage = new QWidget(myTabWidget,"page2"); |
171 | QVBoxLayout *layout = new QVBoxLayout(tabpage); | 184 | QVBoxLayout *layout = new QVBoxLayout(tabpage); |
172 | layout->setMargin(5); | 185 | layout->setMargin(5); |
173 | 186 | ||
174 | // Additional groups | 187 | // Additional groups |
175 | groupsListView=new QListView(tabpage,"groups"); | 188 | groupsListView=new QListView(tabpage,"groups"); |
176 | groupsListView->addColumn("Additional groups"); | 189 | groupsListView->addColumn("Additional groups"); |
177 | groupsListView->setColumnWidthMode(0,QListView::Maximum); | 190 | groupsListView->setColumnWidthMode(0,QListView::Maximum); |
178 | groupsListView->setMultiSelection(false); | 191 | groupsListView->setMultiSelection(false); |
179 | groupsListView->setAllColumnsShowFocus(false); | 192 | groupsListView->setAllColumnsShowFocus(false); |
180 | 193 | ||
181 | layout->addSpacing(5); | 194 | layout->addSpacing(5); |
@@ -186,253 +199,291 @@ void UserDialog::setupTab2() { | |||
186 | } | 199 | } |
187 | 200 | ||
188 | /** | 201 | /** |
189 | * Static function that creates the userinfo dialog. | 202 | * Static function that creates the userinfo dialog. |
190 | * The user will be prompted to add a user. | 203 | * The user will be prompted to add a user. |
191 | * | 204 | * |
192 | * @param uid This is a suggested available UID. | 205 | * @param uid This is a suggested available UID. |
193 | * @param gid This is a suggested available GID. | 206 | * @param gid This is a suggested available GID. |
194 | * | 207 | * |
195 | * @return <code>true</code> if the user was successfully added, otherwise <code>false</code>. | 208 | * @return <code>true</code> if the user was successfully added, otherwise <code>false</code>. |
196 | * | 209 | * |
197 | */ | 210 | */ |
198 | bool UserDialog::addUser(int uid, int gid) { | 211 | bool UserDialog::addUser(int uid, int gid) |
212 | { | ||
199 | QCheckListItem *temp; | 213 | QCheckListItem *temp; |
200 | QFile ozTest; | 214 | QFile ozTest; |
201 | int oz=false; | 215 | int oz=false; |
202 | if(ODevice::inst()->system()==System_OpenZaurus) oz=true; | 216 | if(ODevice::inst()->system()==System_OpenZaurus) oz=true; |
203 | // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating adduserDialog's widgets here. | 217 | // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating adduserDialog's widgets here. |
204 | UserDialog *adduserDialog=new UserDialog(VIEWMODE_NEW); | 218 | UserDialog *adduserDialog=new UserDialog(VIEWMODE_NEW); |
205 | adduserDialog->setCaption(tr("Add User")); | 219 | adduserDialog->setCaption(tr("Add User")); |
206 | adduserDialog->userID=uid;// Set next available UID as default uid. | 220 | adduserDialog->userID=uid;// Set next available UID as default uid. |
207 | adduserDialog->groupID=gid;// Set next available GID as default gid. | 221 | adduserDialog->groupID=gid;// Set next available GID as default gid. |
208 | // Insert default group into groupComboBox | 222 | // Insert default group into groupComboBox |
209 | adduserDialog->groupComboBox->insertItem("<create new group>",0); | 223 | adduserDialog->groupComboBox->insertItem("<create new group>",0); |
210 | adduserDialog->uidLineEdit->setText(QString::number(uid)); | 224 | adduserDialog->uidLineEdit->setText(QString::number(uid)); |
211 | // If we're running on OZ, add new users to some default groups. | 225 | // If we're running on OZ, add new users to some default groups. |
212 | if(oz) { | 226 | if(oz) |
227 | { | ||
213 | QListViewItemIterator iter( adduserDialog->groupsListView ); | 228 | QListViewItemIterator iter( adduserDialog->groupsListView ); |
214 | for ( ; iter.current(); ++iter ) { | 229 | for ( ; iter.current(); ++iter ) |
230 | { | ||
215 | temp=(QCheckListItem*)iter.current(); | 231 | temp=(QCheckListItem*)iter.current(); |
216 | if (temp->text()=="video") temp->setOn(true); | 232 | if (temp->text()=="video") temp->setOn(true); |
217 | if (temp->text()=="audio") temp->setOn(true); | 233 | if (temp->text()=="audio") temp->setOn(true); |
218 | if (temp->text()=="time") temp->setOn(true); | 234 | if (temp->text()=="time") temp->setOn(true); |
219 | if (temp->text()=="power") temp->setOn(true); | 235 | if (temp->text()=="power") temp->setOn(true); |
220 | if (temp->text()=="input") temp->setOn(true); | 236 | if (temp->text()=="input") temp->setOn(true); |
221 | if (temp->text()=="sharp") temp->setOn(true); | 237 | if (temp->text()=="sharp") temp->setOn(true); |
222 | if (temp->text()=="tty") temp->setOn(true); | 238 | if (temp->text()=="tty") temp->setOn(true); |
223 | } | 239 | } |
224 | } | 240 | } |
225 | // Show the dialog! | 241 | // Show the dialog! |
226 | if(!(adduserDialog->exec())) return false; | 242 | if(!(adduserDialog->exec())) return false; |
227 | if((adduserDialog->groupComboBox->currentItem()!=0)) { | 243 | if((adduserDialog->groupComboBox->currentItem()!=0)) |
244 | { | ||
228 | accounts->findGroup(adduserDialog->groupComboBox->currentText()); | 245 | accounts->findGroup(adduserDialog->groupComboBox->currentText()); |
229 | adduserDialog->groupID=accounts->gr_gid; | 246 | adduserDialog->groupID=accounts->gr_gid; |
230 | qWarning(QString::number(accounts->gr_gid)); | 247 | qWarning(QString::number(accounts->gr_gid)); |
231 | } | 248 | } |
232 | if(!(accounts->addUser(adduserDialog->loginLineEdit->text(), adduserDialog->passwordLineEdit->text(), | 249 | if(!(accounts->addUser(adduserDialog->loginLineEdit->text(), adduserDialog->passwordLineEdit->text(), |
233 | adduserDialog->uidLineEdit->text().toInt(), adduserDialog->groupID, adduserDialog->gecosLineEdit->text(), | 250 | adduserDialog->uidLineEdit->text().toInt(), adduserDialog->groupID, adduserDialog->gecosLineEdit->text(), |
234 | QString("/home/")+adduserDialog->loginLineEdit->text() , adduserDialog->shellComboBox->currentText()))) { | 251 | QString("/home/")+adduserDialog->loginLineEdit->text() , adduserDialog->shellComboBox->currentText()))) |
252 | { | ||
235 | QMessageBox::information(0,"Ooops!","Something went wrong!\nUnable to add user."); | 253 | QMessageBox::information(0,"Ooops!","Something went wrong!\nUnable to add user."); |
236 | return false; | 254 | return false; |
237 | } | 255 | } |
238 | 256 | ||
239 | // Add User to additional groups. | 257 | // Add User to additional groups. |
240 | QListViewItemIterator it( adduserDialog->groupsListView ); | 258 | QListViewItemIterator it( adduserDialog->groupsListView ); |
241 | for ( ; it.current(); ++it ) { | 259 | for ( ; it.current(); ++it ) |
260 | { | ||
242 | temp=(QCheckListItem*)it.current(); | 261 | temp=(QCheckListItem*)it.current(); |
243 | if (temp->isOn() ) | 262 | if (temp->isOn() ) |
244 | accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text()); | 263 | accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text()); |
245 | } | 264 | } |
246 | // Copy image to pics/users/ | 265 | // Copy image to pics/users/ |
247 | if(!(adduserDialog->userImage.isNull())) { | 266 | if(!(adduserDialog->userImage.isNull())) |
267 | { | ||
248 | QDir d; | 268 | QDir d; |
249 | if(!(d.exists("/opt/QtPalmtop/pics/users"))) { | 269 | if(!(d.exists("/opt/QtPalmtop/pics/users"))) |
270 | { | ||
250 | d.mkdir("/opt/QtPalmtop/pics/users"); | 271 | d.mkdir("/opt/QtPalmtop/pics/users"); |
251 | } | 272 | } |
252 | QString filename="/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"; | 273 | QString filename="/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"; |
253 | // adduserDialog->userImage=adduserDialog->userImage.smoothScale(48,48); | 274 | // adduserDialog->userImage=adduserDialog->userImage.smoothScale(48,48); |
254 | adduserDialog->userImage.save(filename,"PNG"); | 275 | adduserDialog->userImage.save(filename,"PNG"); |
255 | } | 276 | } |
256 | 277 | ||
257 | // Should we copy the skeleton homedirectory /etc/skel to the user's homedirectory? | 278 | // Should we copy the skeleton homedirectory /etc/skel to the user's homedirectory? |
258 | accounts->findUser(adduserDialog->loginLineEdit->text()); | 279 | accounts->findUser(adduserDialog->loginLineEdit->text()); |
259 | if(adduserDialog->skelCheckBox->isChecked()) { | 280 | if(adduserDialog->skelCheckBox->isChecked()) |
281 | { | ||
260 | QString command_cp; | 282 | QString command_cp; |
261 | QString command_chown; | 283 | QString command_chown; |
262 | command_cp.sprintf("cp -a /etc/skel/* %s/",accounts->pw_dir.latin1()); | 284 | command_cp.sprintf("cp -a /etc/skel/* %s/",accounts->pw_dir.latin1()); |
263 | system(command_cp); | 285 | system(command_cp); |
264 | 286 | ||
265 | command_cp.sprintf("cp -a /etc/skel/.[!.]* %s/",accounts->pw_dir.latin1());// Bug in busybox, ".*" includes parent directory, does this work as a workaround? | 287 | command_cp.sprintf("cp -a /etc/skel/.[!.]* %s/",accounts->pw_dir.latin1());// Bug in busybox, ".*" includes parent directory, does this work as a workaround? |
266 | system(command_cp); | 288 | system(command_cp); |
267 | 289 | ||
268 | command_chown.sprintf("chown -R %d:%d %s",accounts->pw_uid,accounts->pw_gid,accounts->pw_dir.latin1()); | 290 | command_chown.sprintf("chown -R %d:%d %s",accounts->pw_uid,accounts->pw_gid,accounts->pw_dir.latin1()); |
269 | system(command_chown); | 291 | system(command_chown); |
270 | } | 292 | } |
271 | 293 | ||
272 | return true; | 294 | return true; |
273 | } | 295 | } |
274 | 296 | ||
275 | /** | 297 | /** |
276 | * Deletes the user account. | 298 | * Deletes the user account. |
277 | * | 299 | * |
278 | * @param username User to be deleted. | 300 | * @param username User to be deleted. |
279 | * | 301 | * |
280 | * @return <code>true</code> if the user was successfully deleted, otherwise <code>false</code>. | 302 | * @return <code>true</code> if the user was successfully deleted, otherwise <code>false</code>. |
281 | * | 303 | * |
282 | */ | 304 | */ |
283 | bool UserDialog::delUser(const char *username) { | 305 | bool UserDialog::delUser(const char *username) |
284 | if((accounts->findUser(username))) {// Does that user exist? | 306 | { |
285 | if(!(accounts->delUser(username))) {// Delete the user. | 307 | if((accounts->findUser(username))) |
308 | {// Does that user exist? | ||
309 | if(!(accounts->delUser(username))) | ||
310 | {// Delete the user. | ||
286 | QMessageBox::information(0,"Ooops!","Something went wrong\nUnable to delete user: "+QString(username)+"."); | 311 | QMessageBox::information(0,"Ooops!","Something went wrong\nUnable to delete user: "+QString(username)+"."); |
287 | } | 312 | } |
288 | } else { | 313 | } |
314 | else | ||
315 | { | ||
289 | QMessageBox::information(0,"Invalid Username","That username ("+QString(username)+")does not exist."); | 316 | QMessageBox::information(0,"Invalid Username","That username ("+QString(username)+")does not exist."); |
290 | return false; | 317 | return false; |
291 | } | 318 | } |
292 | return true; | 319 | return true; |
293 | } | 320 | } |
294 | 321 | ||
295 | /** | 322 | /** |
296 | * This displays a confirmation dialog wether a user should be deleted or not. | 323 | * This displays a confirmation dialog wether a user should be deleted or not. |
297 | * (And also deletes the account) | 324 | * (And also deletes the account) |
298 | * | 325 | * |
299 | * @param username User to be deleted. | 326 | * @param username User to be deleted. |
300 | * | 327 | * |
301 | * @return <code>true</code> if the user was successfully deleted, otherwise <code>false</code>. | 328 | * @return <code>true</code> if the user was successfully deleted, otherwise <code>false</code>. |
302 | * | 329 | * |
303 | */ | 330 | */ |
304 | bool UserDialog::editUser(const char *username) { | 331 | bool UserDialog::editUser(const char *username) |
332 | { | ||
305 | int invalid_group=0; | 333 | int invalid_group=0; |
306 | // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating edituserDialog's widgets here. | 334 | // viewmode is a workaround for a bug in qte-2.3.4 that gives bus error on manipulating edituserDialog's widgets here. |
307 | UserDialog *edituserDialog=new UserDialog(VIEWMODE_EDIT);// Create Dialog | 335 | UserDialog *edituserDialog=new UserDialog(VIEWMODE_EDIT);// Create Dialog |
308 | edituserDialog->setCaption(tr("Edit User")); | 336 | edituserDialog->setCaption(tr("Edit User")); |
309 | accounts->findUser(username);// Locate user in database and fill variables in 'accounts' object. | 337 | accounts->findUser(username);// Locate user in database and fill variables in 'accounts' object. |
310 | if(!(accounts->findGroup(accounts->pw_gid))) {// Locate the user's primary group, and fill group variables in 'accounts' object. | 338 | if(!(accounts->findGroup(accounts->pw_gid))) |
339 | {// Locate the user's primary group, and fill group variables in 'accounts' object. | ||
311 | invalid_group=1; | 340 | invalid_group=1; |
312 | } | 341 | } |
313 | // Fill widgets with userinfo. | 342 | // Fill widgets with userinfo. |
314 | edituserDialog->loginLineEdit->setText(accounts->pw_name); | 343 | edituserDialog->loginLineEdit->setText(accounts->pw_name); |
315 | edituserDialog->uidLineEdit->setText(QString::number(accounts->pw_uid)); | 344 | edituserDialog->uidLineEdit->setText(QString::number(accounts->pw_uid)); |
316 | edituserDialog->gecosLineEdit->setText(accounts->pw_gecos); | 345 | edituserDialog->gecosLineEdit->setText(accounts->pw_gecos); |
317 | // Set password to '........', we will later check if this still is the contents, if not, the password has been changed. | 346 | // Set password to '........', we will later check if this still is the contents, if not, the password has been changed. |
318 | edituserDialog->passwordLineEdit->setText("........"); | 347 | edituserDialog->passwordLineEdit->setText("........"); |
319 | // If this user is not using /bin/sh,/bin/ash or /bin/false as shell, add that entry to the shell-combobox. | 348 | // If this user is not using /bin/sh,/bin/ash or /bin/false as shell, add that entry to the shell-combobox. |
320 | if(accounts->pw_shell!="/bin/sh" && accounts->pw_shell!="/bin/ash" && accounts->pw_shell!="/bin/false") { | 349 | if(accounts->pw_shell!="/bin/sh" && accounts->pw_shell!="/bin/ash" && accounts->pw_shell!="/bin/false") |
350 | { | ||
321 | edituserDialog->shellComboBox->insertItem(accounts->pw_shell,0); | 351 | edituserDialog->shellComboBox->insertItem(accounts->pw_shell,0); |
322 | edituserDialog->shellComboBox->setCurrentItem(0); | 352 | edituserDialog->shellComboBox->setCurrentItem(0); |
323 | } | 353 | } |
324 | // Select the primary group for this user. | 354 | // Select the primary group for this user. |
325 | for(int i=0;i<edituserDialog->groupComboBox->count();++i) { | 355 | for(int i=0;i<edituserDialog->groupComboBox->count();++i) |
326 | if(accounts->gr_name==edituserDialog->groupComboBox->text(i)) { | 356 | { |
357 | if(accounts->gr_name==edituserDialog->groupComboBox->text(i)) | ||
358 | { | ||
327 | edituserDialog->groupComboBox->setCurrentItem(i); | 359 | edituserDialog->groupComboBox->setCurrentItem(i); |
328 | break; | 360 | break; |
329 | } | 361 | } |
330 | } | 362 | } |
331 | if(invalid_group) { | 363 | if(invalid_group) |
364 | { | ||
332 | edituserDialog->groupComboBox->insertItem("<Undefined group>",0); | 365 | edituserDialog->groupComboBox->insertItem("<Undefined group>",0); |
333 | edituserDialog->groupComboBox->setCurrentItem(0); | 366 | edituserDialog->groupComboBox->setCurrentItem(0); |
334 | } | 367 | } |
335 | 368 | ||
336 | // Select the groups in the listview, to which the user belongs. | 369 | // Select the groups in the listview, to which the user belongs. |
337 | QCheckListItem *temp; | 370 | QCheckListItem *temp; |
338 | // BAH!!! QRegExp in qt2 sucks... or maybe I do... can't figure out how to check for EITHER end of input ($) OR a comma, so here we do two different QRegExps instead. | 371 | // BAH!!! QRegExp in qt2 sucks... or maybe I do... can't figure out how to check for EITHER end of input ($) OR a comma, so here we do two different QRegExps instead. |
339 | QRegExp userRegExp(QString("[:,]%1$").arg(username));// The end of line variant. | 372 | QRegExp userRegExp(QString("[:,]%1$").arg(username));// The end of line variant. |
340 | QStringList tempList=accounts->groupStringList.grep(userRegExp);// Find all entries in the group database, that the user is a member of. | 373 | QStringList tempList=accounts->groupStringList.grep(userRegExp);// Find all entries in the group database, that the user is a member of. |
341 | for(QStringList::Iterator it=tempList.begin(); it!=tempList.end(); ++it) {// Iterate over all of them. | 374 | for(QStringList::Iterator it=tempList.begin(); it!=tempList.end(); ++it) |
375 | {// Iterate over all of them. | ||
342 | qWarning(*it); | 376 | qWarning(*it); |
343 | QListViewItemIterator lvit( edituserDialog->groupsListView );// Compare to all groups. | 377 | QListViewItemIterator lvit( edituserDialog->groupsListView );// Compare to all groups. |
344 | for ( ; lvit.current(); ++lvit ) { | 378 | for ( ; lvit.current(); ++lvit ) |
345 | if(lvit.current()->text(0)==(*it).left((*it).find(":"))) { | 379 | { |
380 | if(lvit.current()->text(0)==(*it).left((*it).find(":"))) | ||
381 | { | ||
346 | temp=(QCheckListItem*)lvit.current(); | 382 | temp=(QCheckListItem*)lvit.current(); |
347 | temp->setOn(true);// If we find a line with that groupname, select it.; | 383 | temp->setOn(true);// If we find a line with that groupname, select it.; |
348 | } | 384 | } |
349 | } | 385 | } |
350 | } | 386 | } |
351 | userRegExp=QRegExp(QString("[:,]%1,").arg(username));// And the other one. (not end of line.) | 387 | userRegExp=QRegExp(QString("[:,]%1,").arg(username));// And the other one. (not end of line.) |
352 | tempList=accounts->groupStringList.grep(userRegExp);// Find all entries in the group database, that the user is a member of. | 388 | tempList=accounts->groupStringList.grep(userRegExp);// Find all entries in the group database, that the user is a member of. |
353 | for(QStringList::Iterator it=tempList.begin(); it!=tempList.end(); ++it) {// Iterate over all of them. | 389 | for(QStringList::Iterator it=tempList.begin(); it!=tempList.end(); ++it) |
390 | {// Iterate over all of them. | ||
354 | qWarning(*it); | 391 | qWarning(*it); |
355 | QListViewItemIterator lvit( edituserDialog->groupsListView );// Compare to all groups. | 392 | QListViewItemIterator lvit( edituserDialog->groupsListView );// Compare to all groups. |
356 | for ( ; lvit.current(); ++lvit ) { | 393 | for ( ; lvit.current(); ++lvit ) |
357 | if(lvit.current()->text(0)==(*it).left((*it).find(":"))) { | 394 | { |
395 | if(lvit.current()->text(0)==(*it).left((*it).find(":"))) | ||
396 | { | ||
358 | temp=(QCheckListItem*)lvit.current(); | 397 | temp=(QCheckListItem*)lvit.current(); |
359 | temp->setOn(true);// If we find a line with that groupname, select it.; | 398 | temp->setOn(true);// If we find a line with that groupname, select it.; |
360 | } | 399 | } |
361 | } | 400 | } |
362 | } | 401 | } |
363 | 402 | ||
364 | if(!(edituserDialog->exec())) return false;// SHOW THE DIALOG! | 403 | if(!(edituserDialog->exec())) return false;// SHOW THE DIALOG! |
365 | 404 | ||
366 | accounts->findUser(username);// Fill user variables in 'acccounts' object. | 405 | accounts->findUser(username);// Fill user variables in 'acccounts' object. |
367 | accounts->pw_name=edituserDialog->loginLineEdit->text(); | 406 | accounts->pw_name=edituserDialog->loginLineEdit->text(); |
368 | // Has the password been changed ? Make a new "crypt":ed password. | 407 | // Has the password been changed ? Make a new "crypt":ed password. |
369 | if(edituserDialog->passwordLineEdit->text()!="........") accounts->pw_passwd=crypt(edituserDialog->passwordLineEdit->text(), accounts->crypt_make_salt()); | 408 | if(edituserDialog->passwordLineEdit->text()!="........") accounts->pw_passwd=crypt(edituserDialog->passwordLineEdit->text(), accounts->crypt_make_salt()); |
370 | 409 | ||
371 | // Set all variables in accounts object, that will be used when calling 'updateUser()' | 410 | // Set all variables in accounts object, that will be used when calling 'updateUser()' |
372 | accounts->pw_uid=edituserDialog->uidLineEdit->text().toInt(); | 411 | accounts->pw_uid=edituserDialog->uidLineEdit->text().toInt(); |
373 | if(accounts->findGroup(edituserDialog->groupComboBox->currentText())) {// Fill all group variables in 'accounts' object. | 412 | if(accounts->findGroup(edituserDialog->groupComboBox->currentText())) |
413 | {// Fill all group variables in 'accounts' object. | ||
374 | accounts->pw_gid=accounts->gr_gid;// Only do this if the group is a valid group (ie. "<Undefined group>"), otherwise keep the old group. | 414 | accounts->pw_gid=accounts->gr_gid;// Only do this if the group is a valid group (ie. "<Undefined group>"), otherwise keep the old group. |
375 | } | 415 | } |
376 | accounts->pw_gecos=edituserDialog->gecosLineEdit->text(); | 416 | accounts->pw_gecos=edituserDialog->gecosLineEdit->text(); |
377 | accounts->pw_shell=edituserDialog->shellComboBox->currentText(); | 417 | accounts->pw_shell=edituserDialog->shellComboBox->currentText(); |
378 | // Update userinfo, using the information stored in the user variables stored in the accounts object. | 418 | // Update userinfo, using the information stored in the user variables stored in the accounts object. |
379 | accounts->updateUser(username); | 419 | accounts->updateUser(username); |
380 | 420 | ||
381 | // Remove user from all groups he/she is a member of. (could be done in a better way I guess, this was simple though.) | 421 | // Remove user from all groups he/she is a member of. (could be done in a better way I guess, this was simple though.) |
382 | for(QStringList::Iterator it=tempList.begin(); it!=tempList.end(); ++it) { | 422 | for(QStringList::Iterator it=tempList.begin(); it!=tempList.end(); ++it) |
423 | { | ||
383 | accounts->delGroupMember((*it).left((*it).find(":")),username); | 424 | accounts->delGroupMember((*it).left((*it).find(":")),username); |
384 | } | 425 | } |
385 | 426 | ||
386 | // Add User to additional groups that he/she is a member of. | 427 | // Add User to additional groups that he/she is a member of. |
387 | QListViewItemIterator it( edituserDialog->groupsListView ); | 428 | QListViewItemIterator it( edituserDialog->groupsListView ); |
388 | for ( ; it.current(); ++it ) { | 429 | for ( ; it.current(); ++it ) |
430 | { | ||
389 | temp=(QCheckListItem*)it.current(); | 431 | temp=(QCheckListItem*)it.current(); |
390 | if ( temp->isOn() ) | 432 | if ( temp->isOn() ) |
391 | accounts->addGroupMember(it.current()->text(0),edituserDialog->loginLineEdit->text()); | 433 | accounts->addGroupMember(it.current()->text(0),edituserDialog->loginLineEdit->text()); |
392 | } | 434 | } |
393 | 435 | ||
394 | // Copy image to pics/users/ | 436 | // Copy image to pics/users/ |
395 | if(!(edituserDialog->userImage.isNull())) { | 437 | if(!(edituserDialog->userImage.isNull())) |
438 | { | ||
396 | QDir d; | 439 | QDir d; |
397 | if(!(d.exists("/opt/QtPalmtop/pics/users"))) { | 440 | if(!(d.exists("/opt/QtPalmtop/pics/users"))) |
441 | { | ||
398 | d.mkdir("/opt/QtPalmtop/pics/users"); | 442 | d.mkdir("/opt/QtPalmtop/pics/users"); |
399 | } | 443 | } |
400 | QString filename="/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"; | 444 | QString filename="/opt/QtPalmtop/pics/users/"+accounts->pw_name+".png"; |
401 | // edituserDialog->userImage=edituserDialog->userImage.smoothScale(48,48); | 445 | // edituserDialog->userImage=edituserDialog->userImage.smoothScale(48,48); |
402 | edituserDialog->userImage.save(filename,"PNG"); | 446 | edituserDialog->userImage.save(filename,"PNG"); |
403 | } | 447 | } |
404 | return true; | 448 | return true; |
405 | } | 449 | } |
406 | 450 | ||
407 | /** | 451 | /** |
408 | * "OK" has been clicked. Verify some information before closing the dialog. | 452 | * "OK" has been clicked. Verify some information before closing the dialog. |
409 | * | 453 | * |
410 | */ | 454 | */ |
411 | void UserDialog::accept() { | 455 | void UserDialog::accept() |
456 | { | ||
412 | // Add checking... valid username? username taken? | 457 | // Add checking... valid username? username taken? |
413 | if(loginLineEdit->text().isEmpty()) { | 458 | if(loginLineEdit->text().isEmpty()) |
459 | { | ||
414 | QMessageBox::information(0,"Empty Login","Please enter a login."); | 460 | QMessageBox::information(0,"Empty Login","Please enter a login."); |
415 | return; | 461 | return; |
416 | } | 462 | } |
417 | QDialog::accept(); | 463 | QDialog::accept(); |
418 | } | 464 | } |
419 | 465 | ||
420 | /** | 466 | /** |
421 | * This slot is called when the usericon is clicked, this loads (should) the iconselector. | 467 | * This slot is called when the usericon is clicked, this loads (should) the iconselector. |
422 | * | 468 | * |
423 | */ | 469 | */ |
424 | void UserDialog::clickedPicture() { | 470 | void UserDialog::clickedPicture() |
471 | { | ||
425 | QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED, QString::null); | 472 | QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED, QString::null); |
426 | if(!(filename.isEmpty())) { | 473 | if(!(filename.isEmpty())) |
474 | { | ||
427 | userImage.reset(); | 475 | userImage.reset(); |
428 | if(!(userImage.load(filename))) { | 476 | if(!(userImage.load(filename))) |
477 | { | ||
429 | QMessageBox::information(0,"Sorry!","That icon could not be loaded.\nLoading failed on: "+filename); | 478 | QMessageBox::information(0,"Sorry!","That icon could not be loaded.\nLoading failed on: "+filename); |
430 | } else { | 479 | } |
480 | else | ||
481 | { | ||
431 | // userImage=userImage.smoothScale(48,48); | 482 | // userImage=userImage.smoothScale(48,48); |
432 | QPixmap *picture; | 483 | QPixmap *picture; |
433 | picture=(QPixmap *)picturePushButton->pixmap(); | 484 | picture=(QPixmap *)picturePushButton->pixmap(); |
434 | picture->convertFromImage(userImage,0); | 485 | picture->convertFromImage(userImage,0); |
435 | picturePushButton->update(); | 486 | picturePushButton->update(); |
436 | } | 487 | } |
437 | } | 488 | } |
438 | } | 489 | } |