summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/mainwindow.cpp
Unidiff
Diffstat (limited to 'noncore/unsupported/oipkg/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/mainwindow.cpp87
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
@@ -7,6 +7,7 @@
7#include <qpe/qpemessagebox.h> 7#include <qpe/qpemessagebox.h>
8#include <qpe/resource.h> 8#include <qpe/resource.h>
9#include <qpe/qpetoolbar.h> 9#include <qpe/qpetoolbar.h>
10#include <qpe/qcopenvelope_qws.h>
10#include <qaction.h> 11#include <qaction.h>
11#include <qmessagebox.h> 12#include <qmessagebox.h>
12#include <qpopupmenu.h> 13#include <qpopupmenu.h>
@@ -29,16 +30,21 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
29 setCaption( tr("Package Manager") ); 30 setCaption( tr("Package Manager") );
30 31
31 listViewPackages = new QListView( this,0,0 ); 32 listViewPackages = new QListView( this,0,0 );
33 listViewPackages->setSelectionMode(QListView::NoSelection);
32 setCentralWidget( listViewPackages ); 34 setCentralWidget( listViewPackages );
33 35
34 makeMenu(); 36 makeMenu();
35 37#ifdef NEWLAYOUT
38 listViewPackages->addColumn( tr("Package") );
39 listViewPackages->setRootIsDecorated( true );
40#endif
41#ifndef NEWLAYOUT
36 QFontMetrics fm = fontMetrics(); 42 QFontMetrics fm = fontMetrics();
37 int wlw = width()*2; 43 int wlw = width()*2;
38 int w0 = fm.width(tr("Package"))+30; 44 int w0 = fm.width(tr("Package"))+30;
39 // int w0 = fm.width(tr("Package"))+30; 45 // int w0 = fm.width(tr("Package"))+30;
40 int w2 = fm.width("00000")+4; 46 int w2 = fm.width("00000")+4;
41 int w1 = wlw-w2-w0-20; 47 int w1 = wlw-w2-w0-24;
42 listViewPackages->addColumn( tr("Package"), w0 ); 48 listViewPackages->addColumn( tr("Package"), w0 );
43 listViewPackages->addColumn( tr("Description"), w1 ); 49 listViewPackages->addColumn( tr("Description"), w1 );
44 listViewPackages->addColumn( tr("Size"), w2 ); 50 listViewPackages->addColumn( tr("Size"), w2 );
@@ -46,13 +52,17 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
46 listViewPackages->setColumnWidthMode(1,QListView::Manual); 52 listViewPackages->setColumnWidthMode(1,QListView::Manual);
47 listViewPackages->setColumnWidthMode(2,QListView::Manual); 53 listViewPackages->setColumnWidthMode(2,QListView::Manual);
48 listViewPackages->setSelectionMode( QListView::Multi ); 54 listViewPackages->setSelectionMode( QListView::Multi );
49 55#endif
50 connect( section, SIGNAL( activated(int) ), 56 connect( section, SIGNAL( activated(int) ),
51 this, SLOT( sectionChanged() ) ); 57 this, SLOT( sectionChanged() ) );
52 connect( subsection, SIGNAL(activated(int) ), 58 connect( subsection, SIGNAL(activated(int) ),
53 this, SLOT( subSectionChanged() ) ); 59 this, SLOT( subSectionChanged() ) );
54 connect( listViewPackages, SIGNAL( pressed( QListViewItem* ) ), 60 connect( listViewPackages, SIGNAL( pressed( QListViewItem* ) ),
55 this, SLOT( setCurrent( QListViewItem* ) ) ); 61 this, SLOT( setCurrent( QListViewItem* ) ) );
62 connect( listViewPackages, SIGNAL( clicked( QListViewItem* ) ),
63 this, SLOT( stopTimer( QListViewItem* ) ) );
64
65 popupMenu = new QPopupMenu( this );
56 66
57 settings = new PackageManagerSettings(this,0,TRUE); 67 settings = new PackageManagerSettings(this,0,TRUE);
58 68
@@ -75,8 +85,9 @@ void MainWindow::makeMenu()
75 // QPopupMenu *sectMenu = new QPopupMenu( menuBar ); 85 // QPopupMenu *sectMenu = new QPopupMenu( menuBar );
76 86
77 popupMenu = new QPopupMenu( this ); 87 popupMenu = new QPopupMenu( this );
78 88 destsMenu = new QPopupMenu( popupMenu );
79 contextMenu = new QPopupMenu( this ); 89 popupTimer = new QTimer( this );
90 connect( popupTimer, SIGNAL(timeout()), this, SLOT(showPopup()) );
80 91
81 setToolBarsMovable( false ); 92 setToolBarsMovable( false );
82 toolBar->setHorizontalStretchable( true ); 93 toolBar->setHorizontalStretchable( true );
@@ -180,6 +191,14 @@ void MainWindow::makeMenu()
180 findAction->setToggleAction( true ); 191 findAction->setToggleAction( true );
181 findAction->setOn( true ); 192 findAction->setOn( true );
182 findAction->addTo( viewMenu ); 193 findAction->addTo( viewMenu );
194
195 #ifdef NEW
196 Config cfg( "oipkg", Config::User );
197 cfg.setGroup( "Setting_" + QString::number( setting ) );
198 CheckBoxLink->setChecked( cfg.readBoolEntry( "link", false ) );
199 findShow(bool b)
200 sectionShow(bool b)
201 #endif
183} 202}
184 203
185MainWindow::~MainWindow() 204MainWindow::~MainWindow()
@@ -189,7 +208,12 @@ MainWindow::~MainWindow()
189void MainWindow::runIpkg() 208void MainWindow::runIpkg()
190{ 209{
191 ipkg->commit( packageList ); 210 ipkg->commit( packageList );
192// updateList(); //to remove 211 // ##### If we looked in the list of files, we could send out accurate
212 // ##### messages. But we don't bother yet, and just do an "all".
213 QCopEnvelope e("QPE/System", "linkChanged(QString)");
214 QString lf = QString::null;
215 e << lf;
216 displayList();
193} 217}
194 218
195void MainWindow::updateList() 219void MainWindow::updateList()
@@ -224,7 +248,7 @@ void MainWindow::displayList()
224 while( pack ) 248 while( pack )
225 { 249 {
226 if ( pack && (pack->name() != "") ) 250 if ( pack && (pack->name() != "") )
227 listViewPackages->insertItem( new PackageListItem( listViewPackages, pack ) ); 251 listViewPackages->insertItem( new PackageListItem( listViewPackages, pack, settings ) );
228 pack = packageList.next(); 252 pack = packageList.next();
229 } 253 }
230} 254}
@@ -291,7 +315,6 @@ void MainWindow::showSettingsDst()
291 315
292void MainWindow::showDetails() 316void MainWindow::showDetails()
293{ 317{
294 if ( activePackage ) return;
295 if ( details ) 318 if ( details )
296 { 319 {
297 details = new PackageDetails( this ); 320 details = new PackageDetails( this );
@@ -300,11 +323,16 @@ void MainWindow::showDetails()
300 connect( details->ignore, SIGNAL(clicked()), details, SLOT(close())); 323 connect( details->ignore, SIGNAL(clicked()), details, SLOT(close()));
301 details->description->setTextFormat(RichText); 324 details->description->setTextFormat(RichText);
302 } 325 }
303 326 if ( !activePackage )
327 {
328 details->description->setText(tr("no package selected"));
329 details->description->setText(tr("errmm...<br>...not working?"));
330 }else{
304 details->setCaption("Package: " + activePackage->name()); 331 details->setCaption("Package: " + activePackage->name());
305 details->description->setText(activePackage->details() ); 332 details->description->setText(activePackage->details() );
306 details->install->setEnabled(!activePackage->installed()); 333 details->install->setEnabled(!activePackage->installed());
307 details->remove->setEnabled(activePackage->installed()); 334 details->remove->setEnabled(activePackage->installed());
335 }
308 details->showMaximized(); 336 details->showMaximized();
309} 337}
310 338
@@ -316,10 +344,11 @@ void MainWindow::toggleActivePackage()
316 344
317void MainWindow::setCurrent( QListViewItem* p ) 345void MainWindow::setCurrent( QListViewItem* p )
318{ 346{
319 pvDebug(2, "MainWindow::setCurrent "); 347 if ( !p ) return;
320 return; 348 activePackageListItem = (PackageListItem*)p;
321 pvDebug(2, "name "+((Package*)p)->name()); 349 activePackage = activePackageListItem->getPackage();
322 activePackage = (Package*)p; 350 pvDebug(5, "start timer");
351 popupTimer->start( 750, true );
323} 352}
324 353
325void MainWindow::sectionShow(bool b) 354void MainWindow::sectionShow(bool b)
@@ -355,3 +384,35 @@ void MainWindow::rotateUpdateIcon()
355 updateAction->setIconSet( Resource::loadIconSet( "oipkg/update2" ) ); 384 updateAction->setIconSet( Resource::loadIconSet( "oipkg/update2" ) );
356 updateIcon = !updateIcon; 385 updateIcon = !updateIcon;
357} 386}
387
388void MainWindow::showPopup()
389{
390 popupMenu->clear();
391 destsMenu->clear();
392
393 QAction *popupAction;
394 popupMenu->insertItem( tr("Install to"), destsMenu );
395 QStringList dests = settings->getDestinationNames();
396 for (uint i = 0; i < dests.count(); i++ )
397 {
398 popupAction = new QAction( dests[i], QString::null, 0, this, 0 );
399 popupAction->addTo( destsMenu );
400 }
401 connect( destsMenu, SIGNAL( activated( int ) ),
402 this, SLOT( changePackageDest( int ) ) );
403 popupMenu->popup( QCursor::pos() );
404}
405
406void MainWindow::changePackageDest( int i )
407{
408 activePackage->setDest( destsMenu->text(i) );
409 activePackage->setOn();
410 activePackage->setLink( settings->createLinks() );
411 activePackageListItem->displayDetails();
412}
413
414void MainWindow::stopTimer( QListViewItem* )
415{
416 pvDebug( 5, "stop timer" );
417 popupTimer->stop();
418}