summaryrefslogtreecommitdiff
authortille <tille>2002-04-27 21:02:53 (UTC)
committer tille <tille>2002-04-27 21:02:53 (UTC)
commit69e271e44d23befc74a96a98708ddb6ec754a4b6 (patch) (unidiff)
tree6f8300d8858d2c7659eb90066b58b302a2863e43
parentacdc33336307e48ac7089b146006fe7b36e321a5 (diff)
downloadopie-69e271e44d23befc74a96a98708ddb6ec754a4b6.zip
opie-69e271e44d23befc74a96a98708ddb6ec754a4b6.tar.gz
opie-69e271e44d23befc74a96a98708ddb6ec754a4b6.tar.bz2
setDocument working and some changes in install gui
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/TODO3
-rw-r--r--noncore/unsupported/oipkg/debug.h2
-rw-r--r--noncore/unsupported/oipkg/mainwindow.cpp145
-rw-r--r--noncore/unsupported/oipkg/mainwindow.h22
-rw-r--r--noncore/unsupported/oipkg/oipkg.pro5
-rw-r--r--noncore/unsupported/oipkg/package.cpp56
-rw-r--r--noncore/unsupported/oipkg/package.h4
-rw-r--r--noncore/unsupported/oipkg/packagelistview.cpp91
-rw-r--r--noncore/unsupported/oipkg/packagelistview.h53
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp134
-rw-r--r--noncore/unsupported/oipkg/pmipkg.h2
-rw-r--r--noncore/unsupported/oipkg/runwindow.ui32
12 files changed, 340 insertions, 209 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO
index b07542a..3fc84e5 100644
--- a/noncore/unsupported/oipkg/TODO
+++ b/noncore/unsupported/oipkg/TODO
@@ -9,2 +9,3 @@
9* manage links 9* manage links
10* dependency checking \ No newline at end of file 10* dependency checking
11* ipkg options in runwindow \ No newline at end of file
diff --git a/noncore/unsupported/oipkg/debug.h b/noncore/unsupported/oipkg/debug.h
index e73b9b2..973d96c 100644
--- a/noncore/unsupported/oipkg/debug.h
+++ b/noncore/unsupported/oipkg/debug.h
@@ -17,3 +17,3 @@ if ( debugLevel < 3 ) \
17 if ( I <= debugLevel ) \ 17 if ( I <= debugLevel ) \
18 printf("# %s \t\t(Level: %i)\n",QString(S).latin1(),I);\ 18 qDebug("# %s \t\t(Level: %i)\n",QString(S).latin1(),I);\
19} 19}
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp
index e3abf36..6bf9a7a 100644
--- a/noncore/unsupported/oipkg/mainwindow.cpp
+++ b/noncore/unsupported/oipkg/mainwindow.cpp
@@ -16,2 +16,3 @@
16#include <qlabel.h> 16#include <qlabel.h>
17#include <qfile.h>
17#include <qlistview.h> 18#include <qlistview.h>
@@ -29,7 +30,8 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
29 { 30 {
30 setCaption( tr("Package Manager") ); 31 settings = new PackageManagerSettings(this,0,TRUE);
32 listViewPackages = new PackageListView( this,"listViewPackages",settings );
33 ipkg = new PmIpkg( settings, this );
31 34
32 listViewPackages = new QListView( this,0,0 );
33 listViewPackages->setSelectionMode(QListView::NoSelection);
34 setCentralWidget( listViewPackages ); 35 setCentralWidget( listViewPackages );
36 setCaption( tr("Package Manager") );
35 37
@@ -40,21 +42,3 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
40 makeMenu(); 42 makeMenu();
41#ifdef NEWLAYOUT 43
42 listViewPackages->addColumn( tr("Package") );
43 listViewPackages->setRootIsDecorated( true );
44#endif
45#ifndef NEWLAYOUT
46 QFontMetrics fm = fontMetrics();
47 int wlw = width()*2;
48 int w0 = fm.width(tr("Package"))+30;
49 // int w0 = fm.width(tr("Package"))+30;
50 int w2 = fm.width("00000")+4;
51 int w1 = wlw-w2-w0-24;
52 listViewPackages->addColumn( tr("Package"), w0 );
53 listViewPackages->addColumn( tr("Description"), w1 );
54 listViewPackages->addColumn( tr("Size"), w2 );
55 listViewPackages->setColumnWidthMode(0,QListView::Manual);
56 listViewPackages->setColumnWidthMode(1,QListView::Manual);
57 listViewPackages->setColumnWidthMode(2,QListView::Manual);
58 listViewPackages->setSelectionMode( QListView::Multi );
59#endif
60 connect( section, SIGNAL( activated(int) ), 44 connect( section, SIGNAL( activated(int) ),
@@ -63,10 +47,2 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
63 this, SLOT( subSectionChanged() ) ); 47 this, SLOT( subSectionChanged() ) );
64 connect( listViewPackages, SIGNAL( pressed( QListViewItem* ) ),
65 this, SLOT( setCurrent( QListViewItem* ) ) );
66 connect( listViewPackages, SIGNAL( clicked( QListViewItem* ) ),
67 this, SLOT( stopTimer( QListViewItem* ) ) );
68
69 popupMenu = new QPopupMenu( this );
70
71 settings = new PackageManagerSettings(this,0,TRUE);
72 48
@@ -90,7 +66,2 @@ void MainWindow::makeMenu()
90 66
91 popupMenu = new QPopupMenu( this );
92 destsMenu = new QPopupMenu( popupMenu );
93 popupTimer = new QTimer( this );
94 connect( popupTimer, SIGNAL(timeout()), this, SLOT(showPopup()) );
95
96 setToolBarsMovable( false ); 67 setToolBarsMovable( false );
@@ -125,9 +96,10 @@ void MainWindow::makeMenu()
125 96
126 detailsAction = new QAction( tr( "Details" ), 97// would we use for find
127 Resource::loadIconSet( "find" ), 98// detailsAction = new QAction( tr( "Details" ),
128 QString::null, 0, this, 0 ); 99 // Resource::loadIconSet( "find" ),
129 connect( detailsAction, SIGNAL( activated() ), 100 // QString::null, 0, this, 0 );
130 this , SLOT( showDetails() ) ); 101// connect( detailsAction, SIGNAL( activated() ),
131 detailsAction->addTo( toolBar ); 102// this , SLOT( showDetails() ) );
132 detailsAction->addTo( srvMenu ); 103// detailsAction->addTo( toolBar );
104// detailsAction->addTo( srvMenu );
133 105
@@ -318,41 +290,2 @@ void MainWindow::showSettingsDst()
318 290
319
320void MainWindow::showDetails()
321{
322 if ( details )
323 {
324 details = new PackageDetails( this );
325 connect( details->install, SIGNAL(clicked()), SLOT( toggleActivePackage() ) );
326 connect( details->remove, SIGNAL(clicked()), SLOT( toggleActivePackage() ) );
327 connect( details->ignore, SIGNAL(clicked()), details, SLOT(close()));
328 details->description->setTextFormat(RichText);
329 }
330 if ( !activePackage )
331 {
332 details->description->setText(tr("no package selected"));
333 details->description->setText(tr("errmm...<br>...not working?"));
334 }else{
335 details->setCaption("Package: " + activePackage->name());
336 details->description->setText(activePackage->details() );
337 details->install->setEnabled(!activePackage->installed());
338 details->remove->setEnabled(activePackage->installed());
339 }
340 details->showMaximized();
341}
342
343void MainWindow::toggleActivePackage()
344{
345 activePackage->toggleProcess();
346 if ( details ) details->close();
347}
348
349void MainWindow::setCurrent( QListViewItem* p )
350{
351 if ( !p ) return;
352 activePackageListItem = (PackageListItem*)p;
353 activePackage = activePackageListItem->getPackage();
354 pvDebug(5, "start timer");
355 popupTimer->start( 750, true );
356}
357
358void MainWindow::sectionShow(bool b) 291void MainWindow::sectionShow(bool b)
@@ -391,37 +324,25 @@ void MainWindow::rotateUpdateIcon()
391 324
392void MainWindow::showPopup()
393{
394 popupMenu->clear();
395 destsMenu->clear();
396
397 QAction *popupAction;
398 popupMenu->insertItem( tr("Install to"), destsMenu );
399 QStringList dests = settings->getDestinationNames();
400 for (uint i = 0; i < dests.count(); i++ )
401 {
402 popupAction = new QAction( dests[i], QString::null, 0, this, 0 );
403 popupAction->addTo( destsMenu );
404 }
405 connect( destsMenu, SIGNAL( activated( int ) ),
406 this, SLOT( changePackageDest( int ) ) );
407 popupMenu->popup( QCursor::pos() );
408}
409
410void MainWindow::changePackageDest( int i )
411{
412 activePackage->setDest( destsMenu->text(i) );
413 activePackage->setOn();
414 activePackage->setLink( settings->createLinks() );
415 activePackageListItem->displayDetails();
416}
417 325
418void MainWindow::stopTimer( QListViewItem* ) 326void MainWindow::setDocument(const QString &fileName)
419{ 327{
420 pvDebug( 5, "stop timer" ); 328 installFile(fileName);
421 popupTimer->stop(); 329 // ##### If we looked in the list of files, we could send out accurate
330 // ##### messages. But we don't bother yet, and just do an "all".
331 QCopEnvelope e("QPE/System", "linkChanged(QString)");
332 QString lf = QString::null;
333 e << lf;
334 displayList();
422} 335}
423 336
424void MainWindow::setDocument(const QString &fileName) 337void MainWindow::installFile(const QString &fileName)
425{ 338{
339 pvDebug(3, "MainWindow::installFile "+fileName);
340 if ( !QFile::exists( fileName ) ) return;
426 ipkg->installFile( fileName ); 341 ipkg->installFile( fileName );
342 // ##### If we looked in the list of files, we could send out accurate
343 // ##### messages. But we don't bother yet, and just do an "all".
344 QCopEnvelope e("QPE/System", "linkChanged(QString)");
345 QString lf = QString::null;
346 e << lf;
347 displayList();
427} 348}
@@ -431,5 +352,5 @@ void MainWindow::receive(const QCString &msg, const QByteArray &arg)
431 pvDebug(3, "QCop "+msg); 352 pvDebug(3, "QCop "+msg);
432 if ( msg == "setDocument(QString)" ) 353 if ( msg == "installFile(QString)" )
433 { 354 {
434 setDocument( QString(arg) ); 355 installFile( QString(arg) );
435 } 356 }
diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h
index 34943f2..bcb0cc9 100644
--- a/noncore/unsupported/oipkg/mainwindow.h
+++ b/noncore/unsupported/oipkg/mainwindow.h
@@ -11,3 +11,3 @@
11#include "pksettings.h" 11#include "pksettings.h"
12#include "pkdesc.h" 12#include "packagelistview.h"
13 13
@@ -16,3 +16,2 @@ class QPEToolBar;
16class QLineEdit; 16class QLineEdit;
17class QListView;
18class PackageListItem; 17class PackageListItem;
@@ -41,8 +40,4 @@ protected slots:
41 void showSettingsDst(); 40 void showSettingsDst();
42 void setDocument (const QString &);
43 41
44public slots: 42public slots:
45 void showDetails();
46 void toggleActivePackage();
47 void setCurrent( QListViewItem* );
48 void sectionClose(); 43 void sectionClose();
@@ -52,6 +47,4 @@ public slots:
52 void filterList(); 47 void filterList();
53 void showPopup();
54 void changePackageDest( int );
55 void stopTimer( QListViewItem* );
56 void receive (const QCString &, const QByteArray &); 48 void receive (const QCString &, const QByteArray &);
49 void setDocument (const QString &);
57 50
@@ -61,2 +54,4 @@ private:
61 void setSubSections(); 54 void setSubSections();
55 void installFile(const QString &);
56 bool updateIcon;
62 57
@@ -64,6 +59,3 @@ private:
64 PackageManagerSettings *settings; 59 PackageManagerSettings *settings;
65 PackageDetails* details;
66 PackageList packageList; 60 PackageList packageList;
67 Package *activePackage;
68 PackageListItem *activePackageListItem;
69 QAction *runAction; 61 QAction *runAction;
@@ -73,3 +65,3 @@ private:
73 QAction *sectionAction; 65 QAction *sectionAction;
74 QListView *listViewPackages; 66 PackageListView *listViewPackages;
75 QPEToolBar *findBar; 67 QPEToolBar *findBar;
@@ -79,6 +71,2 @@ private:
79 QComboBox *subsection; 71 QComboBox *subsection;
80 QTimer *popupTimer;
81 QPopupMenu *popupMenu;
82 QPopupMenu *destsMenu;
83 bool updateIcon;
84private slots: 72private slots:
diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro
index 955c7f3..1f7a70d 100644
--- a/noncore/unsupported/oipkg/oipkg.pro
+++ b/noncore/unsupported/oipkg/oipkg.pro
@@ -9,2 +9,3 @@ HEADERS = mainwindow.h \
9 packagelist.h \ 9 packagelist.h \
10 packagelistview.h \
10 package.h 11 package.h
@@ -12,2 +13,3 @@ SOURCES = main.cpp \
12 mainwindow.cpp \ 13 mainwindow.cpp \
14 packagelistview.cpp \
13 pksettings.cpp \ 15 pksettings.cpp \
@@ -20,4 +22,3 @@ DEPENDPATH += $(OPIEDIR)/ioclude
20LIBS += -lqpe 22LIBS += -lqpe
21 INTERFACES= pkdesc.ui \ 23 INTERFACES= runwindow.ui \
22 runwindow.ui \
23 pksettingsbase.ui 24 pksettingsbase.ui
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp
index 9f602b5..5f0e5fa 100644
--- a/noncore/unsupported/oipkg/package.cpp
+++ b/noncore/unsupported/oipkg/package.cpp
@@ -4,2 +4,6 @@
4#include <qpe/stringutil.h> 4#include <qpe/stringutil.h>
5#include <qfile.h>
6#include <qtextstream.h>
7#include <stdlib.h>
8#include <unistd.h>
5 9
@@ -27,3 +31,4 @@ void Package::init( PackageManagerSettings *s )
27 _status = ""; 31 _status = "";
28 _dest = ""; 32 _dest = settings->getDestinationName();
33 _link = settings->createLinks();
29} 34}
@@ -34,3 +39,2 @@ Package::Package( QStringList pack, PackageManagerSettings *s )
34 parsePackage( pack ); 39 parsePackage( pack );
35 _toProcess = false;
36} 40}
@@ -40,4 +44,10 @@ Package::Package( QString n, PackageManagerSettings *s )
40 init(s); 44 init(s);
41 _name = QString( n ); 45 if ( !QFile::exists( n ) )
42 _toProcess = false; 46 {
47 _name = QString( n );
48 }else{
49 parseIpkgFile( n );
50 _toProcess = true;
51 _packageName = QString( n );
52 }
43} 53}
@@ -48,3 +58,2 @@ Package::Package( Package *pi )
48 copyValues( pi ); 58 copyValues( pi );
49 _toProcess = false;
50} 59}
@@ -213,8 +222,8 @@ void Package::parsePackage( QStringList pack )
213 if ( sep >= 0 ) 222 if ( sep >= 0 )
214 { 223 {
215 QString tag = line.left(sep); 224 QString tag = line.left(sep);
216 QString value = line.mid(sep+2).simplifyWhiteSpace(); 225 QString value = line.mid(sep+2).simplifyWhiteSpace();
217 setValue( tag, value ); 226 setValue( tag, value );
218 }else{ 227 }else{
219 } 228 }
220 } 229 }
@@ -297 +306,26 @@ void Package::setLink(bool b)
297} 306}
307
308void Package::parseIpkgFile( QString file)
309{
310 system("tar xzf "+file+" -C /tmp");
311 system("tar xzf /tmp/control.tar.gz -C /tmp");
312 QFile f("/tmp/control");
313 if ( f.open(IO_ReadOnly) )
314 {
315 QTextStream t( &f );
316 QStringList pack;
317 while ( !t.eof() )
318 {
319 pack << t.readLine();
320 }
321 f.close();
322 parsePackage( pack );
323 }
324
325}
326
327QString Package::getPackageName()
328{
329 if ( _packageName.isEmpty() ) return _name;
330 else return _packageName;
331}
diff --git a/noncore/unsupported/oipkg/package.h b/noncore/unsupported/oipkg/package.h
index 6c292ed..31b0010 100644
--- a/noncore/unsupported/oipkg/package.h
+++ b/noncore/unsupported/oipkg/package.h
@@ -45,3 +45,6 @@ class Package //: public QObject
45 void setLink(bool); 45 void setLink(bool);
46 void parseIpkgFile( QString );;
46public slots: 47public slots:
48 /** No descriptions */
49 QString getPackageName();
47 void toggleProcess(); 50 void toggleProcess();
@@ -50,2 +53,3 @@ private:
50 PackageManagerSettings *settings; 53 PackageManagerSettings *settings;
54 QString _packageName;
51 QString _name; 55 QString _name;
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}
diff --git a/noncore/unsupported/oipkg/packagelistview.h b/noncore/unsupported/oipkg/packagelistview.h
new file mode 100644
index 0000000..15e200b
--- a/dev/null
+++ b/noncore/unsupported/oipkg/packagelistview.h
@@ -0,0 +1,53 @@
1/***************************************************************************
2 packagelistview.h - 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#ifndef PACKAGELISTVIEW_H
19#define PACKAGELISTVIEW_H
20
21#include <qlistview.h>
22#include <qaction.h>
23#include <qtimer.h>
24#include <qwidget.h>
25#include <qpopupmenu.h>
26#include "debug.h"
27
28class PackageListItem;
29class Package;
30class PackageManagerSettings;
31
32class PackageListView : public QListView
33{
34 Q_OBJECT
35
36public:
37 PackageListView(QWidget*, const char*, PackageManagerSettings*);
38 //~PackageListView();
39 QTimer *popupTimer;
40private:
41 PackageManagerSettings *settings;
42 Package *activePackage;
43 PackageListItem *activePackageListItem;
44 QPopupMenu *popupMenu;
45 QPopupMenu *destsMenu;
46public slots:
47 void showPopup();
48 void changePackageDest( int );
49 void setCurrent( QListViewItem* );
50 void stopTimer( QListViewItem* );
51};
52
53#endif
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index 45c89c5..f0992f5 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -1,3 +1,2 @@
1#include "pmipkg.h" 1#include "pmipkg.h"
2#include "pkdesc.h"
3#include "pksettings.h" 2#include "pksettings.h"
@@ -14,2 +13,3 @@
14#include <qstring.h> 13#include <qstring.h>
14#include <qcheckbox.h>
15#include <qtextstream.h> 15#include <qtextstream.h>
@@ -59,2 +59,5 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
59 59
60// if (runwindow->forcedepends->isChecked())
61 // cmd += " -force-depends ";
62
60 out( "<hr><br>Starting to "+ args+"<br>\n"); 63 out( "<hr><br>Starting to "+ args+"<br>\n");
@@ -73,3 +76,3 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
73 QString redirect = "/tmp/oipkg.pipe"; 76 QString redirect = "/tmp/oipkg.pipe";
74 cmd += " | tee "+redirect+" 2>&1"; 77 cmd += " 2>&1 | tee "+redirect+" 2>&1";
75 pvDebug(2, "running >"+cmd+"<"); 78 pvDebug(2, "running >"+cmd+"<");
@@ -105,4 +108,2 @@ void PmIpkg::makeLinks(Package *pack)
105 if (dest == "/" ) return; 108 if (dest == "/" ) return;
106 out( "<br>creating links<br>" );
107 out("for package "+pack->name()+" in "+dest+"<br>");
108 { 109 {
@@ -124,2 +125,4 @@ void PmIpkg::linkPackage( QString packFileName, QString dest )
124 }; 125 };
126 out( "<br>creating links<br>" );
127 out("for package "+packFileName+" in "+dest+"<br>");
125 QTextStream t( &f ); 128 QTextStream t( &f );
@@ -136,2 +139,3 @@ void PmIpkg::processLinkDir( QString file, QString dest )
136{ 139{
140 pvDebug( 7,"PmIpkg::processLinkDir "+file+" to "+ dest);
137 if ( dest == "???" ) return; 141 if ( dest == "???" ) return;
@@ -169,11 +173,7 @@ void PmIpkg::commit( PackageList pl )
169 { 173 {
170 show( false ); 174 int sizecount = 0;
171 runwindow->outPut->setText("");
172 out( "<h1>"+tr("Todo")+"</h1>\n");
173
174 to_install.clear(); 175 to_install.clear();
175 to_remove.clear(); 176 to_remove.clear();
176 int sizecount = 0; 177 QString rem="<b>"+tr("To remove:")+"</b><br>\n";
177 QString rem="<b>To remove:</b><br>\n"; 178 QString inst="<b>"+tr("To install:")+"</b><br>\n";
178 QString inst="<b>To install:</b><br>\n";;
179 pl.allPackages(); 179 pl.allPackages();
@@ -187,3 +187,3 @@ void PmIpkg::commit( PackageList pl )
187 sizecount += pack->size().toInt(); 187 sizecount += pack->size().toInt();
188 inst += pack->name()+"\t(on "+pack->dest()+")<br>"; 188 inst += pack->name()+"\t("+tr("on ")+pack->dest()+")<br>";
189 } 189 }
@@ -198,19 +198,73 @@ void PmIpkg::commit( PackageList pl )
198 198
199 out("<p>"+inst+"</p>"+"<p>"+rem+"</p><hl>"); 199 startDialog();
200
201 qDebug("to remove=%i; to install=%i",to_remove.count(),to_install.count());
202 200
203 runwindow->progress->setTotalSteps( sizecount ); 201}
204 202
205 connect( runwindow->doItButton, SIGNAL( clicked() ), 203void PmIpkg::startDialog()
206 SLOT( doIt() ) ); 204{
207 connect( runwindow->installButton, SIGNAL( clicked() ), 205 QDialog *d = new QDialog();
206 QGridLayout *RunWindowLayout = new QGridLayout( d );
207 RunWindowLayout->setSpacing( 2 );
208 RunWindowLayout->setMargin( 2 );
209
210 QHBoxLayout *buttons = new QHBoxLayout;
211 buttons->setSpacing( 6 );
212 buttons->setMargin( 0 );
213
214 PackageListView *plv = new PackageListView(d, "install",settings);
215 RunWindowLayout->addWidget( plv, 1, 0 );
216 for (Package *it=to_remove.first(); it != 0; it=to_remove.next() )
217 {
218 plv->insertItem( new PackageListItem(plv, it,settings) );
219 }
220 for (Package *it=to_install.first(); it != 0; it=to_install.next() )
221 {
222 plv->insertItem( new PackageListItem(plv, it,settings) );
223 }
224 QPushButton *doItButton = new QPushButton( d, "doItButton" );
225 doItButton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, doItButton->sizePolicy().hasHeightForWidth() ) );
226 QFont doItButton_font( doItButton->font() );
227 doItButton_font.setPointSize( 8 );
228 doItButton->setFont( doItButton_font );
229 doItButton->setText( tr( "Do all " ) );
230 doItButton->setAutoResize( FALSE );
231 buttons->addWidget( doItButton );
232
233 QPushButton *installButton = new QPushButton( d, "installButton" );
234 QFont installButton_font( installButton->font() );
235 installButton_font.setPointSize( 8 );
236 installButton->setFont( installButton_font );
237 installButton->setText( tr( "Install" ) );
238 installButton->setAutoResize( TRUE );
239 buttons->addWidget( installButton );
240
241 QPushButton *removeButton = new QPushButton( d, "removeButton" );
242 QFont removeButton_font( removeButton->font() );
243 removeButton_font.setPointSize( 7 );
244 removeButton->setFont( removeButton_font );
245 removeButton->setText( tr( "Remove" ) );
246 removeButton->setAutoResize( TRUE );
247 buttons->addWidget( removeButton );
248
249 QPushButton *cancelButton = new QPushButton( d, "cancelButton" );
250 QFont cancelButton_font( cancelButton->font() );
251 cancelButton_font.setPointSize( 8 );
252 cancelButton->setFont( cancelButton_font );
253 cancelButton->setText( tr( "Cancel" ) );
254 cancelButton->setAutoResize( TRUE );
255 buttons->addWidget( cancelButton );
256
257 RunWindowLayout->addLayout( buttons, 3, 0 );
258
259 connect( doItButton, SIGNAL( clicked() ),
260 this, SLOT( doIt() ) );
261 connect( installButton, SIGNAL( clicked() ),
208 this, SLOT( install() ) ); 262 this, SLOT( install() ) );
209 connect( runwindow->removeButton, SIGNAL( clicked() ), 263 connect( removeButton, SIGNAL( clicked() ),
210 this, SLOT( remove() ) ); 264 this, SLOT( remove() ) );
211 connect( runwindow->cancelButton, SIGNAL( clicked() ), 265 connect( cancelButton, SIGNAL( clicked() ),
212 runwindow, SLOT( close() ) ); 266 d, SLOT( close() ) );
213 267 d->showMaximized();
214 runwindow->exec(); 268 d->exec();
215 out("<h1>"+tr("Its now save to close this window")+"<h1>"); 269 // d->close();
216} 270}
@@ -253,3 +307,3 @@ void PmIpkg::install()
253 307
254 if ( runIpkg("install " + it->name(), it->dest() ) == 0 ) 308 if ( runIpkg("install " + it->getPackageName(), it->dest() ) == 0 )
255 { 309 {
@@ -316,3 +370,3 @@ void PmIpkg::show(bool b)
316 showButtons(b); 370 showButtons(b);
317 if ( b ) 371 if ( !b )
318 runwindow->progress->hide(); 372 runwindow->progress->hide();
@@ -324,25 +378,9 @@ void PmIpkg::installFile(const QString &fileName)
324{ 378{
379
380 to_install.clear();
381 to_remove.clear();
325 pvDebug( 2,"PmIpkg::installFile "+ fileName); 382 pvDebug( 2,"PmIpkg::installFile "+ fileName);
326 show( false ); 383 to_install.append( new Package(fileName,settings) );
327 runwindow->outPut->setText(""); 384 startDialog();
328 fileNameToInstall = fileName;
329 runwindow->doItButton->hide();
330 runwindow->removeButton->hide();
331 out("<b>"+tr("Install: ")+fileName);
332 connect( runwindow->installButton, SIGNAL( clicked() ),
333 this, SLOT( installFileName() ) );
334 connect( runwindow->cancelButton, SIGNAL( clicked() ),
335 runwindow, SLOT( close() ) );
336
337 runwindow->exec();
338} 385}
339 386
340void PmIpkg::installFileName()
341{
342 if ( !QFile::exists( fileNameToInstall ) ) return;
343 out(tr("Installing pacakge ")+fileNameToInstall+"<br>"+tr("please wait")+"</b><br>");
344 runIpkg("install " + fileNameToInstall );
345 if ( settings->createLinks() )
346 linkPackage( fileNameToInstall, settings->getDestinationUrl() );
347 out("<h1>"+tr("Its now save to close this window")+"<h1>");
348} \ No newline at end of file
diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h
index 8e06f4c..f70283e 100644
--- a/noncore/unsupported/oipkg/pmipkg.h
+++ b/noncore/unsupported/oipkg/pmipkg.h
@@ -35,2 +35,3 @@ private:
35 35
36 void startDialog();
36 void makeLinks(Package*); 37 void makeLinks(Package*);
@@ -44,3 +45,2 @@ public slots:
44 void install(); 45 void install();
45 void installFileName();
46 void remove(); 46 void remove();
diff --git a/noncore/unsupported/oipkg/runwindow.ui b/noncore/unsupported/oipkg/runwindow.ui
index 52da408..8582ce8 100644
--- a/noncore/unsupported/oipkg/runwindow.ui
+++ b/noncore/unsupported/oipkg/runwindow.ui
@@ -14,3 +14,3 @@
14 <width>344</width> 14 <width>344</width>
15 <height>291</height> 15 <height>442</height>
16 </rect> 16 </rect>
@@ -47,16 +47,3 @@
47 </widget> 47 </widget>
48 <widget row="1" column="0" > 48 <widget row="3" column="0" >
49 <class>QTextView</class>
50 <property stdset="1">
51 <name>name</name>
52 <cstring>outPut</cstring>
53 </property>
54 <property stdset="1">
55 <name>font</name>
56 <font>
57 <pointsize>6</pointsize>
58 </font>
59 </property>
60 </widget>
61 <widget row="2" column="0" >
62 <class>QLayoutWidget</class> 49 <class>QLayoutWidget</class>
@@ -100,3 +87,3 @@
100 <name>autoResize</name> 87 <name>autoResize</name>
101 <bool>true</bool> 88 <bool>false</bool>
102 </property> 89 </property>
@@ -168,2 +155,15 @@
168 </widget> 155 </widget>
156 <widget row="1" column="0" >
157 <class>QTextView</class>
158 <property stdset="1">
159 <name>name</name>
160 <cstring>outPut</cstring>
161 </property>
162 <property stdset="1">
163 <name>font</name>
164 <font>
165 <pointsize>6</pointsize>
166 </font>
167 </property>
168 </widget>
169 </grid> 169 </grid>