summaryrefslogtreecommitdiff
authortille <tille>2002-05-12 09:32:43 (UTC)
committer tille <tille>2002-05-12 09:32:43 (UTC)
commit6f5ac2fbf69f019cc9d3a1522fc507c6b88d2bd6 (patch) (side-by-side diff)
treec584a13cb4b70f007435731b63c0f0c5e6d5460c
parent93eca505676b623407259bccf802e2069708dc36 (diff)
downloadopie-6f5ac2fbf69f019cc9d3a1522fc507c6b88d2bd6.zip
opie-6f5ac2fbf69f019cc9d3a1522fc507c6b88d2bd6.tar.gz
opie-6f5ac2fbf69f019cc9d3a1522fc507c6b88d2bd6.tar.bz2
fixed mem leak
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/TODO5
-rw-r--r--noncore/unsupported/oipkg/mainwindow.cpp3
-rw-r--r--noncore/unsupported/oipkg/packagelist.cpp6
-rw-r--r--noncore/unsupported/oipkg/packagelistdoclnk.cpp3
-rw-r--r--noncore/unsupported/oipkg/packagelistremote.cpp1
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp31
6 files changed, 28 insertions, 21 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO
index 6de54ec..b92cbb0 100644
--- a/noncore/unsupported/oipkg/TODO
+++ b/noncore/unsupported/oipkg/TODO
@@ -1,15 +1,12 @@
* Settings Class
-* tr() ;)
-* Dialog to display ipkg output live
* parse "to install" and "to remove" from status
* install local file dialog
* qcop
* error handling
* 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
-* mark packages from doclnk and ipkgfind installed if installed
-* show if different version is installed \ No newline at end of file
+* display new list after update \ No newline at end of file
diff --git a/noncore/unsupported/oipkg/mainwindow.cpp b/noncore/unsupported/oipkg/mainwindow.cpp
index 2fa91e3..19a1420 100644
--- a/noncore/unsupported/oipkg/mainwindow.cpp
+++ b/noncore/unsupported/oipkg/mainwindow.cpp
@@ -89,13 +89,14 @@ void MainWindow::makeMenu()
toolBar->setHorizontalStretchable( true );
menuBar->insertItem( tr( "Package" ), srvMenu );
menuBar->insertItem( tr( "View" ), viewMenu );
menuBar->insertItem( tr( "Settings" ), cfgMenu );
// menuBar->insertItem( tr( "Sections" ), sectMenu );
- QLabel *spacer = new QLabel( "", toolBar );
+ QLabel *spacer;
+// spacer = new QLabel( "", toolBar );
// spacer->setBackgroundColor( toolBar->backgroundColor() );
// toolBar->setStretchableWidget( spacer );
runAction = new QAction( tr( "Apply" ),
Resource::loadPixmap( "oipkg/install" ),
diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp
index 2fc4c41..fdd1163 100644
--- a/noncore/unsupported/oipkg/packagelist.cpp
+++ b/noncore/unsupported/oipkg/packagelist.cpp
@@ -5,18 +5,20 @@
#include <qfileinfo.h>
#include <qtextstream.h>
#include "debug.h"
static QDict<Package> *packageListAll;
+static int packageListAllRefCount = 0;
PackageList::PackageList()
: packageIter( packageList )
{
empty=true;
if (!packageListAll) packageListAll = new QDict<Package>();
+ packageListAllRefCount++;
sections << "All";
subSections.insert("All", new QStringList() );
QStringList *ss = subSections["All"];
*ss << "All";
aktSection = "All";
aktSubSection = "All";
@@ -28,12 +30,13 @@ PackageList::PackageList( PackageManagerSettings* s)
settings = s;
PackageList();
}
PackageList::~PackageList()
{
+ if (--packageListAllRefCount < 1 ) delete packageListAll;
}
/** Inserts a package into the list */
void PackageList::insertPackage( Package* pack )
{
if (!pack) return;
@@ -48,13 +51,13 @@ void PackageList::insertPackage( Package* pack )
pack = p;
} else {
QDict<Package> *packver = p->getOtherVersions();
// p->setName( pack->name()+"["+p->version()+"]" );
if (!packver)
{
- packver = new QDict<Package>;
+ packver = new QDict<Package>();
packver->insert( pack->name(), p );
p->setOtherVersions( packver );
}
pack->setName( pack->name()+"["+pack->version()+"]" );
pack->setOtherVersions( packver );
packver->insert( pack->name(), pack );
@@ -179,12 +182,13 @@ void PackageList::readFileEntries( QString filename, QString dest )
}
}
}else{
packEntry << line;
};
}
+ delete statusStream;
return;
}
void PackageList::setSettings( PackageManagerSettings *s )
{
settings = s;
diff --git a/noncore/unsupported/oipkg/packagelistdoclnk.cpp b/noncore/unsupported/oipkg/packagelistdoclnk.cpp
index 1d10adf..f31f742 100644
--- a/noncore/unsupported/oipkg/packagelistdoclnk.cpp
+++ b/noncore/unsupported/oipkg/packagelistdoclnk.cpp
@@ -26,19 +26,20 @@ PackageListDocLnk::PackageListDocLnk()
PackageListDocLnk::~PackageListDocLnk()
{
Config cfg( "oipkg", Config::User );
cfg.setGroup( "Common" );
cfg.writeEntry( "docLnkDir", docLnkDir );
+ delete doclnkset;
}
void PackageListDocLnk::update()
{
pvDebug(2,"PackageListDocLnk::update ");
QList<DocLnk> packlist = doclnkset->children();
for (DocLnk *pack =packlist.first(); pack != 0; pack=packlist.next() )
{
- insertPackage( new Package(pack->file(), settings) );
+ insertPackage( new Package(pack->file(), settings ) );
}
}
diff --git a/noncore/unsupported/oipkg/packagelistremote.cpp b/noncore/unsupported/oipkg/packagelistremote.cpp
index ee54fca..e37f256 100644
--- a/noncore/unsupported/oipkg/packagelistremote.cpp
+++ b/noncore/unsupported/oipkg/packagelistremote.cpp
@@ -26,12 +26,13 @@ void PackageListRemote::query(QString s)
searchString = s;
}
void PackageListRemote::update()
{
pvDebug(2,"PackageListRemote::update");
+ if (searchString.isEmpty()) return;
int r=0;
QString cmd = "wget";
QString redirect = "/tmp/oipkg.query";
// use file for output
cmd += " --output-document="+redirect;
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index f2852c3..6ef6d19 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -48,13 +48,13 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest )
cmd += " -dest "+settings->getDestinationName();
else
cmd += " -dest "+ dest;
cmd += " -force-defaults ";
- if (installDialog->_force_depends)
+ if (installDialog && installDialog->_force_depends)
{
if (installDialog->_force_depends->isChecked())
cmd += " -force-depends ";
if (installDialog->_force_reinstall->isChecked())
cmd += " -force-reinstall ";
if (installDialog->_force_remove->isChecked())
@@ -84,12 +84,13 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest )
//Configuring opie-oipkg...Done
if (lineStr.contains("Done"))
ret = true;
if (lineStr!=lineStrOld)
out(lineStr);
lineStrOld = lineStr;
+ qApp->processEvents();
}
pclose(fp);
}
//out( "Finished!");
pvDebug(2,QString(ret?"success\n":"failure\n"));
return ret;
@@ -153,12 +154,14 @@ void PmIpkg::processLinkDir( QString file, QString dest )
if (linkOpp==createLink) pvDebug( 4,"opp: createLink");
if (linkOpp==removeLink) pvDebug( 4,"opp: removeLink");
if ( dest == "???" || dest == "" ) return;
QString destFile = file;
file = dest+"/"+file;
if (file == dest) return;
+// if (linkOpp==createLink) out( "\ncreating links\n" );
+// if (linkOpp==removeLink) out( "\nremoving links\n" );
QFileInfo fileInfo( file );
if ( fileInfo.isDir() )
{
pvDebug(4, "process dir "+file);
QDir destDir( destFile );
if (linkOpp==createLink) destDir.mkdir( destFile, true );
@@ -262,24 +265,24 @@ void PmIpkg::remove()
if ( to_remove.at(i)->link() )fileList = getList( to_remove.at(i)->name(), to_remove.at(i)->dest() );
if ( runIpkg("remove " + to_remove.at(i)->installName(), to_remove.at(i)->dest() ))
{
runwindow->progress->setProgress( 1 );
linkOpp = removeLink;
to_remove.at(i)->processed();
+ if ( to_remove.at(i)->link() )
+ processFileList( fileList, to_remove.at(i)->dest() );
to_remove.take( i );
- out("\n\n");
+ out("\n");
}else{
out(tr("Error while removing")+to_remove.at(i)->name()+"\n");
+ if ( to_remove.at(i)->link() )
+ processFileList( fileList, to_remove.at(i)->dest() );
}
if ( to_remove.at(i)->link() )
- {
- out( "\nremoving links\n" );
- out( "for package "+to_remove.at(i)->name()+" in "+to_remove.at(i)->dest()+"\n" );
processFileList( fileList, to_remove.at(i)->dest() );
- }
if ( to_remove.at(i)->link() )delete fileList;
}
to_remove.clear();
out("\n");
}
@@ -287,27 +290,27 @@ void PmIpkg::remove()
void PmIpkg::install()
{
if ( to_install.count() == 0 ) return;
out(tr("Installing")+"\n"+tr("please wait")+"\n");
for (uint i=0; i < to_install.count(); i++)
{
+ qDebug("install loop %i of %i installing %s",i,to_install.count(),to_install.at(i)->installName().latin1()); //pvDebug
if ( runIpkg("install " + to_install.at(i)->installName(), to_install.at(i)->dest() ))
{
runwindow->progress->setProgress( to_install.at(i)->size().toInt() + runwindow->progress->progress());
to_install.at(i)->processed();
+ linkOpp = createLink;
+ if ( to_install.at(i)->link() )
+ makeLinks( to_install.at(i) );
to_install.take( i );
- out("\n\n");
+ out("\n");
}else{
out(tr("Error while installing")+to_install.at(i)->name()+"\n");
- }
- linkOpp = createLink;
- if ( to_install.at(i)->link() )
- {
- out( "\ncreating links\n" );
- out( "for package "+to_install.at(i)->name()+" in "+to_install.at(i)->dest()+"\n" );
- makeLinks( to_install.at(i) );
+ linkOpp = createLink;
+ if ( to_install.at(i)->link() )
+ makeLinks( to_install.at(i) );
}
}
out("\n");
to_install.clear();
}