summaryrefslogtreecommitdiff
authorar <ar>2004-02-21 16:02:01 (UTC)
committer ar <ar>2004-02-21 16:02:01 (UTC)
commitdb2afda83e495bff9fc19fa14a30072f1cd4c67a (patch) (unidiff)
tree0281ec10dad24d83179283370661ae9225016de0
parent460258f203be746ff79e14f32a823f381b8ea513 (diff)
downloadopie-db2afda83e495bff9fc19fa14a30072f1cd4c67a.zip
opie-db2afda83e495bff9fc19fa14a30072f1cd4c67a.tar.gz
opie-db2afda83e495bff9fc19fa14a30072f1cd4c67a.tar.bz2
improve support for BigScreen
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp162
-rw-r--r--noncore/settings/appearance2/stylelistitem.h8
-rw-r--r--noncore/settings/aqpkg/categoryfilterimpl.cpp20
-rw-r--r--noncore/settings/aqpkg/instoptionsimpl.cpp16
-rw-r--r--noncore/settings/aqpkg/mainwin.cpp38
-rw-r--r--noncore/settings/aqpkg/settingsimpl.cpp35
-rw-r--r--noncore/settings/backup/backuprestore.cpp17
-rw-r--r--noncore/settings/networksettings/ppp/devices.cpp25
-rw-r--r--noncore/settings/networksettings/ppp/edit.cpp233
-rw-r--r--noncore/settings/sysinfo/modulesinfo.cpp16
-rw-r--r--noncore/settings/sysinfo/processinfo.cpp14
-rw-r--r--noncore/settings/usermanager/userdialog.cpp149
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
@@ -24,12 +24,36 @@
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>
@@ -46,51 +70,29 @@
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
77using namespace Opie; 76using namespace Opie;
78 77
79 78
80class DefaultWindowDecoration : public WindowDecorationInterface 79class DefaultWindowDecoration : public WindowDecorationInterface
81{ 80{
82public: 81public:
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 }
87QPixmap 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
@@ -131,25 +133,28 @@ QWidget *Appearance::createStyleTab ( QWidget *parent, Config &cfg )
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 }
@@ -181,20 +186,22 @@ QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg )
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 }
@@ -243,13 +250,14 @@ QWidget *Appearance::createColorTab ( QWidget *parent, Config &cfg )
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
@@ -345,13 +353,14 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
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
@@ -429,15 +438,18 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
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 );
@@ -479,18 +491,18 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags )
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
484Appearance::~Appearance() 496Appearance::~Appearance()
485{ 497{}
486}
487 498
488void Appearance::tabChanged ( QWidget *w ) 499void 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}
@@ -500,30 +512,34 @@ void Appearance::accept ( )
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
@@ -533,26 +549,32 @@ void Appearance::accept ( )
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 ( ));
@@ -576,51 +598,54 @@ void Appearance::done ( int r )
576 598
577void Appearance::styleClicked ( int index ) 599void 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
591void Appearance::styleSettingsClicked ( ) 614void 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
616void Appearance::decoClicked ( int index ) 640void 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 }
@@ -649,31 +674,35 @@ void Appearance::editSchemeClicked ( )
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 );
@@ -695,13 +724,14 @@ void Appearance::saveSchemeClicked()
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 );
@@ -758,13 +788,14 @@ void Appearance::addExcept ( )
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
762void Appearance::delExcept ( ) 792void 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
770void Appearance::upExcept ( ) 801void Appearance::upExcept ( )
@@ -780,13 +811,14 @@ void Appearance::downExcept ( )
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
786class ExEdit : public QLineEdit { 817class ExEdit : public QLineEdit
818{
787public: 819public:
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
@@ -819,13 +851,14 @@ public:
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 }
@@ -845,12 +878,13 @@ void Appearance::clickedExcept ( QListViewItem *item, const QPoint &, int c )
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
@@ -25,14 +25,20 @@
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
36class StyleListItem : public QListBoxText { 42class StyleListItem : public QListBoxText {
37public: 43public:
38 StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t ) 44 StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t )
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
@@ -24,21 +24,27 @@
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"
31using 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>
43using namespace std;
44
39 45
40CategoryFilterImpl :: CategoryFilterImpl(const QString &categories, const QString &selectedCategories, QWidget *parent, const char *name ) 46CategoryFilterImpl :: 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
@@ -73,22 +79,22 @@ CategoryFilterImpl :: CategoryFilterImpl(const QString &categories, const QStrin
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
86CategoryFilterImpl :: ~CategoryFilterImpl() 93CategoryFilterImpl :: ~CategoryFilterImpl()
87{ 94{}
88}
89 95
90QString CategoryFilterImpl :: getSelectedFilter() 96QString CategoryFilterImpl :: getSelectedFilter()
91{ 97{
92 // Grab cetegories from listbox 98 // Grab cetegories from listbox
93 QString ret = "#"; 99 QString ret = "#";
94 100
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
@@ -24,26 +24,29 @@
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
44InstallOptionsDlgImpl::InstallOptionsDlgImpl( int flags, int verb, QWidget * parent, const char* name, bool modal, WFlags fl ) 47InstallOptionsDlgImpl::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 );
@@ -92,19 +95,18 @@ InstallOptionsDlgImpl::InstallOptionsDlgImpl( int flags, int verb, QWidget * par
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
102InstallOptionsDlgImpl::~InstallOptionsDlgImpl() 105InstallOptionsDlgImpl::~InstallOptionsDlgImpl()
103{ 106{}
104}
105 107
106 108
107int InstallOptionsDlgImpl :: getFlags() 109int InstallOptionsDlgImpl :: getFlags()
108{ 110{
109 int flags = 0; 111 int flags = 0;
110 112
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
@@ -24,22 +24,33 @@
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>
@@ -49,23 +60,15 @@
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
67extern int compareVersions( const char *v1, const char *v2 ); 70extern int compareVersions( const char *v1, const char *v2 );
68 71
69MainWindow :: MainWindow( QWidget* parent, const char* name, WFlags fl ) 72MainWindow :: MainWindow( QWidget* parent, const char* name, WFlags fl )
70 :QMainWindow( parent, name, fl || WStyle_ContextHelp ) 73 :QMainWindow( parent, name, fl || WStyle_ContextHelp )
71{ 74{
@@ -1178,20 +1181,21 @@ void MainWindow :: letterPushed( QString t )
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
1187void MainWindow :: slotDisplayPackage( QListViewItem *item ) 1191void 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
1194QuestionDlg::QuestionDlg( const QString &caption, const QString &text, const QString &secondbtn ) 1198QuestionDlg::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 );
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
@@ -24,34 +24,36 @@
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"
32using 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> 53using namespace std;
46#include <qpe/resource.h>
47#endif
48
49#include "settingsimpl.h"
50
51#include "global.h"
52 54
53SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) 55SettingsImpl :: 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
@@ -75,20 +77,17 @@ SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const
75 newserver = false; 77 newserver = false;
76 newdestination = false; 78 newdestination = false;
77} 79}
78 80
79SettingsImpl :: ~SettingsImpl() 81SettingsImpl :: ~SettingsImpl()
80{ 82{
81
82} 83}
83 84
84bool SettingsImpl :: showDlg() 85bool 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
@@ -459,12 +458,13 @@ void SettingsImpl :: changeDestinationDetails()
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 );
@@ -473,12 +473,13 @@ void SettingsImpl :: changeDestinationDetails()
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 ----------------------
483void SettingsImpl :: proxyApplyChanges() 484void SettingsImpl :: proxyApplyChanges()
484{ 485{
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,14 +1,17 @@
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>
@@ -18,14 +21,14 @@
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
@@ -38,13 +41,12 @@
38const QString tempFileName = "/tmp/backup.err"; 41const QString tempFileName = "/tmp/backup.err";
39 42
40 43
41BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags fl) 44BackupAndRestore::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()));
@@ -127,12 +129,13 @@ BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name, WFlags f
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
135BackupAndRestore::~BackupAndRestore() 138BackupAndRestore::~BackupAndRestore()
136{ 139{
137 QList<QListViewItem> list; 140 QList<QListViewItem> list;
138 getAllItems(backupList->firstChild(), list); 141 getAllItems(backupList->firstChild(), list);
@@ -284,14 +287,13 @@ void BackupAndRestore::backup()
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 }
@@ -449,14 +451,13 @@ void BackupAndRestore::restore()
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;
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
@@ -21,31 +21,37 @@
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
47void parseargs(char* buf, char** args); 53void parseargs(char* buf, char** args);
48 54
49DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) 55DevicesWidget::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{
@@ -188,14 +194,13 @@ int DevicesWidget::doTab(){
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;
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
@@ -20,29 +20,36 @@
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
44DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount 51DialWidget::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;
@@ -109,117 +116,136 @@ DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount
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
140bool DialWidget::save() { 151bool 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
161void DialWidget::numbersChanged() { 177void 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
170void DialWidget::selectionChanged(int) { 187void DialWidget::selectionChanged(int)
188{
171 numbersChanged(); 189 numbersChanged();
172} 190}
173 191
174 192
175void DialWidget::addNumber() { 193void 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
184void DialWidget::delNumber() { 204void 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
192void DialWidget::upNumber() { 214void 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
204void DialWidget::downNumber() { 228void 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
216void DialWidget::pppdargsbutton() { 242void 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
@@ -302,22 +328,24 @@ ExecWidget::ExecWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const ch
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
317bool ExecWidget::save() { 344bool 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}
@@ -411,38 +439,44 @@ IPWidget::IPWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const char
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
438void IPWidget::autoname_t(bool on) { 470void 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 "
@@ -451,32 +485,39 @@ void IPWidget::autoname_t(bool on) {
451 tr("Warning")); 485 tr("Warning"));
452 was_warned = true; 486 was_warned = true;
453 } 487 }
454} 488}
455 489
456 490
457void IPWidget::save() { 491void 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
469void IPWidget::hitIPSelect( int i ) { 507void 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}
@@ -594,47 +635,52 @@ DNSWidget::DNSWidget( PPPData *pd, QWidget *parent, bool isnewaccount, const cha
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
612void DNSWidget::DNS_Edit_Changed(const QString &text) { 654void 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
617void DNSWidget::DNS_Entry_Selected(int) { 660void DNSWidget::DNS_Entry_Selected(int)
661{
618 remove->setEnabled(true); 662 remove->setEnabled(true);
619} 663}
620 664
621void DNSWidget::DNS_Mode_Selected(int mode) { 665void 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
634void DNSWidget::save() { 679void 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
@@ -646,21 +692,24 @@ void DNSWidget::save() {
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
652void DNSWidget::adddns() { 698void 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
660void DNSWidget::removedns() { 708void 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}
@@ -718,43 +767,51 @@ GatewayWidget::GatewayWidget( PPPData *pd, QWidget *parent, bool isnewaccount, c
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
742void GatewayWidget::save() { 795void 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
748void GatewayWidget::hitGatewaySelect( int i ) { 802void 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
@@ -800,13 +857,14 @@ ScriptWidget::ScriptWidget( PPPData *pd, QWidget *parent, bool isnewaccount, con
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 ( ;
@@ -821,79 +879,92 @@ ScriptWidget::ScriptWidget( PPPData *pd, QWidget *parent, bool isnewaccount, con
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
827bool ScriptWidget::check() { 885bool 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
848void ScriptWidget::save() { 911void 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
860void ScriptWidget::adjustScrollBar() { 925void 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
868void ScriptWidget::scrolling(int i) { 934void 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
874void ScriptWidget::slhighlighted(int i) { 941void 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
881void ScriptWidget::stlhighlighted(int i) { 949void 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
888void ScriptWidget::addButton() { 957void 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:
@@ -977,19 +1048,21 @@ void ScriptWidget::addButton() {
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
983void ScriptWidget::insertButton() { 1054void 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:
@@ -1067,14 +1140,16 @@ void ScriptWidget::insertButton() {
1067 } 1140 }
1068 adjustScrollBar(); 1141 adjustScrollBar();
1069 se->setText(""); 1142 se->setText("");
1070} 1143}
1071 1144
1072 1145
1073void ScriptWidget::removeButton() { 1146void 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);
@@ -1116,19 +1191,21 @@ PhoneNumberDialog::PhoneNumberDialog(QWidget *parent)
1116 textChanged(""); 1191 textChanged("");
1117 1192
1118 1193
1119} 1194}
1120 1195
1121 1196
1122QString PhoneNumberDialog::phoneNumber() { 1197QString 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
1129void PhoneNumberDialog::textChanged(const QString &s) { 1205void 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
@@ -16,23 +16,25 @@
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
33ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) 35ModulesInfo::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 );
@@ -79,14 +81,13 @@ ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl )
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
84ModulesInfo::~ModulesInfo() 86ModulesInfo::~ModulesInfo()
85{ 87{}
86}
87 88
88void ModulesInfo::updateData() 89void 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;
@@ -103,13 +104,14 @@ void ModulesInfo::updateData()
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;
@@ -180,9 +182,9 @@ void ModulesInfo::viewModules( QListViewItem *modules )
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
@@ -14,26 +14,29 @@
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
34ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) 37ProcessInfo::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 );
@@ -83,14 +86,13 @@ ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl )
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
88ProcessInfo::~ProcessInfo() 91ProcessInfo::~ProcessInfo()
89{ 92{}
90}
91 93
92void ProcessInfo::updateData() 94void 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,
@@ -193,8 +195,8 @@ void ProcessInfo::viewProcess( QListViewItem *process )
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
@@ -5,65 +5,74 @@
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>
25using namespace Opie; 30using 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 */
32UserDialog::UserDialog(int viewmode, QWidget* parent, const char* name, bool modal, WFlags fl) : QDialog(parent, name, modal, fl) { 37UserDialog::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 */
56UserDialog::~UserDialog() { 64UserDialog::~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 */
63void UserDialog::setupTab1() { 71void 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
@@ -106,13 +115,14 @@ void UserDialog::setupTab1() {
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 }
@@ -133,13 +143,14 @@ void UserDialog::setupTab1() {
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);
@@ -149,13 +160,14 @@ void UserDialog::setupTab1() {
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
@@ -163,13 +175,14 @@ void UserDialog::setupTab1() {
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 */
169void UserDialog::setupTab2() { 181void 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");
@@ -192,13 +205,14 @@ void UserDialog::setupTab2() {
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 */
198bool UserDialog::addUser(int uid, int gid) { 211bool 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);
@@ -206,60 +220,68 @@ bool UserDialog::addUser(int uid, int gid) {
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?
@@ -277,18 +299,23 @@ bool UserDialog::addUser(int uid, int gid) {
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 */
283bool UserDialog::delUser(const char *username) { 305bool 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
@@ -298,66 +325,78 @@ bool UserDialog::delUser(const char *username) {
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 */
304bool UserDialog::editUser(const char *username) { 331bool 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
@@ -367,37 +406,42 @@ bool UserDialog::editUser(const char *username) {
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 }
@@ -405,32 +449,39 @@ bool UserDialog::editUser(const char *username) {
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 */
411void UserDialog::accept() { 455void 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 */
424void UserDialog::clickedPicture() { 470void 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 }