-rw-r--r-- | noncore/unsupported/oipkg/TODO | 5 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/mainwindow.cpp | 3 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelist.cpp | 6 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistdoclnk.cpp | 3 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/packagelistremote.cpp | 1 | ||||
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 31 |
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 | |||
@@ -79,33 +79,34 @@ void MainWindow::makeMenu() | |||
79 | { | 79 | { |
80 | 80 | ||
81 | QPEToolBar *toolBar = new QPEToolBar( this ); | 81 | QPEToolBar *toolBar = new QPEToolBar( this ); |
82 | QPEMenuBar *menuBar = new QPEMenuBar( toolBar ); | 82 | QPEMenuBar *menuBar = new QPEMenuBar( toolBar ); |
83 | QPopupMenu *srvMenu = new QPopupMenu( menuBar ); | 83 | QPopupMenu *srvMenu = new QPopupMenu( menuBar ); |
84 | QPopupMenu *viewMenu = new QPopupMenu( menuBar ); | 84 | QPopupMenu *viewMenu = new QPopupMenu( menuBar ); |
85 | QPopupMenu *cfgMenu = new QPopupMenu( menuBar ); | 85 | QPopupMenu *cfgMenu = new QPopupMenu( menuBar ); |
86 | // QPopupMenu *sectMenu = new QPopupMenu( menuBar ); | 86 | // QPopupMenu *sectMenu = new QPopupMenu( menuBar ); |
87 | 87 | ||
88 | setToolBarsMovable( false ); | 88 | setToolBarsMovable( false ); |
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" ), |
102 | QString::null, 0, this, 0 ); | 103 | QString::null, 0, this, 0 ); |
103 | connect( runAction, SIGNAL( activated() ), | 104 | connect( runAction, SIGNAL( activated() ), |
104 | this, SLOT( runIpkg() ) ); | 105 | this, SLOT( runIpkg() ) ); |
105 | runAction->addTo( toolBar ); | 106 | runAction->addTo( toolBar ); |
106 | runAction->addTo( srvMenu ); | 107 | runAction->addTo( srvMenu ); |
107 | 108 | ||
108 | srvMenu->insertSeparator (); | 109 | srvMenu->insertSeparator (); |
109 | 110 | ||
110 | updateAction = new QAction( tr( "Update" ), | 111 | updateAction = new QAction( tr( "Update" ), |
111 | Resource::loadIconSet( "oipkg/update" ), | 112 | Resource::loadIconSet( "oipkg/update" ), |
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 | |||
@@ -1,70 +1,73 @@ | |||
1 | #include "packagelist.h" | 1 | #include "packagelist.h" |
2 | 2 | ||
3 | #include <assert.h> | 3 | #include <assert.h> |
4 | #include <qfile.h> | 4 | #include <qfile.h> |
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 | ||
10 | static QDict<Package> *packageListAll; | 10 | static QDict<Package> *packageListAll; |
11 | static int packageListAllRefCount = 0; | ||
11 | 12 | ||
12 | PackageList::PackageList() | 13 | PackageList::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"; |
23 | } | 25 | } |
24 | 26 | ||
25 | PackageList::PackageList( PackageManagerSettings* s) | 27 | PackageList::PackageList( PackageManagerSettings* s) |
26 | : packageIter( packageList ) | 28 | : packageIter( packageList ) |
27 | { | 29 | { |
28 | settings = s; | 30 | settings = s; |
29 | PackageList(); | 31 | PackageList(); |
30 | } | 32 | } |
31 | 33 | ||
32 | PackageList::~PackageList() | 34 | PackageList::~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 */ |
37 | void PackageList::insertPackage( Package* pack ) | 40 | void PackageList::insertPackage( Package* pack ) |
38 | { | 41 | { |
39 | if (!pack) return; | 42 | if (!pack) return; |
40 | Package* p = packageListAll->find( pack->name() ); | 43 | Package* p = packageListAll->find( pack->name() ); |
41 | if ( p ) | 44 | if ( p ) |
42 | { | 45 | { |
43 | if ( (p->version() == pack->version()) | 46 | if ( (p->version() == pack->version()) |
44 | && (p->dest() == pack->dest()) ) | 47 | && (p->dest() == pack->dest()) ) |
45 | { | 48 | { |
46 | p->copyValues( pack ); | 49 | p->copyValues( pack ); |
47 | delete pack; | 50 | delete 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 ); |
61 | packageListAll->insert( pack->name(), pack ); | 64 | packageListAll->insert( pack->name(), pack ); |
62 | packageList.insert( pack->name(), pack ); | 65 | packageList.insert( pack->name(), pack ); |
63 | origPackageList.insert( pack->name(), pack ); | 66 | origPackageList.insert( pack->name(), pack ); |
64 | } | 67 | } |
65 | }else{ | 68 | }else{ |
66 | packageListAll->insert( pack->name(), pack ); | 69 | packageListAll->insert( pack->name(), pack ); |
67 | packageList.insert( pack->name(), pack ); | 70 | packageList.insert( pack->name(), pack ); |
68 | origPackageList.insert( pack->name(), pack ); | 71 | origPackageList.insert( pack->name(), pack ); |
69 | }; | 72 | }; |
70 | empty=false; | 73 | empty=false; |
@@ -169,32 +172,33 @@ void PackageList::readFileEntries( QString filename, QString dest ) | |||
169 | { | 172 | { |
170 | //end of package | 173 | //end of package |
171 | if ( ! packEntry.isEmpty() ) | 174 | if ( ! packEntry.isEmpty() ) |
172 | { | 175 | { |
173 | Package *p = new Package( packEntry, settings ); | 176 | Package *p = new Package( packEntry, settings ); |
174 | p->setDest( dest ); | 177 | p->setDest( dest ); |
175 | if ( p ) | 178 | if ( p ) |
176 | { | 179 | { |
177 | insertPackage( p ); | 180 | insertPackage( p ); |
178 | packEntry.clear(); | 181 | packEntry.clear(); |
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 | ||
188 | void PackageList::setSettings( PackageManagerSettings *s ) | 192 | void PackageList::setSettings( PackageManagerSettings *s ) |
189 | { | 193 | { |
190 | settings = s; | 194 | settings = s; |
191 | } | 195 | } |
192 | 196 | ||
193 | Package* PackageList::getByName( QString n ) | 197 | Package* PackageList::getByName( QString n ) |
194 | { | 198 | { |
195 | origPackageList[n]; | 199 | origPackageList[n]; |
196 | } | 200 | } |
197 | 201 | ||
198 | void PackageList::clear() | 202 | void PackageList::clear() |
199 | { | 203 | { |
200 | origPackageList.clear(); | 204 | origPackageList.clear(); |
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 | |||
@@ -16,29 +16,30 @@ PackageListDocLnk::PackageListDocLnk(PackageManagerSettings* s) | |||
16 | 16 | ||
17 | PackageListDocLnk::PackageListDocLnk() | 17 | PackageListDocLnk::PackageListDocLnk() |
18 | : PackageList() | 18 | : PackageList() |
19 | { | 19 | { |
20 | Config cfg( "oipkg", Config::User ); | 20 | Config cfg( "oipkg", Config::User ); |
21 | cfg.setGroup( "Common" ); | 21 | cfg.setGroup( "Common" ); |
22 | docLnkDir = cfg.readEntry( "docLnkDir", "/root/" ); | 22 | docLnkDir = cfg.readEntry( "docLnkDir", "/root/" ); |
23 | pvDebug(2,"opening DocLnkSet "+docLnkDir); | 23 | pvDebug(2,"opening DocLnkSet "+docLnkDir); |
24 | doclnkset = new DocLnkSet(docLnkDir,"application/ipkg"); | 24 | doclnkset = new DocLnkSet(docLnkDir,"application/ipkg"); |
25 | } | 25 | } |
26 | 26 | ||
27 | PackageListDocLnk::~PackageListDocLnk() | 27 | PackageListDocLnk::~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 | ||
36 | void PackageListDocLnk::update() | 37 | void 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 | |||
@@ -16,32 +16,33 @@ PackageListRemote::PackageListRemote() | |||
16 | { | 16 | { |
17 | } | 17 | } |
18 | 18 | ||
19 | PackageListRemote::~PackageListRemote() | 19 | PackageListRemote::~PackageListRemote() |
20 | { | 20 | { |
21 | } | 21 | } |
22 | 22 | ||
23 | void PackageListRemote::query(QString s) | 23 | void PackageListRemote::query(QString s) |
24 | { | 24 | { |
25 | pvDebug(4,"set query "+s); | 25 | pvDebug(4,"set query "+s); |
26 | searchString = s; | 26 | searchString = s; |
27 | } | 27 | } |
28 | 28 | ||
29 | void PackageListRemote::update() | 29 | void 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; |
38 | //http://ipkgfind.handhelds.org/packages.phtml?format=pda&query=ipkg&searchtype=package§ion= | 39 | //http://ipkgfind.handhelds.org/packages.phtml?format=pda&query=ipkg&searchtype=package§ion= |
39 | QString server="http://ipkgfind.handhelds.org/"; | 40 | QString server="http://ipkgfind.handhelds.org/"; |
40 | cmd += " \""+server+"/packages.phtml"; | 41 | cmd += " \""+server+"/packages.phtml"; |
41 | cmd += "?format=pda&searchtype=package§ion="; | 42 | cmd += "?format=pda&searchtype=package§ion="; |
42 | cmd += "&query="+searchString; | 43 | cmd += "&query="+searchString; |
43 | cmd += "\""; | 44 | cmd += "\""; |
44 | 45 | ||
45 | pvDebug(4,"search :"+cmd); | 46 | pvDebug(4,"search :"+cmd); |
46 | r = system(cmd.latin1()); | 47 | r = system(cmd.latin1()); |
47 | readFileEntries( redirect ); | 48 | readFileEntries( 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 | |||
@@ -38,33 +38,33 @@ PmIpkg::~PmIpkg() | |||
38 | { | 38 | { |
39 | } | 39 | } |
40 | 40 | ||
41 | bool PmIpkg::runIpkg(const QString& args, const QString& dest ) | 41 | bool PmIpkg::runIpkg(const QString& args, const QString& dest ) |
42 | { | 42 | { |
43 | bool ret=false; | 43 | bool ret=false; |
44 | QDir::setCurrent("/tmp"); | 44 | QDir::setCurrent("/tmp"); |
45 | QString cmd = "/usr/bin/ipkg "; | 45 | QString cmd = "/usr/bin/ipkg "; |
46 | pvDebug( 3,"PmIpkg::runIpkg got dest="+dest); | 46 | pvDebug( 3,"PmIpkg::runIpkg got dest="+dest); |
47 | if ( dest == "" ) | 47 | if ( 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()) |
61 | cmd += " -force-removal-of-essential-packages "; | 61 | cmd += " -force-removal-of-essential-packages "; |
62 | } | 62 | } |
63 | 63 | ||
64 | out( "Starting to "+ args+"\n"); | 64 | out( "Starting to "+ args+"\n"); |
65 | cmd += args; | 65 | cmd += args; |
66 | out( "running:\n"+cmd+"\n" ); | 66 | out( "running:\n"+cmd+"\n" ); |
67 | pvDebug(2,"running:"+cmd); | 67 | pvDebug(2,"running:"+cmd); |
68 | qApp->processEvents(); | 68 | qApp->processEvents(); |
69 | FILE *fp; | 69 | FILE *fp; |
70 | char line[130]; | 70 | char line[130]; |
@@ -74,32 +74,33 @@ bool PmIpkg::runIpkg(const QString& args, const QString& dest ) | |||
74 | fp = popen( (const char *) cmd, "r"); | 74 | fp = popen( (const char *) cmd, "r"); |
75 | if ( !fp ) { | 75 | if ( !fp ) { |
76 | qDebug("Could not execute '" + cmd + "'! err=%d", fp); | 76 | qDebug("Could not execute '" + cmd + "'! err=%d", fp); |
77 | pclose(fp); | 77 | pclose(fp); |
78 | out("\nError while executing "+ cmd+"\n\n"); | 78 | out("\nError while executing "+ cmd+"\n\n"); |
79 | return false; | 79 | return false; |
80 | } else { | 80 | } else { |
81 | while ( fgets( line, sizeof line, fp)) { | 81 | while ( fgets( line, sizeof line, fp)) { |
82 | lineStr = line; | 82 | lineStr = line; |
83 | lineStr=lineStr.left(lineStr.length()-1); | 83 | lineStr=lineStr.left(lineStr.length()-1); |
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; |
96 | } | 97 | } |
97 | 98 | ||
98 | void PmIpkg::makeLinks(Package *pack) | 99 | void PmIpkg::makeLinks(Package *pack) |
99 | { | 100 | { |
100 | pvDebug( 2, "PmIpkg::makeLinks "+ pack->name()); | 101 | pvDebug( 2, "PmIpkg::makeLinks "+ pack->name()); |
101 | linkPackage( pack->name(), pack->dest() ); | 102 | linkPackage( pack->name(), pack->dest() ); |
102 | } | 103 | } |
103 | 104 | ||
104 | QStringList* PmIpkg::getList( QString packFileName, QString d ) | 105 | QStringList* PmIpkg::getList( QString packFileName, QString d ) |
105 | { | 106 | { |
@@ -143,32 +144,34 @@ void PmIpkg::processFileList( QStringList *fileList, QString d ) | |||
143 | QString dest = settings->getDestinationUrlByName( d ); | 144 | QString dest = settings->getDestinationUrlByName( d ); |
144 | dest = dest==""?d:dest; | 145 | dest = dest==""?d:dest; |
145 | processLinkDir( (*fileList)[i], dest ); | 146 | processLinkDir( (*fileList)[i], dest ); |
146 | } | 147 | } |
147 | } | 148 | } |
148 | 149 | ||
149 | 150 | ||
150 | void PmIpkg::processLinkDir( QString file, QString dest ) | 151 | void PmIpkg::processLinkDir( QString file, QString dest ) |
151 | { | 152 | { |
152 | pvDebug( 4,"PmIpkg::processLinkDir "+file+" to "+ dest); | 153 | pvDebug( 4,"PmIpkg::processLinkDir "+file+" to "+ 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 ); |
165 | QDir d( file ); | 168 | QDir d( file ); |
166 | // d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); | 169 | // d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); |
167 | const QFileInfoList *list = d.entryInfoList(); | 170 | const QFileInfoList *list = d.entryInfoList(); |
168 | QFileInfoListIterator it( *list ); | 171 | QFileInfoListIterator it( *list ); |
169 | QFileInfo *fi; | 172 | QFileInfo *fi; |
170 | while ( (fi=it.current()) ) | 173 | while ( (fi=it.current()) ) |
171 | { | 174 | { |
172 | pvDebug(4, "processLinkDir "+fi->absFilePath()); | 175 | pvDebug(4, "processLinkDir "+fi->absFilePath()); |
173 | processLinkDir( fi->absFilePath(), dest ); | 176 | processLinkDir( fi->absFilePath(), dest ); |
174 | ++it; | 177 | ++it; |
@@ -252,72 +255,72 @@ void PmIpkg::doIt() | |||
252 | 255 | ||
253 | void PmIpkg::remove() | 256 | void PmIpkg::remove() |
254 | { | 257 | { |
255 | if ( to_remove.count() == 0 ) return; | 258 | if ( to_remove.count() == 0 ) return; |
256 | 259 | ||
257 | out(tr("Removing")+"\n"+tr("please wait")+"\n\n"); | 260 | out(tr("Removing")+"\n"+tr("please wait")+"\n\n"); |
258 | 261 | ||
259 | QStringList *fileList; | 262 | QStringList *fileList; |
260 | for (uint i=0; i < to_remove.count(); i++) | 263 | for (uint i=0; i < to_remove.count(); i++) |
261 | { | 264 | { |
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 | ||
286 | 289 | ||
287 | void PmIpkg::install() | 290 | void 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 | ||
314 | void PmIpkg::createLinks( const QString &dest ) | 317 | void PmIpkg::createLinks( const QString &dest ) |
315 | { | 318 | { |
316 | pvDebug(2,"PmIpkg::createLinks "+dest); | 319 | pvDebug(2,"PmIpkg::createLinks "+dest); |
317 | linkOpp=createLink; | 320 | linkOpp=createLink; |
318 | QString url = settings->getDestinationUrlByName( dest ); | 321 | QString url = settings->getDestinationUrlByName( dest ); |
319 | url = url==""?dest:url; | 322 | url = url==""?dest:url; |
320 | processLinkDir( "/opt", url ); | 323 | processLinkDir( "/opt", url ); |
321 | processLinkDir( "/usr", url ); | 324 | processLinkDir( "/usr", url ); |
322 | } | 325 | } |
323 | 326 | ||