summaryrefslogtreecommitdiff
authordrw <drw>2004-12-21 00:37:22 (UTC)
committer drw <drw>2004-12-21 00:37:22 (UTC)
commit769f2a09ccfcc639a87600ecb046e9140fe2f691 (patch) (side-by-side diff)
tree27f74b9403d9d41be40e759b7ce238d601b6ef45
parent8c316a01b28879b9f4fc6df736773245c8358ffc (diff)
downloadopie-769f2a09ccfcc639a87600ecb046e9140fe2f691.zip
opie-769f2a09ccfcc639a87600ecb046e9140fe2f691.tar.gz
opie-769f2a09ccfcc639a87600ecb046e9140fe2f691.tar.bz2
Preliminary support for src/gz feeds, it works if you manually update ipkg.conf. Still need to add configuration option on server config dialog tab.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/packagemanager/oconfitem.cpp47
-rw-r--r--noncore/settings/packagemanager/oconfitem.h6
-rw-r--r--noncore/settings/packagemanager/oipkg.cpp17
-rw-r--r--noncore/settings/packagemanager/oipkgconfigdlg.cpp15
4 files changed, 53 insertions, 32 deletions
diff --git a/noncore/settings/packagemanager/oconfitem.cpp b/noncore/settings/packagemanager/oconfitem.cpp
index a90730c..ffa936e 100644
--- a/noncore/settings/packagemanager/oconfitem.cpp
+++ b/noncore/settings/packagemanager/oconfitem.cpp
@@ -1,41 +1,42 @@
/*
-                This file is part of the Opie Project
+ This file is part of the Opie Project
-              Copyright (c) 2003 Dan Williams <drw@handhelds.org>
+ Copyright (c) 2003 Dan Williams <drw@handhelds.org>
=.
.=l.
-           .>+-=
- _;:,     .>    :=|. This program is free software; you can
-.> <`_,   >  .   <= redistribute it and/or modify it under
-:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
-.="- .-=="i,     .._ License as published by the Free Software
- - .   .-<_>     .<> Foundation; either version 2 of the License,
-     ._= =}       : or (at your option) any later version.
-    .%`+i>       _;_.
-    .i_,=:_.      -<s. This program is distributed in the hope that
-     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
-    : ..    .:,     . . . without even the implied warranty of
-    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
-  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
-..}^=.=       =       ; Library General Public License for more
-++=   -.     .`     .: details.
- :     =  ...= . :.=-
- -.   .:....=;==+<; You should have received a copy of the GNU
-  -_. . .   )=.  = Library General Public License along with
-    --        :-=` this library; see the file COPYING.LIB.
+ .>+-=
+_;:, .> :=|. This program is free software; you can
+.> <`_, > . <= redistribute it and/or modify it under
+:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
+.="- .-=="i, .._ License as published by the Free Software
+- . .-<_> .<> Foundation; either version 2 of the License,
+ ._= =} : or (at your option) any later version.
+ .%`+i> _;_.
+ .i_,=:_. -<s. This program is distributed in the hope that
+ + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
+ : .. .:, . . . without even the implied warranty of
+ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
+ _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.= = ; Library General Public License for more
+++= -. .` .: details.
+: = ...= . :.=-
+-. .:....=;==+<; You should have received a copy of the GNU
+ -_. . . )=. = Library General Public License along with
+ -- :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "oconfitem.h"
-OConfItem::OConfItem( Type type, const QString &name,
- const QString &value, bool active )
+OConfItem::OConfItem( Type type, const QString &name, const QString &value,
+ const QString &features, bool active )
: m_type( type )
, m_name( name )
, m_value( value )
+ , m_features( features )
, m_active( active )
{
}
diff --git a/noncore/settings/packagemanager/oconfitem.h b/noncore/settings/packagemanager/oconfitem.h
index 7c158c9..9972c00 100644
--- a/noncore/settings/packagemanager/oconfitem.h
+++ b/noncore/settings/packagemanager/oconfitem.h
@@ -38,28 +38,32 @@ _;:, .> :=|. This program is free software; you can
class OConfItem
{
public:
enum Type { Source, Destination, Option, Arch, NotDefined };
OConfItem( Type type = NotDefined, const QString &name = QString::null,
- const QString &value = QString::null, bool active = true );
+ const QString &value = QString::null, const QString &features = QString::null,
+ bool active = true );
Type type() { return m_type; }
const QString &name() { return m_name; }
const QString &value() { return m_value; }
+ const QString &features() { return m_features; }
bool active() { return m_active; }
void setType( Type type ) { m_type = type; }
void setName( const QString &name ) { m_name = name; }
void setValue( const QString &value ) { m_value = value; }
+ void setFeatures( const QString &features ) { m_features = features; }
void setActive( bool active ) { m_active = active; }
private:
Type m_type; // Type of configuration item
QString m_name; // Name of item
QString m_value; // Value of item
+ QString m_features; // Comma-deliminated list of features this item supports
bool m_active; // Indicates whether item is currently active
};
class OConfItemList : public QList<OConfItem>
{
private:
diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp
index b0cc94d..a66bd51 100644
--- a/noncore/settings/packagemanager/oipkg.cpp
+++ b/noncore/settings/packagemanager/oipkg.cpp
@@ -150,13 +150,20 @@ void OIpkg::setConfigItems( OConfItemList *configList )
QString confLine;
if ( !item->active() )
confLine = "#";
switch ( item->type() )
{
- case OConfItem::Source : confLine.append( "src " ); break;
+ case OConfItem::Source :
+ {
+ if ( item->features().contains( "Compressed" ) )
+ confLine.append( "src/gz " );
+ else
+ confLine.append( "src " );
+ }
+ break;
case OConfItem::Destination : confLine.append( "dest " ); break;
case OConfItem::Option : confLine.append( "option " ); break;
case OConfItem::Arch : confLine.append( "arch " ); break;
default : break;
};
@@ -505,14 +512,20 @@ void OIpkg::loadConfiguration()
{
int pos = line.find( ' ', 1 );
// Type
QString typeStr = line.left( pos );
OConfItem::Type type;
+ QString features;
if ( typeStr == "src" || typeStr == "#src" )
type = OConfItem::Source;
+ else if ( typeStr == "src/gz" || typeStr == "#src/gz" )
+ {
+ type = OConfItem::Source;
+ features = "Compressed";
+ }
else if ( typeStr == "dest" || typeStr == "#dest" )
type = OConfItem::Destination;
else if ( typeStr == "option" || typeStr == "#option" )
type = OConfItem::Option;
else if ( typeStr == "arch" || typeStr == "#arch" )
type = OConfItem::Arch;
@@ -530,13 +543,13 @@ void OIpkg::loadConfiguration()
value = line.right( line.length() - endpos - 1 );
// Active
bool active = !line.startsWith( "#" );
// Add to list
- m_confInfo->append( new OConfItem( type, name, value, active ) );
+ m_confInfo->append( new OConfItem( type, name, value, features, active ) );
}
}
}
f.close();
}
diff --git a/noncore/settings/packagemanager/oipkgconfigdlg.cpp b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
index 886430f..d9a67f3 100644
--- a/noncore/settings/packagemanager/oipkgconfigdlg.cpp
+++ b/noncore/settings/packagemanager/oipkgconfigdlg.cpp
@@ -98,23 +98,25 @@ void OIpkgConfigDlg::accept()
{
confItem->setValue( m_proxyHttpServer->text() );
confItem->setActive( m_proxyHttpActive->isChecked() );
}
else
m_configs->append( new OConfItem( OConfItem::Option, "http_proxy",
- m_proxyHttpServer->text(), m_proxyHttpActive->isChecked() ) );
+ m_proxyHttpServer->text(), QString::null,
+ m_proxyHttpActive->isChecked() ) );
confItem = findConfItem( OConfItem::Option, "ftp_proxy" );
if ( confItem )
{
confItem->setValue( m_proxyFtpServer->text() );
confItem->setActive( m_proxyFtpActive->isChecked() );
}
else
m_configs->append( new OConfItem( OConfItem::Option, "ftp_proxy",
- m_proxyFtpServer->text(), m_proxyFtpActive->isChecked() ) );
+ m_proxyFtpServer->text(), QString::null,
+ m_proxyFtpActive->isChecked() ) );
confItem = findConfItem( OConfItem::Option, "proxy_username" );
if ( confItem )
confItem->setValue( m_proxyUsername->text() );
else
m_configs->append( new OConfItem( OConfItem::Option, "proxy_username",
@@ -532,15 +534,16 @@ void OIpkgConfigDlg::slotServerUpdate()
m_serverList->changeItem( newName, m_serverCurrent );
}
}
}
else
{
- // Add new destination to configuration list
- m_configs->append( new OConfItem( OConfItem::Source, newName,
- m_serverLocation->text(), m_serverActive->isChecked() ) );
+ // Add new server to configuration list
+ // TODO - support src/gz
+ m_configs->append( new OConfItem( OConfItem::Source, newName, m_serverLocation->text(),
+ QString::null, m_serverActive->isChecked() ) );
m_configs->sort();
m_serverList->insertItem( newName );
m_serverList->setCurrentItem( m_serverList->count() );
m_serverNew = false;
}
@@ -627,13 +630,13 @@ void OIpkgConfigDlg::slotDestUpdate()
}
}
else
{
// Add new destination to configuration list
m_configs->append( new OConfItem( OConfItem::Destination, newName,
- m_destLocation->text(), m_destActive->isChecked() ) );
+ m_destLocation->text(), QString::null, m_destActive->isChecked() ) );
m_configs->sort();
m_destList->insertItem( newName );
m_destList->setCurrentItem( m_destList->count() );
m_destNew = false;
}