Diffstat (limited to 'noncore/unsupported/oipkg/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.cpp | 87 |
1 files changed, 74 insertions, 13 deletions
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index c803ca0..25ca889 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -8,4 +8,5 @@ #include <qpe/resource.h> #include <qpe/qpetoolbar.h> +#include <qpe/qcopenvelope_qws.h> #include <qaction.h> #include <qmessagebox.h> @@ -30,8 +31,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : listViewPackages = new QListView( this,0,0 ); + listViewPackages->setSelectionMode(QListView::NoSelection); setCentralWidget( listViewPackages ); makeMenu(); - +#ifdef NEWLAYOUT + listViewPackages->addColumn( tr("Package") ); + listViewPackages->setRootIsDecorated( true ); +#endif +#ifndef NEWLAYOUT QFontMetrics fm = fontMetrics(); int wlw = width()*2; @@ -39,5 +45,5 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : // int w0 = fm.width(tr("Package"))+30; int w2 = fm.width("00000")+4; - int w1 = wlw-w2-w0-20; + int w1 = wlw-w2-w0-24; listViewPackages->addColumn( tr("Package"), w0 ); listViewPackages->addColumn( tr("Description"), w1 ); @@ -47,5 +53,5 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : listViewPackages->setColumnWidthMode(2,QListView::Manual); listViewPackages->setSelectionMode( QListView::Multi ); - +#endif connect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); @@ -54,4 +60,8 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : connect( listViewPackages, SIGNAL( pressed( QListViewItem* ) ), this, SLOT( setCurrent( QListViewItem* ) ) ); + connect( listViewPackages, SIGNAL( clicked( QListViewItem* ) ), + this, SLOT( stopTimer( QListViewItem* ) ) ); + + popupMenu = new QPopupMenu( this ); settings = new PackageManagerSettings(this,0,TRUE); @@ -76,6 +86,7 @@ void MainWindow::makeMenu() popupMenu = new QPopupMenu( this ); - - contextMenu = new QPopupMenu( this ); + destsMenu = new QPopupMenu( popupMenu ); + popupTimer = new QTimer( this ); + connect( popupTimer, SIGNAL(timeout()), this, SLOT(showPopup()) ); setToolBarsMovable( false ); @@ -181,4 +192,12 @@ void MainWindow::makeMenu() findAction->setOn( true ); findAction->addTo( viewMenu ); + + #ifdef NEW + Config cfg( "oipkg", Config::User ); + cfg.setGroup( "Setting_" + QString::number( setting ) ); + CheckBoxLink->setChecked( cfg.readBoolEntry( "link", false ) ); + findShow(bool b) + sectionShow(bool b) + #endif } @@ -190,5 +209,10 @@ void MainWindow::runIpkg() { ipkg->commit( packageList ); -// updateList(); //to remove + // ##### If we looked in the list of files, we could send out accurate + // ##### messages. But we don't bother yet, and just do an "all". + QCopEnvelope e("QPE/System", "linkChanged(QString)"); + QString lf = QString::null; + e << lf; + displayList(); } @@ -225,5 +249,5 @@ void MainWindow::displayList() { if ( pack && (pack->name() != "") ) - listViewPackages->insertItem( new PackageListItem( listViewPackages, pack ) ); + listViewPackages->insertItem( new PackageListItem( listViewPackages, pack, settings ) ); pack = packageList.next(); } @@ -292,5 +316,4 @@ void MainWindow::showSettingsDst() void MainWindow::showDetails() { - if ( activePackage ) return; if ( details ) { @@ -301,9 +324,14 @@ void MainWindow::showDetails() details->description->setTextFormat(RichText); } - + if ( !activePackage ) + { + details->description->setText(tr("no package selected")); + details->description->setText(tr("errmm...<br>...not working?")); + }else{ details->setCaption("Package: " + activePackage->name()); details->description->setText(activePackage->details() ); details->install->setEnabled(!activePackage->installed()); details->remove->setEnabled(activePackage->installed()); + } details->showMaximized(); } @@ -317,8 +345,9 @@ void MainWindow::toggleActivePackage() void MainWindow::setCurrent( QListViewItem* p ) { - pvDebug(2, "MainWindow::setCurrent "); - return; - pvDebug(2, "name "+((Package*)p)->name()); - activePackage = (Package*)p; + if ( !p ) return; + activePackageListItem = (PackageListItem*)p; + activePackage = activePackageListItem->getPackage(); + pvDebug(5, "start timer"); + popupTimer->start( 750, true ); } @@ -356,2 +385,34 @@ void MainWindow::rotateUpdateIcon() updateIcon = !updateIcon; } + +void MainWindow::showPopup() +{ + popupMenu->clear(); + destsMenu->clear(); + + QAction *popupAction; + popupMenu->insertItem( tr("Install to"), destsMenu ); + QStringList dests = settings->getDestinationNames(); + for (uint i = 0; i < dests.count(); i++ ) + { + popupAction = new QAction( dests[i], QString::null, 0, this, 0 ); + popupAction->addTo( destsMenu ); + } + connect( destsMenu, SIGNAL( activated( int ) ), + this, SLOT( changePackageDest( int ) ) ); + popupMenu->popup( QCursor::pos() ); +} + +void MainWindow::changePackageDest( int i ) +{ + activePackage->setDest( destsMenu->text(i) ); + activePackage->setOn(); + activePackage->setLink( settings->createLinks() ); + activePackageListItem->displayDetails(); +} + +void MainWindow::stopTimer( QListViewItem* ) +{ + pvDebug( 5, "stop timer" ); + popupTimer->stop(); +} |