summaryrefslogtreecommitdiff
authortille <tille>2002-04-23 22:41:02 (UTC)
committer tille <tille>2002-04-23 22:41:02 (UTC)
commitf90935204b16126b40d4c562b26e37148ca03536 (patch) (side-by-side diff)
tree40a3e25d9e5078a3871ae7ba5b1fb86245ead187
parentab7037fb8c10cc2ee37a3728caab7d4da4cdc1b3 (diff)
downloadopie-f90935204b16126b40d4c562b26e37148ca03536.zip
opie-f90935204b16126b40d4c562b26e37148ca03536.tar.gz
opie-f90935204b16126b40d4c562b26e37148ca03536.tar.bz2
fixes: update and link creation
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/TODO6
-rw-r--r--noncore/unsupported/oipkg/main.cpp4
-rw-r--r--noncore/unsupported/oipkg/mainwindow.cpp26
-rw-r--r--noncore/unsupported/oipkg/mainwindow.h2
-rw-r--r--noncore/unsupported/oipkg/oipkg.pro4
-rw-r--r--noncore/unsupported/oipkg/package.cpp2
-rw-r--r--noncore/unsupported/oipkg/packagelist.cpp7
-rw-r--r--noncore/unsupported/oipkg/packagelist.h2
-rw-r--r--noncore/unsupported/oipkg/pksettingsbase.ui8
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp178
-rw-r--r--noncore/unsupported/oipkg/pmipkg.h18
-rw-r--r--noncore/unsupported/oipkg/runwindow.ui4
12 files changed, 157 insertions, 104 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO
index 714baa4..d81e873 100644
--- a/noncore/unsupported/oipkg/TODO
+++ b/noncore/unsupported/oipkg/TODO
@@ -1,8 +1,10 @@
* search
-* parse "to install" and "to remove" from status
* Settings Class
+* make oipkg determine dest of "to remove" apps
+* tr() ;)
* Dialog to display ipkg output live
+* parse "to install" and "to remove" from status
* install local file
-* make oipkg determine dest of to remove apps
+* install to dest with click on packet
* error handling
* manage links
diff --git a/noncore/unsupported/oipkg/main.cpp b/noncore/unsupported/oipkg/main.cpp
index 264fd55..4af59b0 100644
--- a/noncore/unsupported/oipkg/main.cpp
+++ b/noncore/unsupported/oipkg/main.cpp
@@ -4,14 +4,14 @@
#include <qpe/qpeapplication.h>
#include <qstring.h>
int debugLevel;
int main( int argc, char ** argv )
{
- debugLevel = 1;
- if (argc > 2)
+ debugLevel = 2;
+ if (argc > 0)
{
debugLevel = QString ( argv[1] ).toInt();
}
QPEApplication a( argc, argv );
MainWindow mw;
a.showMainDocumentWidget( &mw );
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp
index b485a03..cb2b4cd 100644
--- a/noncore/unsupported/oipkg/mainwindow.cpp
+++ b/noncore/unsupported/oipkg/mainwindow.cpp
@@ -48,13 +48,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
this, SLOT( setCurrent( QListViewItem* ) ) );
settings = new PackageManagerSettings(this,0,TRUE);
ipkg = new PmIpkg( settings, this );
packageList.setSettings( settings );
- newList();
+ getList();
setSections();
setSubSections();
displayList();
}
void MainWindow::makeMenu()
@@ -63,12 +63,19 @@ void MainWindow::makeMenu()
QPEToolBar *toolBar = new QPEToolBar( this );
QPEMenuBar *menuBar = new QPEMenuBar( toolBar );
QPopupMenu *srvMenu = new QPopupMenu( menuBar );
QPopupMenu *cfgMenu = new QPopupMenu( menuBar );
// QPopupMenu *sectMenu = new QPopupMenu( menuBar );
+//#define TOOLBAR
+#ifdef TOOLBAR
+ QPEToolBar *secBar = new QPEToolBar( this );
+ QComboBox *sections = new QComboBox( false, this );
+ secBar->addTo( sections );
+#endif
+
contextMenu = new QPopupMenu( this );
setToolBarsMovable( false );
toolBar->setHorizontalStretchable( true );
menuBar->insertItem( tr( "Package" ), srvMenu );
menuBar->insertItem( tr( "Settings" ), cfgMenu );
@@ -131,25 +138,26 @@ MainWindow::~MainWindow()
{
}
void MainWindow::runIpkg()
{
ipkg->commit( packageList );
- ipkg->runIpkg("update");
- packageList.update();
+ updateList();
}
void MainWindow::updateList()
{
- ipkg->runIpkg("update");
- packageList.update();
+ // todo: packageList.clear();
+ ipkg->update();
+ getList();
}
-void MainWindow::newList()
+void MainWindow::getList()
{
packageList.update();
+ displayList();
}
void MainWindow::filterList()
{
packageList.filterPackages();
}
@@ -214,23 +222,23 @@ void MainWindow::setSubSections()
}
void MainWindow::showSettings()
{
if ( settings->showDialog( 0 ) )
- newList();
+ getList();
}
void MainWindow::showSettingsSrv()
{
if ( settings->showDialog( 1 ) )
- newList();
+ getList();
}
void MainWindow::showSettingsDst()
{
if ( settings->showDialog( 2 ) )
- newList();
+ getList();
}
void MainWindow::showDetails()
{
if ( activePackage ) return;
diff --git a/noncore/unsupported/oipkg/mainwindow.h b/noncore/unsupported/oipkg/mainwindow.h
index 77604fd..95dcc90 100644
--- a/noncore/unsupported/oipkg/mainwindow.h
+++ b/noncore/unsupported/oipkg/mainwindow.h
@@ -25,13 +25,13 @@ public:
protected:
PackageWindow *table;
protected slots:
void runIpkg();
- void newList();
+ void getList();
void updateList();
void filterList();
void displayList();
void subSectionChanged();
void sectionChanged();
void showSettings();
diff --git a/noncore/unsupported/oipkg/oipkg.pro b/noncore/unsupported/oipkg/oipkg.pro
index 04230f5..c61af0f 100644
--- a/noncore/unsupported/oipkg/oipkg.pro
+++ b/noncore/unsupported/oipkg/oipkg.pro
@@ -1,10 +1,10 @@
DESTDIR = $(OPIEDIR)/bin
TEMPLATE = app
-CONFIG = qt warn_on release
-#CONFIG = qt warn_on debug
+#CONFIG = qt warn_on release
+CONFIG = qt warn_on debug
HEADERS = mainwindow.h \
pksettings.h \
pmipkg.h \
packagelistitem.h \
packagelist.h \
package.h
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp
index 82ea1c8..e317308 100644
--- a/noncore/unsupported/oipkg/package.cpp
+++ b/noncore/unsupported/oipkg/package.cpp
@@ -153,13 +153,13 @@ bool Package::toInstall()
if ( _toProcess && !installed() ) return true;
else return false;
}
void Package::toggleProcess()
{
- _toProcess = !(_toProcess);
+ _toProcess = ! _toProcess;
}
void Package::copyValues( Package* pack )
{
diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp
index d72ef75..5f6934d 100644
--- a/noncore/unsupported/oipkg/packagelist.cpp
+++ b/noncore/unsupported/oipkg/packagelist.cpp
@@ -202,14 +202,15 @@ void PackageList::update()
parseStatus();
pvDebug( 3, "parseList");
parseList();
pvDebug( 3, "finished parsing");
}
-
-
-/** No descriptions */
void PackageList::setSettings( PackageManagerSettings *s )
{
settings = s;
}
+Package* PackageList::getByName( QString n )
+{
+ origPackageList[n];
+}
diff --git a/noncore/unsupported/oipkg/packagelist.h b/noncore/unsupported/oipkg/packagelist.h
index eda8d22..68b89f0 100644
--- a/noncore/unsupported/oipkg/packagelist.h
+++ b/noncore/unsupported/oipkg/packagelist.h
@@ -23,12 +23,14 @@ public:
Package* first();
QStringList getSections();
QStringList getSubSections();
void setSettings( PackageManagerSettings* );
void filterPackages();
+ /** No descriptions */
+ Package* getByName( QString );
public slots:
void setSection(QString);
void setSubSection(QString);
void update();
diff --git a/noncore/unsupported/oipkg/pksettingsbase.ui b/noncore/unsupported/oipkg/pksettingsbase.ui
index 2efd2f3..ea507a8 100644
--- a/noncore/unsupported/oipkg/pksettingsbase.ui
+++ b/noncore/unsupported/oipkg/pksettingsbase.ui
@@ -8,13 +8,13 @@
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>357</width>
+ <width>353</width>
<height>454</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Package Servers</string>
@@ -295,13 +295,13 @@
<property stdset="1">
<name>name</name>
<cstring>newsetting</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>true</bool>
+ <bool>false</bool>
</property>
<property stdset="1">
<name>text</name>
<string>New</string>
</property>
<property stdset="1">
@@ -314,13 +314,13 @@
<property stdset="1">
<name>name</name>
<cstring>renamesetting</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>true</bool>
+ <bool>false</bool>
</property>
<property stdset="1">
<name>text</name>
<string>Rename</string>
</property>
</widget>
@@ -329,13 +329,13 @@
<property stdset="1">
<name>name</name>
<cstring>removesetting</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>true</bool>
+ <bool>false</bool>
</property>
<property stdset="1">
<name>text</name>
<string>Remove</string>
</property>
<property stdset="1">
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index 528365e..681f2d4 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -21,163 +21,199 @@
#include "mainwindow.h"
#include "runwindow.h"
PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f )
- : RunWindow ( p, name, f )
- // : QObject ( p )
+// : RunWindow ( p, name, f )
+ : QObject ( p )
{
settings = s;
-
+ runwindow = new RunWindow ( p, name, f );
linkDest = new QCopChannel( "QPE/MakeLinks", this );
connect( linkDest, SIGNAL(received(const QCString &, const QByteArray &)),
- this, SLOT(linkDestination( const QString &, const QString&)) );
+ this, SLOT(linkDestination( const QString &, const QByteArray&)) );
}
PmIpkg::~PmIpkg()
{
}
+//#define PROC
+#define SYSTEM
int PmIpkg::runIpkg(const QString& args)
{
- pvDebug(4,"PmIpkg::runIpkg");
+ pvDebug(2,"PmIpkg::runIpkg "+args);
+#ifdef PROC
+ QStringList cmd = "/usr/bin/ipkg ";
+#endif
+#ifdef SYSTEM
QString cmd = "/usr/bin/ipkg ";
+#endif
cmd += " -dest "+settings->getDestinationName();
- cmd += " -force-defaults ";
-
- outPut->setText( outPut->text()+"<br><br>Starting to "+ args+"<br>\n");
- QString redirect = "/tmp/ipkg.pipe";
- cmd += args+" | tee "+redirect+" 2>&1&";
-
- outPut->setText( outPut->text() + "running:<br>\n"+cmd+"<br>\n" );
- pvDebug( 0, "Execute >"+cmd+"<" );
- int r = system(cmd.latin1());
+ cmd += " -force-defaults ";
+
+ out( "Starting to "+ args+"<br>\n");
+ cmd += args;
+ out( "running:<br>\n"+cmd+"<br>\n" );
+ int r = 0;
+#ifdef PROC
+ QString o = "start";
+ Process ipkg( cmd );
+ QString description;
+ ipkg.exec("",o);
+ out( o );
+#endif
+#ifdef SYSTEM
+ QString redirect = "/tmp/oipkg.pipe";
+ cmd += " | tee "+redirect+" 2>&1";
+ r = system(cmd.latin1());
QFile f( redirect );
- if ( f.open(IO_ReadOnly) ) {
+ while ( ! f.open(IO_ReadOnly) ) {};
+ // if ( f.open(IO_ReadOnly) ) {};
+ {
QTextStream t( &f );
QString fp;
while ( !t.eof() )
- {
- outPut->setText( outPut->text() + t.readLine() +"\n<br>" );
- }
- }
- f.close();
- outPut->setText( outPut->text() + "\n<br><br>Finished!");
- outPut->setContentsPos(0,outPut->contentsHeight());
-
- if ( r == 0 )
{
- QString param = args.left( args.find(" ") );
- QString file = args.right( args.length() - args.find(" ") );
- if ( param == "install" && settings->createLinks() )
- makeLinks( file);
+ out( t.readLine() +"<br>" );
}
+ }
+ f.close();
+ out( "Finished!<br>");
+#endif
return r;
}
void PmIpkg::makeLinks(QString file)
{
- outPut->setText( outPut->text() + "<br>creating links<br>" );
+ out( "<br>creating links<br>" );
QString dest = settings->getDestinationUrl();
- system(("ipkg -d "+dest+" files "+file+"> /tmp/oipkg.pipe").latin1());
+ out("for package "+file+" in "+dest+"<br>");
+ system(("ipkg -d "+dest+" files "+file+"> /tmp/oipkg.pipe 2>&1").latin1());
QFile f( "/tmp/oipkg.pipe" );
- if ( ! f.open(IO_ReadOnly) )return;
+ while ( ! f.open(IO_ReadOnly) ) {};
QTextStream t( &f );
QString fp;
while ( !t.eof() )
{
- processLinkDir( t.readLine(), dest );
+ fp = t.readLine();
+ processLinkDir( fp, dest );
}
f.close();
}
void PmIpkg::processLinkDir( QString file, QString dest )
{
QString destFile = file.right( file.length() - dest.length() );
QFileInfo fileInfo( file );
- if ( fileInfo.isFile() )
- {
- const char *instFile = strdup( (file).ascii() );
- const char *linkFile = strdup( (destFile).ascii());
- outPut->setText( outPut->text() + "linking: "+file+" -> "+destFile );
- symlink( instFile, linkFile );
- }
if ( fileInfo.isDir() )
+ {
+ QDir destDir( destFile );
+ destDir.mkdir( destFile, true );
+ QDir d( file );
+ d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
+ const QFileInfoList *list = d.entryInfoList();
+ QFileInfoListIterator it( *list );
+ QFileInfo *fi;
+ while ( (fi=it.current()) )
{
- QDir destDir( destFile );
- destDir.mkdir( destFile, true );
- QDir d( file );
- d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
-
- const QFileInfoList *list = d.entryInfoList();
- QFileInfoListIterator it( *list );
- QFileInfo *fi;
- while ( (fi=it.current()) ) {
- processLinkDir( fi->absFilePath(), dest );
- ++it;
- }
+ out( "<b>"+fi->absFilePath()+"</b>" );
+ processLinkDir( fi->absFilePath(), dest );
+ ++it;
}
+ } 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 );
+ }
}
void PmIpkg::commit( PackageList pl )
{
- showMaximized();
- exec();
- outPut->setText( "<b>Starting...</b><br>\n");
+ runwindow->showMaximized();
+// exec();
+ runwindow->outPut->setText("");
+ out( "<h1>Starting...</h1><br>\n");
QStringList to_remove, to_install;
- QString rem="To remove:<br>\n";
- QString inst="To install:<br>\n";;
+ QString rem="<b>To remove:</b><br>\n";
+ QString inst="<b>To install:</b><br>\n";;
for( Package *pack = pl.first();pack ; (pack = pl.next()) )
{
if ( pack && (pack->name() != "") && pack)
{
if ( pack->toInstall() )
{
to_install.append( pack->name() );
- inst += pack->name()+"\n";
+ inst += pack->name()+"<br>";
}
if ( pack->toRemove() )
{
to_remove.append( pack->name() );
- rem += pack->name()+"\n";
+ rem += pack->name()+"<br>";
}
}
}
- outPut->setText( outPut->text()+inst+rem);
+ out("<p>"+inst+"</p>"+"<p>"+rem+"</p>");
bool ok=TRUE;
qDebug("to remove=%i; to install=%i",to_remove.count(),to_install.count());
int jobs = to_remove.count()+to_install.count();
if ( jobs < 1 ) return;
if ( to_remove.count() )
for (QStringList::ConstIterator it=to_remove.begin(); it!=to_remove.end(); ++it)
if ( runIpkg("remove " + *it) != 0 ) ok = false;
if ( to_install.count() )
for (QStringList::ConstIterator it=to_install.begin(); it!=to_install.end(); ++it)
- if ( runIpkg("install " + *it) != 0 ) ok = false;
+ {
+ if ( runIpkg("install " + *it) == 0 )
+ {
+ if ( settings->createLinks() )
+ makeLinks( *it );
+ }else{
+ ok = false;
+ }
+ }
// ##### 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;
}
-void PmIpkg::linkDestination( QString src, QString dest )
+void PmIpkg::linkDestination( const QString msg, const QByteArray dest )
+// add 3rd package parameter
{
- 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;
- }
+ 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;
+// }
+}
+
+void PmIpkg::update()
+{
+ runwindow->showMaximized();
+ runIpkg( "update" );
+}
+
+void PmIpkg::out( QString o )
+{
+ runwindow->outPut->setText( runwindow->outPut->text()+o );
+ runwindow->outPut->setContentsPos(0,runwindow->outPut->contentsHeight());
}
diff --git a/noncore/unsupported/oipkg/pmipkg.h b/noncore/unsupported/oipkg/pmipkg.h
index 98efaa6..e6486ff 100644
--- a/noncore/unsupported/oipkg/pmipkg.h
+++ b/noncore/unsupported/oipkg/pmipkg.h
@@ -7,36 +7,40 @@
#include <qwidget.h>
#include "pksettings.h"
#include "runwindow.h"
#include "packagelist.h"
#include "debug.h"
+//#define DIA
#include <qpe/qcopenvelope_qws.h>
-class PmIpkg : public RunWindow
-//class PmIpkg : public QObject
+
+//class PmIpkg : public RunWindow
+class PmIpkg : public QObject
{
Q_OBJECT
public:
PmIpkg( PackageManagerSettings* , QWidget* p=0, const char * name=0, WFlags f=0 );
// PmIpkg( QObject*, PackageManagerSettings* );
~PmIpkg();
+ void commit( PackageList );
+ void update();
PackageList* getPackageList();
private:
PackageManagerSettings* settings;
+ RunWindow *runwindow;
QCopChannel *linkDest;
- void processLinkDir( QString, QString );
-
-public:
void makeLinks(QString);
+ void processLinkDir( QString, QString );
+
int runIpkg(const QString& args);
- void commit( PackageList );
+ void out( QString );
public slots:
- void linkDestination( QString, QString );
+ void linkDestination( const QString, const QByteArray );
};
#endif
diff --git a/noncore/unsupported/oipkg/runwindow.ui b/noncore/unsupported/oipkg/runwindow.ui
index 23f58cf..9113f2d 100644
--- a/noncore/unsupported/oipkg/runwindow.ui
+++ b/noncore/unsupported/oipkg/runwindow.ui
@@ -8,13 +8,13 @@
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>201</width>
+ <width>197</width>
<height>291</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>running...</string>
@@ -39,13 +39,13 @@
<property stdset="1">
<name>name</name>
<cstring>progress</cstring>
</property>
<property stdset="1">
<name>progress</name>
- <number>0</number>
+ <number>42</number>
</property>
</widget>
<widget row="1" column="0" >
<class>QTextView</class>
<property stdset="1">
<name>name</name>