Skip to content
Snippets Groups Projects
Commit 38673255 authored by ck's avatar ck
Browse files

Maemo: Serialize package contents.

Reviewed-by: kh1
parent b367cffa
No related branches found
No related tags found
No related merge requests found
...@@ -31,13 +31,22 @@ ...@@ -31,13 +31,22 @@
#include "maemopackagecreationstep.h" #include "maemopackagecreationstep.h"
namespace {
const char * const MODIFIED_KEY =
"Qt4ProjectManager.BuildStep.MaemoPackage.Modified";
const char * const LOCAL_FILES_KEY
= "Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles";
const char * const REMOTE_FILES_KEY
= "Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles";
}
namespace Qt4ProjectManager { namespace Qt4ProjectManager {
namespace Internal { namespace Internal {
MaemoPackageContents::MaemoPackageContents(MaemoPackageCreationStep *packageStep) MaemoPackageContents::MaemoPackageContents(MaemoPackageCreationStep *packageStep)
: QAbstractTableModel(packageStep), : QAbstractTableModel(packageStep),
m_packageStep(packageStep), m_packageStep(packageStep),
m_modified(true) // TODO: Has to come from settings m_modified(true)
{ {
} }
...@@ -99,5 +108,32 @@ QVariant MaemoPackageContents::headerData(int section, ...@@ -99,5 +108,32 @@ QVariant MaemoPackageContents::headerData(int section,
return section == 0 ? tr("Local File Path") : tr("Remote File Path"); return section == 0 ? tr("Local File Path") : tr("Remote File Path");
} }
QVariantMap MaemoPackageContents::toMap() const
{
QVariantMap map;
map.insert(MODIFIED_KEY, m_modified);
QStringList localFiles;
QStringList remoteFiles;
foreach (const Deployable &p, m_deployables) {
localFiles << p.localFilePath;
remoteFiles << p.remoteFilePath;
}
map.insert(LOCAL_FILES_KEY, localFiles);
map.insert(REMOTE_FILES_KEY, remoteFiles);
return map;
}
void MaemoPackageContents::fromMap(const QVariantMap &map)
{
m_modified = map.value(MODIFIED_KEY).toBool();
const QStringList localFiles = map.value(LOCAL_FILES_KEY).toStringList();
const QStringList remoteFiles = map.value(REMOTE_FILES_KEY).toStringList();
if (localFiles.count() != remoteFiles.count())
qWarning("%s: serialized data inconsistent", Q_FUNC_INFO);
const int count = qMin(localFiles.count(), remoteFiles.count());
for (int i = 0; i < count; ++i)
m_deployables << Deployable(localFiles.at(i), remoteFiles.at(i));
}
} // namespace Qt4ProjectManager } // namespace Qt4ProjectManager
} // namespace Internal } // namespace Internal
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include <QtCore/QAbstractTableModel> #include <QtCore/QAbstractTableModel>
#include <QtCore/QList> #include <QtCore/QList>
#include <QtCore/QString> #include <QtCore/QString>
#include <QtCore/QVariantMap>
namespace Qt4ProjectManager { namespace Qt4ProjectManager {
namespace Internal { namespace Internal {
...@@ -62,14 +63,15 @@ public: ...@@ -62,14 +63,15 @@ public:
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
QVariantMap toMap() const;
void fromMap(const QVariantMap &map);
Deployable deployableAt(int row) const; Deployable deployableAt(int row) const;
bool addDeployable(const Deployable &deployable); bool addDeployable(const Deployable &deployable);
void removeDeployableAt(int row); void removeDeployableAt(int row);
bool isModified() const { return m_modified; } bool isModified() const { return m_modified; }
void setUnModified() { m_modified = false; } void setUnModified() { m_modified = false; }
// TODO: to/from map
private: private:
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
virtual QVariant data(const QModelIndex &index, virtual QVariant data(const QModelIndex &index,
......
...@@ -94,7 +94,13 @@ BuildStep *MaemoPackageCreationFactory::restore(BuildConfiguration *parent, ...@@ -94,7 +94,13 @@ BuildStep *MaemoPackageCreationFactory::restore(BuildConfiguration *parent,
StepType type, const QVariantMap &map) StepType type, const QVariantMap &map)
{ {
Q_ASSERT(canRestore(parent, type, map)); Q_ASSERT(canRestore(parent, type, map));
return new MaemoPackageCreationStep(parent); MaemoPackageCreationStep * const step
= new MaemoPackageCreationStep(parent);
if (!step->fromMap(map)) {
delete step;
return 0;
}
return step;
} }
bool MaemoPackageCreationFactory::canClone(BuildConfiguration *parent, bool MaemoPackageCreationFactory::canClone(BuildConfiguration *parent,
......
...@@ -87,6 +87,18 @@ bool MaemoPackageCreationStep::init() ...@@ -87,6 +87,18 @@ bool MaemoPackageCreationStep::init()
return true; return true;
} }
QVariantMap MaemoPackageCreationStep::toMap() const
{
QVariantMap map(ProjectExplorer::BuildStep::toMap());
return map.unite(m_packageContents->toMap());
}
bool MaemoPackageCreationStep::fromMap(const QVariantMap &map)
{
m_packageContents->fromMap(map);
return ProjectExplorer::BuildStep::fromMap(map);
}
void MaemoPackageCreationStep::run(QFutureInterface<bool> &fi) void MaemoPackageCreationStep::run(QFutureInterface<bool> &fi)
{ {
fi.reportResult(createPackage()); fi.reportResult(createPackage());
......
...@@ -76,6 +76,8 @@ private: ...@@ -76,6 +76,8 @@ private:
virtual void run(QFutureInterface<bool> &fi); virtual void run(QFutureInterface<bool> &fi);
virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget(); virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget();
virtual bool immutable() const { return true; } virtual bool immutable() const { return true; }
virtual QVariantMap toMap() const;
virtual bool fromMap(const QVariantMap &map);
bool createPackage(); bool createPackage();
bool runCommand(QProcess &proc, const QString &command); bool runCommand(QProcess &proc, const QString &command);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment