forked from qt-creator/qt-creator
QNX: Fixed bug where changes to BlackBerry deploy information wasn't saved
Change-Id: Ic295581062197221bdd00837b7cf426e709749ae Reviewed-by: Mehdi Fekari <mfekari@rim.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
This commit is contained in:
committed by
Christian Kandeler
parent
e80c4b80fc
commit
5bfdd92973
@@ -45,7 +45,8 @@ using namespace Qnx;
|
|||||||
using namespace Qnx::Internal;
|
using namespace Qnx::Internal;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const char DEPLOYMENT_INFO_SETTING[] = "QNX.BlackBerry.DeploymentInfo";
|
const char DEPLOYMENT_INFO_SETTING[] = "Qnx.BlackBerry.DeploymentInfo";
|
||||||
|
const char DEPLOYMENT_INFO_KEY[] = "Qnx.BlackBerry.DeployInformation";
|
||||||
}
|
}
|
||||||
|
|
||||||
BlackBerryDeployConfiguration::BlackBerryDeployConfiguration(ProjectExplorer::Target *parent)
|
BlackBerryDeployConfiguration::BlackBerryDeployConfiguration(ProjectExplorer::Target *parent)
|
||||||
@@ -109,6 +110,23 @@ QString BlackBerryDeployConfiguration::deviceName() const
|
|||||||
return device->displayName();
|
return device->displayName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVariantMap BlackBerryDeployConfiguration::toMap() const
|
||||||
|
{
|
||||||
|
QVariantMap map(ProjectExplorer::DeployConfiguration::toMap());
|
||||||
|
map.insert(QLatin1String(DEPLOYMENT_INFO_KEY), deploymentInfo()->toMap());
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BlackBerryDeployConfiguration::fromMap(const QVariantMap &map)
|
||||||
|
{
|
||||||
|
if (!ProjectExplorer::DeployConfiguration::fromMap(map))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QVariantMap deployInfoMap = map.value(QLatin1String(DEPLOYMENT_INFO_KEY)).toMap();
|
||||||
|
deploymentInfo()->fromMap(deployInfoMap);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
ProjectExplorer::DeployConfigurationWidget *BlackBerryDeployConfiguration::configurationWidget() const
|
ProjectExplorer::DeployConfigurationWidget *BlackBerryDeployConfiguration::configurationWidget() const
|
||||||
{
|
{
|
||||||
return new BlackBerryDeployConfigurationWidget;
|
return new BlackBerryDeployConfigurationWidget;
|
||||||
|
|||||||
@@ -62,9 +62,13 @@ public:
|
|||||||
QString password() const;
|
QString password() const;
|
||||||
QString deviceName() const;
|
QString deviceName() const;
|
||||||
|
|
||||||
|
QVariantMap toMap() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BlackBerryDeployConfiguration(ProjectExplorer::Target *parent, BlackBerryDeployConfiguration *source);
|
BlackBerryDeployConfiguration(ProjectExplorer::Target *parent, BlackBerryDeployConfiguration *source);
|
||||||
|
|
||||||
|
bool fromMap(const QVariantMap &map);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ctor();
|
void ctor();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -41,11 +41,21 @@
|
|||||||
using namespace Qnx;
|
using namespace Qnx;
|
||||||
using namespace Qnx::Internal;
|
using namespace Qnx::Internal;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
const char COUNT_KEY[] = "Qnx.BlackBerry.DeployInformationCount";
|
||||||
|
const char DEPLOYINFO_KEY[] = "Qnx.BlackBerry.DeployInformation.%1";
|
||||||
|
|
||||||
|
const char ENABLED_KEY[] = "Qnx.BlackBerry.DeployInformation.Enabled";
|
||||||
|
const char APPDESCRIPTOR_KEY[] = "Qnx.BlackBerry.DeployInformation.AppDescriptor";
|
||||||
|
const char PACKAGE_KEY[] = "Qnx.BlackBerry.DeployInformation.Package";
|
||||||
|
const char PROFILE_KEY[] = "Qnx.BlackBerry.DeployInformation.ProFile";
|
||||||
|
}
|
||||||
|
|
||||||
BlackBerryDeployInformation::BlackBerryDeployInformation(Qt4ProjectManager::Qt4Project *project)
|
BlackBerryDeployInformation::BlackBerryDeployInformation(Qt4ProjectManager::Qt4Project *project)
|
||||||
: QAbstractTableModel(project)
|
: QAbstractTableModel(project)
|
||||||
, m_project(project)
|
, m_project(project)
|
||||||
{
|
{
|
||||||
connect(m_project, SIGNAL(proFilesEvaluated()), this, SLOT(initModel()));
|
connect(m_project, SIGNAL(proFilesEvaluated()), this, SLOT(updateModel()));
|
||||||
}
|
}
|
||||||
|
|
||||||
int BlackBerryDeployInformation::rowCount(const QModelIndex &parent) const
|
int BlackBerryDeployInformation::rowCount(const QModelIndex &parent) const
|
||||||
@@ -152,8 +162,78 @@ QList<BarPackageDeployInformation> BlackBerryDeployInformation::enabledPackages(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVariantMap BlackBerryDeployInformation::toMap() const
|
||||||
|
{
|
||||||
|
QVariantMap outerMap;
|
||||||
|
outerMap[QLatin1String(COUNT_KEY)] = m_deployInformation.size();
|
||||||
|
|
||||||
|
for (int i = 0; i < m_deployInformation.size(); ++i) {
|
||||||
|
const BarPackageDeployInformation &deployInfo = m_deployInformation[i];
|
||||||
|
|
||||||
|
QVariantMap deployInfoMap;
|
||||||
|
deployInfoMap[QLatin1String(ENABLED_KEY)] = deployInfo.enabled;
|
||||||
|
deployInfoMap[QLatin1String(APPDESCRIPTOR_KEY)] = deployInfo.appDescriptorPath;
|
||||||
|
deployInfoMap[QLatin1String(PACKAGE_KEY)] = deployInfo.packagePath;
|
||||||
|
deployInfoMap[QLatin1String(PROFILE_KEY)] = deployInfo.proFilePath;
|
||||||
|
|
||||||
|
outerMap[QString::fromLatin1(DEPLOYINFO_KEY).arg(i)] = deployInfoMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
return outerMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlackBerryDeployInformation::fromMap(const QVariantMap &map)
|
||||||
|
{
|
||||||
|
beginResetModel();
|
||||||
|
m_deployInformation.clear();
|
||||||
|
|
||||||
|
int count = map.value(QLatin1String(COUNT_KEY)).toInt();
|
||||||
|
for (int i = 0; i < count; ++i) {
|
||||||
|
QVariantMap innerMap = map.value(QString::fromLatin1(DEPLOYINFO_KEY).arg(i)).toMap();
|
||||||
|
|
||||||
|
const bool enabled = innerMap.value(QLatin1String(ENABLED_KEY)).toBool();
|
||||||
|
const QString appDescriptorPath = innerMap.value(QLatin1String(APPDESCRIPTOR_KEY)).toString();
|
||||||
|
const QString packagePath = innerMap.value(QLatin1String(PACKAGE_KEY)).toString();
|
||||||
|
const QString proFilePath = innerMap.value(QLatin1String(PROFILE_KEY)).toString();
|
||||||
|
|
||||||
|
m_deployInformation << BarPackageDeployInformation(enabled, appDescriptorPath, packagePath, proFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
endResetModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlackBerryDeployInformation::updateModel()
|
||||||
|
{
|
||||||
|
if (m_deployInformation.isEmpty()) {
|
||||||
|
initModel();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
beginResetModel();
|
||||||
|
QList<BarPackageDeployInformation> keep;
|
||||||
|
QList<Qt4ProjectManager::Qt4ProFileNode *> appNodes = m_project->applicationProFiles();
|
||||||
|
foreach (Qt4ProjectManager::Qt4ProFileNode *node, appNodes) {
|
||||||
|
bool nodeFound = false;
|
||||||
|
for (int i = 0; i < m_deployInformation.size(); ++i) {
|
||||||
|
if (m_deployInformation[i].proFilePath == node->path()) {
|
||||||
|
keep << m_deployInformation[i];
|
||||||
|
nodeFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!nodeFound)
|
||||||
|
keep << deployInformationFromNode(node);
|
||||||
|
}
|
||||||
|
m_deployInformation = keep;
|
||||||
|
endResetModel();
|
||||||
|
}
|
||||||
|
|
||||||
void BlackBerryDeployInformation::initModel()
|
void BlackBerryDeployInformation::initModel()
|
||||||
{
|
{
|
||||||
|
if (!m_deployInformation.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
ProjectExplorer::Target *target = m_project->activeTarget();
|
ProjectExplorer::Target *target = m_project->activeTarget();
|
||||||
if (!target
|
if (!target
|
||||||
|| !target->activeDeployConfiguration()
|
|| !target->activeDeployConfiguration()
|
||||||
@@ -172,23 +252,28 @@ void BlackBerryDeployInformation::initModel()
|
|||||||
if (!rootNode || rootNode->parseInProgress()) // Can be null right after project creation by wizard.
|
if (!rootNode || rootNode->parseInProgress()) // Can be null right after project creation by wizard.
|
||||||
return;
|
return;
|
||||||
|
|
||||||
disconnect(m_project, SIGNAL(proFilesEvaluated()), this, SLOT(initModel()));
|
disconnect(m_project, SIGNAL(proFilesEvaluated()), this, SLOT(updateModel()));
|
||||||
|
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
m_deployInformation.clear();
|
m_deployInformation.clear();
|
||||||
|
|
||||||
QList<Qt4ProjectManager::Qt4ProFileNode *> appNodes = m_project->applicationProFiles();
|
QList<Qt4ProjectManager::Qt4ProFileNode *> appNodes = m_project->applicationProFiles();
|
||||||
foreach (Qt4ProjectManager::Qt4ProFileNode *node, appNodes) {
|
foreach (Qt4ProjectManager::Qt4ProFileNode *node, appNodes)
|
||||||
Qt4ProjectManager::TargetInformation ti = node->targetInformation();
|
m_deployInformation << deployInformationFromNode(node);
|
||||||
|
|
||||||
QFileInfo fi(node->path());
|
|
||||||
const QString appDescriptorPath = QDir::toNativeSeparators(fi.absolutePath() + QLatin1String("/bar-descriptor.xml"));
|
|
||||||
QString barPackagePath;
|
|
||||||
if (!ti.buildDir.isEmpty())
|
|
||||||
barPackagePath = QDir::toNativeSeparators(ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String(".bar"));
|
|
||||||
|
|
||||||
m_deployInformation << BarPackageDeployInformation(true, appDescriptorPath, barPackagePath, node->path());
|
|
||||||
}
|
|
||||||
|
|
||||||
endResetModel();
|
endResetModel();
|
||||||
connect(m_project, SIGNAL(proFilesEvaluated()), SLOT(initModel()));
|
connect(m_project, SIGNAL(proFilesEvaluated()), this, SLOT(updateModel()));
|
||||||
|
}
|
||||||
|
|
||||||
|
BarPackageDeployInformation BlackBerryDeployInformation::deployInformationFromNode(Qt4ProjectManager::Qt4ProFileNode *node) const
|
||||||
|
{
|
||||||
|
Qt4ProjectManager::TargetInformation ti = node->targetInformation();
|
||||||
|
|
||||||
|
QFileInfo fi(node->path());
|
||||||
|
const QString appDescriptorPath = QDir::toNativeSeparators(fi.absolutePath() + QLatin1String("/bar-descriptor.xml"));
|
||||||
|
QString barPackagePath;
|
||||||
|
if (!ti.buildDir.isEmpty())
|
||||||
|
barPackagePath = QDir::toNativeSeparators(ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String(".bar"));
|
||||||
|
|
||||||
|
return BarPackageDeployInformation(true, appDescriptorPath, barPackagePath, node->path());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
namespace Qt4ProjectManager {
|
||||||
|
class Qt4ProFileNode;
|
||||||
class Qt4Project;
|
class Qt4Project;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,8 +75,11 @@ public:
|
|||||||
|
|
||||||
QList<BarPackageDeployInformation> enabledPackages() const;
|
QList<BarPackageDeployInformation> enabledPackages() const;
|
||||||
|
|
||||||
|
QVariantMap toMap() const;
|
||||||
|
void fromMap(const QVariantMap &map);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void initModel();
|
void updateModel();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum Columns {
|
enum Columns {
|
||||||
@@ -85,6 +89,9 @@ private:
|
|||||||
ColumnCount // Always have last
|
ColumnCount // Always have last
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void initModel();
|
||||||
|
BarPackageDeployInformation deployInformationFromNode(Qt4ProjectManager::Qt4ProFileNode *node) const;
|
||||||
|
|
||||||
Qt4ProjectManager::Qt4Project *m_project;
|
Qt4ProjectManager::Qt4Project *m_project;
|
||||||
|
|
||||||
QList<BarPackageDeployInformation> m_deployInformation;
|
QList<BarPackageDeployInformation> m_deployInformation;
|
||||||
|
|||||||
Reference in New Issue
Block a user