Maemo: Make deploy step widget extensible.

This commit is contained in:
Christian Kandeler
2011-04-26 13:34:30 +02:00
parent 0822c900da
commit f15f5945c0
2 changed files with 42 additions and 23 deletions

View File

@@ -33,7 +33,7 @@
#include "maemodeploystepwidget.h"
#include "ui_maemodeploystepwidget.h"
#include "abstractlinuxdevicedeploystep.h"
#include "abstractmaemodeploystep.h"
#include "maemodeviceconfigurations.h"
#include "maemosettingspages.h"
#include "maemoglobal.h"
@@ -53,8 +53,7 @@ using namespace ProjectExplorer;
namespace Qt4ProjectManager {
namespace Internal {
MaemoDeployStepWidget::MaemoDeployStepWidget(AbstractLinuxDeviceDeployStep *step) :
ProjectExplorer::BuildStepConfigWidget(),
MaemoDeployStepBaseWidget::MaemoDeployStepBaseWidget(AbstractLinuxDeviceDeployStep *step) :
ui(new Ui::MaemoDeployStepWidget),
m_step(step)
{
@@ -67,12 +66,12 @@ MaemoDeployStepWidget::MaemoDeployStepWidget(AbstractLinuxDeviceDeployStep *step
SLOT(handleStepToBeRemoved(int)));
}
MaemoDeployStepWidget::~MaemoDeployStepWidget()
MaemoDeployStepBaseWidget::~MaemoDeployStepBaseWidget()
{
delete ui;
}
void MaemoDeployStepWidget::init()
void MaemoDeployStepBaseWidget::init()
{
ui->deviceConfigComboBox->setModel(m_step->maemoDeployConfig()->deviceConfigModel());
connect(&m_step->helper(), SIGNAL(deviceConfigChanged()),
@@ -84,7 +83,7 @@ void MaemoDeployStepWidget::init()
SLOT(showDeviceConfigurations()));
}
void MaemoDeployStepWidget::handleDeviceUpdate()
void MaemoDeployStepBaseWidget::handleDeviceUpdate()
{
const MaemoDeviceConfig::ConstPtr &devConf = m_step->helper().deviceConfig();
const MaemoDeviceConfig::Id internalId
@@ -95,7 +94,7 @@ void MaemoDeployStepWidget::handleDeviceUpdate()
emit updateSummary();
}
void MaemoDeployStepWidget::handleStepToBeRemoved(int step)
void MaemoDeployStepBaseWidget::handleStepToBeRemoved(int step)
{
BuildStepList * const list = m_step->maemoDeployConfig()->stepList();
const AbstractLinuxDeviceDeployStep * const alds
@@ -104,7 +103,7 @@ void MaemoDeployStepWidget::handleStepToBeRemoved(int step)
disconnect(list, 0, this, 0);
}
QString MaemoDeployStepWidget::summaryText() const
QString MaemoDeployStepBaseWidget::summaryText() const
{
QString error;
if (!m_step->isDeploymentPossible(error)) {
@@ -112,16 +111,11 @@ QString MaemoDeployStepWidget::summaryText() const
+ tr("Cannot deploy: %1").arg(error)
+ QLatin1String("</font>");
}
return tr("<b>%1 to device</b>: %2").arg(dynamic_cast<BuildStep *>(m_step)->displayName(),
return tr("<b>%1 using device</b>: %2").arg(dynamic_cast<BuildStep *>(m_step)->displayName(),
MaemoGlobal::deviceConfigurationName(m_step->helper().deviceConfig()));
}
QString MaemoDeployStepWidget::displayName() const
{
return QString();
}
void MaemoDeployStepWidget::setCurrentDeviceConfig(int index)
void MaemoDeployStepBaseWidget::setCurrentDeviceConfig(int index)
{
disconnect(&m_step->helper(), SIGNAL(deviceConfigChanged()), this,
SLOT(handleDeviceUpdate()));
@@ -131,12 +125,20 @@ void MaemoDeployStepWidget::setCurrentDeviceConfig(int index)
updateSummary();
}
void MaemoDeployStepWidget::showDeviceConfigurations()
void MaemoDeployStepBaseWidget::showDeviceConfigurations()
{
MaemoDeviceConfigurationsSettingsPage *page
= MaemoManager::instance().deviceConfigurationsSettingsPage();
Core::ICore::instance()->showOptionsDialog(page->category(), page->id());
}
MaemoDeployStepWidget::MaemoDeployStepWidget(AbstractMaemoDeployStep *step)
: m_baseWidget(step)
{
connect(&m_baseWidget, SIGNAL(updateSummary()), SIGNAL(updateSummary()));
(new QVBoxLayout(this))->addWidget(&m_baseWidget);
}
} // namespace Internal
} // namespace Qt4ProjectManager

View File

@@ -44,14 +44,21 @@ QT_END_NAMESPACE
namespace Qt4ProjectManager {
namespace Internal {
class AbstractLinuxDeviceDeployStep;
class AbstractMaemoDeployStep;
class MaemoDeployStepWidget : public ProjectExplorer::BuildStepConfigWidget
class MaemoDeployStepBaseWidget : public QWidget
{
Q_OBJECT
public:
MaemoDeployStepWidget(AbstractLinuxDeviceDeployStep *step);
~MaemoDeployStepWidget();
MaemoDeployStepBaseWidget(AbstractLinuxDeviceDeployStep *step);
~MaemoDeployStepBaseWidget();
void init();
QString summaryText() const;
signals:
void updateSummary();
private:
Q_SLOT void handleDeviceUpdate();
@@ -59,14 +66,24 @@ private:
Q_SLOT void showDeviceConfigurations();
Q_SLOT void handleStepToBeRemoved(int step);
virtual void init();
virtual QString summaryText() const;
virtual QString displayName() const;
Ui::MaemoDeployStepWidget *ui;
AbstractLinuxDeviceDeployStep *const m_step;
};
class MaemoDeployStepWidget : public ProjectExplorer::BuildStepConfigWidget
{
Q_OBJECT
public:
MaemoDeployStepWidget(AbstractMaemoDeployStep *step);
private:
virtual void init() { return m_baseWidget.init(); }
virtual QString summaryText() const { return m_baseWidget.summaryText(); }
virtual QString displayName() const { return QString(); }
MaemoDeployStepBaseWidget m_baseWidget;
};
} // namespace Internal
} // namespace Qt4ProjectManager