-rw-r--r-- | noncore/unsupported/oipkg/TODO | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/installdialog.cpp | 104 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/installdialog.h | 46 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.cpp | 5 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/oipkg.pro | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistremote.cpp | 2 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pksettings.cpp | 11 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pksettings.h | 1 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 96 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.h | 7 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/settings.h | 1 |
11 files changed, 202 insertions, 75 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO index 1aa9e6b..b1ae6e3 100644 --- a/noncore/unsupported/oipkg/TODO +++ b/noncore/unsupported/oipkg/TODO @@ -8,7 +8,7 @@ * manage links * dependency checking * create dest if it does not exist * allow reinstalling * different types of filters and searches i.e. name, desc, files etc -* get packages from doclnk
\ No newline at end of file +* mark packages from doclnk and ipkgfind installed if installed
\ No newline at end of file diff --git a/noncore/unsupported/oipkg/installdialog.cpp b/noncore/unsupported/oipkg/installdialog.cpp new file mode 100644 index 0000000..72f436a --- a/dev/null +++ b/noncore/unsupported/oipkg/installdialog.cpp @@ -0,0 +1,104 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'installdialog.ui' +** +** Created: Thu May 2 22:19:02 2002 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#include "installdialog.h" + +#include <qcheckbox.h> +#include <qgroupbox.h> +#include <qheader.h> +#include <qlistview.h> +#include <qpushbutton.h> +#include <qlayout.h> +#include <qvariant.h> +#include <qtooltip.h> +#include <qwhatsthis.h> + + +InstallDialog::InstallDialog( PackageManagerSettings* s, QWidget* parent, const char* name, bool modal, WFlags fl ) + : QDialog( parent, name, modal, fl ) +{ + settings = s; + if ( !name ) + setName( "InstallDialog" ); + resize( 223, 269 ); + setCaption( tr( "Install" ) ); + InstallDialogLayout = new QGridLayout( this ); + InstallDialogLayout->setSpacing( 2 ); + InstallDialogLayout->setMargin( 2 ); + + ListViewPackages = new PackageListView( this,"listViewPackages",settings ); + + InstallDialogLayout->addWidget( ListViewPackages, 0, 0 ); + + GroupBoxOptions = new QGroupBox( this, "GroupBoxOptions" ); + GroupBoxOptions->setTitle( tr( "Ipkg options" ) ); + GroupBoxOptions->setColumnLayout(0, Qt::Vertical ); + GroupBoxOptions->layout()->setSpacing( 0 ); + GroupBoxOptions->layout()->setMargin( 0 ); + GroupBoxOptionsLayout = new QGridLayout( GroupBoxOptions->layout() ); + GroupBoxOptionsLayout->setAlignment( Qt::AlignTop ); + GroupBoxOptionsLayout->setSpacing( 2 ); + GroupBoxOptionsLayout->setMargin( 2 ); + + _force_depends = new QCheckBox( GroupBoxOptions, "_force_depends" ); + QFont _force_depends_font( _force_depends->font() ); + _force_depends_font.setPointSize( 8 ); + _force_depends->setFont( _force_depends_font ); + _force_depends->setText( tr( "-force-depends" ) ); + //_force_depends->setChecked( true ); + + GroupBoxOptionsLayout->addWidget( _force_depends, 0, 0 ); + + _force_reinstall = new QCheckBox( GroupBoxOptions, "_force_reinstall" ); + QFont _force_reinstall_font( _force_reinstall->font() ); + _force_reinstall_font.setPointSize( 8 ); + _force_reinstall->setFont( _force_reinstall_font ); + _force_reinstall->setText( tr( "-force-reinstall" ) ); + + GroupBoxOptionsLayout->addWidget( _force_reinstall, 1, 0 ); + + _force_remove = new QCheckBox( GroupBoxOptions, "_force_remove" ); + QFont _force_remove_font( _force_remove->font() ); + _force_remove_font.setPointSize( 8 ); + _force_remove->setFont( _force_remove_font ); + _force_remove->setText( tr( "-force-removal-of-essential-packages" ) ); + + GroupBoxOptionsLayout->addWidget( _force_remove, 2, 0 ); + + InstallDialogLayout->addWidget( GroupBoxOptions, 1, 0 ); +} + +/* + * Destroys the object and frees any allocated resources + */ +InstallDialog::~InstallDialog() +{ + // no need to delete child widgets, Qt does it all for us +} + +/* + * Main event handler. Reimplemented to handle application + * font changes + */ +bool InstallDialog::event( QEvent* ev ) +{ + bool ret = QDialog::event( ev ); + if ( ev->type() == QEvent::ApplicationFontChange ) { + QFont _force_depends_font( _force_depends->font() ); + _force_depends_font.setPointSize( 8 ); + _force_depends->setFont( _force_depends_font ); + QFont _force_reinstall_font( _force_reinstall->font() ); + _force_reinstall_font.setPointSize( 8 ); + _force_reinstall->setFont( _force_reinstall_font ); + QFont _force_remove_font( _force_remove->font() ); + _force_remove_font.setPointSize( 8 ); + _force_remove->setFont( _force_remove_font ); + } + return ret; +} + diff --git a/noncore/unsupported/oipkg/installdialog.h b/noncore/unsupported/oipkg/installdialog.h new file mode 100644 index 0000000..f2164ac --- a/dev/null +++ b/noncore/unsupported/oipkg/installdialog.h @@ -0,0 +1,46 @@ +/**************************************************************************** +** Form interface generated from reading ui file 'installdialog.ui' +** +** Created: Thu May 2 22:19:01 2002 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +#ifndef INSTALLDIALOG_H +#define INSTALLDIALOG_H + +#include "pksettings.h" +#include "packagelistview.h" +#include <qvariant.h> +#include <qdialog.h> +class QVBoxLayout; +class QHBoxLayout; +class QGridLayout; +class QCheckBox; +class QGroupBox; +class QListView; +class QListViewItem; + +class InstallDialog : public QDialog +{ + Q_OBJECT + +public: + InstallDialog( PackageManagerSettings* s, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); + ~InstallDialog(); + + PackageListView* ListViewPackages; + QGroupBox* GroupBoxOptions; + QCheckBox* _force_depends; + QCheckBox* _force_reinstall; + QCheckBox* _force_remove; + +protected: + QGridLayout* InstallDialogLayout; + QGridLayout* GroupBoxOptionsLayout; + bool event( QEvent* ); +private: + PackageManagerSettings* settings; +}; + +#endif // INSTALLDIALOG_H diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp index b668660..259a789 100644 --- a/noncore/unsupported/oipkg/mainwindow.cpp +++ b/noncore/unsupported/oipkg/mainwindow.cpp @@ -233,27 +233,30 @@ void MainWindow::makeMenu() sectionShow( cfg.readBoolEntry( "sectionBar", true ) ); destShow( cfg.readBoolEntry( "destBar", false ) ); } MainWindow::~MainWindow() { + pvDebug(7,"MainWindow::~MainWindow "); Config cfg( "oipkg", Config::User ); cfg.setGroup( "gui" ); cfg.writeEntry( "findBar", !findBar->isHidden() ); cfg.writeEntry( "searchBar", !searchBar->isHidden() ); cfg.writeEntry( "sectionBar", !sectionBar->isHidden() ); cfg.writeEntry( "destBar", !destBar->isHidden() ); + pvDebug(7,"MainWindow::~MainWindow "); } void MainWindow::runIpkg() { packageListServers.allPackages(); ipkg->loadList( packageListSearch ); ipkg->loadList( packageListDocLnk ); - ipkg->commit( packageListServers ); + ipkg->loadList( packageListServers ); + ipkg->commit(); // ##### 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". QCopEnvelope e("QPE/System", "linkChanged(QString)"); QString lf = QString::null; e << lf; displayList(); diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro index 6ee1963..9e2f5f8 100644 --- a/noncore/unsupported/oipkg/oipkg.pro +++ b/noncore/unsupported/oipkg/oipkg.pro @@ -3,24 +3,26 @@ TEMPLATE = app #CONFIG = qt warn_on release CONFIG = qt warn_on debug HEADERS = mainwindow.h \ pksettings.h \ pmipkg.h \ packagelistdoclnk.h \ + installdialog.h \ utils.h \ packagelistitem.h \ packagelistremote.h \ packagelist.h \ packagelistlocal.h \ packagelistview.h \ package.h SOURCES = main.cpp \ mainwindow.cpp \ utils.cpp \ packagelistdoclnk.cpp \ packagelistview.cpp \ + installdialog.cpp \ packagelistremote.cpp \ packagelistlocal.cpp \ pksettings.cpp \ pmipkg.cpp \ packagelistitem.cpp \ packagelist.cpp \ diff --git a/noncore/unsupported/oipkg/packagelistremote.cpp b/noncore/unsupported/oipkg/packagelistremote.cpp index 1ec7292..3c6ede7 100644 --- a/noncore/unsupported/oipkg/packagelistremote.cpp +++ b/noncore/unsupported/oipkg/packagelistremote.cpp @@ -38,10 +38,10 @@ void PackageListRemote::update() QString server="http://ipkgfind.handhelds.org/"; cmd += " \""+server+"/packages.phtml"; cmd += "?format=pda&searchtype=package§ion="; cmd += "&query="+searchString; cmd += "\""; - pvDebug(2,"search :"+cmd); + pvDebug(4,"search :"+cmd); r = system(cmd.latin1()); readFileEntries( redirect ); } diff --git a/noncore/unsupported/oipkg/pksettings.cpp b/noncore/unsupported/oipkg/pksettings.cpp index 7e2ef10..24c7beb 100644 --- a/noncore/unsupported/oipkg/pksettings.cpp +++ b/noncore/unsupported/oipkg/pksettings.cpp @@ -55,12 +55,13 @@ PackageManagerSettings::PackageManagerSettings( QWidget* parent, const char* na serverurlDic.setAutoDelete(TRUE); destinationname->setEnabled(FALSE); destinationurl->setEnabled(FALSE); destinationurlDic.setAutoDelete(TRUE); readSettings(); activeLinkDestination->hide(); + serverChanged = false; } PackageManagerSettings::~PackageManagerSettings() { } @@ -116,13 +117,13 @@ void PackageManagerSettings::editServer(int i) } servername->setText( servers->text(i) ); serverurl->setText( *serverurlDic[i] ); editedserver = i; - + serverChanged = true; connect( servername, SIGNAL(textChanged(const QString&)), this, SLOT(serverNameChanged(const QString&)) ); connect( serverurl, SIGNAL(textChanged(const QString&)), this, SLOT(serverUrlChanged(const QString&)) ); changed = true; } @@ -131,14 +132,15 @@ void PackageManagerSettings::editDestination(int i) if ( destinationname->isEnabled() ) { disconnect( destinationname, SIGNAL(textChanged(const QString&)), this, SLOT(destNameChanged(const QString&)) ); disconnect( destinationurl, SIGNAL(textChanged(const QString&)), this, SLOT(destUrlChanged(const QString&)) ); } else { destinationname->setEnabled(TRUE); destinationurl->setEnabled(TRUE); - createLinksButton->setEnabled(TRUE); - removeLinksButton->setEnabled(TRUE); + //since it does not work anyway +// createLinksButton->setEnabled(TRUE); +// removeLinksButton->setEnabled(TRUE); } destinationname->setText( destinations->text(i) ); destinationurl->setText( *destinationurlDic[i] ); editeddestination = i; @@ -181,15 +183,15 @@ void PackageManagerSettings::removeDestination() 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; + serverChanged = true; } void PackageManagerSettings::destNameChanged(const QString& t) { disconnect( destinations, SIGNAL(highlighted(int)), this, SLOT(editDestination(int)) ); destinations->changeItem( t, editeddestination ); @@ -200,12 +202,13 @@ void PackageManagerSettings::destNameChanged(const QString& t) } void PackageManagerSettings::serverUrlChanged(const QString& t) { serverurlDic.replace(editedserver, new QString(t)); changed = true; + serverChanged = true; } void PackageManagerSettings::destUrlChanged(const QString& t) { destinationurlDic.replace(editeddestination, new QString(t)); changed = true; diff --git a/noncore/unsupported/oipkg/pksettings.h b/noncore/unsupported/oipkg/pksettings.h index 1632d4a..dcc1e3a 100644 --- a/noncore/unsupported/oipkg/pksettings.h +++ b/noncore/unsupported/oipkg/pksettings.h @@ -61,12 +61,13 @@ private: int ipkg_old; int editedserver; int editeddestination; int currentSetting; int installationSettingsCount; bool changed; + bool serverChanged; bool readIpkgConfig(const QString&); void writeIpkgConfig(const QString&); void writeSettings(); void readSettings(); }; diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index be9d6da..fd8279b 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp @@ -54,19 +54,19 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest ) cmd += " -dest "+settings->getDestinationName(); else cmd += " -dest "+ dest; cmd += " -force-defaults "; - if (_force_depends) + if (installDialog->_force_depends) { - if (_force_depends->isChecked()) + if (installDialog->_force_depends->isChecked()) cmd += " -force-depends "; - if (_force_reinstall->isChecked()) + if (installDialog->_force_reinstall->isChecked()) cmd += " -force-reinstall "; - if (_force_remove->isChecked()) + if (installDialog->_force_remove->isChecked()) cmd += " -force-removal-of-essential-packages "; } out( "<hr><br>Starting to "+ args+"<br>\n"); cmd += args; int r = 0; @@ -170,26 +170,23 @@ void PmIpkg::processLinkDir( QString file, QString dest ) if ( fileInfo.isDir() ) { pvDebug(4, "process dir "+file); QDir destDir( destFile ); if (linkOpp==createLink) destDir.mkdir( destFile, true ); QDir d( file ); - d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); +// d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); const QFileInfoList *list = d.entryInfoList(); QFileInfoListIterator it( *list ); QFileInfo *fi; + qDebug( "while %i",list->count()); while ( (fi=it.current()) ) { + pvDebug(4, "processLinkDir "+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()); if( linkOpp==createLink ) @@ -198,16 +195,18 @@ void PmIpkg::processLinkDir( QString file, QString dest ) 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() ) + { + pvDebug(4,"removing "+destFile+" no "+file); unlink( linkFile ); + } } } } void PmIpkg::loadList( PackageList pl ) { @@ -220,79 +219,45 @@ void PmIpkg::loadList( PackageList pl ) if ( pack->toRemove() ) to_remove.append( pack ); } } } -void PmIpkg::commit( PackageList pl ) +void PmIpkg::commit() { int sizecount = 0; -// QString rem="<b>"+tr("To remove:")+"</b><br>\n"; -// QString inst="<b>"+tr("To install:")+"</b><br>\n"; - loadList(pl); for (uint i=0; i < to_remove.count(); i++) sizecount += 1; for (uint i=0; i < to_install.count(); i++) sizecount += to_install.at(i)->size().toInt(); runwindow->progress->setTotalSteps(sizecount); startDialog(); } void PmIpkg::startDialog() { - installDialog = new QDialog(0,0,true); - QGridLayout *RunWindowLayout = new QGridLayout( installDialog ); - RunWindowLayout->setSpacing( 2 ); - RunWindowLayout->setMargin( 2 ); - - 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() ) - { - 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() ) - { - toInstallItem->insertItem( new PackageListItem(plv, it,settings) ); - } - - QGroupBox *GroupBox1 = new QGroupBox( installDialog, "Ipkg" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)3, GroupBox1->sizePolicy().mayShrinkVertically() ) ); - 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 ); - _force_depends->setChecked(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 ); + installDialog = new InstallDialog(settings,0,0,true); + QCheckListItem *toRemoveItem; + toRemoveItem= new QCheckListItem( installDialog->ListViewPackages, QObject::tr("To remove") ); + toRemoveItem->setOpen( true ); + for (Package *it=to_remove.first(); it != 0; it=to_remove.next() ) + { + toRemoveItem->insertItem( new PackageListItem(installDialog->ListViewPackages, it,settings) ); + } + QCheckListItem *toInstallItem; + toInstallItem = new QCheckListItem( installDialog->ListViewPackages, QObject::tr("To install") ); + toInstallItem->setOpen( true ); + for (Package *it=to_install.first(); it != 0; it=to_install.next() ) + { + toInstallItem->insertItem( new PackageListItem(installDialog->ListViewPackages, it,settings) ); + } installDialog->showMaximized(); if ( installDialog->exec() ) doIt(); installDialog->close(); out(tr("<b>All done.</b>")); + to_install.clear(); } void PmIpkg::doIt() { show( true ); remove(); @@ -354,30 +319,33 @@ void PmIpkg::install() out("<br><hr>"); }else{ out("<b>"+tr("Error while installing")+"</b><hr>"+it->name()); } } out("<br>"); + to_install.clear(); } void PmIpkg::createLinks( const QString &dest ) { pvDebug(2,"PmIpkg::createLinks "+dest); linkOpp=createLink; QString url = settings->getDestinationUrlByName( dest ); url = url==""?dest:url; - processLinkDir( "/", url ); + processLinkDir( "/opt", url ); + processLinkDir( "/usr", 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 ); + processLinkDir( "/opt", url ); + processLinkDir( "/usr", url ); } void PmIpkg::update() { show( false ); runIpkg( "update" ); diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h index 3799969..d2490e8 100644 --- a/noncore/unsupported/oipkg/pmipkg.h +++ b/noncore/unsupported/oipkg/pmipkg.h @@ -6,12 +6,13 @@ #include <qlist.h> #include <qstring.h> #include <qwidget.h> #include "pksettings.h" #include "runwindow.h" #include "packagelist.h" +#include "installdialog.h" #include "debug.h" #define createLink 0 #define removeLink 1 class Package; @@ -21,13 +22,13 @@ class PmIpkg : public QObject public: PmIpkg( PackageManagerSettings* , QWidget* p=0, const char * name=0, WFlags f=0 ); ~PmIpkg(); int linkOpp; void loadList( PackageList ); - void commit( PackageList ); + void commit(); void update(); void showButtons(bool b=true); void show( bool buttons=true ); public slots: void doIt(); @@ -36,19 +37,17 @@ public slots: 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: -// int sizecount; PackageManagerSettings* settings; RunWindow *runwindow; - QDialog *installDialog; + InstallDialog *installDialog; QList<Package> to_remove; QList<Package> to_install; -// bool runwindowopen; QString fileNameToInstall; QCheckBox *_force_reinstall; QCheckBox *_force_remove; QCheckBox *_force_depends; void startDialog(); void makeLinks(Package*); diff --git a/noncore/unsupported/oipkg/settings.h b/noncore/unsupported/oipkg/settings.h index bab7a4f..f01cb69 100644 --- a/noncore/unsupported/oipkg/settings.h +++ b/noncore/unsupported/oipkg/settings.h @@ -52,12 +52,13 @@ private: int ipkg_old; int editedserver; int editeddestination; int currentSetting; int installationSettingsCount; bool changed; + bool serverChanged; bool readIpkgConfig(const QString&); void writeIpkgConfig(const QString&); void writeSettings(); void readSettings(); }; |