summaryrefslogtreecommitdiff
path: root/noncore/settings/packagemanager/oipkgconfigdlg.cpp
authordrw <drw>2004-12-21 17:56:04 (UTC)
committer drw <drw>2004-12-21 17:56:04 (UTC)
commit23fa4508dabaf07a67e1e9bd9e66a7088a014ad0 (patch) (unidiff)
tree37c602b938dff7be3e2e76658497507fbf53d3eb /noncore/settings/packagemanager/oipkgconfigdlg.cpp
parent769f2a09ccfcc639a87600ecb046e9140fe2f691 (diff)
downloadopie-23fa4508dabaf07a67e1e9bd9e66a7088a014ad0.zip
opie-23fa4508dabaf07a67e1e9bd9e66a7088a014ad0.tar.gz
opie-23fa4508dabaf07a67e1e9bd9e66a7088a014ad0.tar.bz2
Reworked server config tab UI and included option to support src/gz feeds
Diffstat (limited to 'noncore/settings/packagemanager/oipkgconfigdlg.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/packagemanager/oipkgconfigdlg.cpp201
1 files changed, 106 insertions, 95 deletions
diff --git a/noncore/settings/packagemanager/oipkgconfigdlg.cpp b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
index d9a67f3..6805863 100644
--- a/noncore/settings/packagemanager/oipkgconfigdlg.cpp
+++ b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
@@ -35,2 +35,3 @@ _;:, .> :=|. This program is free software; you can
35 35
36#include <qpe/qpeapplication.h>
36#include <qpe/resource.h> 37#include <qpe/resource.h>
@@ -50,3 +51,3 @@ OIpkgConfigDlg::OIpkgConfigDlg( OIpkg *ipkg, bool installOptions, QWidget *paren
50 , m_ipkg( ipkg ) 51 , m_ipkg( ipkg )
51 , m_configs( 0x0 ) 52 , m_configs( 0l )
52 , m_installOptions( installOptions ) 53 , m_installOptions( installOptions )
@@ -168,3 +169,3 @@ void OIpkgConfigDlg::initServerWidget()
168 sv->addChild( container ); 169 sv->addChild( container );
169 QGridLayout *layout = new QGridLayout( container, 3, 2, 2, 4 ); 170 QGridLayout *layout = new QGridLayout( container, 2, 3, 2, 4 );
170 171
@@ -173,3 +174,3 @@ void OIpkgConfigDlg::initServerWidget()
173 m_serverList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) ); 174 m_serverList->setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred ) );
174 connect( m_serverList, SIGNAL(highlighted(int)), this, SLOT(slotServerEdit(int)) ); 175 connect( m_serverList, SIGNAL(highlighted(int)), this, SLOT(slotServerSelected(int)) );
175 layout->addMultiCellWidget( m_serverList, 0, 0, 0, 1 ); 176 layout->addMultiCellWidget( m_serverList, 0, 0, 0, 1 );
@@ -181,36 +182,13 @@ void OIpkgConfigDlg::initServerWidget()
181 182
182 btn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container ); 183 m_serverEditBtn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Edit" ), container );
183 QWhatsThis::add( btn, tr( "Tap here to delete the entry selected above." ) ); 184 m_serverEditBtn->setEnabled( false );
184 connect( btn, SIGNAL(clicked()), this, SLOT(slotServerDelete()) ); 185 QWhatsThis::add( m_serverEditBtn, tr( "Tap here to edit the entry selected above." ) );
185 layout->addWidget( btn, 1, 1 ); 186 connect( m_serverEditBtn, SIGNAL(clicked()), this, SLOT(slotServerEdit()) );
187 layout->addWidget( m_serverEditBtn, 1, 1 );
186 188
187 QGroupBox *grpbox = new QGroupBox( 0, Qt::Vertical, tr( "Server" ), container ); 189 m_serverDeleteBtn = new QPushButton( Resource::loadPixmap( "trash" ), tr( "Delete" ), container );
188 grpbox->layout()->setSpacing( 2 ); 190 m_serverDeleteBtn->setEnabled( false );
189 grpbox->layout()->setMargin( 4 ); 191 QWhatsThis::add( m_serverDeleteBtn, tr( "Tap here to delete the entry selected above." ) );
190 layout->addMultiCellWidget( grpbox, 2, 2, 0, 1 ); 192 connect( m_serverDeleteBtn, SIGNAL(clicked()), this, SLOT(slotServerDelete()) );
191 193 layout->addWidget( m_serverDeleteBtn, 1, 2 );
192 QGridLayout *grplayout = new QGridLayout( grpbox->layout() );
193
194 QLabel *label = new QLabel( tr( "Name:" ), grpbox );
195 QWhatsThis::add( label, tr( "Enter the name of this entry here." ) );
196 grplayout->addWidget( label, 0, 0 );
197 m_serverName = new QLineEdit( grpbox );
198 QWhatsThis::add( m_serverName, tr( "Enter the name of this entry here." ) );
199 grplayout->addWidget( m_serverName, 0, 1 );
200
201 label = new QLabel( tr( "Address:" ), grpbox );
202 QWhatsThis::add( label, tr( "Enter the URL address of this entry here." ) );
203 grplayout->addWidget( label, 1, 0 );
204 m_serverLocation = new QLineEdit( grpbox );
205 QWhatsThis::add( m_serverLocation, tr( "Enter the URL address of this entry here." ) );
206 grplayout->addWidget( m_serverLocation, 1, 1 );
207
208 m_serverActive = new QCheckBox( tr( "Active" ), grpbox );
209 QWhatsThis::add( m_serverActive, tr( "Tap here to indicate whether this entry is active or not." ) );
210 grplayout->addMultiCellWidget( m_serverActive, 2, 2, 0, 1 );
211
212 btn = new QPushButton( Resource::loadPixmap( "edit" ), tr( "Update" ), grpbox );
213 QWhatsThis::add( btn, tr( "Tap here to update the entry's information." ) );
214 connect( btn, SIGNAL(clicked()), this, SLOT(slotServerUpdate()) );
215 grplayout->addMultiCellWidget( btn, 3, 3, 0, 1 );
216} 194}
@@ -451,3 +429,3 @@ OConfItem *OIpkgConfigDlg::findConfItem( OConfItem::Type type, const QString &na
451 OConfItemListIterator configIt( *m_configs ); 429 OConfItemListIterator configIt( *m_configs );
452 OConfItem *config = 0x0; 430 OConfItem *config = 0l;
453 for ( ; configIt.current(); ++configIt ) 431 for ( ; configIt.current(); ++configIt )
@@ -462,22 +440,12 @@ OConfItem *OIpkgConfigDlg::findConfItem( OConfItem::Type type, const QString &na
462 440
463 return 0x0; 441 return 0l;
464} 442}
465 443
466void OIpkgConfigDlg::slotServerEdit( int index ) 444void OIpkgConfigDlg::slotServerSelected( int index )
467{ 445{
468 m_serverNew = false;
469 m_serverCurrent = index; 446 m_serverCurrent = index;
470 447
471 // Find selected server in list 448 // Enable Edit and Delete buttons
472 OConfItem *server = findConfItem( OConfItem::Source, m_serverList->currentText() ); 449 m_serverEditBtn->setEnabled( true );
473 450 m_serverDeleteBtn->setEnabled( true );
474 // Display server details
475 if ( server )
476 {
477 m_serverCurrName = server->name();
478 m_serverName->setText( server->name() );
479 m_serverLocation->setText( server->value() );
480 m_serverActive->setChecked( server->active() );
481 m_serverName->setFocus();
482 }
483} 451}
@@ -486,11 +454,20 @@ void OIpkgConfigDlg::slotServerNew()
486{ 454{
487 m_serverNew = true; 455 OConfItem *server = new OConfItem( OConfItem::Source );
488 456
489 m_serverName->setText( QString::null ); 457 OIpkgServerDlg dlg( server, this );
490 m_serverLocation->setText( QString::null ); 458 if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted )
491 m_serverActive->setChecked( true ); 459 {
492 m_serverName->setFocus(); 460 // Add to configuration option list
461 m_configs->append( server );
462 m_configs->sort();
463
464 // Add to server list
465 m_serverList->insertItem( server->name() );
466 m_serverList->setCurrentItem( m_serverList->count() );
467 }
468 else
469 delete server;
493} 470}
494 471
495void OIpkgConfigDlg::slotServerDelete() 472void OIpkgConfigDlg::slotServerEdit()
496{ 473{
@@ -502,4 +479,10 @@ void OIpkgConfigDlg::slotServerDelete()
502 { 479 {
503 m_configs->removeRef( server ); 480 QString origName = server->name();
504 m_serverList->removeItem( m_serverCurrent ); 481 OIpkgServerDlg dlg( server, this );
482 if ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted )
483 {
484 // Check to see if name has changed, if so update the server list
485 if ( server->name() != origName )
486 m_serverList->changeItem( server->name(), m_serverCurrent );
487 }
505 } 488 }
@@ -507,13 +490,6 @@ void OIpkgConfigDlg::slotServerDelete()
507 490
508void OIpkgConfigDlg::slotServerUpdate() 491void OIpkgConfigDlg::slotServerDelete()
509{
510 QString newName = m_serverName->text();
511
512 // Convert any spaces to underscores
513 newName.replace( QRegExp( " " ), "_" );
514
515 if ( !m_serverNew )
516 { 492 {
517 // Find selected server in list 493 // Find selected server in list
518 OConfItem *server = findConfItem( OConfItem::Source, m_serverCurrName ); 494 OConfItem *server = findConfItem( OConfItem::Source, m_serverList->currentText() );
519 495
@@ -522,28 +498,4 @@ void OIpkgConfigDlg::slotServerUpdate()
522 { 498 {
523 // Update url 499 m_configs->removeRef( server );
524 server->setValue( m_serverLocation->text() ); 500 m_serverList->removeItem( m_serverCurrent );
525 server->setActive( m_serverActive->isChecked() );
526
527 // Check if server name has changed, if it has then we need to replace the key in the map
528 if ( m_serverCurrName != newName )
529 {
530 // Update server name
531 server->setName( newName );
532
533 // Update list box
534 m_serverList->changeItem( newName, m_serverCurrent );
535 }
536 }
537 }
538 else
539 {
540 // Add new server to configuration list
541 // TODO - support src/gz
542 m_configs->append( new OConfItem( OConfItem::Source, newName, m_serverLocation->text(),
543 QString::null, m_serverActive->isChecked() ) );
544 m_configs->sort();
545
546 m_serverList->insertItem( newName );
547 m_serverList->setCurrentItem( m_serverList->count() );
548 m_serverNew = false;
549 } 501 }
@@ -643 +595,60 @@ void OIpkgConfigDlg::slotDestUpdate()
643} 595}
596
597OIpkgServerDlg::OIpkgServerDlg( OConfItem *server, QWidget *parent )
598 : QDialog( parent, QString::null, true, WStyle_ContextHelp )
599 , m_server( server )
600{
601 setCaption( tr( "Edit server" ) );
602
603 // Initialize UI
604 QVBoxLayout *layout = new QVBoxLayout( this, 2, 4 );
605
606 m_active = new QCheckBox( tr( "Active" ), this );
607 QWhatsThis::add( m_active, tr( "Tap here to indicate whether this entry is active or not." ) );
608 layout->addWidget( m_active );
609
610 layout->addStretch();
611
612 QLabel *label = new QLabel( tr( "Name:" ), this );
613 QWhatsThis::add( label, tr( "Enter the name of this entry here." ) );
614 layout->addWidget( label );
615 m_name = new QLineEdit( this );
616 QWhatsThis::add( m_name, tr( "Enter the name of this entry here." ) );
617 layout->addWidget( m_name );
618
619 layout->addStretch();
620
621 label = new QLabel( tr( "Address:" ), this );
622 QWhatsThis::add( label, tr( "Enter the URL address of this entry here." ) );
623 layout->addWidget( label );
624 m_location = new QLineEdit( this );
625 QWhatsThis::add( m_location, tr( "Enter the URL address of this entry here." ) );
626 layout->addWidget( m_location );
627
628 layout->addStretch();
629
630 m_compressed = new QCheckBox( tr( "Compressed server feed" ), this );
631 QWhatsThis::add( m_compressed, tr( "Tap here to indicate whether the server support compressed archives or not." ) );
632 layout->addWidget( m_compressed );
633
634 // Populate initial information
635 if ( m_server )
636 {
637 m_name->setText( m_server->name() );
638 m_location->setText( m_server->value() );
639 m_compressed->setChecked( m_server->features().contains( "Compressed" ) );
640 m_active->setChecked( m_server->active() );
641 }
642}
643
644void OIpkgServerDlg::accept()
645{
646 // Save information entered
647 m_server->setName( m_name->text() );
648 m_server->setValue( m_location->text() );
649 m_compressed->isChecked() ? m_server->setFeatures( "Compressed" )
650 : m_server->setFeatures( QString::null );
651 m_server->setActive( m_active->isChecked() );
652
653 QDialog::accept();
654}