author | drw <drw> | 2003-02-01 02:07:22 (UTC) |
---|---|---|
committer | drw <drw> | 2003-02-01 02:07:22 (UTC) |
commit | 766f09a89eef17808e77836f76371aab8ebc4c1c (patch) (side-by-side diff) | |
tree | 3a298c40d5b688dc409a0e6d251a514d88eada48 | |
parent | 266feac1ac442947651bf169dbf993c4d46d56ea (diff) | |
download | opie-766f09a89eef17808e77836f76371aab8ebc4c1c.zip opie-766f09a89eef17808e77836f76371aab8ebc4c1c.tar.gz opie-766f09a89eef17808e77836f76371aab8ebc4c1c.tar.bz2 |
Many updates to install dialog
-rw-r--r-- | noncore/settings/aqpkg/.cvsignore | 4 | ||||
-rw-r--r-- | noncore/settings/aqpkg/aqpkg.pro | 1 | ||||
-rw-r--r-- | noncore/settings/aqpkg/install.ui | 147 | ||||
-rw-r--r-- | noncore/settings/aqpkg/installdlgimpl.cpp | 132 | ||||
-rw-r--r-- | noncore/settings/aqpkg/installdlgimpl.h | 38 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 86 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.h | 3 |
7 files changed, 164 insertions, 247 deletions
diff --git a/noncore/settings/aqpkg/.cvsignore b/noncore/settings/aqpkg/.cvsignore index ef0e27f..751040e 100644 --- a/noncore/settings/aqpkg/.cvsignore +++ b/noncore/settings/aqpkg/.cvsignore @@ -1,5 +1,3 @@ Makefile* -install.cpp -install.h instoptions.cpp instoptions.h @@ -8,3 +6,3 @@ settings.cpp settings.h categoryfilter.cpp -categoryfilter.h
\ No newline at end of file +categoryfilter.h diff --git a/noncore/settings/aqpkg/aqpkg.pro b/noncore/settings/aqpkg/aqpkg.pro index d8eee6a..d3f898b 100644 --- a/noncore/settings/aqpkg/aqpkg.pro +++ b/noncore/settings/aqpkg/aqpkg.pro @@ -34,5 +34,4 @@ SOURCES = mainwin.cpp \ categoryfilterimpl.cpp INTERFACES = settings.ui \ - install.ui \ instoptions.ui \ categoryfilter.ui diff --git a/noncore/settings/aqpkg/install.ui b/noncore/settings/aqpkg/install.ui deleted file mode 100644 index 53622dd..0000000 --- a/noncore/settings/aqpkg/install.ui +++ b/dev/null @@ -1,147 +0,0 @@ -<!DOCTYPE UI><UI> -<class>InstallDlg</class> -<widget> - <class>QDialog</class> - <property stdset="1"> - <name>name</name> - <cstring>InstallDlg</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>196</width> - <height>278</height> - </rect> - </property> - <property stdset="1"> - <name>caption</name> - <string>Install</string> - </property> - <grid> - <property stdset="1"> - <name>margin</name> - <number>11</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget row="0" column="1" > - <class>QComboBox</class> - <property stdset="1"> - <name>name</name> - <cstring>destination</cstring> - </property> - </widget> - <widget row="3" column="0" > - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>btnInstall</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Start</string> - </property> - </widget> - <widget row="3" column="1" > - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>btnOptions</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Options</string> - </property> - </widget> - <widget row="2" column="0" rowspan="1" colspan="2" > - <class>QGroupBox</class> - <property stdset="1"> - <name>name</name> - <cstring>GroupBox2</cstring> - </property> - <property stdset="1"> - <name>title</name> - <string>Output</string> - </property> - <grid> - <property stdset="1"> - <name>margin</name> - <number>11</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget row="0" column="0" > - <class>QMultiLineEdit</class> - <property stdset="1"> - <name>name</name> - <cstring>output</cstring> - </property> - </widget> - </grid> - </widget> - <widget row="0" column="0" > - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel1</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Destination</string> - </property> - </widget> - <widget row="1" column="0" > - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>TextLabel3</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Space Avail</string> - </property> - </widget> - <widget row="1" column="1" > - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>txtAvailableSpace</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string></string> - </property> - </widget> - </grid> -</widget> -<connections> - <connection> - <sender>btnOptions</sender> - <signal>clicked()</signal> - <receiver>InstallDlg</receiver> - <slot>optionsSelected()</slot> - </connection> - <connection> - <sender>btnInstall</sender> - <signal>clicked()</signal> - <receiver>InstallDlg</receiver> - <slot>installSelected()</slot> - </connection> - <connection> - <sender>destination</sender> - <signal>highlighted(const QString&)</signal> - <receiver>InstallDlg</receiver> - <slot>displayAvailableSpace( const QString& )</slot> - </connection> - <slot access="public">displayAvailableSpace( const QString& )</slot> - <slot access="public">installSelected()</slot> - <slot access="public">displayText( const QString & )</slot> - <slot access="public">optionsSelected()</slot> -</connections> -</UI> diff --git a/noncore/settings/aqpkg/installdlgimpl.cpp b/noncore/settings/aqpkg/installdlgimpl.cpp index 75ce1a1..65aaa32 100644 --- a/noncore/settings/aqpkg/installdlgimpl.cpp +++ b/noncore/settings/aqpkg/installdlgimpl.cpp @@ -16,28 +16,36 @@ ***************************************************************************/ +#include <stdio.h> + #ifdef QWS #include <qpe/config.h> #include <qpe/qpeapplication.h> +#include <qpe/resource.h> #include <qpe/storage.h> #endif -#include <qmultilineedit.h> -#include <qdialog.h> -#include <qcombobox.h> #include <qcheckbox.h> -#include <qpushbutton.h> +#include <qcombobox.h> +#include <qdialog.h> +#include <qgroupbox.h> +#include <qmultilineedit.h> #include <qlabel.h> - +#include <qlayout.h> +#include <qpushbutton.h> #include "datamgr.h" -#include "instoptionsimpl.h" #include "destination.h" +#include "instoptionsimpl.h" #include "installdlgimpl.h" +#include "ipkg.h" #include "utils.h" #include "global.h" -InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, QWidget * parent, const char* name, bool modal, WFlags fl ) - : InstallDlg( parent, name, modal, fl ) +InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, const char *title = 0 ) + : QWidget( 0, 0, 0 ) { + setCaption( title ); + init( TRUE ); + pIpkg = 0; upgradePackages = false; @@ -59,7 +67,7 @@ InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *d // Output text is read only output->setReadOnly( true ); - QFont f( "helvetica" ); - f.setPointSize( 10 ); - output->setFont( f ); +// QFont f( "helvetica" ); +// f.setPointSize( 10 ); +// output->setFont( f ); @@ -78,7 +86,7 @@ InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *d vector<InstallData>::iterator it; // setup package data - QString remove = "Remove\n"; - QString install = "\nInstall\n"; - QString upgrade = "\nUpgrade\n"; + QString remove = tr( "Remove\n" ); + QString install = tr( "Install\n" ); + QString upgrade = tr( "Upgrade\n" ); for ( it = packageList.begin() ; it != packageList.end() ; ++it ) { @@ -87,29 +95,33 @@ InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *d { installList.push_back( item ); - install += " " + item.packageName + "\n"; + install.append( QString( " %1\n" ).arg( item.packageName ) ); } else if ( item.option == "D" ) { removeList.push_back( item ); - remove += " " + item.packageName + "\n"; + remove.append( QString( " %1\n" ).arg( item.packageName ) ); } else if ( item.option == "U" || item.option == "R" ) { updateList.push_back( item ); - QString type = " (Upgrade)"; + QString type; if ( item.option == "R" ) - type = " (ReInstall)"; - upgrade += " " + item.packageName + type + "\n"; - } + type = tr( "(ReInstall)" ); + else + type = tr( "(Upgrade)" ); + upgrade.append( QString( " %1 %2\n" ).arg( item.packageName ).arg( type ) ); + } } - output->setText( remove + install + upgrade ); + output->setText( QString( "%1\n%2\n%3\n" ).arg( remove ).arg( install ).arg( upgrade ) ); displayAvailableSpace( destination->currentText() ); } -InstallDlgImpl::InstallDlgImpl( Ipkg *ipkg, QString initialText, QWidget *parent, const char *name, bool modal, WFlags fl ) - : InstallDlg( parent, name, modal, fl ) +InstallDlgImpl::InstallDlgImpl( Ipkg *ipkg, QString initialText, const char *title = 0 ) + : QWidget( 0, 0, 0 ) { + setCaption( title ); + init( FALSE ); pIpkg = ipkg; output->setText( initialText ); @@ -119,12 +131,50 @@ InstallDlgImpl::InstallDlgImpl( Ipkg *ipkg, QString initialText, QWidget *parent InstallDlgImpl::~InstallDlgImpl() { + if ( pIpkg ) + delete pIpkg; } -bool InstallDlgImpl :: showDlg() +void InstallDlgImpl :: init( bool displayextrainfo ) { - showMaximized(); - bool ret = exec(); + QGridLayout *layout = new QGridLayout( this ); + layout->setSpacing( 4 ); + layout->setMargin( 4 ); - return ret; + if ( displayextrainfo ) + { + QLabel *label = new QLabel( tr( "Destination" ), this ); + layout->addWidget( label, 0, 0 ); + destination = new QComboBox( FALSE, this ); + layout->addWidget( destination, 0, 1 ); + connect( destination, SIGNAL( highlighted( const QString & ) ), + this, SLOT( displayAvailableSpace( const QString & ) ) ); + + QLabel *label2 = new QLabel( tr( "Space Avail" ), this ); + layout->addWidget( label2, 1, 0 ); + txtAvailableSpace = new QLabel( "", this ); + layout->addWidget( txtAvailableSpace, 1, 1 ); + } + else + { + destination = 0x0; + txtAvailableSpace = 0x0; + } + + QGroupBox *GroupBox2 = new QGroupBox( 0, Qt::Vertical, tr( "Output" ), this ); + GroupBox2->layout()->setSpacing( 0 ); + GroupBox2->layout()->setMargin( 4 ); + + QVBoxLayout *GroupBox2Layout = new QVBoxLayout( GroupBox2->layout() ); + output = new QMultiLineEdit( GroupBox2 ); + GroupBox2Layout->addWidget( output ); + layout->addMultiCellWidget( GroupBox2, 2, 2, 0, 1 ); + + btnInstall = new QPushButton( Resource::loadPixmap( "aqpkg/apply" ), tr( "Start" ), this ); + layout->addWidget( btnInstall, 3, 0 ); + connect( btnInstall, SIGNAL( clicked() ), this, SLOT( installSelected() ) ); + + btnOptions = new QPushButton( Resource::loadPixmap( "aqpkg/config" ), tr( "Options" ), this ); + layout->addWidget( btnOptions, 3, 1 ); + connect( btnOptions, SIGNAL( clicked() ), this, SLOT( optionsSelected() ) ); } @@ -146,19 +196,20 @@ void InstallDlgImpl :: optionsSelected() void InstallDlgImpl :: installSelected() { - if ( btnInstall->text() == "Abort" ) + if ( btnInstall->text() == tr( "Abort" ) ) { if ( pIpkg ) { - displayText( "\n**** User Clicked ABORT ***" ); + displayText( tr( "\n**** User Clicked ABORT ***" ) ); pIpkg->abort(); - displayText( "**** Process Aborted ****" ); + displayText( tr( "**** Process Aborted ****" ) ); } btnInstall->setText( tr( "Close" ) ); + btnInstall->setIconSet( Resource::loadPixmap( "enter" ) ); return; } else if ( btnInstall->text() == tr( "Close" ) ) { - done( 1 ); + emit reloadData( this ); return; } @@ -168,10 +219,9 @@ void InstallDlgImpl :: installSelected() // btnInstall->setEnabled( false ); - btnInstall->setText( "Abort" ); - + btnInstall->setText( tr( "Abort" ) ); + btnInstall->setIconSet( Resource::loadPixmap( "close" ) ); if ( pIpkg ) { output->setText( "" ); - connect( pIpkg, SIGNAL(outputText(const QString &)), this, SLOT(displayText(const QString &))); pIpkg->runIpkg(); @@ -243,4 +293,5 @@ void InstallDlgImpl :: installSelected() delete pIpkg; + pIpkg = 0; } @@ -248,6 +299,7 @@ void InstallDlgImpl :: installSelected() // btnInstall->setEnabled( true ); btnInstall->setText( tr( "Close" ) ); + btnInstall->setIconSet( Resource::loadPixmap( "enter" ) ); - if ( destination->currentText() != 0 && destination->currentText() != "" ) + if ( destination && destination->currentText() != 0 && destination->currentText() != "" ) displayAvailableSpace( destination->currentText() ); } @@ -256,6 +308,7 @@ void InstallDlgImpl :: installSelected() void InstallDlgImpl :: displayText(const QString &text ) { - QString t = output->text() + "\n" + text; - output->setText( t ); + //output->setText( QString( "%1\n%2" ).arg( output->text() ).arg( text ) ); + QString newtext = QString( "%1\n%2" ).arg( output->text() ).arg( text ); + output->setText( newtext ); output->setCursorPosition( output->numLines(), 0 ); } @@ -285,7 +338,8 @@ void InstallDlgImpl :: displayAvailableSpace( const QString &text ) } else - space = "Unknown"; + space = tr( "Unknown" ); - txtAvailableSpace->setText( space ); + if ( txtAvailableSpace ) + txtAvailableSpace->setText( space ); } diff --git a/noncore/settings/aqpkg/installdlgimpl.h b/noncore/settings/aqpkg/installdlgimpl.h index 2f80f08..4c9f087 100644 --- a/noncore/settings/aqpkg/installdlgimpl.h +++ b/noncore/settings/aqpkg/installdlgimpl.h @@ -21,8 +21,15 @@ using namespace std; +#include <qwidget.h> #include <qstring.h> -#include "ipkg.h" -#include "install.h" +class QComboBox; +class QLabel; +class QMultiLineEdit; +class QPushButton; + +class DataManager; +class Destination; +class Ipkg; class InstallData @@ -35,15 +42,14 @@ public: }; -class InstallDlgImpl : public InstallDlg +class InstallDlgImpl : public QWidget { + Q_OBJECT public: - InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, QWidget * parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0 ); - InstallDlgImpl( Ipkg *ipkg, QString initialText, QWidget * parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0 ); + InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, const char *title = 0 ); + InstallDlgImpl( Ipkg *ipkg, QString initialText, const char *title = 0 ); ~InstallDlgImpl(); - bool showDlg(); bool upgradeServer( QString &server ); - protected: @@ -56,9 +62,21 @@ private: Ipkg *pIpkg; bool upgradePackages; + + QComboBox *destination; + QPushButton *btnInstall; + QPushButton *btnOptions; + QMultiLineEdit *output; + QLabel *txtAvailableSpace; - bool runIpkg( QString &option, const QString& package, const QString& dest, int flags ); + void init( bool ); + + bool runIpkg( QString &option, const QString& package, const QString& dest, int flags ); - void optionsSelected(); - void installSelected(); +signals: + void reloadData( InstallDlgImpl * ); + +public slots: + void optionsSelected(); + void installSelected(); void displayText(const QString &text ); void displayAvailableSpace( const QString &text); diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index a25f5a7..947aace 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -46,4 +46,5 @@ #include "helpwindow.h" #include "inputdlg.h" +#include "ipkg.h" #include "installdlgimpl.h" #include "letterpushbutton.h" @@ -89,7 +90,4 @@ MainWindow :: MainWindow() QGridLayout *layout = new QGridLayout( w ); - //QVBoxLayout *vbox = new QVBoxLayout( w, 0, -1 ); - //QHBoxLayout *hbox3 = new QHBoxLayout( vbox, -1 ); - //QHBoxLayout *hbox4 = new QHBoxLayout( vbox, -1 ); char text[2]; @@ -101,10 +99,4 @@ MainWindow :: MainWindow() connect( b, SIGNAL( released( QString ) ), this, SLOT( letterPushed( QString ) ) ); layout->addWidget( b, i / 13, i % 13); -/* - if ( i < 13 ) - hbox3->addWidget( b ); - else - hbox4->addWidget( b ); -*/ } @@ -799,11 +791,11 @@ void MainWindow :: updateServer() mgr->writeOutIpkgConf(); - Ipkg ipkg; - ipkg.setOption( "update" ); - - InstallDlgImpl dlg( &ipkg, tr( "Refreshing server package lists" ), this, tr( "Upgrade" ), true ); - dlg.showDlg(); + Ipkg *ipkg = new Ipkg; + ipkg->setOption( "update" ); - reloadData(); + InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Refreshing server package lists" ), + tr( "Update lists" ) ); + connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); + dlg->showMaximized(); // delete progDlg; @@ -828,14 +820,15 @@ void MainWindow :: upgradePackages() // Now run upgrade - Ipkg ipkg; - ipkg.setOption( "upgrade" ); - - InstallDlgImpl dlg( &ipkg, tr( "Upgrading installed packages" ), this, tr( "Upgrade" ), true ); - dlg.showDlg(); + Ipkg *ipkg = new Ipkg; + ipkg->setOption( "upgrade" ); - reloadData(); + InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Upgrading installed packages" ), + tr ( "Upgrade" ) ); + connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); + dlg->showMaximized(); } } - void MainWindow :: downloadPackage() + +void MainWindow :: downloadPackage() { bool doUpdate = true; @@ -899,5 +892,5 @@ void MainWindow :: upgradePackages() if ( doUpdate ) { - reloadData(); + reloadData( 0x0 ); } } @@ -971,15 +964,7 @@ void MainWindow :: downloadRemotePackage() workingPackages.push_back( item ); - InstallDlgImpl dlg2( workingPackages, mgr, this, "Install", true ); - dlg2.showDlg(); - - reloadData(); - -#ifdef QWS - // Finally let the main system update itself - QCopEnvelope e("QPE/System", "linkChanged(QString)"); - QString lf = QString::null; - e << lf; -#endif + InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Download" ) ); + connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); + dlg->showMaximized(); } @@ -1017,15 +1002,7 @@ void MainWindow :: applyChanges() // do the stuff - InstallDlgImpl dlg( workingPackages, mgr, this, "Install", true ); - dlg.showDlg(); - - reloadData(); - -#ifdef QWS - // Finally let the main system update itself - QCopEnvelope e("QPE/System", "linkChanged(QString)"); - QString lf = QString::null; - e << lf; -#endif + InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Apply changes" ) ); + connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); + dlg->showMaximized(); } @@ -1151,9 +1128,26 @@ InstallData MainWindow :: dealWithItem( QCheckListItem *item ) } -void MainWindow :: reloadData() +void MainWindow :: reloadData( InstallDlgImpl *dlg ) { stack->raiseWidget( progressWindow ); + + if ( dlg ) + { + dlg->close(); + delete dlg; + } + mgr->reloadServerData(); serverSelected( -1, FALSE ); + +#ifdef QWS + m_status->setText( tr( "Updating Launcher..." ) ); + + // Finally let the main system update itself + QCopEnvelope e("QPE/System", "linkChanged(QString)"); + QString lf = QString::null; + e << lf; +#endif + stack->raiseWidget( networkPkgWindow ); } diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index b49c819..d0777fb 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -24,4 +24,5 @@ class DataManager; class InstallData; +class InstallDlgImpl; class QAction; @@ -93,5 +94,4 @@ private: void downloadRemotePackage(); InstallData dealWithItem( QCheckListItem *item ); - void reloadData(); // Progress widget @@ -122,4 +122,5 @@ public slots: void enableUpgrade( bool ); void enableDownload( bool ); + void reloadData( InstallDlgImpl * ); private slots: |