-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.cpp | 190 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.h | 26 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/oipkg.pro | 1 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.cpp | 17 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.h | 7 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pkwindow.ui | 147 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 2 |
7 files changed, 170 insertions, 220 deletions
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index cb2b4cd..997f449 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -12,8 +12,10 @@ #include <qpopupmenu.h> #include <qtoolbutton.h> #include <qstring.h> +#include <qlabel.h> #include <qlistview.h> #include <qtextview.h> +#include <qlineedit.h> #include <qtabwidget.h> #include <qcombobox.h> #include <qlayout.h> @@ -25,26 +27,31 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) : QMainWindow( parent, name, f ) { setCaption( tr("Package Manager") ); - table = new PackageWindow( this,0,0 ); - setCentralWidget( table ); + + listViewPackages = new QListView( this,0,0 ); + setCentralWidget( listViewPackages ); + makeMenu(); QFontMetrics fm = fontMetrics(); + int wlw = width()*2; int w0 = fm.width(tr("Package"))+30; + // int w0 = fm.width(tr("Package"))+30; int w2 = fm.width("00000")+4; - table->ListViewPackages->setColumnWidth(0,w0); - table->ListViewPackages->setColumnWidth(1,228-w2-w0); // ### screen-biased - table->ListViewPackages->setColumnWidth(2,w2); - table->ListViewPackages->setColumnWidthMode(0,QListView::Manual); - table->ListViewPackages->setColumnWidthMode(1,QListView::Manual); - table->ListViewPackages->setColumnWidthMode(2,QListView::Manual); - table->ListViewPackages->setSelectionMode( QListView::Multi ); - - connect( table->section, SIGNAL( activated(int) ), + int w1 = wlw-w2-w0-20; + listViewPackages->addColumn( tr("Package"), w0 ); + listViewPackages->addColumn( tr("Description"), w1 ); + listViewPackages->addColumn( tr("Size"), w2 ); + listViewPackages->setColumnWidthMode(0,QListView::Manual); + listViewPackages->setColumnWidthMode(1,QListView::Manual); + listViewPackages->setColumnWidthMode(2,QListView::Manual); + listViewPackages->setSelectionMode( QListView::Multi ); + + connect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); - connect( table->subsection, SIGNAL(activated(int) ), + connect( subsection, SIGNAL(activated(int) ), this, SLOT( subSectionChanged() ) ); - connect( table->ListViewPackages, SIGNAL( clicked( QListViewItem* ) ), + connect( listViewPackages, SIGNAL( pressed( QListViewItem* ) ), this, SLOT( setCurrent( QListViewItem* ) ) ); settings = new PackageManagerSettings(this,0,TRUE); @@ -63,28 +70,27 @@ void MainWindow::makeMenu() QPEToolBar *toolBar = new QPEToolBar( this ); QPEMenuBar *menuBar = new QPEMenuBar( toolBar ); QPopupMenu *srvMenu = new QPopupMenu( menuBar ); + QPopupMenu *viewMenu = new QPopupMenu( menuBar ); QPopupMenu *cfgMenu = new QPopupMenu( menuBar ); // QPopupMenu *sectMenu = new QPopupMenu( menuBar ); -//#define TOOLBAR -#ifdef TOOLBAR - QPEToolBar *secBar = new QPEToolBar( this ); - QComboBox *sections = new QComboBox( false, this ); - secBar->addTo( sections ); -#endif + popupMenu = new QPopupMenu( this ); contextMenu = new QPopupMenu( this ); setToolBarsMovable( false ); toolBar->setHorizontalStretchable( true ); menuBar->insertItem( tr( "Package" ), srvMenu ); + menuBar->insertItem( tr( "View" ), viewMenu ); menuBar->insertItem( tr( "Settings" ), cfgMenu ); // menuBar->insertItem( tr( "Sections" ), sectMenu ); - toolBar->setStretchableWidget (srvMenu); + QLabel *spacer = new QLabel( "", toolBar ); + spacer->setBackgroundColor( toolBar->backgroundColor() ); + toolBar->setStretchableWidget( spacer ); - runAction = new QAction( tr( "Run" ), + runAction = new QAction( tr( "Commit" ), Resource::loadPixmap( "oipkg/install" ), QString::null, 0, this, 0 ); connect( runAction, SIGNAL( activated() ), @@ -102,36 +108,82 @@ void MainWindow::makeMenu() updateAction->addTo( toolBar ); updateAction->addTo( srvMenu ); - // detailsAction = new QAction( tr( "Details" ), - // Resource::loadIconSet( "oipkg/details" ), - // QString::null, 0, this, 0 ); - // connect( detailsAction, SIGNAL( activated() ), - // this , SLOT( showDetails() ) ); - // detailsAction->addTo( toolBar ); - // detailsAction->addTo( srvMenu ); + detailsAction = new QAction( tr( "Details" ), + Resource::loadIconSet( "find" ), + QString::null, 0, this, 0 ); + connect( detailsAction, SIGNAL( activated() ), + this , SLOT( showDetails() ) ); + detailsAction->addTo( toolBar ); + detailsAction->addTo( srvMenu ); QAction *cfgact; cfgact = new QAction( tr( "Setups" ), - Resource::loadIconSet( "" ), + // Resource::loadIconSet( "" ), QString::null, 0, this, 0 ); connect( cfgact, SIGNAL( activated() ), SLOT( showSettings() ) ); cfgact->addTo( cfgMenu ); cfgact = new QAction( tr( "Servers" ), - Resource::loadIconSet( "" ), + // Resource::loadIconSet( "" ), QString::null, 0, this, 0 ); connect( cfgact, SIGNAL( activated() ), SLOT( showSettingsSrv() ) ); cfgact->addTo( cfgMenu ); cfgact = new QAction( tr( "Destinations" ), - Resource::loadIconSet( "" ), + // Resource::loadIconSet( "" ), QString::null, 0, this, 0 ); connect( cfgact, SIGNAL( activated() ), SLOT( showSettingsDst() ) ); cfgact->addTo( cfgMenu ); + QAction *a; + + sectionBar = new QPEToolBar( this ); + addToolBar( sectionBar, "Section", QMainWindow::Top, TRUE ); + sectionBar->setHorizontalStretchable( true ); + QLabel *label = new QLabel( tr("Section: "), sectionBar ); + label->setBackgroundColor( sectionBar->backgroundColor() ); + section = new QComboBox( false, sectionBar ); +// section->setBackgroundMode( PaletteBackground ); + label = new QLabel( " / ", sectionBar ); + label->setBackgroundColor( sectionBar->backgroundColor() ); + subsection = new QComboBox( false, sectionBar ); + sectionBar->setStretchableWidget( label ); + + a = new QAction( tr( "Close Section" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( sectionClose() ) ); + a->addTo( sectionBar ); + + sectionAction = new QAction( tr( "Sections" ), QString::null, 0, this, 0 ); + connect( sectionAction, SIGNAL( toggled(bool) ), this, SLOT( sectionShow(bool) ) ); + sectionAction->setToggleAction( true ); + sectionAction->setOn( true ); + sectionAction->addTo( viewMenu ); + + findBar = new QPEToolBar(this); + addToolBar( findBar, "Search", QMainWindow::Top, TRUE ); + label = new QLabel( tr("Filter: "), findBar ); + label->setBackgroundColor( findBar->backgroundColor() ); + findBar->setHorizontalStretchable( TRUE ); + findEdit = new QLineEdit( findBar, "findEdit" ); + findBar->setStretchableWidget( findEdit ); + connect( findEdit, SIGNAL( textChanged( const QString & ) ), + this, SLOT( displayList() ) ); +// a = new QAction( tr( "Filter" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); +// connect( a, SIGNAL( activated() ), this, SLOT( filterList() ) ); +// a->addTo( findBar ); +// a->addTo( edit ); + a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); + a->addTo( findBar ); + findAction = new QAction( tr( "Find" ), QString::null, 0, this, 0 ); + connect( findAction, SIGNAL( toggled(bool) ), this, SLOT( findShow(bool) ) ); + findAction->setToggleAction( true ); + findAction->setOn( true ); + findAction->addTo( viewMenu ); + } MainWindow::~MainWindow() @@ -141,12 +193,12 @@ MainWindow::~MainWindow() void MainWindow::runIpkg() { ipkg->commit( packageList ); - updateList(); + updateList(); //to remove } void MainWindow::updateList() { - // todo: packageList.clear(); + packageList.clear(); ipkg->update(); getList(); } @@ -159,66 +211,64 @@ void MainWindow::getList() void MainWindow::filterList() { - packageList.filterPackages(); + QString f = ""; + if ( findAction->isOn() ) f = findEdit->text(); + packageList.filterPackages( f ); } void MainWindow::displayList() { - table->ListViewPackages->clear(); + filterList(); + listViewPackages->clear(); Package *pack = packageList.first(); while( pack ) { if ( pack && (pack->name() != "") ) - { - table->ListViewPackages->insertItem( - new PackageListItem( table->ListViewPackages, pack ) ); - } + listViewPackages->insertItem( new PackageListItem( listViewPackages, pack ) ); pack = packageList.next(); } } void MainWindow::sectionChanged() { - disconnect( table->section, SIGNAL( activated(int) ), + disconnect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); - disconnect( table->subsection, SIGNAL(activated(int) ), + disconnect( subsection, SIGNAL(activated(int) ), this, SLOT( subSectionChanged() ) ); - table->subsection->clear(); - packageList.setSection( table->section->currentText() ); + subsection->clear(); + packageList.setSection( section->currentText() ); setSubSections(); - filterList(); - connect( table->section, SIGNAL( activated(int) ), + connect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); - connect( table->subsection, SIGNAL(activated(int) ), + connect( subsection, SIGNAL(activated(int) ), this, SLOT( subSectionChanged() ) ); displayList(); } void MainWindow::subSectionChanged() { - disconnect( table->section, SIGNAL( activated(int) ), + disconnect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); - disconnect( table->subsection, SIGNAL(activated(int) ), + disconnect( subsection, SIGNAL(activated(int) ), this, SLOT( subSectionChanged() ) ); - packageList.setSubSection( table->subsection->currentText() ); - filterList(); - connect( table->section, SIGNAL( activated(int) ), + packageList.setSubSection( subsection->currentText() ); + connect( section, SIGNAL( activated(int) ), this, SLOT( sectionChanged() ) ); - connect( table->subsection, SIGNAL(activated(int) ), + connect( subsection, SIGNAL(activated(int) ), this, SLOT( subSectionChanged() ) ); displayList(); } void MainWindow::setSections() { - table->section->clear(); - table->section->insertStringList( packageList.getSections() ); + section->clear(); + section->insertStringList( packageList.getSections() ); } void MainWindow::setSubSections() { - table->subsection->clear(); - table->subsection->insertStringList( packageList.getSubSections() ); + subsection->clear(); + subsection->insertStringList( packageList.getSubSections() ); } @@ -267,6 +317,32 @@ void MainWindow::toggleActivePackage() void MainWindow::setCurrent( QListViewItem* p ) { pvDebug(2, "MainWindow::setCurrent "); - //+((Package*)p)->name()); + return; + pvDebug(2, "name "+((Package*)p)->name()); activePackage = (Package*)p; } + +void MainWindow::sectionShow(bool b) +{ + if (b) sectionBar->show(); + else sectionBar->hide(); + sectionAction->setOn( b ); +} + +void MainWindow::sectionClose() +{ + sectionAction->setOn( false ); +} + +void MainWindow::findShow(bool b) +{ + if (b) findBar->show(); + else findBar->hide(); + findAction->setOn( b ); +} + +void MainWindow::findClose() +{ + findAction->setOn( false ); +} + diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h index 95dcc90..0c1e474 100644 --- a/noncore/unsupported/oipkg/mainwindow.h +++ b/noncore/unsupported/oipkg/mainwindow.h @@ -10,7 +10,11 @@ #include "pksettings.h" #include "pkdesc.h" -#include "pkwindow.h" +class QComboBox; +class QPEToolBar; +class QLineEdit; +class QListView; + class MainWindow : public QMainWindow { @@ -21,16 +25,10 @@ public: MainWindow( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); ~MainWindow(); - -protected: - PackageWindow *table; - - protected slots: void runIpkg(); void getList(); void updateList(); - void filterList(); void displayList(); void subSectionChanged(); void sectionChanged(); @@ -42,6 +40,11 @@ public slots: void showDetails(); void toggleActivePackage(); void setCurrent( QListViewItem* ); + void sectionClose(); + void sectionShow(bool); + void findClose(); + void findShow(bool); + void filterList(); private: void makeMenu(); @@ -56,7 +59,16 @@ private: QAction *runAction; QAction *detailsAction; QAction *updateAction; + QAction *findAction; + QAction *sectionAction; + QListView *listViewPackages; QPopupMenu *contextMenu; + QPEToolBar *findBar; + QLineEdit *findEdit; + QPEToolBar *sectionBar; + QComboBox *section; + QComboBox *subsection; + QPopupMenu *popupMenu; }; #endif diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro index c61af0f..c16cc73 100644 --- a/noncore/unsupported/oipkg/oipkg.pro +++ b/noncore/unsupported/oipkg/oipkg.pro @@ -21,7 +21,6 @@ LIBS += -lqpe INTERFACES = pkdesc.ui \ pkfind.ui \ runwindow.ui \ - pkwindow.ui \ pksettingsbase.ui TARGET = oipkg diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp index 5f6934d..944bb83 100644 --- a/noncore/unsupported/oipkg/packagelist.cpp +++ b/noncore/unsupported/oipkg/packagelist.cpp @@ -25,8 +25,6 @@ PackageList::PackageList() cfg.writeEntry( "listsDir", listsDir ); } } - pvDebug( 5, "PackageList::PackageList statusDir "+statusDir); - pvDebug( 5, "PackageList::PackageList listsDir "+listsDir); sections << "All"; subSections.insert("All", new QStringList() ); QStringList *ss = subSections["All"]; @@ -63,7 +61,7 @@ void PackageList::insertPackage( Package* pack ) updateSections( pack ); } -void PackageList::filterPackages() +void PackageList::filterPackages( QString f ) { packageList.clear(); QDictIterator<Package> filterIter( origPackageList ); @@ -71,8 +69,11 @@ void PackageList::filterPackages() Package *pack= filterIter.current() ; while ( pack ) { - if ( ((aktSection=="All")||(pack->getSection()==aktSection)) && - ((aktSubSection=="All")||(pack->getSubSection()==aktSubSection)) ) + if ( + ((aktSection=="All")||(pack->getSection()==aktSection)) && + ((aktSubSection=="All")||(pack->getSubSection()==aktSubSection)) && + pack->name().contains( f ) + ) { packageList.insert( pack->name(), pack ); } @@ -214,3 +215,9 @@ Package* PackageList::getByName( QString n ) { origPackageList[n]; } + +void PackageList::clear() +{ + origPackageList.clear(); + packageList.clear(); +} diff --git a/noncore/unsupported/oipkg/packagelist.h b/noncore/unsupported/oipkg/packagelist.h index 68b89f0..4ce97af 100644 --- a/noncore/unsupported/oipkg/packagelist.h +++ b/noncore/unsupported/oipkg/packagelist.h @@ -14,6 +14,8 @@ class PackageList { public: +// static QString all = QObject::tr("All"); + PackageList(); PackageList( PackageManagerSettings* ); ~PackageList(); @@ -25,9 +27,10 @@ public: QStringList getSections(); QStringList getSubSections(); void setSettings( PackageManagerSettings* ); - void filterPackages(); - /** No descriptions */ + void filterPackages( QString ); Package* getByName( QString ); + /** No descriptions */ + void clear(); public slots: void setSection(QString); diff --git a/noncore/unsupported/oipkg/pkwindow.ui b/noncore/unsupported/oipkg/pkwindow.ui deleted file mode 100644 index 9e44338..0000000 --- a/noncore/unsupported/oipkg/pkwindow.ui +++ b/dev/null @@ -1,147 +0,0 @@ -<!DOCTYPE UI><UI> -<class>PackageWindow</class> -<widget> - <class>QWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>PackageWindow</cstring> - </property> - <property stdset="1"> - <name>geometry</name> - <rect> - <x>0</x> - <y>0</y> - <width>254</width> - <height>298</height> - </rect> - </property> - <property stdset="1"> - <name>caption</name> - <string>PackageWindow</string> - </property> - <property> - <name>layoutMargin</name> - </property> - <property> - <name>layoutSpacing</name> - </property> - <vbox> - <property stdset="1"> - <name>margin</name> - <number>2</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>2</number> - </property> - <widget> - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout5</cstring> - </property> - <property> - <name>layoutSpacing</name> - </property> - <hbox> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>1</number> - </property> - <widget> - <class>QLabel</class> - <property stdset="1"> - <name>name</name> - <cstring>LabelSection</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>Section:</string> - </property> - </widget> - <widget> - <class>QComboBox</class> - <property stdset="1"> - <name>name</name> - <cstring>section</cstring> - </property> - <property stdset="1"> - <name>sizePolicy</name> - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>0</vsizetype> - </sizepolicy> - </property> - </widget> - <widget> - <class>QComboBox</class> - <property stdset="1"> - <name>name</name> - <cstring>subsection</cstring> - </property> - <property stdset="1"> - <name>sizePolicy</name> - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>0</vsizetype> - </sizepolicy> - </property> - </widget> - </hbox> - </widget> - <widget> - <class>QListView</class> - <column> - <property> - <name>text</name> - <string>Package</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <column> - <property> - <name>text</name> - <string>Description</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <column> - <property> - <name>text</name> - <string>Size</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <property stdset="1"> - <name>name</name> - <cstring>ListViewPackages</cstring> - </property> - </widget> - </vbox> -</widget> -</UI> diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index 94ca824..b2ddf95 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -33,7 +33,7 @@ PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlag { settings = s; runwindow = new RunWindow ( p, name, f ); - linkDest = new QCopChannel( "QPE/MakeLinks", this ); + linkDest = new QCopChannel( "QPE/oipkg", this ); connect( linkDest, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(linkDestination( const QString &, const QByteArray&)) ); } |