OSDN Git Service

Maemo: Make deploy step widget extensible.
authorChristian Kandeler <christian.kandeler@nokia.com>
Tue, 26 Apr 2011 11:34:30 +0000 (13:34 +0200)
committerChristian Kandeler <christian.kandeler@nokia.com>
Tue, 26 Apr 2011 11:34:44 +0000 (13:34 +0200)
src/plugins/qt4projectmanager/qt-maemo/maemodeploystepwidget.cpp
src/plugins/qt4projectmanager/qt-maemo/maemodeploystepwidget.h

index 8a48c64..38e531a 100644 (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
index 8fa8695..84e17fa 100644 (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