summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/packagelistitem.cpp
authortille <tille>2002-11-10 22:50:50 (UTC)
committer tille <tille>2002-11-10 22:50:50 (UTC)
commit9337c912158da3ad2fcda7ee1120c9357faddf8b (patch) (side-by-side diff)
treec5800efad3f90cfc9901db0337039eb883c0cf28 /noncore/unsupported/oipkg/packagelistitem.cpp
parentf6cabaaa364ee6d894462c0902734e434715fc58 (diff)
downloadopie-9337c912158da3ad2fcda7ee1120c9357faddf8b.zip
opie-9337c912158da3ad2fcda7ee1120c9357faddf8b.tar.gz
opie-9337c912158da3ad2fcda7ee1120c9357faddf8b.tar.bz2
here it's...
Diffstat (limited to 'noncore/unsupported/oipkg/packagelistitem.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/packagelistitem.cpp95
1 files changed, 80 insertions, 15 deletions
diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp
index 03bf477..4380393 100644
--- a/noncore/unsupported/oipkg/packagelistitem.cpp
+++ b/noncore/unsupported/oipkg/packagelistitem.cpp
@@ -11,6 +11,8 @@
#include <qpe/resource.h>
#include <qobject.h>
+#include <qpopupmenu.h>
+#include <qaction.h>
#include "debug.h"
@@ -23,36 +25,49 @@ static QPixmap *pm_install=0;
static QPixmap *pm_uninstalled_old_installed_new=0;
static QPixmap *pm_uninstalled_installed_old=0;
-PackageListItem::PackageListItem(QListView* lv, Package *pi, PackageManagerSettings *s)
- : QCheckListItem(lv,pi->name(),CheckBox)
+PackageListItem::PackageListItem(ListViewItemOipkg *parent, QString name, Type ittype)
+ : ListViewItemOipkg(parent,name,ittype)
+{
+
+}
+
+PackageListItem::PackageListItem(QListView* lv, OipkgPackage *pi, PackageManagerSettings *s)
+ : ListViewItemOipkg(lv,pi->name(),ListViewItemOipkg::Package)
{
init(pi,s);
}
-PackageListItem::PackageListItem(QListViewItem *lvi, Package *pi, PackageManagerSettings *s)
- : QCheckListItem(lvi,pi->name(),CheckBox)
+PackageListItem::PackageListItem(ListViewItemOipkg *lvi, OipkgPackage *pi, PackageManagerSettings *s)
+ : ListViewItemOipkg(lvi,pi->name(),ListViewItemOipkg::Package)
{
init(pi,s);
}
+PackageListItem::~PackageListItem()
+{
+ delete popupMenu;
+ delete destsMenu;
+}
-void PackageListItem::init( Package *pi, PackageManagerSettings *s)
+void PackageListItem::init( OipkgPackage *pi, PackageManagerSettings *s)
{
+ popupMenu = new QPopupMenu( 0 );
+ destsMenu = new QPopupMenu( 0 );
package = pi;
settings = s;
setExpandable( true );
- QCheckListItem *item;
- nameItem = new QCheckListItem( this, "" );
- item = new QCheckListItem( this, QObject::tr("Description: ")+pi->desc() );
- item = new QCheckListItem( this, QObject::tr("Size: ")+pi->size() );
- destItem = new QCheckListItem( this, "" );
- linkItem = new QCheckListItem( this, "" );
- statusItem = new QCheckListItem( this, "" );
- QCheckListItem *otherItem = new QCheckListItem( this, QObject::tr("other") );
- item = new QCheckListItem( otherItem, QObject::tr("Install Name: ")+pi->installName() );
+ ListViewItemOipkg *item;
+ nameItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute,"name" );
+ item = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, QObject::tr("Description: ")+pi->desc() );
+ item = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, QObject::tr("Size: ")+pi->size() );
+ destItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, "dest" );
+ linkItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, "link" );
+ statusItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, "status" );
+ ListViewItemOipkg *otherItem = new ListViewItemOipkg( this, ListViewItemOipkg::Attribute, QObject::tr("other") );
+ item = new ListViewItemOipkg( otherItem, ListViewItemOipkg::Attribute, QObject::tr("Install Name: ")+pi->installName() );
QDict<QString> *fields = pi->getFields();
QDictIterator<QString> it( *fields );
while ( it.current() ) {
- item = new QCheckListItem( otherItem, QString(it.currentKey()+": "+*it.current()) );
+ item = new ListViewItemOipkg( otherItem, ListViewItemOipkg::Attribute, QString(it.currentKey()+": "+*it.current()) );
++it;
}
displayDetails();
@@ -172,3 +187,53 @@ void PackageListItem::displayDetails()
statusItem->setText( 0, QObject::tr("Status: ")+package->status() );
repaint();
}
+
+QPopupMenu* PackageListItem::getPopupMenu()
+{
+ popupMenu->clear();
+ destsMenu->clear();
+
+ QAction *popupAction;
+ qDebug("PackageListItem::showPopup ");
+
+ if (!package->installed()){
+ popupMenu->insertItem( QObject::tr("Install to"), destsMenu );
+ QStringList dests = settings->getDestinationNames();
+ QString ad = settings->getDestinationName();
+ for (uint i = 0; i < dests.count(); i++ )
+ {
+ popupAction = new QAction( dests[i], QString::null, 0, popupMenu, 0 );
+ popupAction->addTo( destsMenu );
+ if ( dests[i] == ad && getPackage()->toInstall() )
+ {
+ popupAction->setToggleAction( true );
+ popupAction->setOn(true);
+ }
+ }
+ connect( destsMenu, SIGNAL( activated( int ) ),
+ this, SLOT( menuAction( int ) ) );
+ popupMenu->popup( QCursor::pos() );
+ }else{
+ popupMenu->insertItem( QObject::tr("Remove"));
+ connect( popupMenu, SIGNAL( activated( int ) ),
+ this, SLOT( menuAction( int ) ) );
+ popupMenu->popup( QCursor::pos() );
+ }
+ return popupMenu;
+}
+
+void PackageListItem::menuAction( int i )
+{
+ if (package->installed()){
+ package->setDest( destsMenu->text(i) );
+ package->setLink( settings->createLinks() );
+ }
+ package->setOn();
+ displayDetails();
+}
+
+//void PackageListItem::toggleProcess()
+//{
+// package->toggleProcess() ;
+// displayDetails();
+//} \ No newline at end of file