summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg
authortille <tille>2002-04-29 22:45:35 (UTC)
committer tille <tille>2002-04-29 22:45:35 (UTC)
commitb794af4c50efffe239c94e5a015e90565ff991c3 (patch) (side-by-side diff)
treedd4e20851eba8052a07396b57388f9216f85ae7f /noncore/unsupported/oipkg
parente4d0908ec054b71a9b97e9c35efbd5a697d0b58d (diff)
downloadopie-b794af4c50efffe239c94e5a015e90565ff991c3.zip
opie-b794af4c50efffe239c94e5a015e90565ff991c3.tar.gz
opie-b794af4c50efffe239c94e5a015e90565ff991c3.tar.bz2
removes links again
Diffstat (limited to 'noncore/unsupported/oipkg') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/TODO4
-rw-r--r--noncore/unsupported/oipkg/debug.h2
-rw-r--r--noncore/unsupported/oipkg/mainwindow.cpp165
-rw-r--r--noncore/unsupported/oipkg/mainwindow.h12
-rw-r--r--noncore/unsupported/oipkg/oipkg.pro2
-rw-r--r--noncore/unsupported/oipkg/package.cpp89
-rw-r--r--noncore/unsupported/oipkg/package.h6
-rw-r--r--noncore/unsupported/oipkg/packagelistitem.cpp33
-rw-r--r--noncore/unsupported/oipkg/packagelistitem.h1
-rw-r--r--noncore/unsupported/oipkg/packagelistview.cpp38
-rw-r--r--noncore/unsupported/oipkg/packagelistview.h2
-rw-r--r--noncore/unsupported/oipkg/pkdesc.ui96
-rw-r--r--noncore/unsupported/oipkg/pksettings.cpp57
-rw-r--r--noncore/unsupported/oipkg/pksettings.h4
-rw-r--r--noncore/unsupported/oipkg/pksettingsbase.ui23
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp284
-rw-r--r--noncore/unsupported/oipkg/pmipkg.h30
-rw-r--r--noncore/unsupported/oipkg/settings.cpp5
-rw-r--r--noncore/unsupported/oipkg/settings.h34
-rw-r--r--noncore/unsupported/oipkg/utils.cpp27
-rw-r--r--noncore/unsupported/oipkg/utils.h18
21 files changed, 545 insertions, 387 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO
index 3fc84e5..790766c 100644
--- a/noncore/unsupported/oipkg/TODO
+++ b/noncore/unsupported/oipkg/TODO
@@ -1,11 +1,9 @@
-* setDocument function
* Settings Class
* tr() ;)
* Dialog to display ipkg output live
* parse "to install" and "to remove" from status
-* install local file
+* install local file dialog
* qcop
* error handling
* manage links
* dependency checking
-* 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 973d96c..206dea5 100644
--- a/noncore/unsupported/oipkg/debug.h
+++ b/noncore/unsupported/oipkg/debug.h
@@ -15,7 +15,7 @@ if ( debugLevel < 3 ) \
if ( I <= debugLevel ) qDebug(S);\
}else{\
if ( I <= debugLevel ) \
- qDebug("# %s \t\t(Level: %i)\n",QString(S).latin1(),I);\
+ qDebug("#%s:%i: %s \t\t(Level: %i)",__FILE__,__LINE__,QString(S).latin1(),I);\
}
#endif \ No newline at end of file
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp
index c95f482..ca1e5e8 100644
--- a/noncore/unsupported/oipkg/mainwindow.cpp
+++ b/noncore/unsupported/oipkg/mainwindow.cpp
@@ -6,6 +6,7 @@
#include <qpe/qpemenubar.h>
#include <qpe/qpemessagebox.h>
#include <qpe/resource.h>
+#include <qpe/config.h>
#include <qpe/qpetoolbar.h>
#include <qpe/qcopenvelope_qws.h>
#include <qaction.h>
@@ -17,6 +18,7 @@
#include <qfile.h>
#include <qlistview.h>
#include <qtextview.h>
+#include <qcheckbox.h>
#include <qlineedit.h>
#include <qtabwidget.h>
#include <qcombobox.h>
@@ -24,39 +26,34 @@
#include <qlayout.h>
#include "pksettingsbase.h"
+#include "utils.h"
#include "packagelistitem.h"
MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
QMainWindow( parent, name, f )
{
+ setCaption( tr("Package Manager") );
settings = new PackageManagerSettings(this,0,TRUE);
listViewPackages = new PackageListView( this,"listViewPackages",settings );
- ipkg = new PmIpkg( settings, this );
-
setCentralWidget( listViewPackages );
- setCaption( tr("Package Manager") );
// wait = new QMessageBox(tr("oipkg"),tr("Please wait")//,QMessageBox::Information,QMessageBox::NoButton,QMessageBox::NoButton,QMessageBox::NoButton);
- wait = new QMessageBox(this);
- wait->setText(tr("Please wait"));
-
- channel = new QCopChannel( "QPE/Application/oipkg", this );
- connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
- this, SLOT(receive(const QCString&, const QByteArray&)) );
-
- makeMenu();
-
- connect( section, SIGNAL( activated(int) ),
- this, SLOT( sectionChanged() ) );
- connect( subsection, SIGNAL(activated(int) ),
- this, SLOT( subSectionChanged() ) );
-
+// wait = new QMessageBox(this);
+// wait->setText(tr("Please wait"));
ipkg = new PmIpkg( settings, this );
packageList.setSettings( settings );
- getList();
- setSections();
- setSubSections();
+ packageList.update();
+ makeMenu();
+ makeChannel();
+ //opie is hardcoded default ;)
+ for (int i=0;i<section->count();i++)
+ if (section->text(i)=="opie")
+ section->setCurrentItem(i);
+ sectionChanged();
+
+ connect( section, SIGNAL(activated(int)), SLOT(sectionChanged()) );
+ connect( subsection, SIGNAL(activated(int)), SLOT(subSectionChanged()) );
displayList();
}
@@ -100,38 +97,34 @@ void MainWindow::makeMenu()
updateAction->addTo( toolBar );
updateAction->addTo( srvMenu );
-// would we use for find
-// detailsAction = new QAction( tr( "Details" ),
+// could we use for find
+// detailsAction = new QAction( tr( "Find" ),
// Resource::loadIconSet( "find" ),
// QString::null, 0, this, 0 );
// connect( detailsAction, SIGNAL( activated() ),
-// this , SLOT( showDetails() ) );
+// this , SLOT( showFind() ) );
// detailsAction->addTo( toolBar );
-// detailsAction->addTo( srvMenu );
QAction *cfgact;
cfgact = new QAction( tr( "Setups" ),
- // Resource::loadIconSet( "" ),
QString::null, 0, this, 0 );
connect( cfgact, SIGNAL( activated() ),
SLOT( showSettings() ) );
cfgact->addTo( cfgMenu );
cfgact = new QAction( tr( "Servers" ),
- // Resource::loadIconSet( "" ),
QString::null, 0, this, 0 );
connect( cfgact, SIGNAL( activated() ),
SLOT( showSettingsSrv() ) );
cfgact->addTo( cfgMenu );
cfgact = new QAction( tr( "Destinations" ),
- // Resource::loadIconSet( "" ),
QString::null, 0, this, 0 );
connect( cfgact, SIGNAL( activated() ),
SLOT( showSettingsDst() ) );
cfgact->addTo( cfgMenu );
- QAction *a;
+ QAction *a;
sectionBar = new QPEToolBar( this );
addToolBar( sectionBar, "Section", QMainWindow::Top, TRUE );
@@ -140,19 +133,19 @@ void MainWindow::makeMenu()
label->setBackgroundColor( sectionBar->backgroundColor() );
sectionBar->setStretchableWidget( label );
section = new QComboBox( false, sectionBar );
-// section->setBackgroundMode( PaletteBackground );
label = new QLabel( " / ", sectionBar );
label->setBackgroundColor( sectionBar->backgroundColor() );
subsection = new QComboBox( false, sectionBar );
-
a = new QAction( tr( "Close Section" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( sectionClose() ) );
a->addTo( sectionBar );
+ setSections();
+ setSubSections();
+
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);
@@ -165,30 +158,65 @@ void MainWindow::makeMenu()
connect( findEdit, SIGNAL( textChanged( const QString & ) ),
this, SLOT( displayList() ) );
+ a = new QAction( tr( "Clear Find" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), findEdit, SLOT( clear() ) );
+ a->addTo( findBar );
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 );
- #ifdef NEW
+ destBar = new QPEToolBar(this);
+ addToolBar( destBar, "Destination", QMainWindow::Top, TRUE );
+ label = new QLabel( tr("Destination: "), destBar );
+ label->setBackgroundColor( destBar->backgroundColor() );
+ destBar->setHorizontalStretchable( TRUE );
+ destination = new QComboBox( false, destBar );
+ destination->insertStringList( settings->getDestinationNames() );
+ setComboName(destination,settings->getDestinationName());
+// connect( destination, SIGNAL(activated(int)),
+// SLOT(activeDestinationChange(int)) );
+ spacer = new QLabel( " ", destBar );
+ spacer->setBackgroundColor( destBar->backgroundColor() );
+ CheckBoxLink = new QCheckBox( tr("Link"), destBar);
+ CheckBoxLink->setBackgroundColor( destBar->backgroundColor() );
+ CheckBoxLink->setChecked( settings->createLinks() );
+// connect( CheckBoxLink, SIGNAL(toggled(bool)),
+// settings, SLOT(linkEnabled(bool)) );
+ destAction = new QAction( tr( "Destinations" ), QString::null, 0, this, 0 );
+ connect( destAction, SIGNAL( toggled(bool) ), SLOT( destShow(bool) ) );
+ a = new QAction( tr( "Close Destinations" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
+ connect( a, SIGNAL( activated() ), SLOT( destClose() ) );
+ a->addTo( destBar );
+ destBar->setStretchableWidget( CheckBoxLink );
+ destAction->setToggleAction( true );
+ // destAction->addTo( viewMenu );
+
+ // configure the menus
Config cfg( "oipkg", Config::User );
- cfg.setGroup( "Setting_" + QString::number( setting ) );
- CheckBoxLink->setChecked( cfg.readBoolEntry( "link", false ) );
- findShow(bool b)
- sectionShow(bool b)
- #endif
+ cfg.setGroup( "gui" );
+
+ findShow( cfg.readBoolEntry( "findBar", true ) );
+ sectionShow( cfg.readBoolEntry( "sectionBar", true ) );
+ destShow( cfg.readBoolEntry( "destBar", false ) );
}
MainWindow::~MainWindow()
{
+ Config cfg( "oipkg", Config::User );
+ cfg.setGroup( "gui" );
+ cfg.writeEntry( "findBar", !findBar->isHidden() );
+ cfg.writeEntry( "sectionBar", !sectionBar->isHidden() );
+ cfg.writeEntry( "destBar", !destBar->isHidden() );
+
}
void MainWindow::runIpkg()
{
+ packageList.allPackages();
ipkg->commit( packageList );
// ##### If we looked in the list of files, we could send out accurate
// ##### messages. But we don't bother yet, and just do an "all".
@@ -200,38 +228,29 @@ void MainWindow::runIpkg()
void MainWindow::updateList()
{
- wait->show();
+// wait->show();
QTimer *t = new QTimer( this );
connect( t, SIGNAL(timeout()), SLOT( rotateUpdateIcon() ) );
t->start( 0, false );
packageList.clear();
ipkg->update();
- getList();
- t->stop();
- wait->hide();
-
-}
-
-void MainWindow::getList()
-{
- wait->show();
packageList.update();
- displayList();
- wait->hide();
+ t->stop();
+// wait->hide();
}
void MainWindow::filterList()
{
- wait->show();
+// wait->show();
QString f = "";
if ( findAction->isOn() ) f = findEdit->text();
packageList.filterPackages( f );
- wait->hide();
+// wait->hide();
}
void MainWindow::displayList()
{
- wait->hide();
+// wait->hide();
filterList();
listViewPackages->clear();
Package *pack = packageList.first();
@@ -326,6 +345,18 @@ void MainWindow::findClose()
findAction->setOn( false );
}
+void MainWindow::destShow(bool b)
+{
+ if (b) destBar->show();
+ else destBar->hide();
+ destAction->setOn( b );
+}
+
+void MainWindow::destClose()
+{
+ destAction->setOn( false );
+}
+
void MainWindow::rotateUpdateIcon()
{
pvDebug(2, "MainWindow::rotateUpdateIcon");
@@ -361,11 +392,31 @@ void MainWindow::installFile(const QString &fileName)
displayList();
}
+void MainWindow::makeChannel()
+{
+ channel = new QCopChannel( "QPE/Application/oipkg", this );
+ connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
+ this, SLOT(receive(const QCString&, const QByteArray&)) );
+}
+
+
+
void MainWindow::receive(const QCString &msg, const QByteArray &arg)
{
- pvDebug(3, "QCop "+msg);
+ pvDebug(3, "QCop "+msg+" "+QCString(arg));
if ( msg == "installFile(QString)" )
{
- installFile( QString(arg) );
- }
-} \ No newline at end of file
+ ipkg->installFile( QString(arg) );
+ }else if( msg == "removeFile(QString)" )
+ {
+ ipkg->removeFile( QString(arg) );
+ }else if( msg == "createLinks(QString)" )
+ {
+ ipkg->createLinks( QString(arg) );
+ }else if( msg == "removeLinks(QString)" )
+ {
+ ipkg->removeLinks( QString(arg) );
+ }else{
+ pvDebug(2,"Huh what do ya want")
+ }
+}
diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h
index a713d00..7615b09 100644
--- a/noncore/unsupported/oipkg/mainwindow.h
+++ b/noncore/unsupported/oipkg/mainwindow.h
@@ -17,6 +17,7 @@ class QLineEdit;
class PackageListItem;
class QCopChannel;
class QMessageBox;
+class QCheckBox;
class MainWindow : public QMainWindow
{
@@ -26,12 +27,12 @@ class MainWindow : public QMainWindow
public:
MainWindow( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
~MainWindow();
+ void makeChannel();
QCopChannel *channel;
protected slots:
void runIpkg();
- void getList();
void updateList();
void displayList();
void subSectionChanged();
@@ -45,6 +46,8 @@ public slots:
void sectionShow(bool);
void findClose();
void findShow(bool);
+ void destClose();
+ void destShow(bool);
void filterList();
void receive (const QCString &, const QByteArray &);
void setDocument (const QString &);
@@ -60,17 +63,20 @@ private:
PackageManagerSettings *settings;
PackageList packageList;
QAction *runAction;
- QAction *detailsAction;
QAction *updateAction;
QAction *findAction;
QAction *sectionAction;
+ QAction *destAction;
PackageListView *listViewPackages;
QPEToolBar *findBar;
QLineEdit *findEdit;
QPEToolBar *sectionBar;
QComboBox *section;
QComboBox *subsection;
- QMessageBox *wait;
+ QPEToolBar *destBar;
+ QComboBox *destination;
+ QCheckBox* CheckBoxLink;
+// QMessageBox *wait;
private slots:
void rotateUpdateIcon();
};
diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro
index 1f7a70d..c5d3b3d 100644
--- a/noncore/unsupported/oipkg/oipkg.pro
+++ b/noncore/unsupported/oipkg/oipkg.pro
@@ -5,12 +5,14 @@ CONFIG = qt warn_on debug
HEADERS = mainwindow.h \
pksettings.h \
pmipkg.h \
+ utils.h \
packagelistitem.h \
packagelist.h \
packagelistview.h \
package.h
SOURCES = main.cpp \
mainwindow.cpp \
+ utils.cpp \
packagelistview.cpp \
pksettings.cpp \
pmipkg.cpp \
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp
index 5f0e5fa..0499e19 100644
--- a/noncore/unsupported/oipkg/package.cpp
+++ b/noncore/unsupported/oipkg/package.cpp
@@ -9,9 +9,9 @@
#include "debug.h"
-Package::~Package()
-{
-}
+//Package::~Package()
+//{
+//}
Package::Package( PackageManagerSettings *s )
{
@@ -61,65 +61,56 @@ Package::Package( Package *pi )
void Package::setValue( QString n, QString t )
{
- if ( n == "Status" && installed() ) return;
if ( n == "Package" )
- {
+ {
_name = QString( t );
- }
- if ( n == "Installed-Size" )
- {
+ }else if ( n == "Installed-Size" )
+ {
_size = t;
- }
- if ( n == "Priority")
- {
+ }else if ( n == "Priority")
+ {
- }
- if ( n == "Section")
- {
+ }else if ( n == "Section")
+ {
setSection( t );
- }
- if ( n == "Maintainer")
- {
+ }else if ( n == "Maintainer")
+ {
- }
- if ( n == "Architecture")
- {
+ }else if ( n == "Architecture")
+ {
- }
- if ( n == "Version")
- {
+ }else if ( n == "Version")
+ {
- }
- if ( n == "Pre-Depends")
- {
+ }else if ( n == "Pre-Depends")
+ {
- }
- if ( n == "Depends")
- {
+ }else if ( n == "Depends")
+ {
- }else if ( n == "Filename")
- {
+ }else if ( n == "Filename")
+ {
- }else if ( n == "Size")
+ }else if ( n == "Size")
{
-
+
}else if ( n == "MD5Sum")
- {
+ {
- }
+ }
if ( n == "Description")
- {
+ {
setDesc( t );
- }
+ }
if ( n == "Status")
- {
+ {
if ( installed() ) return;
_status = t;
- }
+ }
if ( t == "Essential")
- {
+ {
- }
+ }
};
QString Package::name()
@@ -153,6 +144,22 @@ QString Package::size()
return _size;
}
+QString Package::sizeUnits()
+{
+ int i = _size.toInt();
+ int c = 0;
+ QString ret;
+ QStringList unit;
+ unit << "B" << "KB" << "MB" << "GB" << "TB"; //prepair for the future ;)
+ while (i > 1)
+ {
+ ret=QString::number(i)+" "+unit[c];
+ c++;
+ i /= 1024;
+ }
+ return ret;
+}
+
bool Package::toProcess()
{
return _toProcess;
diff --git a/noncore/unsupported/oipkg/package.h b/noncore/unsupported/oipkg/package.h
index 31b0010..49bb3bf 100644
--- a/noncore/unsupported/oipkg/package.h
+++ b/noncore/unsupported/oipkg/package.h
@@ -12,10 +12,10 @@
class Package //: public QObject
{
- // Q_OBJECT
+// Q_OBJECT
public:
Package(PackageManagerSettings *);
- ~Package();
+ // ~Package();
Package( QStringList, PackageManagerSettings * );
Package( QString, PackageManagerSettings * );
Package( Package* );
@@ -30,6 +30,7 @@ class Package //: public QObject
QString shortDesc();
QString desc();
QString size();
+ QString sizeUnits();
void setSection( QString );
QString section();
QString subSection();
@@ -45,7 +46,6 @@ class Package //: public QObject
void setLink(bool);
void parseIpkgFile( QString );;
public slots:
- /** No descriptions */
QString getPackageName();
void toggleProcess();
diff --git a/noncore/unsupported/oipkg/packagelistitem.cpp b/noncore/unsupported/oipkg/packagelistitem.cpp
index 149ba35..0c7c928 100644
--- a/noncore/unsupported/oipkg/packagelistitem.cpp
+++ b/noncore/unsupported/oipkg/packagelistitem.cpp
@@ -17,35 +17,20 @@ PackageListItem::PackageListItem(QListView* lv, Package *pi, PackageManagerSetti
settings = s;
setExpandable( true );
QCheckListItem *item;
-#ifndef NEWLAYOUT
- item = new QCheckListItem( this, QObject::tr("Name") );
- item->setText(1,pi->name());
- item = new QCheckListItem( this, QObject::tr("Description") );
- item->setText(1,pi->desc()+"\ntest multi\nline");
- item = new QCheckListItem( this, QObject::tr("Size") );
- item->setText(1,pi->size());
- item = new QCheckListItem( this, QObject::tr("Destination") );
- item->setText(1,pi->getDest());
-#endif
-#ifdef NEWLAYOUT
- item = new QCheckListItem( this, QObject::tr("Name: ")+pi->name() );
+ 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, "" );
displayDetails();
-#endif
- if (!pm_uninstalled) {
+ if (!pm_uninstalled)
+ {
pm_uninstalled = new QPixmap(Resource::loadPixmap("oipkg/uninstalled"));
pm_installed = new QPixmap(Resource::loadPixmap("oipkg/installed"));
pm_install = new QPixmap(Resource::loadPixmap("oipkg/install"));
pm_uninstall = new QPixmap(Resource::loadPixmap("oipkg/uninstall"));
}
-#ifndef NEWLAYOUT
- setText(1, package->shortDesc() );
- setText(2, package->size() );
-#endif
}
void PackageListItem::paintCell( QPainter *p, const QColorGroup & cg,
@@ -120,19 +105,17 @@ void PackageListItem::setOn( bool b )
{
QCheckListItem::setOn( b );
package->toggleProcess();
-// if ( b )
-// {
-// if ((package->dest()).isEmpty)
-// package->setDest( settings->getDestinationName() );
-// }else{
-// package->setDest( QObject::tr("not installed"));
-// }
package->setLink( settings->createLinks() );
displayDetails();
}
void PackageListItem::displayDetails()
{
+ QString sod = " ("+package->sizeUnits();
+ sod += package->dest().isEmpty()?QString(""):QString(QObject::tr(" on ")+package->dest());
+ sod += ")";
+ setText(0, package->name()+sod );
+ nameItem->setText( 0, QObject::tr("Name: ")+package->name());
linkItem->setText( 0, QObject::tr("Link: ")+QString(package->link()?QObject::tr("Yes"):QObject::tr("No")) );
destItem->setText( 0, QObject::tr("Destination: ")+package->dest() );
repaint();
diff --git a/noncore/unsupported/oipkg/packagelistitem.h b/noncore/unsupported/oipkg/packagelistitem.h
index f695432..54d9f9e 100644
--- a/noncore/unsupported/oipkg/packagelistitem.h
+++ b/noncore/unsupported/oipkg/packagelistitem.h
@@ -27,6 +27,7 @@ public:
void displayDetails();
private:
+ QCheckListItem *nameItem;
QCheckListItem *destItem;
QCheckListItem *linkItem;
PackageManagerSettings *settings;
diff --git a/noncore/unsupported/oipkg/packagelistview.cpp b/noncore/unsupported/oipkg/packagelistview.cpp
index 693ea6a..2915ac6 100644
--- a/noncore/unsupported/oipkg/packagelistview.cpp
+++ b/noncore/unsupported/oipkg/packagelistview.cpp
@@ -52,7 +52,7 @@ void PackageListView::setCurrent( QListViewItem* p )
if ( !p ) return;
activePackageListItem = (PackageListItem*)p;
activePackage = activePackageListItem->getPackage();
- pvDebug(5, "start timer");
+ if (!activePackage) return;
popupTimer->start( 750, true );
}
@@ -63,21 +63,31 @@ void PackageListView::showPopup()
destsMenu->clear();
QAction *popupAction;
- popupMenu->insertItem( QObject::tr("Install to"), destsMenu );
- QStringList dests = settings->getDestinationNames();
- for (uint i = 0; i < dests.count(); i++ )
- {
- popupAction = new QAction( dests[i], QString::null, 0, this, 0 );
- popupAction->addTo( destsMenu );
- }
- connect( destsMenu, SIGNAL( activated( int ) ),
- this, SLOT( changePackageDest( int ) ) );
+ if ( !activePackage->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, this, 0 );
+ popupAction->addTo( destsMenu );
+ if ( dests[i] == ad && activePackage->toInstall() )
+ {
+ popupAction->setToggleAction( true );
+ popupAction->setOn(true);
+ };
+ }
+ connect( destsMenu, SIGNAL( activated( int ) ),
+ this, SLOT( changePackageDest( int ) ) );
+ }else{
+// popupActcat setOn( activePackage->toProcess() );
+ }
popupMenu->popup( QCursor::pos() );
}
void PackageListView::stopTimer( QListViewItem* )
{
- pvDebug( 5, "stop timer" );
popupTimer->stop();
}
@@ -89,3 +99,9 @@ void PackageListView::changePackageDest( int i )
activePackage->setLink( settings->createLinks() );
activePackageListItem->displayDetails();
}
+
+void PackageListView::toggleProcess()
+{
+ activePackage->toggleProcess() ;
+ activePackageListItem->displayDetails();
+}
diff --git a/noncore/unsupported/oipkg/packagelistview.h b/noncore/unsupported/oipkg/packagelistview.h
index 15e200b..a3db0d0 100644
--- a/noncore/unsupported/oipkg/packagelistview.h
+++ b/noncore/unsupported/oipkg/packagelistview.h
@@ -48,6 +48,8 @@ public slots:
void changePackageDest( int );
void setCurrent( QListViewItem* );
void stopTimer( QListViewItem* );
+ /** No descriptions */
+ void toggleProcess();
};
#endif
diff --git a/noncore/unsupported/oipkg/pkdesc.ui b/noncore/unsupported/oipkg/pkdesc.ui
deleted file mode 100644
index 494d3d6..0000000
--- a/noncore/unsupported/oipkg/pkdesc.ui
+++ b/dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE UI><UI>
-<class>PackageDetails</class>
-<widget>
- <class>QDialog</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Form7</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>0</y>
- <width>221</width>
- <height>291</height>
- </rect>
- </property>
- <property stdset="1">
- <name>caption</name>
- <string>(pkgname)</string>
- </property>
- <property>
- <name>layoutMargin</name>
- </property>
- <property>
- <name>layoutSpacing</name>
- </property>
- <vbox>
- <property stdset="1">
- <name>margin</name>
- <number>6</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>3</number>
- </property>
- <widget>
- <class>QTextView</class>
- <property stdset="1">
- <name>name</name>
- <cstring>description</cstring>
- </property>
- </widget>
- <widget>
- <class>QLayoutWidget</class>
- <property stdset="1">
- <name>name</name>
- <cstring>Layout4</cstring>
- </property>
- <hbox>
- <property stdset="1">
- <name>margin</name>
- <number>0</number>
- </property>
- <property stdset="1">
- <name>spacing</name>
- <number>6</number>
- </property>
- <widget>
- <class>QToolButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>install</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Install</string>
- </property>
- </widget>
- <widget>
- <class>QToolButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>remove</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Remove</string>
- </property>
- </widget>
- <widget>
- <class>QToolButton</class>
- <property stdset="1">
- <name>name</name>
- <cstring>ignore</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Ignore</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
-</widget>
-</UI>
diff --git a/noncore/unsupported/oipkg/pksettings.cpp b/noncore/unsupported/oipkg/pksettings.cpp
index be01837..6c8dc2a 100644
--- a/noncore/unsupported/oipkg/pksettings.cpp
+++ b/noncore/unsupported/oipkg/pksettings.cpp
@@ -31,6 +31,7 @@
#include <stdlib.h>
#include <unistd.h>
#include "debug.h"
+//#include "utils.h"
PackageManagerSettings::PackageManagerSettings( QWidget* parent, const char* name, WFlags fl )
: PackageManagerSettingsBase( parent, name, fl )
@@ -56,6 +57,7 @@ PackageManagerSettings::PackageManagerSettings( QWidget* parent, const char* na
destinationurl->setEnabled(FALSE);
destinationurlDic.setAutoDelete(TRUE);
readSettings();
+ activeLinkDestination->hide();
}
PackageManagerSettings::~PackageManagerSettings()
@@ -76,8 +78,10 @@ void PackageManagerSettings::newServer()
servers->insertItem(servername->text());
activeServers->insertItem(servername->text());
}
+ changed = true;
servers->setSelected(i,TRUE);
editServer(i);
+ changed = true;
}
void PackageManagerSettings::newDestination()
@@ -97,6 +101,7 @@ void PackageManagerSettings::newDestination()
}
destinations->setSelected(i,TRUE);
editDestination(i);
+ changed = true;
}
@@ -117,6 +122,7 @@ void PackageManagerSettings::editServer(int i)
connect( servername, SIGNAL(textChanged(const QString&)), this, SLOT(serverNameChanged(const QString&)) );
connect( serverurl, SIGNAL(textChanged(const QString&)), this, SLOT(serverUrlChanged(const QString&)) );
+ changed = true;
}
@@ -137,6 +143,7 @@ void PackageManagerSettings::editDestination(int i)
connect( destinationname, SIGNAL(textChanged(const QString&)), this, SLOT(destNameChanged(const QString&)) );
connect( destinationurl, SIGNAL(textChanged(const QString&)), this, SLOT(destUrlChanged(const QString&)) );
+ changed = true;
}
void PackageManagerSettings::removeServer()
@@ -151,6 +158,7 @@ void PackageManagerSettings::removeServer()
connect( servers, SIGNAL(highlighted(int)), this, SLOT(editServer(int)) );
servername->setEnabled(FALSE);
serverurl->setEnabled(FALSE);
+ changed = true;
}
void PackageManagerSettings::removeDestination()
@@ -166,6 +174,7 @@ void PackageManagerSettings::removeDestination()
connect( destinations, SIGNAL(highlighted(int)), this, SLOT(editDestination(int)) );
destinationname->setEnabled(FALSE);
destinationurl->setEnabled(FALSE);
+ changed = true;
}
void PackageManagerSettings::serverNameChanged(const QString& t)
@@ -173,7 +182,9 @@ void PackageManagerSettings::serverNameChanged(const QString& t)
disconnect( servers, SIGNAL(highlighted(int)), this, SLOT(editServer(int)) );
servers->changeItem( t, editedserver );
activeServers->changeItem( t, editedserver );
+ changed = true;
connect( servers, SIGNAL(highlighted(int)), this, SLOT(editServer(int)) );
+ changed = true;
}
void PackageManagerSettings::destNameChanged(const QString& t)
@@ -183,16 +194,19 @@ void PackageManagerSettings::destNameChanged(const QString& t)
activeDestination->changeItem( t, editeddestination );
activeLinkDestination->changeItem( t, editeddestination );
connect( destinations, SIGNAL(highlighted(int)), this, SLOT(editDestination(int)) );
+ changed = true;
}
void PackageManagerSettings::serverUrlChanged(const QString& t)
{
serverurlDic.replace(editedserver, new QString(t));
+ changed = true;
}
void PackageManagerSettings::destUrlChanged(const QString& t)
{
destinationurlDic.replace(editeddestination, new QString(t));
+ changed = true;
}
void PackageManagerSettings::writeIpkgConfig(const QString& conffile)
@@ -265,11 +279,11 @@ void PackageManagerSettings::installationSettingChange(int cs)
writeCurrentInstallationSetting();
currentSetting = cs;
readInstallationSetting( cs );
+ changed = true;
}
void PackageManagerSettings::writeInstallationSettings()
{
- if ( ! changed ) return ;
{
Config cfg( "oipkg", Config::User );
cfg.setGroup( "Settings" );
@@ -285,25 +299,23 @@ void PackageManagerSettings::readInstallationSetting(int setting)
if ( setting < 0 ) return;
Config cfg( "oipkg", Config::User );
cfg.setGroup( "Setting_" + QString::number( setting ) );
- CheckBoxLink->setChecked( cfg.readBoolEntry( "link", false ) );
+ CheckBoxLink->setChecked( cfg.readBoolEntry( "link", true ) );
QString dest = cfg.readEntry( "dest" );
QString linkdest = cfg.readEntry( "linkdest" );
pvDebug(3, "dest="+dest);
pvDebug(3, "linkdest="+linkdest);
-
for ( int i = 0; i < activeDestination->count(); i++)
- {
- if ( activeDestination->text( i ) == dest )
- activeDestination->setCurrentItem( i );
- if ( activeLinkDestination->text( i ) == linkdest )
- activeLinkDestination->setCurrentItem( i );
- }
+ {
+ if ( activeDestination->text( i ) == dest )
+ activeDestination->setCurrentItem( i );
+ if ( activeLinkDestination->text( i ) == linkdest )
+ activeLinkDestination->setCurrentItem( i );
+ }
}
void PackageManagerSettings::writeCurrentInstallationSetting()
{
Config cfg( "oipkg", Config::User );
- changed = false;
cfg.setGroup( "Setting_" + QString::number(currentSetting) );
cfg.writeEntry( "link", CheckBoxLink->isChecked() );
cfg.writeEntry( "dest", getDestinationName() );
@@ -332,6 +344,7 @@ void PackageManagerSettings::installationSettingSetName(const QString &name)
bool PackageManagerSettings::readIpkgConfig(const QString& conffile)
{
QFile conf(conffile);
+ changed = false;
if ( conf.open(IO_ReadOnly) ) {
QTextStream s(&conf);
servers->clear();
@@ -424,7 +437,7 @@ void PackageManagerSettings::readSettings()
void PackageManagerSettings::writeSettings()
{
- writeIpkgConfig("/etc/ipkg.conf");
+ if ( changed ) writeIpkgConfig("/etc/ipkg.conf");
writeInstallationSettings();
}
/** shows the setting dialog */
@@ -435,7 +448,7 @@ bool PackageManagerSettings::showDialog( int i )
bool ret = exec();
if ( ret ) writeSettings();
else readSettings();
- return ret;
+ return (changed && ret);
}
/** Returns the installation destination */
QString PackageManagerSettings::getDestinationName()
@@ -469,6 +482,15 @@ QStringList PackageManagerSettings::getActiveServers()
}
return sl;
}
+ QStringList PackageManagerSettings::getServers()
+{
+ QStringList sl;
+ for (int i=0; i<(int)activeServers->count(); i++)
+ {
+ sl += activeServers->text(i);
+ }
+ return sl;
+}
/** returns the destination listed in ipkg.conf */
QStringList PackageManagerSettings::getDestinationUrls()
@@ -506,6 +528,15 @@ QStringList PackageManagerSettings::getDestinationNames()
void PackageManagerSettings::linkEnabled( bool b )
{
- changed = true;
activeLinkDestination->setEnabled( b );
}
+
+void PackageManagerSettings::activeServerChanged()
+{
+ changed = true;
+}
+
+QComboBox* PackageManagerSettings::getDestCombo()
+{
+ return new QComboBox(activeDestination);
+}
diff --git a/noncore/unsupported/oipkg/pksettings.h b/noncore/unsupported/oipkg/pksettings.h
index 11ba55c..fbb3b99 100644
--- a/noncore/unsupported/oipkg/pksettings.h
+++ b/noncore/unsupported/oipkg/pksettings.h
@@ -17,10 +17,13 @@ public:
QString getDestinationName();
QString getLinkDestinationName();
bool createLinks();
+ QStringList getServers();
QStringList getActiveServers();
QStringList getDestinationUrls();
QStringList getDestinationNames();
QString getDestinationUrlByName(QString);
+ /** No descriptions */
+ QComboBox* getDestCombo();
private:
QIntDict<QString> serverurlDic;
@@ -59,6 +62,7 @@ public slots:
void newInstallationSetting();
void removeInstallationSetting();
void renameInstallationSetting();
+ void activeServerChanged();
};
#endif
diff --git a/noncore/unsupported/oipkg/pksettingsbase.ui b/noncore/unsupported/oipkg/pksettingsbase.ui
index 196a89f..fd6d208 100644
--- a/noncore/unsupported/oipkg/pksettingsbase.ui
+++ b/noncore/unsupported/oipkg/pksettingsbase.ui
@@ -11,7 +11,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>349</width>
+ <width>345</width>
<height>454</height>
</rect>
</property>
@@ -176,7 +176,7 @@
</property>
<property stdset="1">
<name>text</name>
- <string>Link Destination: root</string>
+ <string>Link to root destination</string>
</property>
</widget>
<widget>
@@ -718,6 +718,24 @@
</grid>
</widget>
<connections>
+ <connection>
+ <sender>activeServers</sender>
+ <signal>pressed(QListBoxItem*)</signal>
+ <receiver>Form4</receiver>
+ <slot>activeServerChanged()</slot>
+ </connection>
+ <connection>
+ <sender>activeServers</sender>
+ <signal>selectionChanged(QListBoxItem*)</signal>
+ <receiver>Form4</receiver>
+ <slot>activeServerChanged()</slot>
+ </connection>
+ <connection>
+ <sender>activeServers</sender>
+ <signal>pressed(QListBoxItem*)</signal>
+ <receiver>Form4</receiver>
+ <slot>activeServerChanged()</slot>
+ </connection>
<slot access="public">destNameChanged(const QString&amp;)</slot>
<slot access="public">destUrlChanged(const QString&amp;)</slot>
<slot access="public">editDestination(int)</slot>
@@ -728,6 +746,7 @@
<slot access="public">newDestination()</slot>
<slot access="public">newInstallationSetting()</slot>
<slot access="public">newServer()</slot>
+ <slot access="public">activeServerChanged()</slot>
<slot access="public">removeDestination()</slot>
<slot access="public">removeInstallationSetting()</slot>
<slot access="public">removeServer()</slot>
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index ecc97b2..9f6429a 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -9,6 +9,7 @@
#include <qpe/stringutil.h>
#include <qdir.h>
#include <qfile.h>
+#include <qgroupbox.h>
#include <qmultilineedit.h>
#include <qstring.h>
#include <qcheckbox.h>
@@ -57,8 +58,15 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
cmd += " -force-defaults ";
-// if (runwindow->forcedepends->isChecked())
-// cmd += " -force-depends ";
+ if (_force_depends)
+ {
+ if (_force_depends->isChecked())
+ cmd += " -force-depends ";
+ if (_force_reinstall->isChecked())
+ cmd += " -force-reinstall ";
+ if (_force_remove->isChecked())
+ cmd += " -force-removal-of-essential-packages ";
+ }
out( "<hr><br>Starting to "+ args+"<br>\n");
cmd += args;
@@ -76,14 +84,12 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
QString redirect = "/tmp/oipkg.pipe";
cmd += " 2>&1 | tee "+redirect+" 2>&1";
pvDebug(2, "running >"+cmd+"<");
- r = system(cmd.latin1());
+ r = system(cmd.latin1());
QFile f( redirect );
QString line;
QString oldLine;
while ( ! f.open(IO_ReadOnly) ) {};
- // {
QTextStream t( &f );
- // QString fp;
while ( !t.eof() )
{
line = t.readLine();
@@ -93,7 +99,6 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
oldLine = line;
}
}
-// }
f.close();
out( "Finished!<br>");
#endif
@@ -104,41 +109,61 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
void PmIpkg::makeLinks(Package *pack)
{
pvDebug( 2, "PmIpkg::makeLinks "+ pack->name());
- QString dest = settings->getDestinationUrlByName( pack->dest() );
- if (dest == "/" ) return;
+ linkPackage( pack->name(), pack->dest() );
+}
+
+QStringList* PmIpkg::getList( QString packFileName, QString d )
+{
+ QString dest = settings->getDestinationUrlByName( d );
+ dest = dest==""?d:dest;
+ if (dest == "/" ) return 0;
{
Config cfg( "oipkg", Config::User );
cfg.setGroup( "Common" );
QString statusDir = cfg.readEntry( "statusDir", "" );
}
- QString fn = dest+"/"+statusDir+"/info/"+pack->name()+".list";
- linkPackage( fn, dest );
-}
-
-void PmIpkg::linkPackage( QString packFileName, QString dest )
-{
- QFile f( packFileName );
- if ( ! f.open(IO_ReadOnly) )
+ packFileName = dest+"/"+statusDir+"/info/"+packFileName+".list";
+ QFile f( packFileName );
+ if ( ! f.open(IO_ReadOnly) )
{
+ pvDebug(1," Panik! Could not open");
out( "<b>Panik!</b> Could not open:<br>"+packFileName );
- return;
- };
- out( "<br>creating links<br>" );
- out("for package "+packFileName+" in "+dest+"<br>");
+ return (QStringList*)0;
+ }
+ QStringList *fileList = new QStringList();
QTextStream t( &f );
- QString fp;
while ( !t.eof() )
{
- fp = t.readLine();
- processLinkDir( fp, dest );
+ *fileList += t.readLine();
}
- f.close();
+ return fileList;
}
+void PmIpkg::linkPackage( QString packFileName, QString dest )
+{
+ QStringList *fileList = getList( packFileName, dest );
+ processFileList( fileList, dest );
+ delete fileList;
+}
+
+void PmIpkg::processFileList( QStringList *fileList, QString d )
+{
+ if (!fileList) return;
+ for (uint i=0; i < fileList->count(); i++)
+ {
+ QString dest = settings->getDestinationUrlByName( d );
+ dest = dest==""?d:dest;
+ processLinkDir( (*fileList)[i], dest );
+ }
+}
+
+
void PmIpkg::processLinkDir( QString file, QString dest )
{
pvDebug( 7,"PmIpkg::processLinkDir "+file+" to "+ dest);
- if ( dest == "???" ) return;
+ if (linkOpp==createLink) pvDebug( 2,"opp: createLink");
+ if (linkOpp==removeLink) pvDebug( 2,"opp:removeLink");
+ if ( dest == "???" || dest == "" ) return;
QString destFile = file;
file = dest+"/"+file;
if (file == dest) return;
@@ -146,7 +171,7 @@ void PmIpkg::processLinkDir( QString file, QString dest )
if ( fileInfo.isDir() )
{
QDir destDir( destFile );
- destDir.mkdir( destFile, true );
+ if (linkOpp==createLink) destDir.mkdir( destFile, true );
QDir d( file );
d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
const QFileInfoList *list = d.entryInfoList();
@@ -154,18 +179,34 @@ void PmIpkg::processLinkDir( QString file, QString dest )
QFileInfo *fi;
while ( (fi=it.current()) )
{
- // out( "<b>"+fi->absFilePath()+"</b>" );
+ pvDebug(4, "process dir "+fi->absFilePath());
processLinkDir( fi->absFilePath(), dest );
++it;
}
+// if (linkOpp==removeLink)
+// {
+// pvDebug(2,"remove destDir "+ destFile );
+// destDir.remove( destFile, true );
+// }
} else
if ( fileInfo.isFile() )
{
const char *instFile = strdup( (file).ascii() );
const char *linkFile = strdup( (destFile).ascii());
-// out( "linking: "+file+" -> "+destFile );
- qDebug( "linking: %s -> %s", instFile, linkFile );
- symlink( instFile, linkFile );
+ if( linkOpp==createLink )
+ {
+ pvDebug(4, "linking: "+file+" -> "+destFile );
+ symlink( instFile, linkFile );
+ }
+ } else {
+ const char *linkFile = strdup( (destFile).ascii());
+ if( linkOpp==removeLink )
+ {
+ pvDebug(4,"removing "+destFile+" no "+file);
+ QFileInfo toRemoveLink( destFile );
+ if ( !QFile::exists( file ) && toRemoveLink.isSymLink() )
+ unlink( linkFile );
+ }
}
}
@@ -176,7 +217,6 @@ void PmIpkg::commit( PackageList pl )
to_remove.clear();
QString rem="<b>"+tr("To remove:")+"</b><br>\n";
QString inst="<b>"+tr("To install:")+"</b><br>\n";
- pl.allPackages();
for( Package *pack = pl.first();pack ; (pack = pl.next()) )
{
if ( pack && (pack->name() != "") && pack)
@@ -207,70 +247,66 @@ void PmIpkg::startDialog()
RunWindowLayout->setSpacing( 2 );
RunWindowLayout->setMargin( 2 );
- QHBoxLayout *buttons = new QHBoxLayout;
- buttons->setSpacing( 6 );
- buttons->setMargin( 0 );
-
PackageListView *plv = new PackageListView(installDialog, "install",settings);
+ plv->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding, plv->sizePolicy().mayShrinkVertically()) );
RunWindowLayout->addWidget( plv, 1, 0 );
+ QCheckListItem *toRemoveItem;
+ toRemoveItem= new QCheckListItem( plv, QObject::tr("To remove") );
+ toRemoveItem->setOpen( true );
for (Package *it=to_remove.first(); it != 0; it=to_remove.next() )
{
- plv->insertItem( new PackageListItem(plv, it,settings) );
+ toRemoveItem->insertItem( new PackageListItem(plv, it,settings) );
}
+ QCheckListItem *toInstallItem;
+ toInstallItem = new QCheckListItem( plv, QObject::tr("To install") );
+ toInstallItem->setOpen( true );
for (Package *it=to_install.first(); it != 0; it=to_install.next() )
{
- plv->insertItem( new PackageListItem(plv, it,settings) );
+ toInstallItem->insertItem( new PackageListItem(plv, it,settings) );
}
- QPushButton *doItButton = new QPushButton( installDialog, "doItButton" );
- doItButton->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, doItButton->sizePolicy().hasHeightForWidth() ) );
- QFont doItButton_font( doItButton->font() );
- doItButton_font.setPointSize( 8 );
- doItButton->setFont( doItButton_font );
- doItButton->setText( tr( "Do all " ) );
- doItButton->setAutoResize( FALSE );
- buttons->addWidget( doItButton );
-
- QPushButton *installButton = new QPushButton( installDialog, "installButton" );
- QFont installButton_font( installButton->font() );
- installButton_font.setPointSize( 8 );
- installButton->setFont( installButton_font );
- installButton->setText( tr( "Install" ) );
- installButton->setAutoResize( TRUE );
- buttons->addWidget( installButton );
-
- QPushButton *removeButton = new QPushButton( installDialog, "removeButton" );
- QFont removeButton_font( removeButton->font() );
- removeButton_font.setPointSize( 7 );
- removeButton->setFont( removeButton_font );
- removeButton->setText( tr( "Remove" ) );
- removeButton->setAutoResize( TRUE );
- buttons->addWidget( removeButton );
-
- QPushButton *cancelButton = new QPushButton( installDialog, "cancelButton" );
- QFont cancelButton_font( cancelButton->font() );
- cancelButton_font.setPointSize( 8 );
- cancelButton->setFont( cancelButton_font );
- cancelButton->setText( tr( "Cancel" ) );
- cancelButton->setAutoResize( TRUE );
- buttons->addWidget( cancelButton );
-
- RunWindowLayout->addLayout( buttons, 3, 0 );
-
- connect( doItButton, SIGNAL( clicked() ),
- this, SLOT( doIt() ) );
- connect( installButton, SIGNAL( clicked() ),
- this, SLOT( install() ) );
- connect( removeButton, SIGNAL( clicked() ),
- this, SLOT( remove() ) );
- connect( cancelButton, SIGNAL( clicked() ),
- installDialog, SLOT( close() ) );
+
+ QGroupBox *GroupBox1 = new QGroupBox( installDialog, "Ipkg" );
+ GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)3, GroupBox1->sizePolicy().hasHeightForWidth() ) );
+ GroupBox1->setTitle( tr( "Ipkg options" ) );
+ GroupBox1->setColumnLayout(0, Qt::Vertical );
+ GroupBox1->layout()->setSpacing( 0 );
+ GroupBox1->layout()->setMargin( 0 );
+ QGridLayout *GroupBox1Layout = new QGridLayout( GroupBox1->layout() );
+ GroupBox1Layout->setAlignment( Qt::AlignTop );
+ GroupBox1Layout->setSpacing( 3 );
+ GroupBox1Layout->setMargin( 3 );
+
+ _force_depends = new QCheckBox( GroupBox1, "_force_depends" );
+ _force_depends->setText( tr( "-force-depends" ) );
+ _force_depends->setAutoResize( TRUE );
+ GroupBox1Layout->addWidget( _force_depends, 0, 0 );
+ _force_reinstall = new QCheckBox( GroupBox1, "_force_reinstall" );
+ _force_reinstall->setText( tr( "-force-reinstall" ) );
+ _force_reinstall->setAutoResize( TRUE );
+ GroupBox1Layout->addWidget( _force_reinstall, 1, 0 );
+ _force_remove = new QCheckBox( GroupBox1, "_force_remove" );
+ _force_remove->setText( tr( "-force-removal-of-essential-packages" ) );
+ _force_remove->setAutoResize( TRUE );
+ GroupBox1Layout->addWidget( _force_remove, 1, 0 );
+ RunWindowLayout->addWidget( GroupBox1 , 3, 0 );
+
+// connect( doItButton, SIGNAL( clicked() ),
+// this, SLOT( doIt() ) );
+// connect( installButton, SIGNAL( clicked() ),
+// this, SLOT( install() ) );
+// connect( removeButton, SIGNAL( clicked() ),
+// this, SLOT( remove() ) );
+// connect( cancelButton, SIGNAL( clicked() ),
+// installDialog, SLOT( close() ) );
installDialog->showMaximized();
if ( installDialog->exec() ) doIt();
installDialog->close();
+ out(tr("<b>All done.</b>"));
}
void PmIpkg::doIt()
{
+ show( true );
remove();
install();
}
@@ -279,59 +315,77 @@ void PmIpkg::doIt()
void PmIpkg::remove()
{
if ( to_remove.count() == 0 ) return;
- installDialog->close();
- show( true );
- out("<hr><hr><b>"+tr("Removing")+"<br>"+tr("please wait")+"</b><br>");
+ out("<b>"+tr("Removing")+"<br>"+tr("please wait")+"</b><br><hr>");
+ QStringList *fileList;
for (Package *it=to_remove.first(); it != 0; it=to_remove.next() )
{
+ if ( it->link() )fileList = getList( it->name(), it->dest() );
if ( runIpkg("remove " + it->name()) == 0)
{
- runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress());
- it->processed();
- runwindow->progress->setProgress( 1 );
+ runwindow->progress->setProgress( 1 + runwindow->progress->progress() );
+ linkOpp = removeLink;
+ if ( it->link() )
+ {
+ out( "<br>removing links<br>" );
+ out( "for package "+it->name()+" in "+it->dest()+"<br>" );
+ processFileList( fileList, it->dest() );
+ }
+ it->processed();
+ out("<br><hr>");
}else{
- out("<b>"+tr("Error while removing")+"</b>"+it->name());
+ out("<b>"+tr("Error while removing")+"</b><hr>"+it->name());
}
+ pvDebug(2,"delete File List");
+ if ( it->link() )delete fileList;
}
+ out("<br>");
}
void PmIpkg::install()
{
if ( to_install.count() == 0 ) return;
- installDialog->close();
- show( true );
- out("<hr><hr><b>"+tr("Installing")+"<br>"+tr("please wait")+"</b><br>");
+ out("<b>"+tr("Installing")+"<br>"+tr("please wait")+"</b><br>");
for (Package *it=to_install.first(); it != 0; it=to_install.next() )
{
if ( runIpkg("install " + it->getPackageName(), it->dest() ) == 0 )
{
runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress());
+ linkOpp = createLink;
if ( it->link() )
+ {
+ out( "<br>creating links<br>" );
+ out( "for package "+it->name()+" in "+it->dest()+"<br>" );
makeLinks( it );
+ }
it->processed();
+ out("<br><hr>");
}else{
- out("<b>"+tr("Error while installing")+"</b>"+it->name());
+ out("<b>"+tr("Error while installing")+"</b><hr>"+it->name());
}
}
+ out("<br>");
}
-void PmIpkg::linkDestination( const QString msg, const QByteArray dest )
+void PmIpkg::createLinks( const QString &dest )
{
- qDebug("msg="+msg+" -- "+QString(dest) );
-// QDir d( src );
-// d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
-//// if (! d.exists() ) return;
-// const QFileInfoList *list = d.entryInfoList();
-// QFileInfoListIterator it( *list );
-// QFileInfo *fi;
-// while ( (fi=it.current()) ) {
-// processLinkDir( fi->absFilePath(), dest );
-// ++it;
-// }
+ pvDebug(2,"PmIpkg::createLinks "+dest);
+ linkOpp=createLink;
+ QString url = settings->getDestinationUrlByName( dest );
+ url = url==""?dest:url;
+ processLinkDir( "/", url );
+}
+
+void PmIpkg::removeLinks( const QString &dest )
+{
+ pvDebug(2,"PmIpkg::removeLinks "+dest);
+ linkOpp=removeLink;
+ QString url = settings->getDestinationUrlByName( dest );
+ url = url==""?dest:url;
+ processLinkDir( "/", url );
}
void PmIpkg::update()
@@ -343,7 +397,9 @@ void PmIpkg::update()
void PmIpkg::out( QString o )
{
- runwindow->outPut->setText( runwindow->outPut->text()+o );
+ runwindow->outPut->append(o);
+ //runwindow->outPut->setCursorPosition(0, runwindow->outPut->contentsHeight());
+// runwindow->outPut->setText( runwindow->outPut->text()+o );
runwindow->outPut->setContentsPos(0, runwindow->outPut->contentsHeight());
}
@@ -376,13 +432,29 @@ void PmIpkg::show(bool b)
runwindow->progress->show();
}
-void PmIpkg::installFile(const QString &fileName)
+void PmIpkg::installFile(const QString &fileName, const QString &dest)
{
to_install.clear();
to_remove.clear();
pvDebug( 2,"PmIpkg::installFile "+ fileName);
- to_install.append( new Package(fileName,settings) );
+ Package *p = new Package(fileName,settings);
+ if ( dest!="") p->setDest( dest );
+ to_install.append( p );
+ startDialog();
+ delete p;
+}
+
+void PmIpkg::removeFile(const QString &fileName, const QString &dest)
+{
+
+ to_install.clear();
+ to_remove.clear();
+ pvDebug( 2,"PmIpkg::removeFile "+ fileName);
+ Package *p = new Package(fileName,settings);
+ if ( dest!="") p->setDest( dest );
+ to_remove.append( p );
startDialog();
+ delete p;
}
diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h
index c5e6255..0625032 100644
--- a/noncore/unsupported/oipkg/pmipkg.h
+++ b/noncore/unsupported/oipkg/pmipkg.h
@@ -11,6 +11,9 @@
#include "packagelist.h"
#include "debug.h"
+#define createLink 0
+#define removeLink 1
+
class Package;
class PmIpkg : public QObject
{
@@ -19,12 +22,22 @@ public:
PmIpkg( PackageManagerSettings* , QWidget* p=0, const char * name=0, WFlags f=0 );
~PmIpkg();
+ int linkOpp;
void commit( PackageList );
void update();
- PackageList* getPackageList();
+ // PackageList* getPackageList();
void showButtons(bool b=true);
void show( bool buttons=true );
+public slots:
+ void doIt();
+ void install();
+ void remove();
+ void installFile(const QString &fileName, const QString &dest="");
+ void removeFile(const QString &fileName, const QString &dest="");
+ void createLinks( const QString &dest );
+ void removeLinks( const QString &dest );
+
private:
PackageManagerSettings* settings;
RunWindow *runwindow;
@@ -33,20 +46,19 @@ private:
QList<Package> to_install;
bool runwindowopen;
QString fileNameToInstall;
-
+ QCheckBox *_force_reinstall;
+ QCheckBox *_force_remove;
+ QCheckBox *_force_depends;
void startDialog();
void makeLinks(Package*);
void linkPackage( QString, QString );
- void processLinkDir( QString, QString );
+ void processLinkDir( QString , QString );
int runIpkg(const QString& args, const QString& dest="" );
void out( QString );
+ QStringList* getList( QString, QString );
+ void processFileList( QStringList*, QString );
+
-public slots:
- void doIt();
- void install();
- void remove();
- void installFile(const QString &fileName);
- void linkDestination( const QString, const QByteArray );
};
#endif
diff --git a/noncore/unsupported/oipkg/settings.cpp b/noncore/unsupported/oipkg/settings.cpp
index 2b324be..8f91995 100644
--- a/noncore/unsupported/oipkg/settings.cpp
+++ b/noncore/unsupported/oipkg/settings.cpp
@@ -434,3 +434,8 @@ void PackageManagerSettings::linkEnabled( bool b )
{
activeLinkDestination->setEnabled( b );
}
+
+void PackageManagerSettings::activeDestinationChange(int i)
+{
+ activeLinkDestination->setCurrentItem( i );
+} \ No newline at end of file
diff --git a/noncore/unsupported/oipkg/settings.h b/noncore/unsupported/oipkg/settings.h
index cf6e614..e2072f1 100644
--- a/noncore/unsupported/oipkg/settings.h
+++ b/noncore/unsupported/oipkg/settings.h
@@ -21,28 +21,13 @@ public:
QStringList getActiveServers();
QStringList getDestinationUrls();
-private:
- QIntDict<QString> serverurlDic;
- QIntDict<QString> destinationurlDic;
- int ipkg_old;
- int editedserver;
- int editeddestination;
- int currentSetting;
- int installationSettingsCount;
- bool changed;
-
- bool readIpkgConfig(const QString&);
- void writeIpkgConfig(const QString&);
- void writeSettings();
- void readSettings();
-
public slots:
- void writeInstallationSettings();
+ void writeInstallationSettings();
void readInstallationSettings();
void writeCurrentInstallationSetting();
void readInstallationSetting(int);
void installationSettingSetName(const QString &);
-
+ void activeDestinationChange(int)
void newServer();
void editServer(int);
void removeDestination();
@@ -58,6 +43,21 @@ public slots:
void newInstallationSetting();
void removeInstallationSetting();
void renameInstallationSetting();
+
+private:
+ QIntDict<QString> serverurlDic;
+ QIntDict<QString> destinationurlDic;
+ int ipkg_old;
+ int editedserver;
+ int editeddestination;
+ int currentSetting;
+ int installationSettingsCount;
+ bool changed;
+
+ bool readIpkgConfig(const QString&);
+ void writeIpkgConfig(const QString&);
+ void writeSettings();
+ void readSettings();
};
#endif
diff --git a/noncore/unsupported/oipkg/utils.cpp b/noncore/unsupported/oipkg/utils.cpp
new file mode 100644
index 0000000..13b17fb
--- a/dev/null
+++ b/noncore/unsupported/oipkg/utils.cpp
@@ -0,0 +1,27 @@
+/***************************************************************************
+ utils.cpp - description
+ -------------------
+ begin : Sun Apr 28 2002
+ copyright : (C) 2002 by tille
+ email : tille@handhelds.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qcombobox.h>
+#include <qstring.h>
+#include "utils.h"
+
+void setComboName( QComboBox* combo, QString s)
+{
+ for ( int i = 0; i < combo->count(); i++)
+ if ( combo->text( i ) == s )
+ combo->setCurrentItem( i );
+} \ No newline at end of file
diff --git a/noncore/unsupported/oipkg/utils.h b/noncore/unsupported/oipkg/utils.h
new file mode 100644
index 0000000..bb033c5
--- a/dev/null
+++ b/noncore/unsupported/oipkg/utils.h
@@ -0,0 +1,18 @@
+/***************************************************************************
+ utils.h - description
+ -------------------
+ begin : Sun Apr 28 2002
+ copyright : (C) 2002 by tille
+ email : tille@handhelds.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+void setComboName( QComboBox*, QString ); \ No newline at end of file