void EventDetailsDialog::updateContent(const CommitDetails& details) { QStackedLayout *layout = (QStackedLayout *)this->layout(); layout->setCurrentIndex(INDEX_DETAILS_VIEW); model_->setCommitDetails(details); }
toResultPlanAbstr::toResultPlanAbstr(QWidget *parent) : QWidget(parent) , CursorChildSel(NULL) , DisplayChildCombo(false) , Explaining(false) , Query(NULL) { using namespace ToConfiguration; planTreeView = new toResultPlanView(this); planTreeText = new QPlainTextEdit(this); planTreeText->setReadOnly(true); planTreeText->setFont(Utils::toStringToFont(toConfigurationNewSingle::Instance().option(Editor::ConfTextFont).toString())); //toExplainTypeButtonSingle::Instance(). QStackedLayout *mainLayout = new QStackedLayout; mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); mainLayout->addWidget(planTreeView); mainLayout->addWidget(planTreeText); mainLayout->setCurrentIndex(0); //mainLayout->setStackingMode(QStackedLayout::StackAll); setLayout(mainLayout); }
void CloudView::showReposList() { QStackedLayout *stack = (QStackedLayout *)(layout()); stack->setCurrentIndex(INDEX_REPOS_LIST); }
void CloudView::showLoadingView() { QStackedLayout *stack = (QStackedLayout *)(layout()); stack->setCurrentIndex(INDEX_LOADING_VIEW); }
void RackWindow::createPluginHost(int position) { //layout settings widget: QWidget *settingsWidget = new QWidget; settingsWidget->setPalette(QPalette(QColor(0,0,0,160))); settingsWidget->setAutoFillBackground(true); RPushButton *leftButton = new RPushButton; leftButton->setObjectName("rackSettingsLeftArrowButton"); RPushButton *rightButton = new RPushButton; rightButton->setObjectName("rackSettingsRightArrowButton"); RPushButton *topButton = new RPushButton; topButton->setObjectName("rackSettingsTopArrowButton"); RPushButton *bottomButton = new RPushButton; bottomButton->setObjectName("rackSettingsBottomArrowButton"); RPushButton *closeButton = new RPushButton; closeButton->setObjectName("rackSettingsCloseButton"); //vertical toolbar for plugin buttons: QToolBar *pluginHostToolBar = new QToolBar; pluginHostToolBar->setObjectName("rackPluginHostToolBar"); pluginHostToolBar->setOrientation(Qt::Vertical); //actiongroup for exclusive handling of buttons: QActionGroup *ag = new QActionGroup(pluginHostToolBar); ag->setExclusive(true); RPushButton *addPluginWidgetButton = new RPushButton(tr("Add Widget ...")); addPluginWidgetButton->setObjectName("rackAddPluginWidgetButton"); QWidget *middleWidget = new QWidget; QVBoxLayout *middleLayout = new QVBoxLayout(middleWidget); middleLayout->setSpacing(0); middleLayout->setContentsMargins(0,0,0,0); middleLayout->addWidget(pluginHostToolBar, 0, Qt::AlignHCenter); middleLayout->addWidget(addPluginWidgetButton, 0, Qt::AlignHCenter); QGridLayout *settingsLayout = new QGridLayout(settingsWidget); settingsLayout->setSpacing(0); settingsLayout->setContentsMargins(0,0,0,0); settingsLayout->addWidget(topButton,0,1, Qt::AlignTop | Qt::AlignHCenter); settingsLayout->addWidget(closeButton,0,2, Qt::AlignTop | Qt::AlignRight); settingsLayout->addWidget(leftButton,1,0, Qt::AlignLeft); settingsLayout->addWidget(rightButton,1,2, Qt::AlignRight); settingsLayout->addWidget(bottomButton,2,1, Qt::AlignBottom| Qt::AlignHCenter); settingsLayout->addWidget(middleWidget,1,1); QStackedWidget *pluginStack = new QStackedWidget; pluginStack->setObjectName("rackPluginStack"); pluginStack->setAutoFillBackground(true); QWidget *pluginHost = new QWidget; pluginHost->setMinimumSize(200,80); QStackedLayout *overlayLayout = new QStackedLayout(pluginHost); overlayLayout->setStackingMode(QStackedLayout::StackAll); overlayLayout->addWidget(pluginStack); overlayLayout->addWidget(settingsWidget); overlayLayout->setCurrentIndex(1); //enter/leave settings signals: QSignalMapper *mapperShowSettingsMode = new QSignalMapper(pluginHost); QObject::connect(this, SIGNAL(enterSettingsMode()), mapperShowSettingsMode, SLOT(map())); mapperShowSettingsMode->setMapping(this, 1); QSignalMapper *mapperHideSettingsMode = new QSignalMapper(pluginHost); QObject::connect(this, SIGNAL(leaveSettingsMode()), mapperHideSettingsMode, SLOT(map())); mapperHideSettingsMode->setMapping(this, 0); QObject::connect(mapperShowSettingsMode, SIGNAL(mapped(int)), overlayLayout, SLOT(setCurrentIndex(int))); QObject::connect(mapperHideSettingsMode, SIGNAL(mapped(int)), overlayLayout, SLOT(setCurrentIndex(int))); //create plugin host widget signals: QSignalMapper *mapperCreatePluginHost = new QSignalMapper(pluginHost); QObject::connect(leftButton, SIGNAL(clicked()), mapperCreatePluginHost, SLOT(map())); QObject::connect(rightButton, SIGNAL(clicked()), mapperCreatePluginHost, SLOT(map())); QObject::connect(topButton, SIGNAL(clicked()), mapperCreatePluginHost, SLOT(map())); QObject::connect(bottomButton, SIGNAL(clicked()), mapperCreatePluginHost, SLOT(map())); mapperCreatePluginHost->setMapping(leftButton, NewSplitterLeft); mapperCreatePluginHost->setMapping(rightButton, NewSplitterRight); mapperCreatePluginHost->setMapping(topButton, NewSplitterTop); mapperCreatePluginHost->setMapping(bottomButton, NewSplitterBottom); QObject::connect(mapperCreatePluginHost, SIGNAL(mapped(int)), SLOT(createPluginHost(int))); //load plugin signal: QObject::connect(addPluginWidgetButton, SIGNAL(clicked()), m_mapperLoadNewPlugin, SLOT(map())); m_mapperLoadNewPlugin->setMapping(addPluginWidgetButton, pluginHost); //close plugin host signal: QObject::connect(closeButton, SIGNAL(clicked()), m_mapperClosePluginHost, SLOT(map())); m_mapperClosePluginHost->setMapping(closeButton, pluginHost); //create plugin switch signalmapper QSignalMapper *mapperSwitchPlugin = new QSignalMapper(pluginHost); mapperSwitchPlugin->setObjectName("rackPluginSwitchMapper"); QObject::connect(mapperSwitchPlugin, SIGNAL(mapped(QWidget *)), pluginStack, SLOT(setCurrentWidget(QWidget *))); ////test show/hide plugin widget ////QObject::connect(mapperSwitchPlugin, SIGNAL(mapped(QWidget *)), this, SLOT(showHidePluginWidget(QWidget*))); ////// //create plugin toolbar for mainwindow QToolBar *pluginToolBar = new QToolBar; pluginToolBar->setObjectName("rackPluginToolBar"); pluginToolBar->setMovable(false); pluginToolBar->hide(); addToolBar(Qt::BottomToolBarArea, pluginToolBar); //store the toolbar pointer as dynamic property to access later when creating plugin toolbar buttons pluginHost->setProperty("pluginToolBar", qVariantFromValue((QWidget *)pluginToolBar)); //plugin bar signals & slots: QObject::connect(this, SIGNAL(enterSettingsMode()), pluginToolBar, SLOT(hide())); QObject::connect(this, SIGNAL(leaveSettingsMode()), pluginToolBar, SLOT(show())); //insert new pluginhost widget in splitter, create new splitter if necessary if (position == 0) { m_mainSplitter->addWidget(pluginHost); return; } QSignalMapper *sm = qobject_cast<QSignalMapper *>(sender()); QWidget *senderPluginHost = qobject_cast<QWidget *>(sm->mapping(position)->parent()->parent()); RSplitter *parentSplitter = qobject_cast<RSplitter *>(senderPluginHost->parent()); QList<int> widgetsizes; int senderpos = parentSplitter->indexOf(senderPluginHost); int newposition; if ((position == NewSplitterLeft) or (position == NewSplitterTop)) newposition = senderpos; else newposition = senderpos + 1; switch (position + parentSplitter->orientation()) { //horizontal=1 vertical=2 case 0: //left horizontal / top vertical case 2: //right horizontal case 4: //bottom vertical widgetsizes = parentSplitter->sizes(); widgetsizes.replace(senderpos, int(widgetsizes.at(senderpos)/2)); widgetsizes.insert(senderpos + 1, widgetsizes.at(senderpos)); parentSplitter->insertWidget(newposition, pluginHost); parentSplitter->setSizes(widgetsizes); break; case 1: //left vertical case 3: //right vertical / bottom horizontal case -1: //top horizontal if (parentSplitter->count() == 1) { parentSplitter->setOrientation(Qt::Orientation(abs(position))); widgetsizes = parentSplitter->sizes(); widgetsizes.replace(0, int(widgetsizes.at(0)/2)); widgetsizes.append(widgetsizes.at(0)); parentSplitter->insertWidget(newposition, pluginHost); parentSplitter->setSizes(widgetsizes); } else if (parentSplitter->count() > 1) { RSplitter *newSplitter = new RSplitter(Qt::Orientation(abs(position))); QObject::connect(this, SIGNAL(enterSettingsMode()), newSplitter, SIGNAL(enterSettingsMode())); QObject::connect(this, SIGNAL(leaveSettingsMode()), newSplitter, SIGNAL(leaveSettingsMode())); widgetsizes = parentSplitter->sizes(); parentSplitter->insertWidget(parentSplitter->indexOf(senderPluginHost), newSplitter); newSplitter->addWidget(senderPluginHost); QList<int> newsizes = newSplitter->sizes(); newsizes.replace(0, int(newsizes.at(0)/2)); newsizes.append(newsizes.at(0)); if ((position == NewSplitterLeft) or (position == NewSplitterTop)) newSplitter->insertWidget(0, pluginHost); else newSplitter->addWidget(pluginHost); newSplitter->setSizes(newsizes); parentSplitter->setSizes(widgetsizes); } break; } }