summaryrefslogtreecommitdiff
authortille <tille>2002-05-12 09:32:43 (UTC)
committer tille <tille>2002-05-12 09:32:43 (UTC)
commit6f5ac2fbf69f019cc9d3a1522fc507c6b88d2bd6 (patch) (unidiff)
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 @@
1* Settings Class 1* Settings Class
2* tr() ;)
3* Dialog to display ipkg output live
4* parse "to install" and "to remove" from status 2* parse "to install" and "to remove" from status
5* install local file dialog 3* install local file dialog
6* qcop 4* qcop
7* error handling 5* error handling
8* manage links 6* manage links
9* dependency checking 7* dependency checking
10* create dest if it does not exist 8* create dest if it does not exist
11* allow reinstalling 9* allow reinstalling
12* different types of filters and searches 10* different types of filters and searches
13 i.e. name, desc, files etc 11 i.e. name, desc, files etc
14* mark packages from doclnk and ipkgfind installed if installed 12* display new list after update \ No newline at end of file
15* show if different version is installed \ 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()
89 toolBar->setHorizontalStretchable( true ); 89 toolBar->setHorizontalStretchable( true );
90 menuBar->insertItem( tr( "Package" ), srvMenu ); 90 menuBar->insertItem( tr( "Package" ), srvMenu );
91 menuBar->insertItem( tr( "View" ), viewMenu ); 91 menuBar->insertItem( tr( "View" ), viewMenu );
92 menuBar->insertItem( tr( "Settings" ), cfgMenu ); 92 menuBar->insertItem( tr( "Settings" ), cfgMenu );
93 // menuBar->insertItem( tr( "Sections" ), sectMenu ); 93 // menuBar->insertItem( tr( "Sections" ), sectMenu );
94 94
95 QLabel *spacer = new QLabel( "", toolBar ); 95 QLabel *spacer;
96// spacer = new QLabel( "", toolBar );
96// spacer->setBackgroundColor( toolBar->backgroundColor() ); 97// spacer->setBackgroundColor( toolBar->backgroundColor() );
97// toolBar->setStretchableWidget( spacer ); 98// toolBar->setStretchableWidget( spacer );
98 99
99 100
100 runAction = new QAction( tr( "Apply" ), 101 runAction = new QAction( tr( "Apply" ),
101 Resource::loadPixmap( "oipkg/install" ), 102 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 @@
5#include <qfileinfo.h> 5#include <qfileinfo.h>
6#include <qtextstream.h> 6#include <qtextstream.h>
7 7
8#include "debug.h" 8#include "debug.h"
9 9
10static QDict<Package> *packageListAll; 10static QDict<Package> *packageListAll;
11static int packageListAllRefCount = 0;
11 12
12PackageList::PackageList() 13PackageList::PackageList()
13 : packageIter( packageList ) 14 : packageIter( packageList )
14{ 15{
15 empty=true; 16 empty=true;
16 if (!packageListAll) packageListAll = new QDict<Package>(); 17 if (!packageListAll) packageListAll = new QDict<Package>();
18 packageListAllRefCount++;
17 sections << "All"; 19 sections << "All";
18 subSections.insert("All", new QStringList() ); 20 subSections.insert("All", new QStringList() );
19 QStringList *ss = subSections["All"]; 21 QStringList *ss = subSections["All"];
20 *ss << "All"; 22 *ss << "All";
21 aktSection = "All"; 23 aktSection = "All";
22 aktSubSection = "All"; 24 aktSubSection = "All";
@@ -28,12 +30,13 @@ PackageList::PackageList( PackageManagerSettings* s)
28 settings = s; 30 settings = s;
29 PackageList(); 31 PackageList();
30} 32}
31 33
32PackageList::~PackageList() 34PackageList::~PackageList()
33{ 35{
36 if (--packageListAllRefCount < 1 ) delete packageListAll;
34} 37}
35 38
36/** Inserts a package into the list */ 39/** Inserts a package into the list */
37void PackageList::insertPackage( Package* pack ) 40void PackageList::insertPackage( Package* pack )
38{ 41{
39 if (!pack) return; 42 if (!pack) return;
@@ -48,13 +51,13 @@ void PackageList::insertPackage( Package* pack )
48 pack = p; 51 pack = p;
49 } else { 52 } else {
50 QDict<Package> *packver = p->getOtherVersions(); 53 QDict<Package> *packver = p->getOtherVersions();
51 // p->setName( pack->name()+"["+p->version()+"]" ); 54 // p->setName( pack->name()+"["+p->version()+"]" );
52 if (!packver) 55 if (!packver)
53 { 56 {
54 packver = new QDict<Package>; 57 packver = new QDict<Package>();
55 packver->insert( pack->name(), p ); 58 packver->insert( pack->name(), p );
56 p->setOtherVersions( packver ); 59 p->setOtherVersions( packver );
57 } 60 }
58 pack->setName( pack->name()+"["+pack->version()+"]" ); 61 pack->setName( pack->name()+"["+pack->version()+"]" );
59 pack->setOtherVersions( packver ); 62 pack->setOtherVersions( packver );
60 packver->insert( pack->name(), pack ); 63 packver->insert( pack->name(), pack );
@@ -179,12 +182,13 @@ void PackageList::readFileEntries( QString filename, QString dest )
179 } 182 }
180 } 183 }
181 }else{ 184 }else{
182 packEntry << line; 185 packEntry << line;
183 }; 186 };
184 } 187 }
188 delete statusStream;
185 return; 189 return;
186} 190}
187 191
188void PackageList::setSettings( PackageManagerSettings *s ) 192void PackageList::setSettings( PackageManagerSettings *s )
189{ 193{
190 settings = s; 194 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()
26 26
27PackageListDocLnk::~PackageListDocLnk() 27PackageListDocLnk::~PackageListDocLnk()
28{ 28{
29 Config cfg( "oipkg", Config::User ); 29 Config cfg( "oipkg", Config::User );
30 cfg.setGroup( "Common" ); 30 cfg.setGroup( "Common" );
31 cfg.writeEntry( "docLnkDir", docLnkDir ); 31 cfg.writeEntry( "docLnkDir", docLnkDir );
32 delete doclnkset;
32} 33}
33 34
34 35
35 36
36void PackageListDocLnk::update() 37void PackageListDocLnk::update()
37{ 38{
38 pvDebug(2,"PackageListDocLnk::update "); 39 pvDebug(2,"PackageListDocLnk::update ");
39 QList<DocLnk> packlist = doclnkset->children(); 40 QList<DocLnk> packlist = doclnkset->children();
40 for (DocLnk *pack =packlist.first(); pack != 0; pack=packlist.next() ) 41 for (DocLnk *pack =packlist.first(); pack != 0; pack=packlist.next() )
41 { 42 {
42 insertPackage( new Package(pack->file(), settings) ); 43 insertPackage( new Package(pack->file(), settings ) );
43 } 44 }
44} 45}
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)
26 searchString = s; 26 searchString = s;
27} 27}
28 28
29void PackageListRemote::update() 29void PackageListRemote::update()
30{ 30{
31 pvDebug(2,"PackageListRemote::update"); 31 pvDebug(2,"PackageListRemote::update");
32 if (searchString.isEmpty()) return;
32 int r=0; 33 int r=0;
33 QString cmd = "wget"; 34 QString cmd = "wget";
34 QString redirect = "/tmp/oipkg.query"; 35 QString redirect = "/tmp/oipkg.query";
35 36
36 // use file for output 37 // use file for output
37 cmd += " --output-document="+redirect; 38 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 )
48 cmd += " -dest "+settings->getDestinationName(); 48 cmd += " -dest "+settings->getDestinationName();
49 else 49 else
50 cmd += " -dest "+ dest; 50 cmd += " -dest "+ dest;
51 51
52 cmd += " -force-defaults "; 52 cmd += " -force-defaults ";
53 53
54 if (installDialog->_force_depends) 54 if (installDialog && installDialog->_force_depends)
55 { 55 {
56 if (installDialog->_force_depends->isChecked()) 56 if (installDialog->_force_depends->isChecked())
57 cmd += " -force-depends "; 57 cmd += " -force-depends ";
58 if (installDialog->_force_reinstall->isChecked()) 58 if (installDialog->_force_reinstall->isChecked())
59 cmd += " -force-reinstall "; 59 cmd += " -force-reinstall ";
60 if (installDialog->_force_remove->isChecked()) 60 if (installDialog->_force_remove->isChecked())
@@ -84,12 +84,13 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest )
84 //Configuring opie-oipkg...Done 84 //Configuring opie-oipkg...Done
85 if (lineStr.contains("Done")) 85 if (lineStr.contains("Done"))
86 ret = true; 86 ret = true;
87 if (lineStr!=lineStrOld) 87 if (lineStr!=lineStrOld)
88 out(lineStr); 88 out(lineStr);
89 lineStrOld = lineStr; 89 lineStrOld = lineStr;
90 qApp->processEvents();
90 } 91 }
91 pclose(fp); 92 pclose(fp);
92 } 93 }
93 //out( "Finished!"); 94 //out( "Finished!");
94 pvDebug(2,QString(ret?"success\n":"failure\n")); 95 pvDebug(2,QString(ret?"success\n":"failure\n"));
95 return ret; 96 return ret;
@@ -153,12 +154,14 @@ void PmIpkg::processLinkDir( QString file, QString dest )
153 if (linkOpp==createLink) pvDebug( 4,"opp: createLink"); 154 if (linkOpp==createLink) pvDebug( 4,"opp: createLink");
154 if (linkOpp==removeLink) pvDebug( 4,"opp: removeLink"); 155 if (linkOpp==removeLink) pvDebug( 4,"opp: removeLink");
155 if ( dest == "???" || dest == "" ) return; 156 if ( dest == "???" || dest == "" ) return;
156 QString destFile = file; 157 QString destFile = file;
157 file = dest+"/"+file; 158 file = dest+"/"+file;
158 if (file == dest) return; 159 if (file == dest) return;
160// if (linkOpp==createLink) out( "\ncreating links\n" );
161 // if (linkOpp==removeLink) out( "\nremoving links\n" );
159 QFileInfo fileInfo( file ); 162 QFileInfo fileInfo( file );
160 if ( fileInfo.isDir() ) 163 if ( fileInfo.isDir() )
161 { 164 {
162 pvDebug(4, "process dir "+file); 165 pvDebug(4, "process dir "+file);
163 QDir destDir( destFile ); 166 QDir destDir( destFile );
164 if (linkOpp==createLink) destDir.mkdir( destFile, true ); 167 if (linkOpp==createLink) destDir.mkdir( destFile, true );
@@ -262,24 +265,24 @@ void PmIpkg::remove()
262 if ( to_remove.at(i)->link() )fileList = getList( to_remove.at(i)->name(), to_remove.at(i)->dest() ); 265 if ( to_remove.at(i)->link() )fileList = getList( to_remove.at(i)->name(), to_remove.at(i)->dest() );
263 if ( runIpkg("remove " + to_remove.at(i)->installName(), to_remove.at(i)->dest() )) 266 if ( runIpkg("remove " + to_remove.at(i)->installName(), to_remove.at(i)->dest() ))
264 { 267 {
265 runwindow->progress->setProgress( 1 ); 268 runwindow->progress->setProgress( 1 );
266 linkOpp = removeLink; 269 linkOpp = removeLink;
267 to_remove.at(i)->processed(); 270 to_remove.at(i)->processed();
271 if ( to_remove.at(i)->link() )
272 processFileList( fileList, to_remove.at(i)->dest() );
268 to_remove.take( i ); 273 to_remove.take( i );
269 274
270 out("\n\n"); 275 out("\n");
271 }else{ 276 }else{
272 out(tr("Error while removing")+to_remove.at(i)->name()+"\n"); 277 out(tr("Error while removing")+to_remove.at(i)->name()+"\n");
278 if ( to_remove.at(i)->link() )
279 processFileList( fileList, to_remove.at(i)->dest() );
273 } 280 }
274 if ( to_remove.at(i)->link() ) 281 if ( to_remove.at(i)->link() )
275 {
276 out( "\nremoving links\n" );
277 out( "for package "+to_remove.at(i)->name()+" in "+to_remove.at(i)->dest()+"\n" );
278 processFileList( fileList, to_remove.at(i)->dest() ); 282 processFileList( fileList, to_remove.at(i)->dest() );
279 }
280 if ( to_remove.at(i)->link() )delete fileList; 283 if ( to_remove.at(i)->link() )delete fileList;
281 } 284 }
282 to_remove.clear(); 285 to_remove.clear();
283 out("\n"); 286 out("\n");
284} 287}
285 288
@@ -287,27 +290,27 @@ void PmIpkg::remove()
287void PmIpkg::install() 290void PmIpkg::install()
288{ 291{
289 if ( to_install.count() == 0 ) return; 292 if ( to_install.count() == 0 ) return;
290 out(tr("Installing")+"\n"+tr("please wait")+"\n"); 293 out(tr("Installing")+"\n"+tr("please wait")+"\n");
291 for (uint i=0; i < to_install.count(); i++) 294 for (uint i=0; i < to_install.count(); i++)
292 { 295 {
296 qDebug("install loop %i of %i installing %s",i,to_install.count(),to_install.at(i)->installName().latin1()); //pvDebug
293 if ( runIpkg("install " + to_install.at(i)->installName(), to_install.at(i)->dest() )) 297 if ( runIpkg("install " + to_install.at(i)->installName(), to_install.at(i)->dest() ))
294 { 298 {
295 runwindow->progress->setProgress( to_install.at(i)->size().toInt() + runwindow->progress->progress()); 299 runwindow->progress->setProgress( to_install.at(i)->size().toInt() + runwindow->progress->progress());
296 to_install.at(i)->processed(); 300 to_install.at(i)->processed();
301 linkOpp = createLink;
302 if ( to_install.at(i)->link() )
303 makeLinks( to_install.at(i) );
297 to_install.take( i ); 304 to_install.take( i );
298 out("\n\n"); 305 out("\n");
299 }else{ 306 }else{
300 out(tr("Error while installing")+to_install.at(i)->name()+"\n"); 307 out(tr("Error while installing")+to_install.at(i)->name()+"\n");
301 } 308 linkOpp = createLink;
302 linkOpp = createLink; 309 if ( to_install.at(i)->link() )
303 if ( to_install.at(i)->link() ) 310 makeLinks( to_install.at(i) );
304 {
305 out( "\ncreating links\n" );
306 out( "for package "+to_install.at(i)->name()+" in "+to_install.at(i)->dest()+"\n" );
307 makeLinks( to_install.at(i) );
308 } 311 }
309 } 312 }
310 out("\n"); 313 out("\n");
311 to_install.clear(); 314 to_install.clear();
312} 315}
313 316