diff --git a/GUI/View/Main/CentralWidget.cpp b/GUI/View/Main/CentralWidget.cpp index fc686e8dcff76ebd3f81505701b461a42b6a2849..6f9114e0d526c8fc08831c836725d0f8c2ca7d6f 100644 --- a/GUI/View/Main/CentralWidget.cpp +++ b/GUI/View/Main/CentralWidget.cpp @@ -63,43 +63,12 @@ CentralWidget::CentralWidget() layout->addLayout(m_view_selection_buttons_layout); layout->addLayout(vlayout); - initProgressBar(); - initButtons(); - initViews(); -} - -CentralWidget::~CentralWidget() = default; - -QWidget* CentralWidget::currentView() const -{ - return m_views_stack->currentWidget(); -} - -void CentralWidget::setCurrentView(int viewId) -{ - if (auto* btn = m_view_selection_buttons->button(viewId); btn != nullptr) - btn->click(); -} - -void CentralWidget::raiseView(int viewId) -{ - if (m_views_stack->currentIndex() != viewId) { - m_views_stack->setCurrentIndex(viewId); - emit currentViewChanged(GUI::ID::ViewId(viewId)); - } -} - -void CentralWidget::initProgressBar() -{ m_progress_bar->hide(); m_progress_bar->setTextVisible(false); m_progress_bar->setFixedHeight(QApplication::fontMetrics().boundingRect("M").height()); m_progress_bar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); m_view_selection_buttons_layout->addWidget(m_progress_bar); -} -void CentralWidget::initButtons() -{ addButton(GUI::ID::ViewId::Datafile, QIcon(":/images/view/data.svg"), "Data", "Import intensity data to fit"); addButton(GUI::ID::ViewId::Instrument, QIcon(":/images/view/instrument.svg"), "Instrument", @@ -113,36 +82,18 @@ void CentralWidget::initButtons() for (auto* button : m_view_selection_buttons->buttons()) button->setEnabled(false); -} - -void CentralWidget::updateViews(bool open) -{ - if (!open) - return; - for (auto* button : m_view_selection_buttons->buttons()) - button->setEnabled(true); - auto* filler = - m_view_selection_buttons_layout->itemAt(m_view_selection_buttons->buttons().size()); - if (filler) - if (auto* fillerBtn = dynamic_cast<QToolButton*>(filler->widget()); fillerBtn) - fillerBtn->setEnabled(true); -} - -void CentralWidget::initViews() -{ - ASSERT(gDoc); m_instrument_view = new InstrumentView; m_sample_view = new SampleView; m_data_view = new DataView; m_simulation_view = new SimulationView; - m_job_view = new JobView(progressBar()); + m_job_view = new JobView(m_progress_bar); - resetView(GUI::ID::ViewId::Datafile, m_data_view); - resetView(GUI::ID::ViewId::Instrument, m_instrument_view); - resetView(GUI::ID::ViewId::Sample, m_sample_view); - resetView(GUI::ID::ViewId::Simulation, m_simulation_view); - resetView(GUI::ID::ViewId::Job, m_job_view); + m_views_stack->insertWidget(GUI::ID::ViewId::Datafile, m_data_view); + m_views_stack->insertWidget(GUI::ID::ViewId::Instrument, m_instrument_view); + m_views_stack->insertWidget(GUI::ID::ViewId::Sample, m_sample_view); + m_views_stack->insertWidget(GUI::ID::ViewId::Simulation, m_simulation_view); + m_views_stack->insertWidget(GUI::ID::ViewId::Job, m_job_view); connect(m_job_view, &JobView::jobSelected, [this](int index) { m_view_selection_buttons->button(index)->click(); }); @@ -150,6 +101,39 @@ void CentralWidget::initViews() m_job_view->onJobSelectionChanged(); } +CentralWidget::~CentralWidget() = default; + +QWidget* CentralWidget::currentView() const +{ + return m_views_stack->currentWidget(); +} + +void CentralWidget::setCurrentView(int viewId) +{ + if (auto* btn = m_view_selection_buttons->button(viewId); btn != nullptr) + btn->click(); +} + +void CentralWidget::raiseView(int viewId) +{ + if (m_views_stack->currentIndex() != viewId) { + m_views_stack->setCurrentIndex(viewId); + emit currentViewChanged(GUI::ID::ViewId(viewId)); + } +} + +void CentralWidget::updateViews(bool open) +{ + if (!open) + return; + for (auto* button : m_view_selection_buttons->buttons()) + button->setEnabled(true); + if (auto* filler = + m_view_selection_buttons_layout->itemAt(m_view_selection_buttons->buttons().size())) + if (auto* fillerBtn = dynamic_cast<QToolButton*>(filler->widget())) + fillerBtn->setEnabled(true); +} + void CentralWidget::addButton(GUI::ID::ViewId id, const QIcon& icon, const QString& title, const QString& tooltip) { @@ -164,11 +148,6 @@ void CentralWidget::addButton(GUI::ID::ViewId id, const QIcon& icon, const QStri updateViewSelectionButtonsGeometry(); } -void CentralWidget::resetView(GUI::ID::ViewId id, QWidget* view) -{ - m_views_stack->insertWidget(id, view); -} - void CentralWidget::updateViewSelectionButtonsGeometry() const { if (m_view_selection_buttons->buttons().isEmpty()) @@ -208,11 +187,6 @@ void CentralWidget::updateViewSelectionButtonsGeometry() const m_progress_bar->setFixedWidth(buttonExtent); } -void CentralWidget::onAboutToCloseDocument() -{ - updateViewSelectionButtonsGeometry(); -} - QToolButton* CentralWidget::createViewSelectionButton() const { auto* btn = new QToolButton; diff --git a/GUI/View/Main/CentralWidget.h b/GUI/View/Main/CentralWidget.h index 8fd198eff42892e4dedef803530497a088d9ac07..66702410c7685662ebccc94e5837e256e963f6a7 100644 --- a/GUI/View/Main/CentralWidget.h +++ b/GUI/View/Main/CentralWidget.h @@ -35,27 +35,17 @@ public: CentralWidget(); ~CentralWidget() override; - QProgressBar* progressBar() { return m_progress_bar; } - QWidget* currentView() const; void setCurrentView(int viewId); void updateViews(bool open); -public slots: - void onAboutToCloseDocument(); - signals: void currentViewChanged(GUI::ID::ViewId newView); private: - void initProgressBar(); - void initButtons(); - void initViews(); - void addButton(GUI::ID::ViewId id, const QIcon& icon, const QString& title, const QString& tooltip); - void resetView(GUI::ID::ViewId id, QWidget* view); QToolButton* createViewSelectionButton() const; //! Recalculate the size of the view selection buttons to show complete button text diff --git a/GUI/View/View/DatafilesSelector.cpp b/GUI/View/View/DatafilesSelector.cpp index ce986dec42edb6eb799220520e095c425acba496..f16550fe9c9a36b8d12da4d7f23102ab0c48d4ee 100644 --- a/GUI/View/View/DatafilesSelector.cpp +++ b/GUI/View/View/DatafilesSelector.cpp @@ -40,7 +40,7 @@ DatafilesSelector::DatafilesSelector() auto* toolbar = new StyledToolbar; layout->addWidget(toolbar); toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - setToolbarActions(toolbar); + createActions(toolbar); layout->addWidget(m_qlistview); @@ -48,7 +48,7 @@ DatafilesSelector::DatafilesSelector() updateActions(); } -void DatafilesSelector::setToolbarActions(QToolBar* toolbar) +void DatafilesSelector::createActions(QToolBar* toolbar) { auto* import1dData_action = new QAction(this); toolbar->addAction(import1dData_action); diff --git a/GUI/View/View/DatafilesSelector.h b/GUI/View/View/DatafilesSelector.h index bbb309d051eacb06b8660cf11e2ac6187e424dde..e56bb9b7a7efd4e219a7c2d94241a8a26adc476a 100644 --- a/GUI/View/View/DatafilesSelector.h +++ b/GUI/View/View/DatafilesSelector.h @@ -29,7 +29,7 @@ public: DatafilesSelector(); private: - void setToolbarActions(QToolBar* toolbar); + void createActions(QToolBar* toolbar); void updateActions(); DatafilesSet* m_set; diff --git a/GUI/View/View/InstrumentView.cpp b/GUI/View/View/InstrumentView.cpp index adbed4bf519e600f2a000581d62573d05337f802..e3dc36d4aed7ae1cf535f2d2c2a742ed9903d7f9 100644 --- a/GUI/View/View/InstrumentView.cpp +++ b/GUI/View/View/InstrumentView.cpp @@ -45,7 +45,7 @@ InstrumentView::InstrumentView() auto* toolbar = new StyledToolbar; layout->addWidget(toolbar); toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - setToolbarActions(toolbar); + createActions(toolbar); //... Everything below top toolbar @@ -75,7 +75,7 @@ InstrumentView::InstrumentView() updateActions(); } -void InstrumentView::setToolbarActions(QToolBar* toolbar) +void InstrumentView::createActions(QToolBar* toolbar) { //... New-instrument actions diff --git a/GUI/View/View/InstrumentView.h b/GUI/View/View/InstrumentView.h index ffcf41ba2eff99582eeca122afef2f5104bddc0a..a70f10c3e1d17733f32f9b67ab3a5987ba146ecf 100644 --- a/GUI/View/View/InstrumentView.h +++ b/GUI/View/View/InstrumentView.h @@ -30,7 +30,7 @@ public: InstrumentView(); private: - void setToolbarActions(QToolBar* toolbar); + void createActions(QToolBar* toolbar); void updateActions(); void updateEditor(); QWidget* createEditor(InstrumentItem*); diff --git a/GUI/View/View/SampleView.cpp b/GUI/View/View/SampleView.cpp index dfa21a31cd85f180f97c13ec0fc86fea83f7c475..e0542113974f37f93ee933ffe6ceaf76a1e20743 100644 --- a/GUI/View/View/SampleView.cpp +++ b/GUI/View/View/SampleView.cpp @@ -46,7 +46,7 @@ SampleView::SampleView() auto* toolbar = new StyledToolbar; layout->addWidget(toolbar); toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - setToolbarActions(toolbar); + createActions(toolbar); //... Everything below top toolbar auto* hLayout = new QHBoxLayout; @@ -120,7 +120,7 @@ SampleView::~SampleView() saveSplitterPos(); } -void SampleView::setToolbarActions(QToolBar* toolbar) +void SampleView::createActions(QToolBar* toolbar) { //... New sample action diff --git a/GUI/View/View/SampleView.h b/GUI/View/View/SampleView.h index a13635219db9467aa82481ee8dc6f3b2a04fd934..3490655fff98dce924217dcf03851eecc2958ac1 100644 --- a/GUI/View/View/SampleView.h +++ b/GUI/View/View/SampleView.h @@ -31,7 +31,7 @@ public: ~SampleView(); private: - void setToolbarActions(QToolBar* toolbar); + void createActions(QToolBar* toolbar); void updateActions(); void onRequestViewInRealspace(Item3D* item);