Diffstat (limited to 'noncore/settings/packagemanager/oipkg.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/packagemanager/oipkg.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp index 3d2c621..417ee95 100644 --- a/noncore/settings/packagemanager/oipkg.cpp +++ b/noncore/settings/packagemanager/oipkg.cpp | |||
@@ -222,50 +222,58 @@ void OIpkg::setConfigItems( OConfItemList *configList ) | |||
222 | m_ipkgArgs.noaction = false; | 222 | m_ipkgArgs.noaction = false; |
223 | m_ipkgArgs.force_defaults = true; | 223 | m_ipkgArgs.force_defaults = true; |
224 | } | 224 | } |
225 | 225 | ||
226 | void OIpkg::saveSettings() | 226 | void OIpkg::saveSettings() |
227 | { | 227 | { |
228 | // Save Ipkg execution options to application configuration file | 228 | // Save Ipkg execution options to application configuration file |
229 | if ( m_config ) | 229 | if ( m_config ) |
230 | { | 230 | { |
231 | m_config->setGroup( "Ipkg" ); | 231 | m_config->setGroup( "Ipkg" ); |
232 | m_config->writeEntry( "ExecOptions", m_ipkgExecOptions ); | 232 | m_config->writeEntry( "ExecOptions", m_ipkgExecOptions ); |
233 | m_config->writeEntry( "Verbosity", m_ipkgExecVerbosity ); | 233 | m_config->writeEntry( "Verbosity", m_ipkgExecVerbosity ); |
234 | } | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | OPackageList *OIpkg::availablePackages( const QString &server ) | 237 | OPackageList *OIpkg::availablePackages( const QString &server ) |
238 | { | 238 | { |
239 | // Load Ipkg configuration info if not already cached | 239 | // Load Ipkg configuration info if not already cached |
240 | if ( !m_confInfo ) | 240 | if ( !m_confInfo ) |
241 | loadConfiguration(); | 241 | loadConfiguration(); |
242 | 242 | ||
243 | // Build new server list (caller is responsible for deleting) | 243 | // Build new server list (caller is responsible for deleting) |
244 | OPackageList *pl = new OPackageList; | 244 | OPackageList *pl = new OPackageList; |
245 | 245 | ||
246 | // Get directory where server lists are located | ||
247 | QString listsDir; | ||
248 | OConfItem *confItem = findConfItem( OConfItem::Other, "lists_dir" ); | ||
249 | if ( confItem ) | ||
250 | listsDir = confItem->value(); | ||
251 | else | ||
252 | listsDir = IPKG_PKG_PATH; | ||
253 | |||
246 | // Open package list file | 254 | // Open package list file |
247 | QFile f( IPKG_PKG_PATH + "/" + server ); | 255 | QFile f( listsDir + "/" + server ); |
248 | if ( !f.open( IO_ReadOnly ) ) | 256 | if ( !f.open( IO_ReadOnly ) ) |
249 | return NULL; | 257 | return NULL; |
250 | QTextStream t( &f ); | 258 | QTextStream t( &f ); |
251 | 259 | ||
252 | // Process all information in package list file | 260 | // Process all information in package list file |
253 | OPackage *package = NULL; | 261 | OPackage *package = NULL; |
254 | QString line = t.readLine(); | 262 | QString line = t.readLine(); |
255 | while ( !t.eof() ) | 263 | while ( !t.eof() ) |
256 | { | 264 | { |
257 | // Determine key/value pair | 265 | // Determine key/value pair |
258 | int pos = line.find( ':', 0 ); | 266 | int pos = line.find( ':', 0 ); |
259 | QString key; | 267 | QString key; |
260 | if ( pos > -1 ) | 268 | if ( pos > -1 ) |
261 | key = line.mid( 0, pos ); | 269 | key = line.mid( 0, pos ); |
262 | else | 270 | else |
263 | key = QString::null; | 271 | key = QString::null; |
264 | QString value = line.mid( pos+2, line.length()-pos ); | 272 | QString value = line.mid( pos+2, line.length()-pos ); |
265 | 273 | ||
266 | // Allocate new package and insert into list | 274 | // Allocate new package and insert into list |
267 | if ( package == NULL && !key.isEmpty() ) | 275 | if ( package == NULL && !key.isEmpty() ) |
268 | { | 276 | { |
269 | package = new OPackage( value ); | 277 | package = new OPackage( value ); |
270 | package->setSource( server ); | 278 | package->setSource( server ); |
271 | pl->append( package ); | 279 | pl->append( package ); |
@@ -586,48 +594,52 @@ void OIpkg::loadConfiguration() | |||
586 | // value = value | 594 | // value = value |
587 | // features = name (from configuration file) | 595 | // features = name (from configuration file) |
588 | 596 | ||
589 | QString typeStr = line.left( pos - 1 ); | 597 | QString typeStr = line.left( pos - 1 ); |
590 | OConfItem::Type type; | 598 | OConfItem::Type type; |
591 | QString features; | 599 | QString features; |
592 | if ( typeStr == "src" ) | 600 | if ( typeStr == "src" ) |
593 | type = OConfItem::Source; | 601 | type = OConfItem::Source; |
594 | else if ( typeStr == "src/gz" ) | 602 | else if ( typeStr == "src/gz" ) |
595 | { | 603 | { |
596 | type = OConfItem::Source; | 604 | type = OConfItem::Source; |
597 | features = "Compressed"; | 605 | features = "Compressed"; |
598 | } | 606 | } |
599 | else if ( typeStr == "dest" ) | 607 | else if ( typeStr == "dest" ) |
600 | type = OConfItem::Destination; | 608 | type = OConfItem::Destination; |
601 | else if ( typeStr == "option" ) | 609 | else if ( typeStr == "option" ) |
602 | type = OConfItem::Option; | 610 | type = OConfItem::Option; |
603 | else if ( typeStr == "arch" ) | 611 | else if ( typeStr == "arch" ) |
604 | type = OConfItem::Arch; | 612 | type = OConfItem::Arch; |
605 | else if ( typeStr == "lists_dir" ) | 613 | else if ( typeStr == "lists_dir" ) |
606 | { | 614 | { |
607 | type = OConfItem::Other; | 615 | type = OConfItem::Other; |
608 | features = name; | 616 | features = name; |
609 | name = typeStr; | 617 | name = typeStr; |
618 | |||
619 | // Default value when not defined | ||
620 | if ( value == QString::null || value == "" ) | ||
621 | value = IPKG_PKG_PATH; | ||
610 | } | 622 | } |
611 | else | 623 | else |
612 | recognizedOption = false; | 624 | recognizedOption = false; |
613 | 625 | ||
614 | // Add to list | 626 | // Add to list |
615 | if ( recognizedOption ) | 627 | if ( recognizedOption ) |
616 | m_confInfo->append( new OConfItem( type, name, value, features, active ) ); | 628 | m_confInfo->append( new OConfItem( type, name, value, features, active ) ); |
617 | } | 629 | } |
618 | } | 630 | } |
619 | 631 | ||
620 | f.close(); | 632 | f.close(); |
621 | } | 633 | } |
622 | } | 634 | } |
623 | 635 | ||
624 | // Load Ipkg execution options from application configuration file | 636 | // Load Ipkg execution options from application configuration file |
625 | if ( m_config ) | 637 | if ( m_config ) |
626 | { | 638 | { |
627 | m_config->setGroup( "Ipkg" ); | 639 | m_config->setGroup( "Ipkg" ); |
628 | m_ipkgExecOptions = m_config->readNumEntry( "ExecOptions", m_ipkgExecOptions ); | 640 | m_ipkgExecOptions = m_config->readNumEntry( "ExecOptions", m_ipkgExecOptions ); |
629 | m_ipkgExecVerbosity = m_config->readNumEntry( "Verbosity", m_ipkgExecVerbosity ); | 641 | m_ipkgExecVerbosity = m_config->readNumEntry( "Verbosity", m_ipkgExecVerbosity ); |
630 | } | 642 | } |
631 | } | 643 | } |
632 | 644 | ||
633 | OConfItemList *OIpkg::filterConfItems( OConfItem::Type typefilter ) | 645 | OConfItemList *OIpkg::filterConfItems( OConfItem::Type typefilter ) |