#include "repository.h"
#include "blacklistselect.h"
#include "aaptinterface.h"
+#include "settings.h"
-PackageSelector::PackageSelector(Package* pkg, AAptInterface* apt, QWidget *parent) :
+PackageSelector::PackageSelector(Package* pkg, AAptInterface* apt, Settings* set, QWidget *parent) :
QDialog(parent),
ui(new Ui::PackageSelector)
{
ui->setupUi(this);
iPkg = pkg;
iAptInterface = apt;
+ iSettings = set;
iNetworkAccessManager = 0;
iChangelogFetched = false;
+ iFetchInProgress = false;
iChangelog = "";
ui->pushButton_website->setIcon(QPixmap("/usr/share/icons/hicolor/48x48/hildon/general_web.png"));
ui->label_statusicon->setPixmap(QPixmap(":/icons/icons/pkg_remove.png"));
ui->radioRemove->setChecked(true);
}
+
+ if( getMaemoOrgUrl(upg_pkg)!="" && !iChangelogFetched && !iFetchInProgress &&
+ iSettings->qsettings()->value("always_fetch_changes",false).toBool() )
+ {
+ queryChangelog();
+ }
}
PackageSelector::~PackageSelector()
{
- delete iNetworkAccessManager;
- iNetworkAccessManager = 0;
+ if( iNetworkAccessManager ) {
+ delete iNetworkAccessManager;
+ iNetworkAccessManager = 0;
+ }
delete ui;
}
}
QString changelog;
- if( getMaemoOrgUrl(upg_pkg)!="" && !iChangelogFetched ) {
+ if( getMaemoOrgUrl(upg_pkg)!="" && !iChangelogFetched && !iFetchInProgress ) {
queryChangelog();
changelog = "Fetching changelog...";
} else {
changelog = iChangelog;
- if( changelog == "" )
+ if( iFetchInProgress )
+ changelog = "Fetching changelog...";
+ else if( changelog == "" )
changelog = "Not available";
}
ui->label_header2->setText("");
ui->label_text->setText("");
- QStringList deps = iPkg->dependsRichText();
- QStringList confl = iPkg->conflictsRichText();
- QStringList predeps = iPkg->preDependsRichText();
- QStringList repl = iPkg->replacesRichText();
- QStringList prov = iPkg->providesRichText();
- QStringList brks = iPkg->breaksRichText();
- QStringList recs = iPkg->recommendsRichText();
- QStringList sugs = iPkg->suggestsRichText();
+ QStringList deps = Package::toTrimmedRichTextList( iPkg->depends() );
+ QStringList confl = Package::toTrimmedRichTextList( iPkg->conflicts() );
+ QStringList predeps = Package::toTrimmedRichTextList( iPkg->preDepends() );
+ QStringList repl = Package::toTrimmedRichTextList( iPkg->replaces() );
+ QStringList prov = Package::toTrimmedRichTextList( iPkg->provides() );
+ QStringList brks = Package::toTrimmedRichTextList( iPkg->breaks() );
+ QStringList recs = Package::toTrimmedRichTextList( iPkg->recommends() );
+ QStringList sugs = Package::toTrimmedRichTextList( iPkg->suggests() );
QString text;
void PackageSelector::queryChangelog()
{
- if( iChangelogFetched )
+ if( iChangelogFetched || iFetchInProgress )
return;
iChangelogFetched = false;
+ iFetchInProgress = true;
iChangelog = "";
Package* pkg = iPkg->availablePackage();
if( !iNetworkAccessManager ) {
iNetworkAccessManager = new QNetworkAccessManager(this);
connect(iNetworkAccessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(changelogFetchNetworkReply(QNetworkReply*)));
+
+ if( iSettings->qsettings()->value("use_proxies").toBool() && iSettings->qsettings()->value("http_proxy").toString()!="" )
+ {
+ QNetworkProxy proxy = Settings::createProxyFromString( iSettings->qsettings()->value("http_proxy").toString() );
+ iNetworkAccessManager->setProxy(proxy);
+ }
}
QUrl url( getMaemoOrgUrl(pkg) );
int pos2 = data.indexOf("</div>", pos);
if( pos!=-1 && pos2!=-1 ) {
- iChangelog = parseChangeTable( data.mid(pos,pos2-pos+6) );
+ iChangelog = parseChangeTable( QString::fromUtf8( data.mid(pos,pos2-pos+6) ) );
} else {
iChangelog = "";
}
- iChangelogFetched = true;
qDebug() << "changelog fetched";
} else {
+ iChangelog = "Not available (Network error)";
qDebug() << "changelog fetch error:" << reply->error() << reply->errorString();
}
reply->deleteLater();
+ iFetchInProgress = false;
+ iChangelogFetched = true;
if( this->isVisible() && ui->radioTabChanges->isChecked() )
on_radioTabChanges_clicked();