summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qt4projectmanager/qt4runconfiguration.cpp')
-rw-r--r--src/plugins/qt4projectmanager/qt4runconfiguration.cpp52
1 files changed, 44 insertions, 8 deletions
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index ba550ffb09..33f832f70c 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -41,13 +41,13 @@
#include <projectexplorer/buildstep.h>
#include <projectexplorer/environmenteditmodel.h>
#include <utils/qtcassert.h>
+#include <utils/detailsbutton.h>
#include <QtGui/QFormLayout>
#include <QtGui/QInputDialog>
#include <QtGui/QLabel>
#include <QtGui/QCheckBox>
#include <QtGui/QToolButton>
-#include <QtGui/QGroupBox>
#include <QtGui/QComboBox>
using namespace Qt4ProjectManager::Internal;
@@ -163,9 +163,25 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
this, SLOT(usingDyldImageSuffixToggled(bool)));
#endif
- QVBoxLayout *vbox = new QVBoxLayout(this);
- vbox->setContentsMargins(0, -1, 0, -1);
- vbox->addLayout(toplayout);
+ m_detailsWidget = new QWidget(this);
+ m_detailsWidget->setVisible(false);
+ QVBoxLayout *vboxTopLayout = new QVBoxLayout(this);
+ vboxTopLayout->setContentsMargins(0, -1, 0, -1);
+ m_summaryLabel = new QLabel(this);
+ m_summaryLabel->setText("This is a summary");
+ m_detailsButton = new Utils::DetailsButton(this);
+
+ connect(m_detailsButton, SIGNAL(clicked()),
+ this, SLOT(toggleDetails()));
+
+ QHBoxLayout *detailsLayout = new QHBoxLayout();
+ detailsLayout->addWidget(m_summaryLabel);
+ detailsLayout->addWidget(m_detailsButton);
+
+ vboxTopLayout->addLayout(detailsLayout);
+
+ vboxTopLayout->addWidget(m_detailsWidget);
+ m_detailsWidget->setLayout(toplayout);
QLabel *environmentLabel = new QLabel(this);
environmentLabel->setText(tr("Run Environment"));
@@ -173,7 +189,7 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
f.setBold(true);
f.setPointSizeF(f.pointSizeF() *1.2);
environmentLabel->setFont(f);
- vbox->addWidget(environmentLabel);
+ vboxTopLayout->addWidget(environmentLabel);
QWidget *baseEnvironmentWidget = new QWidget;
QHBoxLayout *baseEnvironmentLayout = new QHBoxLayout(baseEnvironmentWidget);
@@ -195,7 +211,7 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
m_environmentWidget->setBaseEnvironment(m_qt4RunConfiguration->baseEnvironment());
m_environmentWidget->setUserChanges(m_qt4RunConfiguration->userEnvironmentChanges());
m_environmentWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- vbox->addWidget(m_environmentWidget);
+ vboxTopLayout->addWidget(m_environmentWidget);
connect(m_workingDirectoryEdit, SIGNAL(changed(QString)),
this, SLOT(setWorkingDirectory()));
@@ -234,6 +250,22 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
this, SLOT(baseEnvironmentChanged()));
}
+void Qt4RunConfigurationWidget::toggleDetails()
+{
+ m_detailsWidget->setVisible(!m_detailsWidget->isVisible());
+}
+
+void Qt4RunConfigurationWidget::updateSummary()
+{
+ const QString &filename = QFileInfo(m_qt4RunConfiguration->executable()).fileName();
+ const QString &arguments = ProjectExplorer::Environment::joinArgumentList(m_qt4RunConfiguration->commandLineArguments());
+ QString text = tr("Running executable: <b>%1</b> %2 %3").arg(
+ filename,
+ arguments,
+ m_qt4RunConfiguration->runMode() == ApplicationRunConfiguration::Console ? tr("(in terminal)") : "");
+ m_summaryLabel->setText(text);
+}
+
void Qt4RunConfigurationWidget::baseEnvironmentComboBoxChanged(int index)
{
m_ignoreChange = true;
@@ -319,8 +351,10 @@ void Qt4RunConfigurationWidget::workingDirectoryChanged(const QString &workingDi
void Qt4RunConfigurationWidget::commandLineArgumentsChanged(const QString &args)
{
- if (!m_ignoreChange)
- m_argumentsLineEdit->setText(args);
+ updateSummary();
+ if (m_ignoreChange)
+ return;
+ m_argumentsLineEdit->setText(args);
}
void Qt4RunConfigurationWidget::nameChanged(const QString &name)
@@ -331,6 +365,7 @@ void Qt4RunConfigurationWidget::nameChanged(const QString &name)
void Qt4RunConfigurationWidget::runModeChanged(ApplicationRunConfiguration::RunMode runMode)
{
+ updateSummary();
if (!m_ignoreChange)
m_useTerminalCheck->setChecked(runMode == ApplicationRunConfiguration::Console);
}
@@ -343,6 +378,7 @@ void Qt4RunConfigurationWidget::usingDyldImageSuffixChanged(bool state)
void Qt4RunConfigurationWidget::effectiveTargetInformationChanged()
{
+ updateSummary();
if (m_isShown) {
m_executableLabel->setText(QDir::toNativeSeparators(m_qt4RunConfiguration->executable()));
m_ignoreChange = true;