summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/settingsimpl.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/aqpkg/settingsimpl.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/settingsimpl.cpp225
1 files changed, 198 insertions, 27 deletions
diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp
index 4bb928a..c5a55d2 100644
--- a/noncore/settings/aqpkg/settingsimpl.cpp
+++ b/noncore/settings/aqpkg/settingsimpl.cpp
@@ -21,7 +21,11 @@ using namespace std;
-#include <qlistbox.h>
+#include <qcheckbox.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qlayout.h>
#include <qlineedit.h>
+#include <qlistbox.h>
#include <qpushbutton.h>
-#include <qtabwidget.h>
-#include <qcheckbox.h>
+
+#include <opie/otabwidget.h>
@@ -29,2 +33,3 @@ using namespace std;
#include <qpe/config.h>
+#include <qpe/resource.h>
#endif
@@ -36,6 +41,21 @@ using namespace std;
SettingsImpl :: SettingsImpl( DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl )
- : SettingsBase( parent, name, modal, fl )
+ : QDialog( parent, name, modal, fl )
{
- dataMgr = dataManager;
+ setCaption( tr( "Configuration" ) );
+
+ // Setup layout to make everything pretty
+ QVBoxLayout *layout = new QVBoxLayout( this );
+ layout->setMargin( 2 );
+ layout->setSpacing( 4 );
+
+ // Setup tabs for all info
+ OTabWidget *tabwidget = new OTabWidget( this );
+ layout->addWidget( tabwidget );
+ tabwidget->addTab( initServerTab(), "aqpkg/servertab", tr( "Servers" ) );
+ tabwidget->addTab( initDestinationTab(), "aqpkg/desttab", tr( "Destinations" ) );
+ tabwidget->addTab( initProxyTab(), "aqpkg/proxytab", tr( "Proxies" ) );
+ tabwidget->setCurrentTab( tr( "Servers" ) );
+
+ dataMgr = dataManager;
setupData();
@@ -51,5 +71,4 @@ SettingsImpl :: ~SettingsImpl()
-bool SettingsImpl :: showDlg( int i )
+bool SettingsImpl :: showDlg()
{
- TabWidget->setCurrentPage( i );
showMaximized();
@@ -63,2 +82,173 @@ bool SettingsImpl :: showDlg( int i )
+QWidget *SettingsImpl :: initServerTab()
+{
+ QWidget *control = new QWidget( this );
+
+ QVBoxLayout *vb = new QVBoxLayout( control );
+
+ QScrollView *sv = new QScrollView( control );
+ vb->addWidget( sv, 0, 0 );
+ sv->setResizePolicy( QScrollView::AutoOneFit );
+ sv->setFrameStyle( QFrame::NoFrame );
+
+ QWidget *container = new QWidget( sv->viewport() );
+ sv->addChild( container );
+
+ QGridLayout *layout = new QGridLayout( container );
+ layout->setSpacing( 2 );
+ layout->setMargin( 4 );
+
+ servers = new QListBox( container );
+ servers->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
+ connect( servers, SIGNAL( highlighted( int ) ), this, SLOT( editServer( int ) ) );
+ layout->addMultiCellWidget( servers, 0, 0, 0, 1 );
+
+ QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( newServer() ) );
+ layout->addWidget( btn, 1, 0 );
+
+ btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( removeServer() ) );
+ layout->addWidget( btn, 1, 1 );
+
+ QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Server" ), container );
+ grpbox->layout()->setSpacing( 2 );
+ grpbox->layout()->setMargin( 4 );
+ layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 );
+
+ QGridLayout *grplayout = new QGridLayout( grpbox->layout() );
+
+ QLabel *label = new QLabel( tr( "Name:" ), grpbox );
+ grplayout->addWidget( label, 0, 0 );
+ servername = new QLineEdit( grpbox );
+ grplayout->addWidget( servername, 0, 1 );
+
+ label = new QLabel( tr( "Address:" ), grpbox );
+ grplayout->addWidget( label, 1, 0 );
+ serverurl = new QLineEdit( grpbox );
+ grplayout->addWidget( serverurl, 1, 1 );
+
+ active = new QCheckBox( tr( "Active Server" ), grpbox );
+ grplayout->addMultiCellWidget( active, 2, 2, 0, 1 );
+
+ btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( changeServerDetails() ) );
+ grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 );
+
+ return control;
+}
+
+QWidget *SettingsImpl :: initDestinationTab()
+{
+ QWidget *control = new QWidget( this );
+
+ QVBoxLayout *vb = new QVBoxLayout( control );
+
+ QScrollView *sv = new QScrollView( control );
+ vb->addWidget( sv, 0, 0 );
+ sv->setResizePolicy( QScrollView::AutoOneFit );
+ sv->setFrameStyle( QFrame::NoFrame );
+
+ QWidget *container = new QWidget( sv->viewport() );
+ sv->addChild( container );
+
+ QGridLayout *layout = new QGridLayout( container );
+ layout->setSpacing( 2 );
+ layout->setMargin( 4 );
+
+ destinations = new QListBox( container );
+ destinations->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
+ connect( destinations, SIGNAL( highlighted( int ) ), this, SLOT( editDestination( int ) ) );
+ layout->addMultiCellWidget( destinations, 0, 0, 0, 1 );
+
+ QPushButton *btn = new QPushButton( Resource::loadPixmap( "new" ), tr( "New" ), container );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( newDestination() ) );
+ layout->addWidget( btn, 1, 0 );
+
+ btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( removeDestination() ) );
+ layout->addWidget( btn, 1, 1 );
+
+ QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Destination" ), container );
+ grpbox->layout()->setSpacing( 2 );
+ grpbox->layout()->setMargin( 4 );
+ layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 );
+
+ QGridLayout *grplayout = new QGridLayout( grpbox->layout() );
+
+ QLabel *label = new QLabel( tr( "Name:" ), grpbox );
+ grplayout->addWidget( label, 0, 0 );
+ destinationname = new QLineEdit( grpbox );
+ grplayout->addWidget( destinationname, 0, 1 );
+
+ label = new QLabel( tr( "Location:" ), grpbox );
+ grplayout->addWidget( label, 1, 0 );
+ destinationurl = new QLineEdit( grpbox );
+ grplayout->addWidget( destinationurl, 1, 1 );
+
+ linkToRoot = new QCheckBox( tr( "Link to root" ), grpbox );
+ grplayout->addMultiCellWidget( linkToRoot, 2, 2, 0, 1 );
+
+ btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( changeDestinationDetails() ) );
+ grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 );
+
+ return control;
+}
+
+QWidget *SettingsImpl :: initProxyTab()
+{
+ QWidget *control = new QWidget( this );
+
+ QVBoxLayout *vb = new QVBoxLayout( control );
+
+ QScrollView *sv = new QScrollView( control );
+ vb->addWidget( sv, 0, 0 );
+ sv->setResizePolicy( QScrollView::AutoOneFit );
+ sv->setFrameStyle( QFrame::NoFrame );
+
+ QWidget *container = new QWidget( sv->viewport() );
+ sv->addChild( container );
+
+ QGridLayout *layout = new QGridLayout( container );
+ layout->setSpacing( 2 );
+ layout->setMargin( 4 );
+
+ QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "HTTP Proxy" ), container );
+ grpbox->layout()->setSpacing( 2 );
+ grpbox->layout()->setMargin( 4 );
+ layout->addMultiCellWidget( grpbox, 0, 0, 0, 1 );
+ QVBoxLayout *grplayout = new QVBoxLayout( grpbox->layout() );
+ txtHttpProxy = new QLineEdit( grpbox );
+ grplayout->addWidget( txtHttpProxy );
+ chkHttpProxyEnabled = new QCheckBox( tr( "Enabled" ), grpbox );
+ grplayout->addWidget( chkHttpProxyEnabled );
+
+ grpbox = new QGroupBox( 0, Qt::Vertical, tr( "FTP Proxy" ), container );
+ grpbox->layout()->setSpacing( 2 );
+ grpbox->layout()->setMargin( 4 );
+ layout->addMultiCellWidget( grpbox, 1, 1, 0, 1 );
+ grplayout = new QVBoxLayout( grpbox->layout() );
+ txtFtpProxy = new QLineEdit( grpbox );
+ grplayout->addWidget( txtFtpProxy );
+ chkFtpProxyEnabled = new QCheckBox( tr( "Enabled" ), grpbox );
+ grplayout->addWidget( chkFtpProxyEnabled );
+
+ QLabel *label = new QLabel( tr( "Username:" ), container );
+ layout->addWidget( label, 2, 0 );
+ txtUsername = new QLineEdit( container );
+ layout->addWidget( txtUsername, 2, 1 );
+
+ label = new QLabel( tr( "Password:" ), container );
+ layout->addWidget( label, 3, 0 );
+ txtPassword = new QLineEdit( container );
+ layout->addWidget( txtPassword, 3, 1 );
+
+ QPushButton *btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), container );
+ connect( btn, SIGNAL( clicked() ), this, SLOT( proxyApplyChanges() ) );
+ layout->addMultiCellWidget( btn, 4, 4, 0, 1 );
+
+ return control;
+}
+
void SettingsImpl :: setupData()
@@ -75,2 +265,3 @@ void SettingsImpl :: setupData()
+
// add destinations
@@ -80,11 +271,2 @@ void SettingsImpl :: setupData()
- // setup general tab
-#ifdef QWS
- Config cfg( "aqpkg" );
- cfg.setGroup( "settings" );
- jumpTo->setChecked( cfg.readBoolEntry( "showJumpTo", "true" ) );
-#else
- jumpTo->setChecked( true );
-#endif
-
// setup proxy tab
@@ -244,13 +426,2 @@ void SettingsImpl :: changeDestinationDetails()
-//------------------ General tab ----------------------
-
-void SettingsImpl :: toggleJumpTo( bool val )
-{
-#ifdef QWS
- Config cfg( "aqpkg" );
- cfg.setGroup( "settings" );
- cfg.writeEntry( "showJumpTo", val );
-#endif
-}
-
//------------------ Proxy tab ----------------------