summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/mainwin.cpp
Unidiff
Diffstat (limited to 'noncore/settings/aqpkg/mainwin.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/mainwin.cpp48
1 files changed, 11 insertions, 37 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp
index fb40d52..1aec6a8 100644
--- a/noncore/settings/aqpkg/mainwin.cpp
+++ b/noncore/settings/aqpkg/mainwin.cpp
@@ -27,48 +27,49 @@
27 27
28#include <qaction.h> 28#include <qaction.h>
29#include <qcombobox.h> 29#include <qcombobox.h>
30#include <qfile.h> 30#include <qfile.h>
31#include <qlabel.h> 31#include <qlabel.h>
32#include <qlayout.h> 32#include <qlayout.h>
33#include <qlineedit.h> 33#include <qlineedit.h>
34#include <qlistview.h> 34#include <qlistview.h>
35#include <qmenubar.h> 35#include <qmenubar.h>
36#include <qmessagebox.h> 36#include <qmessagebox.h>
37#include <qpopupmenu.h> 37#include <qpopupmenu.h>
38#include <qprogressbar.h> 38#include <qprogressbar.h>
39#include <qtimer.h> 39#include <qtimer.h>
40#include <qwhatsthis.h> 40#include <qwhatsthis.h>
41#include <qwidgetstack.h> 41#include <qwidgetstack.h>
42 42
43#include "categoryfilterimpl.h" 43#include "categoryfilterimpl.h"
44#include "datamgr.h" 44#include "datamgr.h"
45#include "global.h" 45#include "global.h"
46#include "inputdlg.h" 46#include "inputdlg.h"
47#include "ipkg.h" 47#include "ipkg.h"
48#include "installdlgimpl.h" 48#include "installdlgimpl.h"
49#include "letterpushbutton.h" 49#include "letterpushbutton.h"
50#include "mainwin.h" 50#include "mainwin.h"
51#include "packagewin.h"
51#include "settingsimpl.h" 52#include "settingsimpl.h"
52#include "utils.h" 53#include "utils.h"
53 54
54extern int compareVersions( const char *v1, const char *v2 ); 55extern int compareVersions( const char *v1, const char *v2 );
55 56
56MainWindow :: MainWindow() 57MainWindow :: MainWindow()
57 :QMainWindow( 0x0, 0x0, WStyle_ContextHelp ) 58 :QMainWindow( 0x0, 0x0, WStyle_ContextHelp )
58{ 59{
59 setCaption( tr( "AQPkg - Package Manager" ) ); 60 setCaption( tr( "AQPkg - Package Manager" ) );
60 61
61 // Create UI widgets 62 // Create UI widgets
62 initMainWidget(); 63 initMainWidget();
63 initProgressWidget(); 64 initProgressWidget();
64 65
65 // Build menu and tool bars 66 // Build menu and tool bars
66 setToolBarsMovable( FALSE ); 67 setToolBarsMovable( FALSE );
67 68
68 QToolBar *bar = new QToolBar( this ); 69 QToolBar *bar = new QToolBar( this );
69 bar->setHorizontalStretchable( TRUE ); 70 bar->setHorizontalStretchable( TRUE );
70 QMenuBar *mb = new QMenuBar( bar ); 71 QMenuBar *mb = new QMenuBar( bar );
71 mb->setMargin( 0 ); 72 mb->setMargin( 0 );
72 bar = new QToolBar( this ); 73 bar = new QToolBar( this );
73 74
74 // Find toolbar 75 // Find toolbar
@@ -218,48 +219,51 @@ MainWindow :: MainWindow()
218 QTimer::singleShot( 100, this, SLOT( init() ) ); 219 QTimer::singleShot( 100, this, SLOT( init() ) );
219} 220}
220 221
221MainWindow :: ~MainWindow() 222MainWindow :: ~MainWindow()
222{ 223{
223 delete mgr; 224 delete mgr;
224} 225}
225 226
226void MainWindow :: initMainWidget() 227void MainWindow :: initMainWidget()
227{ 228{
228 networkPkgWindow = new QWidget( this ); 229 networkPkgWindow = new QWidget( this );
229 230
230 QLabel *l = new QLabel( tr( "Servers:" ), networkPkgWindow ); 231 QLabel *l = new QLabel( tr( "Servers:" ), networkPkgWindow );
231 232
232 serversList = new QComboBox( networkPkgWindow ); 233 serversList = new QComboBox( networkPkgWindow );
233 connect( serversList, SIGNAL( activated( int ) ), this, SLOT( serverSelected( int ) ) ); 234 connect( serversList, SIGNAL( activated( int ) ), this, SLOT( serverSelected( int ) ) );
234 QWhatsThis::add( serversList, tr( "Click here to select a package feed." ) ); 235 QWhatsThis::add( serversList, tr( "Click here to select a package feed." ) );
235 236
236 installedIcon = Resource::loadPixmap( "installed" ); 237 installedIcon = Resource::loadPixmap( "installed" );
237 updatedIcon = Resource::loadPixmap( "aqpkg/updated" ); 238 updatedIcon = Resource::loadPixmap( "aqpkg/updated" );
238 239
239 packagesList = new QListView( networkPkgWindow ); 240 packagesList = new QListView( networkPkgWindow );
240 packagesList->addColumn( tr( "Packages" ), 225 ); 241 packagesList->addColumn( tr( "Packages" ), 225 );
241 QWhatsThis::add( packagesList, tr( "This is a listing of all packages for the server feed selected above.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) ); 242 QWhatsThis::add( packagesList, tr( "This is a listing of all packages for the server feed selected above.\n\nA blue dot next to the package name indicates that the package is currently installed.\n\nA blue dot with a star indicates that a newer version of the package is available from the server feed.\n\nClick inside the box at the left to select a package." ) );
243 QPEApplication::setStylusOperation( packagesList->viewport(), QPEApplication::RightOnHold );
244 connect( packagesList, SIGNAL(rightButtonPressed(QListViewItem *,const QPoint &,int)),
245 this, SLOT(slotDisplayPackage(QListViewItem *)) );
242 246
243 QVBoxLayout *vbox = new QVBoxLayout( networkPkgWindow, 0, -1 ); 247 QVBoxLayout *vbox = new QVBoxLayout( networkPkgWindow, 0, -1 );
244 QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 ); 248 QHBoxLayout *hbox1 = new QHBoxLayout( vbox, -1 );
245 hbox1->addWidget( l ); 249 hbox1->addWidget( l );
246 hbox1->addWidget( serversList ); 250 hbox1->addWidget( serversList );
247 251
248 vbox->addWidget( packagesList ); 252 vbox->addWidget( packagesList );
249 253
250 downloadEnabled = TRUE; 254 downloadEnabled = TRUE;
251} 255}
252 256
253void MainWindow :: initProgressWidget() 257void MainWindow :: initProgressWidget()
254{ 258{
255 progressWindow = new QWidget( this ); 259 progressWindow = new QWidget( this );
256 260
257 QVBoxLayout *layout = new QVBoxLayout( progressWindow, 4, 4 ); 261 QVBoxLayout *layout = new QVBoxLayout( progressWindow, 4, 4 );
258 262
259 m_status = new QLabel( progressWindow ); 263 m_status = new QLabel( progressWindow );
260 m_status->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); 264 m_status->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
261 layout->addWidget( m_status ); 265 layout->addWidget( m_status );
262 266
263 m_progress = new QProgressBar( progressWindow ); 267 m_progress = new QProgressBar( progressWindow );
264 layout->addWidget( m_progress ); 268 layout->addWidget( m_progress );
265} 269}
@@ -650,91 +654,54 @@ void MainWindow :: serverSelected( int, bool raiseProgress )
650 continue; 654 continue;
651 } 655 }
652 656
653 // If the local server, only display installed packages 657 // If the local server, only display installed packages
654 if ( serverName == LOCAL_SERVER && !package->isInstalled() ) 658 if ( serverName == LOCAL_SERVER && !package->isInstalled() )
655 continue; 659 continue;
656 660
657 661
658 QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(), 662 QCheckListItem *item = new QCheckListItem( packagesList, package->getPackageName(),
659 QCheckListItem::CheckBox ); 663 QCheckListItem::CheckBox );
660 664
661 if ( package->isInstalled() ) 665 if ( package->isInstalled() )
662 { 666 {
663 // If a different version of package is available, show update available icon 667 // If a different version of package is available, show update available icon
664 // Otherwise, show installed icon 668 // Otherwise, show installed icon
665 if ( package->getNewVersionAvailable()) 669 if ( package->getNewVersionAvailable())
666 { 670 {
667 671
668 item->setPixmap( 0, updatedIcon ); 672 item->setPixmap( 0, updatedIcon );
669 } 673 }
670 else 674 else
671 { 675 {
672 item->setPixmap( 0, installedIcon ); 676 item->setPixmap( 0, installedIcon );
673 } 677 }
674
675 QString destName = "";
676 if ( package->getLocalPackage() )
677 {
678 if ( package->getLocalPackage()->getInstalledTo() )
679 destName = package->getLocalPackage()->getInstalledTo()->getDestinationName();
680 }
681 else
682 {
683 if ( package->getInstalledTo() )
684 destName = package->getInstalledTo()->getDestinationName();
685 }
686 if ( destName != "" )
687 new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) );
688 } 678 }
689 else 679 else
690 { 680 {
691 item->setPixmap( 0, nullIcon ); 681 item->setPixmap( 0, nullIcon );
692 } 682 }
693 683
694 if ( !package->isPackageStoredLocally() )
695 {
696 new QCheckListItem( item, QString( tr( "Description - %1" ).arg( package->getDescription() ) ) );
697 new QCheckListItem( item, QString( tr( "Size - %1" ).arg( package->getPackageSize() ) ) );
698 new QCheckListItem( item, QString( tr( "Section - %1" ).arg( package->getSection() ) ) );
699 }
700 else
701 new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( package->getFilename() ) ) );
702
703 if ( serverName == LOCAL_SERVER )
704 {
705 new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getVersion() ) ) );
706 }
707 else
708 {
709 new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( package->getVersion() ) ) );
710 if ( package->getLocalPackage() )
711 {
712 if ( package->isInstalled() )
713 new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( package->getInstalledVersion() ) ) );
714 }
715 }
716
717 packagesList->insertItem( item ); 684 packagesList->insertItem( item );
718 } 685 }
719 686
720 // If the local server or the local ipkgs server disable the download button 687 // If the local server or the local ipkgs server disable the download button
721 if ( serverName == LOCAL_SERVER ) 688 if ( serverName == LOCAL_SERVER )
722 { 689 {
723 downloadEnabled = TRUE; 690 downloadEnabled = TRUE;
724 actionUpgrade->setEnabled( FALSE ); 691 actionUpgrade->setEnabled( FALSE );
725 } 692 }
726 else if ( serverName == LOCAL_IPKGS ) 693 else if ( serverName == LOCAL_IPKGS )
727 { 694 {
728 downloadEnabled = FALSE; 695 downloadEnabled = FALSE;
729 actionUpgrade->setEnabled( FALSE ); 696 actionUpgrade->setEnabled( FALSE );
730 } 697 }
731 else 698 else
732 { 699 {
733 downloadEnabled = TRUE; 700 downloadEnabled = TRUE;
734 actionUpgrade->setEnabled( TRUE ); 701 actionUpgrade->setEnabled( TRUE );
735 } 702 }
736 enableDownload( downloadEnabled ); 703 enableDownload( downloadEnabled );
737 704
738 // Display this widget once everything is done 705 // Display this widget once everything is done
739 if ( doProgress && raiseProgress ) 706 if ( doProgress && raiseProgress )
740 { 707 {
@@ -1161,24 +1128,31 @@ void MainWindow :: letterPushed( QString t )
1161 if ( start == 0 ) 1128 if ( start == 0 )
1162 { 1129 {
1163 item = (QCheckListItem *)packagesList->firstChild(); 1130 item = (QCheckListItem *)packagesList->firstChild();
1164 start = top; 1131 start = top;
1165 } 1132 }
1166 else 1133 else
1167 item = (QCheckListItem *)start->nextSibling(); 1134 item = (QCheckListItem *)start->nextSibling();
1168 1135
1169 if ( item == 0 ) 1136 if ( item == 0 )
1170 item = (QCheckListItem *)packagesList->firstChild(); 1137 item = (QCheckListItem *)packagesList->firstChild();
1171 do 1138 do
1172 { 1139 {
1173 if ( item->text().lower().startsWith( t.lower() ) ) 1140 if ( item->text().lower().startsWith( t.lower() ) )
1174 { 1141 {
1175 packagesList->setSelected( item, true ); 1142 packagesList->setSelected( item, true );
1176 packagesList->ensureItemVisible( item ); 1143 packagesList->ensureItemVisible( item );
1177 break; 1144 break;
1178 } 1145 }
1179 1146
1180 item = (QCheckListItem *)item->nextSibling(); 1147 item = (QCheckListItem *)item->nextSibling();
1181 if ( !item ) 1148 if ( !item )
1182 item = (QCheckListItem *)packagesList->firstChild(); 1149 item = (QCheckListItem *)packagesList->firstChild();
1183 } while ( item != start); 1150 } while ( item != start);
1184} 1151}
1152
1153void MainWindow :: slotDisplayPackage( QListViewItem *item )
1154{
1155 QString itemstr( ((QCheckListItem*)item)->text() );
1156 PackageWindow *p = new PackageWindow( mgr->getServer( serversList->currentText() )->getPackage( itemstr ) );
1157 p->showMaximized();
1158}