summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/packagelistview.cpp
Unidiff
Diffstat (limited to 'noncore/unsupported/oipkg/packagelistview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/packagelistview.cpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/noncore/unsupported/oipkg/packagelistview.cpp b/noncore/unsupported/oipkg/packagelistview.cpp
new file mode 100644
index 0000000..693ea6a
--- a/dev/null
+++ b/noncore/unsupported/oipkg/packagelistview.cpp
@@ -0,0 +1,91 @@
1/***************************************************************************
2 packagelistview.cpp - description
3 -------------------
4 begin : Sat Apr 27 2002
5 copyright : (C) 2002 by tille
6 email : tille@handhelds.org
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#include "packagelistview.h"
19
20#include <qpopupmenu.h>
21#include <qaction.h>
22
23#include "packagelistitem.h"
24#include "pksettings.h"
25
26PackageListView::PackageListView(QWidget *p, const char* n, PackageManagerSettings *s)
27 : QListView(p,n)
28{
29 settings = s;
30 popupMenu = new QPopupMenu( this );
31 destsMenu = new QPopupMenu( popupMenu );
32 popupTimer = new QTimer( this );
33 setSelectionMode(QListView::NoSelection);
34 addColumn( tr("Package") );
35 setRootIsDecorated( true );
36
37 connect( popupTimer, SIGNAL(timeout()),
38 this, SLOT(showPopup()) );
39 connect( this, SIGNAL( pressed( QListViewItem* ) ),
40 this, SLOT( setCurrent( QListViewItem* ) ) );
41 connect( this, SIGNAL( clicked( QListViewItem* ) ),
42 this, SLOT( stopTimer( QListViewItem* ) ) );
43
44}
45
46//PackageListView::~PackageListView()
47//{
48//}
49
50void PackageListView::setCurrent( QListViewItem* p )
51{
52 if ( !p ) return;
53 activePackageListItem = (PackageListItem*)p;
54 activePackage = activePackageListItem->getPackage();
55 pvDebug(5, "start timer");
56 popupTimer->start( 750, true );
57}
58
59
60void PackageListView::showPopup()
61{
62 popupMenu->clear();
63 destsMenu->clear();
64
65 QAction *popupAction;
66 popupMenu->insertItem( QObject::tr("Install to"), destsMenu );
67 QStringList dests = settings->getDestinationNames();
68 for (uint i = 0; i < dests.count(); i++ )
69 {
70 popupAction = new QAction( dests[i], QString::null, 0, this, 0 );
71 popupAction->addTo( destsMenu );
72 }
73 connect( destsMenu, SIGNAL( activated( int ) ),
74 this, SLOT( changePackageDest( int ) ) );
75 popupMenu->popup( QCursor::pos() );
76}
77
78void PackageListView::stopTimer( QListViewItem* )
79{
80 pvDebug( 5, "stop timer" );
81 popupTimer->stop();
82}
83
84
85void PackageListView::changePackageDest( int i )
86{
87 activePackage->setDest( destsMenu->text(i) );
88 activePackage->setOn();
89 activePackage->setLink( settings->createLinks() );
90 activePackageListItem->displayDetails();
91}