Tweaks to the project page.

This commit is contained in:
dt
2009-10-01 14:24:44 +02:00
parent 1936535cf4
commit a97dcb53d1
26 changed files with 220 additions and 418 deletions

View File

@@ -34,13 +34,13 @@
#include <coreplugin/coreconstants.h>
#include <extensionsystem/pluginmanager.h>
#include <utils/qtcassert.h>
#include <utils/detailsbutton.h>
#include <QtGui/QLabel>
#include <QtGui/QPushButton>
#include <QtGui/QMenu>
#include <QtGui/QVBoxLayout>
#include <QtGui/QHBoxLayout>
#include <QtGui/QToolButton>
using namespace ProjectExplorer;
using namespace ProjectExplorer::Internal;
@@ -51,7 +51,7 @@ BuildStepsPage::BuildStepsPage(Project *project, bool clean) :
m_clean(clean)
{
m_vbox = new QVBoxLayout(this);
m_vbox->setContentsMargins(20, 0, 0, 0);
m_vbox->setContentsMargins(0, 0, 0, 0);
const QList<BuildStep *> &steps = m_clean ? m_pro->cleanSteps() : m_pro->buildSteps();
foreach (BuildStep *bs, steps) {
addBuildStepWidget(-1, bs);
@@ -92,36 +92,19 @@ BuildStepsPage::BuildStepsPage(Project *project, bool clean) :
BuildStepsPage::~BuildStepsPage()
{
foreach(BuildStepsWidgetStruct s, m_buildSteps) {
delete s.detailsLabel;
delete s.upButton;
delete s.downButton;
delete s.detailsButton;
delete s.hbox;
delete s.widget;
delete s.detailsWidget;
}
m_buildSteps.clear();
}
void BuildStepsPage::toggleDetails()
{
QAbstractButton *button = qobject_cast<QAbstractButton *>(sender());
if (button) {
foreach(const BuildStepsWidgetStruct &s, m_buildSteps) {
if (s.detailsButton == button) {
s.widget->setVisible(!s.widget->isVisible());
fixupLayout(s.widget);
}
}
}
}
void BuildStepsPage::updateSummary()
{
BuildStepConfigWidget *widget = qobject_cast<BuildStepConfigWidget *>(sender());
if (widget)
foreach(const BuildStepsWidgetStruct &s, m_buildSteps)
if (s.widget == widget)
s.detailsLabel->setText(widget->summaryText());
s.detailsWidget->setSummaryText(widget->summaryText());
}
QString BuildStepsPage::displayName() const
@@ -136,7 +119,7 @@ void BuildStepsPage::init(const QString &buildConfiguration)
// make sure widget is updated
foreach(BuildStepsWidgetStruct s, m_buildSteps) {
s.widget->init(m_configuration);
s.detailsLabel->setText(s.widget->summaryText());
s.detailsWidget->setSummaryText(s.widget->summaryText());
}
}
@@ -174,8 +157,10 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step)
// create everything
BuildStepsWidgetStruct s;
s.widget = step->createConfigWidget();
s.detailsLabel = new QLabel(this);
s.detailsLabel->setText(s.widget->summaryText());
s.detailsWidget = new Utils::DetailsWidget(this);
s.detailsWidget->setSummaryText(s.widget->summaryText());
s.detailsWidget->setWidget(s.widget);
s.upButton = new QToolButton(this);
s.upButton->setArrowType(Qt::UpArrow);
s.downButton = new QToolButton(this);
@@ -184,14 +169,14 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step)
s.upButton->setIconSize(QSize(10, 10));
s.downButton->setIconSize(QSize(10, 10));
#endif
s.detailsButton = new Utils::DetailsButton(this);
// layout
s.hbox = new QHBoxLayout();
s.hbox->addWidget(s.detailsLabel);
QWidget *toolWidget = new QWidget(s.detailsWidget);
toolWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
s.hbox = new QHBoxLayout(toolWidget);
s.hbox->setMargin(0);
s.hbox->addWidget(s.upButton);
s.hbox->addWidget(s.downButton);
s.hbox->addWidget(s.detailsButton);
s.detailsWidget->setToolWidget(toolWidget);
if (pos == -1)
m_buildSteps.append(s);
@@ -199,17 +184,10 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step)
m_buildSteps.insert(pos, s);
if (pos == -1) {
m_vbox->addLayout(s.hbox);
m_vbox->addWidget(s.widget);
m_vbox->addWidget(s.detailsWidget);
} else {
m_vbox->insertLayout(pos *2, s.hbox);
m_vbox->insertWidget(pos *2 + 1, s.widget);
m_vbox->insertWidget(pos, s.detailsWidget);
}
s.widget->hide();
// connect
connect(s.detailsButton, SIGNAL(clicked()),
this, SLOT(toggleDetails()));
connect(s.widget, SIGNAL(updateSummary()),
this, SLOT(updateSummary()));
@@ -231,7 +209,7 @@ void BuildStepsPage::addBuildStep()
addBuildStepWidget(pos, newStep);
const BuildStepsWidgetStruct s = m_buildSteps.at(pos);
s.widget->init(m_configuration);
s.detailsLabel->setText(s.widget->summaryText());
s.detailsWidget->setSummaryText(s.widget->summaryText());
}
updateBuildStepButtonsState();
}
@@ -260,12 +238,8 @@ void BuildStepsPage::removeBuildStep()
return;
BuildStepsWidgetStruct s = m_buildSteps.at(pos);
delete s.detailsLabel;
delete s.upButton;
delete s.downButton;
delete s.detailsButton;
delete s.hbox;
delete s.widget;
delete s.detailsWidget;
m_buildSteps.removeAt(pos);
m_clean ? m_pro->removeCleanStep(pos) : m_pro->removeBuildStep(pos);
}
@@ -316,9 +290,7 @@ void BuildStepsPage::stepMoveUp(int pos)
{
m_clean ? m_pro->moveCleanStepUp(pos) : m_pro->moveBuildStepUp(pos);
m_buildSteps.at(pos).hbox->setParent(0);
m_vbox->insertLayout((pos - 1) * 2, m_buildSteps.at(pos).hbox);
m_vbox->insertWidget((pos - 1) * 2 + 1, m_buildSteps.at(pos).widget);
m_vbox->insertWidget(pos - 1, m_buildSteps.at(pos).detailsWidget);
BuildStepsWidgetStruct tmp = m_buildSteps.at(pos -1);
m_buildSteps[pos -1] = m_buildSteps.at(pos);