#############################################################################
# Makefile for building: fapman
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Aug 25 14:38:37 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Mon Sep 27 17:14:34 2010
# Project: fapman.pro
# Template: app
# Command: /opt/NokiaQtSDK/Maemo/4.6.2/targets/fremantle-1030/bin/qmake -spec /opt/NokiaQtSDK/Maemo/4.6.2/sysroots/fremantle-arm-sysroot-1030-slim/usr/share/qt4/mkspecs/linux-g++-maemo5 -unix -o Makefile fapman.pro
blacklistselect.h \
version.h \
ui_mainwindow.h \
- rotatingbackground.h \
packageview.h \
package.h \
confirmdialog.h \
help.h \
settings.h \
logview.h \
+ rotatingbackground.h \
dpkginterface.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp
Note that many of these are just random ideas, not all of them will get implemented
-------------------------------------------------------------------------------------
-0.6.6:
-* show a warning if all packages are pinned in apt settings
-* fix: confirmation dialog has wrong parent set
-
0.7:
-- update install/remove changes directly to internal package db & don't require re-reading package lists afterwards
- support loading .install files
- support installing local .debs
- dbus interface for installing packages by name
- mime type handling for .install and .deb (can it be done without conflicting HAM?)
-- warn about unauthenticated packages / option to disable installing unauthenticated packages
0.8 (possibly):
- "problem solver" window/feature (find broken packages, handle recovery from broken packages better)
-- possible to save package selection or a list of installed (user category) packages anywhere
+- possible to save package selection or a list of installed (user category) packages anywhere ("backup & restore")
+- support translations
later/any/uncertain:
- don't lose package selections when returning to main menu
(autostore/load selections - to different file than normal store)
-- show download speed for apt-get update
+- update install/remove changes directly to internal package db & don't require re-reading package lists afterwards
- keep a list of recently removed apps for easy reinstallation
- add an option to start fetching changelogs automatically for all upgradeable packages?
- how to handle package names that end in '-'? (theoretically they are valid but nonexistent?)
- filtering by repository / repository color coding?
- make sure network is online on startup?
- fetch dates for other than user categories?
-- "online search" (a new button to main menu): use maemo.org search to find packages without loading local package lists (?)
- ability to easily add extras-devel and extras-testing to repos if they don't exist
- load package lists in the background when the main menu is visible?
- read all hildon app manager repository settings (requires too much work...)
-- possible to select cache location?
+- option to select cache location?
+- possibility to force reinstall of an already installed package
+- warn about unauthenticated packages / option to disable installing unauthenticated packages
+- show download speed and current repo for apt-get update (very hard since apt-get update output does not show
+ all the information needed to get the current list file names?)
known bugs:
- possible to get stuck in portrait mode (wait for Qt autorotation fix)
+- no window menu indicator in stacked windows (probably Qt bug)
- updating menu icons after installation does not work or works only sometimes (currently disabled)
+
msg = "Some of your packages have unmet dependencies which could not be fixed. See the log for details.";
} else if( output.contains("E: The method driver") ) {
msg = "Apt failed to find a suitable method driver. One or more of your repositories might have an invalid URL.";
+ } else if( output.contains("E: Invalid record in the preferences file") ) {
+ msg = "Invalid record in the apt preferences file.";
+ } else if( output.contains("E: Malformed line") && output.contains("in source list") ) {
+ msg = "Malformed line in sources list. Check your repository settings.";
}
return msg;
return;
QStringList lines = QString( data.trimmed() ).split('\n');
+ QString infoline;
for( int i=0; i<lines.count(); i++ )
{
if( lines.at(i).startsWith("Get:") || lines.at(i).startsWith("Hit ") )
- iCatalogCounter++;
+ {
+ iCatalogCounter++;
+ }
+ infoline = lines.at(i).trimmed();
}
+ //if( infoline.isEmpty() )
+ //infoline = "arstus";
+
//iUiDimmer->updateText( QString("Updating catalogs (%1)").arg(iCatalogCounter) );
//qDebug() << iCatalogCounter << iCatalogsTotal;
- iUiDimmer->setProgress( iCatalogCounter*100/iCatalogsTotal );
+
+ //iUiDimmer->updateText("Updating catalogs<br><font size=\"-1\">" + infoline + "</font>");
+
+ if( iCatalogsTotal > 0 )
+ iUiDimmer->setProgress( iCatalogCounter*100/iCatalogsTotal );
}
void AAptInterface::uiUpdaterAptGetInstall()
{
pkg->appendBreaks( line.mid(7).trimmed() );
}
+ else if( line.startsWith("Maintainer:") )
+ {
+ pkg->setMaintainer( line.mid(11).trimmed() );
+ }
else if( line.startsWith("Description:") )
{
fapman (0.6.6-1) unstable; urgency=low
- *
-
- -- Heikki Holstila <heikki.holstila@gmail.com> Fri, 3 Sep 2010 01:56:47 +0300
+ * redesigned the main menu (icons from http://openiconlibrary.sourceforge.net)
+ * fix: confirmation dialog has wrong parent set
+ * fix: repos with blank "distribution" cause apt to fail
+ * fix: crash when trying to update catalogs with all repos disabled
+ * reset category filter to default when returning to main menu
+ * improved error/warning messages in certain situations
+ * show the maintainer field for packages
+
+ -- Heikki Holstila <heikki.holstila@gmail.com> Wed, 29 Sep 2010 16:48:46 +0300
fapman (0.6.5-1) unstable; urgency=low
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
- <value type="int">0</value>
+ <value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Maemo</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.MaemoDeviceTarget</value>
- <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">1</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Qt Simulator</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.QtSimulatorTarget</value>
+ <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
<value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.2" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoPackageCreationStep</value>
- <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles" type="QVariantList"/>
- <value key="Qt4ProjectManager.BuildStep.MaemoPackage.Modified" type="bool">true</value>
- <value key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteExe" type="QString">/usr/local/bin/fapman</value>
- <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles" type="QVariantList"/>
- </valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">3</value>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
<valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-maemo</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">9</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">9</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-simulator</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
</valuemap>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
- <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.2" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoPackageCreationStep</value>
- <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles" type="QVariantList"/>
- <value key="Qt4ProjectManager.BuildStep.MaemoPackage.Modified" type="bool">false</value>
- <value key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteExe" type="QString">/usr/local/bin/fapman</value>
- <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles" type="QVariantList"/>
- </valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">3</value>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
<valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-maemo</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">9</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">9</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-simulator</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
</valuemap>
<value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
<valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
- <value key=".ProFile" type="QString">fapman.pro</value>
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">New Maemo Run Configuration</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoRunConfiguration</value>
- <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.Arguments" type="QVariantList"/>
- <valuemap key="Qt4ProjectManager.MaemoRunConfiguration.DebuggingHelpersLastDeployed" type="QVariantMap"/>
- <value key="Qt4ProjectManager.MaemoRunConfiguration.DeviceId" type="qulonglong">0</value>
- <valuemap key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployed" type="QVariantMap"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">fapman</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">fapman.pro</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetName" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
</valuemap>
<value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
</valuemap>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Qt Simulator</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.QtSimulatorTarget</value>
- <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Maemo</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.MaemoDeviceTarget</value>
+ <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">1</value>
<value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.2" type="QVariantMap">
+ <value key="Packaging Enabled" type="bool">true</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoPackageCreationStep</value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles" type="QVariantList"/>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.Modified" type="bool">true</value>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteExe" type="QString"></value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles" type="QVariantList"/>
+ <value key="Version Number" type="QString">0.0.1</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">3</value>
<valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-simulator</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-maemo</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">3</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">9</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">false</value>
</valuemap>
<valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
<valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
<valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
<value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
</valuemap>
- <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.2" type="QVariantMap">
+ <value key="Packaging Enabled" type="bool">true</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoPackageCreationStep</value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles" type="QVariantList"/>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.Modified" type="bool">false</value>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteExe" type="QString"></value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles" type="QVariantList"/>
+ <value key="Version Number" type="QString">0.0.1</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">3</value>
<valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
<value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
<value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-simulator</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
- <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/scratchbox/users/heikki/home/heikki/fapman-build-maemo</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">3</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">9</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">false</value>
</valuemap>
<value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
<valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
- <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">fapman</value>
- <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
- <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">fapman.pro</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
- <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetName" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
- <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
+ <value key=".ProFile" type="QString">fapman.pro</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">New Maemo Run Configuration</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoRunConfiguration</value>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.Arguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MaemoRunConfiguration.DeviceId" type="qulonglong">0</value>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles" type="QVariantList"/>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts" type="QVariantList"/>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths" type="QVariantList"/>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes" type="QVariantList"/>
</valuemap>
<value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
</valuemap>
#include "confirmdialog.h"
#include <unistd.h>
-#include <sys/vfs.h>
bool EnableDebugOutput = false;
d.exec();
}
- quint64 warn_limit_root = 5120;
- quint64 warn_limit_opt = 51200;
- struct statfs root_stat;
- struct statfs opt_stat;
- statfs("/",&root_stat);
- statfs("/opt",&opt_stat);
- quint64 free_root = root_stat.f_bavail * root_stat.f_bsize / 1024;
- quint64 free_opt = opt_stat.f_bavail * opt_stat.f_bsize / 1024;
- qDebug() << "rootfs" << free_root << "kB free";
- qDebug() << "opt fs" << free_opt << "kB free";
- if( free_root < warn_limit_root || free_opt < warn_limit_opt )
- {
- ConfirmDialog d(false, &w);
- QString t;
- if( free_root < warn_limit_root )
- t += QString("Root filesystem has %L1 kB available<br>").arg(free_root);
- if( free_opt < warn_limit_opt )
- t += QString("Opt (home) filesystem has %L1 kB available<br>").arg(free_opt);
- t += "<br>You may proceed, but consider freeing up space to prevent problems in the future";
- d.setText("Warning: Low disk space",t);
- d.exec();
- }
-
#ifdef Q_WS_MAEMO_5
// *** from patch by qwerty12 ***
if (!QDBusConnection::sessionBus().isConnected()) {
#include <QtMaemo5>
#endif
+#include <sys/vfs.h>
+
#include "mainwindow.h"
#include "version.h"
#include "ui_mainwindow.h"
iUpgradeAutoUpdate = true;
iNextOperation = OpNone;
+ connect(QApplication::desktop(), SIGNAL(resized(int)), this, SLOT(orientationChanged()));
+
ui->centralWidget->loadWallpaper();
+ /*
QString stylesheet_mainscreen =
"QPushButton {"
"border-radius: 16px;"
"border-style: inset;"
"background-color: rgba(255,255,255,150);"
"}";
+ */
if( ((QApplication*)QApplication::instance())->styleSheet().isEmpty() )
{
}
if( stylesheet_file.isEmpty() ) {
- ui->centralWidget->setStyleSheet(stylesheet_mainscreen);
+ //ui->centralWidget->setStyleSheet(stylesheet_mainscreen);
} else {
((QApplication*)QApplication::instance())->setStyleSheet(stylesheet_file);
}
iMediaObject = new Phonon::MediaObject(this);
Phonon::AudioOutput* aout = new Phonon::AudioOutput(Phonon::NotificationCategory, this);
Phonon::createPath(iMediaObject, aout);
+
+ showFreeSpace();
}
MainWindow::~MainWindow()
#endif
}
+ showFreeSpace();
}
}
iAptInterface->loadInstallFiles(installs);
}
}
+
+void MainWindow::orientationChanged()
+{
+ //ui->centralWidget->adjustSize();
+ //ui->listWidget->adjustSize();
+}
+
+
+void MainWindow::showFreeSpace()
+{
+ quint64 warn_limit_root = 5120;
+ quint64 warn_limit_opt = 51200;
+ struct statfs root_stat;
+ struct statfs opt_stat;
+ statfs("/",&root_stat);
+ statfs("/opt",&opt_stat);
+ quint64 free_root = root_stat.f_bavail * root_stat.f_bsize / 1024;
+ quint64 free_opt = opt_stat.f_bavail * opt_stat.f_bsize / 1024;
+ quint64 total_root = root_stat.f_blocks * root_stat.f_bsize / 1024;
+ quint64 total_opt = opt_stat.f_blocks * opt_stat.f_bsize / 1024;
+ qDebug() << "rootfs" << free_root << "/" << total_root << "kB free";
+ qDebug() << "opt fs" << free_opt << "/" << total_opt << "kB free";
+
+ QString rootstr = QString("rootfs: %L1 / %L2 MB free").arg(free_root/1024).arg(total_root/1024);
+ QString optstr = QString("opt: %L1 / %L2 MB free").arg(free_opt/1024).arg(total_opt/1024);
+
+ ui->label->setText("<font size=\"-1\">" + rootstr + "<br>" + optstr + "</font>");
+
+ /*
+ ui->progressBarRoot->setFormat(rootstr);
+ ui->progressBarRoot->setMaximum(total_root/1024);
+ ui->progressBarRoot->setValue(free_root/1024);
+ ui->progressBarOpt->setFormat(optstr);
+ ui->progressBarOpt->setMaximum(total_opt/1024);
+ ui->progressBarOpt->setValue(free_opt/1024);
+ */
+
+ if( free_root < warn_limit_root || free_opt < warn_limit_opt )
+ {
+ ConfirmDialog d(false, this);
+ QString t;
+ if( free_root < warn_limit_root )
+ t += QString("Root filesystem has %L1 kB available<br>").arg(free_root);
+ if( free_opt < warn_limit_opt )
+ t += QString("Opt (home) filesystem has %L1 kB available<br>").arg(free_opt);
+ t += "<br>You may proceed, but consider freeing up space to prevent problems in the future";
+ d.setText("Warning: Low disk space",t);
+ d.exec();
+ }
+}
+
+void MainWindow::on_listWidget_itemClicked(QListWidgetItem* item)
+{
+ if( item->text() == "Manage repositories" ) {
+ on_btnRepos_clicked();
+ }
+ else if( item->text() == "Update catalogs" ) {
+ on_btnUpdate_clicked();
+ }
+ else if( item->text() == "Install applications" ) {
+ on_btnListInstallable_clicked();
+ }
+ else if( item->text() == "Remove applications" ) {
+ on_btnListInstalled_clicked();
+ }
+ else if( item->text() == "Upgrade applications" ) {
+ on_btnUpgrade_clicked();
+ }
+ else {
+ qDebug() << "Warning: Unhandled main menu item";
+ }
+ item->setSelected(false);
+}
bool confirmDialog(QString title, QString msg);
void setNextOperation(nextOperation op_) { iNextOperation=op_; }
-public slots:
void on_btnUpdate_clicked();
+
+public slots:
+ void orientationChanged();
#ifdef Q_WS_MAEMO_5
Q_SCRIPTABLE int top_application();
#endif
private:
void dateFetchAsk();
+ void showFreeSpace();
Ui::MainWindow *ui;
AAptInterface* iAptInterface;
nextOperation iNextOperation;
Phonon::MediaObject* iMediaObject;
+ void on_btnRepos_clicked();
+ void on_btnUpgrade_clicked();
+ void on_btnListInstallable_clicked();
+ void on_btnListInstalled_clicked();
+
private slots:
- void on_actionLoad_file_triggered();
+ void on_listWidget_itemClicked(QListWidgetItem* item);
+ void on_actionLoad_file_triggered();
void on_actionOptions_triggered();
void on_actionView_log_triggered();
- void on_btnRepos_clicked();
void on_actionClean_triggered();
void on_actionAbout_triggered();
- void on_btnUpgrade_clicked();
- void on_btnListInstallable_clicked();
- void on_btnListInstalled_clicked();
};
#endif // MAINWINDOW_H
<string>Faster Application Manager</string>
</property>
<widget class="RotatingBackground" name="centralWidget">
- <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
- <property name="margin">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="topMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
+ <property name="bottomMargin">
<number>0</number>
</property>
<item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <widget class="QListWidget" name="listWidget">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
</property>
- <property name="sizeHint" stdset="0">
+ <property name="iconSize">
<size>
- <width>291</width>
- <height>20</height>
+ <width>96</width>
+ <height>96</height>
</size>
</property>
- </spacer>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="movement">
+ <enum>QListView::Static</enum>
+ </property>
+ <property name="flow">
+ <enum>QListView::LeftToRight</enum>
+ </property>
+ <property name="resizeMode">
+ <enum>QListView::Adjust</enum>
+ </property>
<property name="spacing">
- <number>0</number>
+ <number>20</number>
</property>
+ <property name="viewMode">
+ <enum>QListView::IconMode</enum>
+ </property>
+ <property name="uniformItemSizes">
+ <bool>false</bool>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ <item>
+ <property name="text">
+ <string>Install applications</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/icons/install.png</normaloff>:/icons/icons/install.png</iconset>
+ </property>
+ </item>
<item>
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>245</width>
- <height>58</height>
- </size>
- </property>
- </spacer>
+ <property name="text">
+ <string>Remove applications</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/icons/remove.png</normaloff>:/icons/icons/remove.png</iconset>
+ </property>
</item>
<item>
- <layout class="QGridLayout" name="gridLayout">
- <property name="spacing">
- <number>4</number>
- </property>
- <item row="0" column="0">
- <widget class="QPushButton" name="btnRepos">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Manage
-repos</string>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/icons/icons/repos.png</normaloff>:/icons/icons/repos.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>96</width>
- <height>96</height>
- </size>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QPushButton" name="btnUpdate">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Update
-catalogs</string>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/icons/icons/update.png</normaloff>:/icons/icons/update.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>96</width>
- <height>96</height>
- </size>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="2">
- <widget class="QPushButton" name="btnListInstallable">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Install
-applications</string>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/icons/icons/install.png</normaloff>:/icons/icons/install.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>96</width>
- <height>96</height>
- </size>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="2" column="0" colspan="2">
- <widget class="QPushButton" name="btnUpgrade">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Upgrade
-applications</string>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/icons/icons/upgrade.png</normaloff>:/icons/icons/upgrade.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>96</width>
- <height>96</height>
- </size>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="2">
- <widget class="QPushButton" name="btnListInstalled">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Remove
-applications</string>
- </property>
- <property name="icon">
- <iconset resource="resources.qrc">
- <normaloff>:/icons/icons/remove.png</normaloff>:/icons/icons/remove.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>96</width>
- <height>96</height>
- </size>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
+ <property name="text">
+ <string>Upgrade applications</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/icons/upgrade.png</normaloff>:/icons/icons/upgrade.png</iconset>
+ </property>
</item>
<item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>245</width>
- <height>57</height>
- </size>
- </property>
- </spacer>
+ <property name="text">
+ <string>Update catalogs</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/icons/update.png</normaloff>:/icons/icons/update.png</iconset>
+ </property>
</item>
- </layout>
+ <item>
+ <property name="text">
+ <string>Manage repositories</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignHCenter|AlignVCenter|AlignCenter</set>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/icons/repos.png</normaloff>:/icons/icons/repos.png</iconset>
+ </property>
+ </item>
+ </widget>
</item>
<item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string/>
</property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>290</width>
- <height>20</height>
- </size>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
</property>
- </spacer>
+ </widget>
</item>
</layout>
</widget>
return confl;
}
+
+QString Package::maintainerRichText()
+{
+ QString m = iMaintainer;
+ m.replace('<',"<");
+ m.replace('>',">");
+ return m;
+}
inline void appendSuggests(QByteArray line_) { iSuggests << line_.split(','); }
inline void appendUpgradeDescription(QByteArray d_) { iUpgradeDescription.append(d_); }
inline void setPinned(bool p_) { iPinned=p_; }
+ inline void setMaintainer(QByteArray m_) { iMaintainer = m_; }
void convertIcon();
inline QList<QByteArray> recommends() { return iRecommends; }
inline QList<QByteArray> suggests() { return iSuggests; }
inline bool isPinned() { return iPinned; }
+ QString maintainerRichText();
QStringList checkConflicts_RichText();
QList<Repository*> iRepositories;
BlacklistSelect::blackList iBlacklist;
QByteArray iUpgradeDescription;
+ QByteArray iMaintainer;
QByteArray iIconData;
QPixmap* iIcon;
}
}
+ if( !iPkg->maintainerRichText().isEmpty() ) {
+ longtext +="Maintainer: " + iPkg->maintainerRichText() + "<br>";
+ }
+
longtext += "<br>" + iPkg->descShort();
QString descLong = iPkg->descLong();
if( descLong.length()>0 ) {
iAptInterface->writeBlacklist();
ui->btn_StatusFilter->setEnabled(true);
- //iSelectedCatFilter = iDefaultCatFilter;
+ iSelectedCatFilter = iDefaultCatFilter;
//iSortOrder = SortAlpha;
iSortNoticeShown = false;
else
str = "#deb ";
- str += iUrl + iDir + " " + iDist + " " + iComponents;
+ str += iUrl + iDir + " " + iDist;
+ if( !iComponents.isEmpty() )
+ str += " " + iComponents;
return( str.trimmed() );
}
iComponents = components.trimmed();
iEnabled = enabled;
+ if( iDist.isEmpty() )
+ iDist = ".";
+
// ensure that the protocol part of the URL is lowercase
int pos = iUrl.indexOf("://");
QString proto = iUrl.left(pos);
void RotatingBackground::loadWallpaper()
{
+ /*
QString loadfile = "/home/user/.backgrounds/background-1.png";
QFileInfo custombg("/root/.fapman/wallpaper.png");
bool custom = false;
loadfile = "/root/.fapman/wallpaper.png";
custom = true;
}
+ */
+ QString loadfile = "/root/.fapman/wallpaper.png";
iWallpaperLandscape.load(loadfile);
if( !iWallpaperLandscape.isNull() ) {
iWallpaperPortrait = iWallpaperLandscape.transformed(t);
}
+ /*
if( !custom && !iWallpaperLandscape.isNull() && !iWallpaperPortrait.isNull() )
{
QPainter l( &iWallpaperLandscape );
l.drawRect( 0, 0, iWallpaperLandscape.rect().width(), iWallpaperLandscape.rect().height() );
p.drawRect( 0, 0, iWallpaperPortrait.rect().width(), iWallpaperPortrait.rect().height() );
}
+ */
}
void RotatingBackground::paintEvent(QPaintEvent *)