summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/settingsimpl.cpp114
1 files changed, 72 insertions, 42 deletions
diff --git a/noncore/settings/aqpkg/settingsimpl.cpp b/noncore/settings/aqpkg/settingsimpl.cpp
index 9f611da..e2afada 100644
--- a/noncore/settings/aqpkg/settingsimpl.cpp
+++ b/noncore/settings/aqpkg/settingsimpl.cpp
@@ -193,259 +193,289 @@ QWidget *SettingsImpl :: initDestinationTab()
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()
{
// add servers
QString serverName;
QListIterator<Server> it( dataMgr->getServerList() );
for ( ; it.current(); ++it )
{
serverName = it.current()->getServerName();
if ( serverName == LOCAL_SERVER || serverName == LOCAL_IPKGS )
continue;
servers->insertItem( serverName );
}
// add destinations
QListIterator<Destination> it2( dataMgr->getDestinationList() );
for ( ; it2.current(); ++it2 )
destinations->insertItem( it2.current()->getDestinationName() );
// setup proxy tab
txtHttpProxy->setText( dataMgr->getHttpProxy() );
txtFtpProxy->setText( dataMgr->getFtpProxy() );
txtUsername->setText( dataMgr->getProxyUsername() );
txtPassword->setText( dataMgr->getProxyPassword() );
chkHttpProxyEnabled->setChecked( dataMgr->getHttpProxyEnabled() );
chkFtpProxyEnabled->setChecked( dataMgr->getFtpProxyEnabled() );
}
//------------------ Servers tab ----------------------
void SettingsImpl :: editServer( int sel )
{
currentSelectedServer = sel;
Server *s = dataMgr->getServer( servers->currentText() );
- serverName = s->getServerName();
- servername->setText( s->getServerName() );
- serverurl->setText( s->getServerUrl() );
- active->setChecked( s->isServerActive() );
+ if ( s )
+ {
+ serverName = s->getServerName();
+ servername->setText( s->getServerName() );
+ serverurl->setText( s->getServerUrl() );
+ active->setChecked( s->isServerActive() );
+ }
+ else
+ {
+ serverName = "";
+ servername->setText( "" );
+ serverurl->setText( "" );
+ active->setChecked( false );
+ }
}
void SettingsImpl :: newServer()
{
newserver = true;
servername->setText( "" );
serverurl->setText( "" );
servername->setFocus();
active->setChecked( true );
}
void SettingsImpl :: removeServer()
{
changed = true;
Server *s = dataMgr->getServer( servers->currentText() );
- dataMgr->getServerList().removeRef( s );
- servers->removeItem( currentSelectedServer );
+ if ( s )
+ {
+ dataMgr->getServerList().removeRef( s );
+ servers->removeItem( currentSelectedServer );
+ }
}
void SettingsImpl :: changeServerDetails()
{
changed = true;
QString newName = servername->text();
// Convert any spaces to underscores
char *tmpStr = new char[newName.length() + 1];
for ( unsigned int i = 0 ; i < newName.length() ; ++i )
{
if ( newName[i] == ' ' )
tmpStr[i] = '_';
else
tmpStr[i] = newName[i].latin1();
}
tmpStr[newName.length()] = '\0';
newName = tmpStr;
delete tmpStr;
if ( !newserver )
{
Server *s = dataMgr->getServer( servers->currentText() );
-
- // Update url
- s->setServerUrl( serverurl->text() );
- s->setActive( active->isChecked() );
-
-
- // Check if server name has changed, if it has then we need to replace the key in the map
- if ( serverName != newName )
+ if ( s )
{
- // Update server name
- s->setServerName( newName );
- }
+ // Update url
+ s->setServerUrl( serverurl->text() );
+ s->setActive( active->isChecked() );
+
+ // Check if server name has changed, if it has then we need to replace the key in the map
+ if ( serverName != newName )
+ {
+ // Update server name
+ s->setServerName( newName );
+ }
- // Update list box
- servers->changeItem( newName, currentSelectedServer );
+ // Update list box
+ servers->changeItem( newName, currentSelectedServer );
+ }
}
else
{
Server s( newName, serverurl->text() );
dataMgr->getServerList().append( new Server( newName, serverurl->text() ) );
dataMgr->getServerList().last()->setActive( active->isChecked() );
servers->insertItem( newName );
servers->setCurrentItem( servers->count() );
newserver = false;
}
}
//------------------ Destinations tab ----------------------
void SettingsImpl :: editDestination( int sel )
{
- currentSelectedDestination = sel;
+ currentSelectedDestination = sel;
Destination *d = dataMgr->getDestination( destinations->currentText() );
- destinationName = d->getDestinationName();
- destinationname->setText( d->getDestinationName() );
- destinationurl->setText( d->getDestinationPath() );
- linkToRoot->setChecked( d->linkToRoot() );
+ if ( d )
+ {
+ destinationName = d->getDestinationName();
+ destinationname->setText( d->getDestinationName() );
+ destinationurl->setText( d->getDestinationPath() );
+ linkToRoot->setChecked( d->linkToRoot() );
+ }
+ else
+ {
+ destinationName = "";
+ destinationname->setText( "" );
+ destinationurl->setText( "" );
+ linkToRoot->setChecked( false );
+ }
}
void SettingsImpl :: newDestination()
{
newdestination = true;
destinationname->setText( "" );
destinationurl->setText( "" );
destinationname->setFocus();
linkToRoot->setChecked( true );
}
void SettingsImpl :: removeDestination()
{
changed = true;
Destination *d = dataMgr->getDestination( destinations->currentText() );
- dataMgr->getDestinationList().removeRef( d );
- destinations->removeItem( currentSelectedDestination );
+ if ( d )
+ {
+ dataMgr->getDestinationList().removeRef( d );
+ destinations->removeItem( currentSelectedDestination );
+ }
}
void SettingsImpl :: changeDestinationDetails()
{
changed = true;
#ifdef QWS
Config cfg( "aqpkg" );
cfg.setGroup( "destinations" );
#endif
QString newName = destinationname->text();
if ( !newdestination )
{
Destination *d = dataMgr->getDestination( destinations->currentText() );
+ if ( d )
+ {
+ // Update url
+ d->setDestinationPath( destinationurl->text() );
+ d->linkToRoot( linkToRoot->isChecked() );
- // Update url
- d->setDestinationPath( destinationurl->text() );
- d->linkToRoot( linkToRoot->isChecked() );
+ // Check if server name has changed, if it has then we need to replace the key in the map
+ if ( destinationName != newName )
+ {
+ // Update server name
+ d->setDestinationName( newName );
- // Check if server name has changed, if it has then we need to replace the key in the map
- if ( destinationName != newName )
- {
- // Update server name
- d->setDestinationName( newName );
+ // Update list box
+ destinations->changeItem( newName, currentSelectedDestination );
+ }
- // Update list box
- destinations->changeItem( newName, currentSelectedDestination );
- }
#ifdef QWS
- QString key = newName;
- key += "_linkToRoot";
- int val = d->linkToRoot();
- cfg.writeEntry( key, val );
-#endif
+ QString key = newName;
+ key += "_linkToRoot";
+ int val = d->linkToRoot();
+ cfg.writeEntry( key, val );
+#endif
+ }
}
else
{
dataMgr->getDestinationList().append( new Destination( newName, destinationurl->text() ) );
destinations->insertItem( newName );
destinations->setCurrentItem( destinations->count() );
newdestination = false;
#ifdef QWS
QString key = newName;
key += "_linkToRoot";
cfg.writeEntry( key, true );
#endif
}
}
//------------------ Proxy tab ----------------------
void SettingsImpl :: proxyApplyChanges()
{
changed = true;
dataMgr->setHttpProxy( txtHttpProxy->text() );
dataMgr->setFtpProxy( txtFtpProxy->text() );
dataMgr->setProxyUsername( txtUsername->text() );
dataMgr->setProxyPassword( txtPassword->text() );
dataMgr->setHttpProxyEnabled( chkHttpProxyEnabled->isChecked() );
dataMgr->setFtpProxyEnabled( chkFtpProxyEnabled->isChecked() );
}