Maemo: Make shared pointer an actual QSharedPointer.

Pointer was left dangling when a deploy configuration was removed.
This commit is contained in:
Christian Kandeler
2011-04-26 16:48:45 +02:00
parent 50516bed66
commit 9ce732e4e0
6 changed files with 12 additions and 6 deletions

View File

@@ -69,7 +69,7 @@ LinuxDeviceDeployStepHelper::LinuxDeviceDeployStepHelper(Qt4MaemoDeployConfigura
: m_deployConfiguration(dc) : m_deployConfiguration(dc)
{ {
m_deviceConfig = dc->deviceConfigModel()->defaultDeviceConfig(); m_deviceConfig = dc->deviceConfigModel()->defaultDeviceConfig();
connect(dc->deviceConfigModel(), SIGNAL(updated()), connect(dc->deviceConfigModel().data(), SIGNAL(updated()),
SLOT(handleDeviceConfigurationsUpdated())); SLOT(handleDeviceConfigurationsUpdated()));
} }

View File

@@ -73,7 +73,7 @@ MaemoDeployStepBaseWidget::~MaemoDeployStepBaseWidget()
void MaemoDeployStepBaseWidget::init() void MaemoDeployStepBaseWidget::init()
{ {
ui->deviceConfigComboBox->setModel(m_step->maemoDeployConfig()->deviceConfigModel()); ui->deviceConfigComboBox->setModel(m_step->maemoDeployConfig()->deviceConfigModel().data());
connect(&m_step->helper(), SIGNAL(deviceConfigChanged()), connect(&m_step->helper(), SIGNAL(deviceConfigChanged()),
SLOT(handleDeviceUpdate())); SLOT(handleDeviceUpdate()));
handleDeviceUpdate(); handleDeviceUpdate();

View File

@@ -55,6 +55,10 @@ MaemoPerTargetDeviceConfigurationListModel::MaemoPerTargetDeviceConfigurationLis
connect(devConfs, SIGNAL(updated()), this, SIGNAL(updated())); connect(devConfs, SIGNAL(updated()), this, SIGNAL(updated()));
} }
MaemoPerTargetDeviceConfigurationListModel::~MaemoPerTargetDeviceConfigurationListModel()
{
}
int MaemoPerTargetDeviceConfigurationListModel::rowCount(const QModelIndex &parent) const int MaemoPerTargetDeviceConfigurationListModel::rowCount(const QModelIndex &parent) const
{ {
if (parent.isValid()) if (parent.isValid())

View File

@@ -49,6 +49,7 @@ class MaemoPerTargetDeviceConfigurationListModel : public QAbstractListModel
public: public:
explicit MaemoPerTargetDeviceConfigurationListModel(QObject *parent, const explicit MaemoPerTargetDeviceConfigurationListModel(QObject *parent, const
ProjectExplorer::Target *target); ProjectExplorer::Target *target);
~MaemoPerTargetDeviceConfigurationListModel();
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
virtual QVariant data(const QModelIndex &index, virtual QVariant data(const QModelIndex &index,

View File

@@ -36,7 +36,6 @@
#include "maemodeployconfigurationwidget.h" #include "maemodeployconfigurationwidget.h"
#include "maemodeployables.h" #include "maemodeployables.h"
#include "maemoinstalltosysrootstep.h" #include "maemoinstalltosysrootstep.h"
#include "maemopertargetdeviceconfigurationlistmodel.h"
#include "maemopackagecreationstep.h" #include "maemopackagecreationstep.h"
#include "maemouploadandinstalldeploystep.h" #include "maemouploadandinstalldeploystep.h"
#include "qt4maemotarget.h" #include "qt4maemotarget.h"
@@ -75,7 +74,8 @@ Qt4MaemoDeployConfiguration::Qt4MaemoDeployConfiguration(Target *target,
} }
if (!m_deployables) { if (!m_deployables) {
m_deployables = QSharedPointer<MaemoDeployables>(new MaemoDeployables(qobject_cast<Qt4BaseTarget *>(target))); m_deployables = QSharedPointer<MaemoDeployables>(new MaemoDeployables(qobject_cast<Qt4BaseTarget *>(target)));
m_devConfModel = new MaemoPerTargetDeviceConfigurationListModel(this, target); m_devConfModel = QSharedPointer<MaemoPerTargetDeviceConfigurationListModel>
(new MaemoPerTargetDeviceConfigurationListModel(0, target));
} }
} }

View File

@@ -34,6 +34,7 @@
#define QT4PROJECTMANAGER_QT4DEPLOYCONFIGURATION_H #define QT4PROJECTMANAGER_QT4DEPLOYCONFIGURATION_H
#include"maemodeployables.h" #include"maemodeployables.h"
#include "maemopertargetdeviceconfigurationlistmodel.h"
#include <projectexplorer/deployconfiguration.h> #include <projectexplorer/deployconfiguration.h>
@@ -53,7 +54,7 @@ public:
virtual ProjectExplorer::DeployConfigurationWidget *configurationWidget() const; virtual ProjectExplorer::DeployConfigurationWidget *configurationWidget() const;
QSharedPointer<MaemoDeployables> deployables() const { return m_deployables; } QSharedPointer<MaemoDeployables> deployables() const { return m_deployables; }
MaemoPerTargetDeviceConfigurationListModel *deviceConfigModel() const { return m_devConfModel; } QSharedPointer<MaemoPerTargetDeviceConfigurationListModel> deviceConfigModel() const { return m_devConfModel; }
static const QString FremantleWithPackagingId; static const QString FremantleWithPackagingId;
static const QString FremantleWithoutPackagingId; static const QString FremantleWithoutPackagingId;
@@ -70,7 +71,7 @@ private:
ProjectExplorer::DeployConfiguration *source); ProjectExplorer::DeployConfiguration *source);
QSharedPointer<MaemoDeployables> m_deployables; QSharedPointer<MaemoDeployables> m_deployables;
MaemoPerTargetDeviceConfigurationListModel *m_devConfModel; QSharedPointer<MaemoPerTargetDeviceConfigurationListModel> m_devConfModel;
}; };