Skip to content
Snippets Groups Projects
Unverified Commit e22d147a authored by mpuchner's avatar mpuchner Committed by GitHub
Browse files

Merge pull request #1144 from mpuchner/GUI-refactorings-and-corrections

GUI refactorings and corrections
parents 2a239269 488b66ab
No related branches found
No related tags found
No related merge requests found
Showing
with 82 additions and 90 deletions
......@@ -18,8 +18,8 @@
#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorWidget.h"
#include "GUI/coregui/mainwindow/mainwindow.h"
#include "GUI/coregui/mainwindow/mainwindow_constants.h"
#include <QSplitter>
#include <QVBoxLayout>
#include <qt-manhattan-style/minisplitter.h>
namespace {
const bool reuse_widget = true;
......@@ -27,7 +27,6 @@ const bool reuse_widget = true;
ImportDataView::ImportDataView(MainWindow* mainWindow)
: QWidget(mainWindow)
, m_splitter(new Manhattan::MiniSplitter)
, m_selectorWidget(new RealDataSelectorWidget)
, m_stackedWidget(new ItemStackPresenter<RealDataPresenter>(reuse_widget))
, m_realDataModel(mainWindow->realDataModel()) {
......@@ -40,15 +39,16 @@ ImportDataView::ImportDataView(MainWindow* mainWindow)
m_selectorWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
m_stackedWidget->setSizeHint(QSize(1024, 1024));
m_splitter->addWidget(m_selectorWidget);
m_splitter->addWidget(m_stackedWidget);
m_splitter->setCollapsible(0, false);
m_splitter->setCollapsible(1, false);
auto splitter = new QSplitter;
splitter->addWidget(m_selectorWidget);
splitter->addWidget(m_stackedWidget);
splitter->setCollapsible(0, false);
splitter->setCollapsible(1, false);
m_splitter->setSizes(QList<int>() << Constants::ITEM_SELECTOR_WIDGET_WIDTH
<< Constants::ITEM_SELECTOR_WIDGET_WIDTH * 7);
splitter->setSizes(QList<int>() << Constants::ITEM_SELECTOR_WIDGET_WIDTH
<< Constants::ITEM_SELECTOR_WIDGET_WIDTH * 7);
mainLayout->addWidget(m_splitter);
mainLayout->addWidget(splitter);
setLayout(mainLayout);
......
......@@ -20,9 +20,6 @@
class RealDataModel;
class RealDataSelectorWidget;
namespace Manhattan {
class MiniSplitter;
}
//! The ImportDataView class is a main view for importing experimental data.
......@@ -38,7 +35,6 @@ public slots:
private:
void setupConnections();
Manhattan::MiniSplitter* m_splitter;
RealDataSelectorWidget* m_selectorWidget;
ItemStackPresenter<RealDataPresenter>* m_stackedWidget;
RealDataModel* m_realDataModel;
......
......@@ -20,25 +20,25 @@
#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorHBar.h"
#include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorToolBar.h"
#include <QItemSelectionModel>
#include <QSplitter>
#include <QVBoxLayout>
#include <qt-manhattan-style/minisplitter.h>
RealDataSelectorWidget::RealDataSelectorWidget(QWidget* parent)
: QWidget(parent)
, m_selectorActions(new RealDataSelectorActions(this))
, m_toolBar(new RealDataSelectorToolBar(m_selectorActions, this))
, m_hamBar(new RealDataSelectorHBar(m_selectorActions, this))
, m_splitter(new Manhattan::MiniSplitter)
, m_selectorWidget(new ItemSelectorWidget)
, m_propertiesWidget(new RealDataPropertiesWidget) {
setMinimumSize(128, 600);
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
setWindowTitle("RealDataSelectorWidget");
m_splitter->setOrientation(Qt::Vertical);
m_splitter->addWidget(m_selectorWidget);
m_splitter->addWidget(m_propertiesWidget);
m_splitter->setChildrenCollapsible(true);
auto splitter = new QSplitter;
splitter->setOrientation(Qt::Vertical);
splitter->addWidget(m_selectorWidget);
splitter->addWidget(m_propertiesWidget);
splitter->setChildrenCollapsible(true);
auto mainLayout = new QVBoxLayout;
mainLayout->setMargin(0);
......@@ -46,7 +46,7 @@ RealDataSelectorWidget::RealDataSelectorWidget(QWidget* parent)
mainLayout->setContentsMargins(0, 0, 0, 0);
mainLayout->addWidget(m_toolBar);
mainLayout->addWidget(m_hamBar);
mainLayout->addWidget(m_splitter);
mainLayout->addWidget(splitter);
setLayout(mainLayout);
connect(m_selectorWidget, &ItemSelectorWidget::contextMenuRequest, m_selectorActions,
......
......@@ -26,9 +26,6 @@ class SessionItem;
class RealDataSelectorActions;
class RealDataSelectorToolBar;
class RealDataSelectorHBar;
namespace Manhattan {
class MiniSplitter;
}
//! The RealDataSelectorWidget represents left panel of ImportDataView. Contains a widget to
//! select data set (ItemSelectorWidget) and properties of currently selected data
......@@ -55,7 +52,6 @@ private:
RealDataSelectorActions* m_selectorActions;
RealDataSelectorToolBar* m_toolBar;
RealDataSelectorHBar* m_hamBar;
Manhattan::MiniSplitter* m_splitter;
ItemSelectorWidget* m_selectorWidget;
RealDataPropertiesWidget* m_propertiesWidget;
};
......
......@@ -16,7 +16,7 @@
#include "GUI/coregui/Models/JobModel.h"
#include "GUI/coregui/Models/JobQueueData.h"
#include "GUI/coregui/mainwindow/mainwindow.h"
#include <qt-manhattan-style/progressbar.h>
#include <QProgressBar>
JobProgressAssistant::JobProgressAssistant(MainWindow* mainWindow)
: QObject(mainWindow), m_mainWindow(mainWindow) {
......@@ -29,12 +29,10 @@ JobProgressAssistant::JobProgressAssistant(MainWindow* mainWindow)
void JobProgressAssistant::onGlobalProgress(int progress) {
ASSERT(m_mainWindow->progressBar());
if (progress < 0 || progress >= 100) {
m_mainWindow->progressBar()->setFinished(true);
if (progress < 0 || progress >= 100)
m_mainWindow->progressBar()->hide();
} else {
else {
m_mainWindow->progressBar()->show();
m_mainWindow->progressBar()->setFinished(false);
m_mainWindow->progressBar()->setValue(progress);
}
}
......@@ -22,11 +22,10 @@
#include "GUI/coregui/mainwindow/mainwindow_constants.h"
#include "GUI/coregui/utils/StyleUtils.h"
#include <QHBoxLayout>
#include <qt-manhattan-style/minisplitter.h>
#include <QSplitter>
JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent)
: QWidget(parent)
, m_splitter(new Manhattan::MiniSplitter)
, m_jobSelectorActions(new JobSelectorActions(jobModel, this))
, m_toolBar(new JobSelectorToolBar(m_jobSelectorActions, this))
, m_jobListWidget(new JobListWidget)
......@@ -39,17 +38,18 @@ JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent)
setModel(jobModel);
m_splitter->setOrientation(Qt::Vertical);
m_splitter->addWidget(m_jobListWidget);
m_splitter->addWidget(m_jobProperties);
m_splitter->setChildrenCollapsible(true);
auto splitter = new QSplitter;
splitter->setOrientation(Qt::Vertical);
splitter->addWidget(m_jobListWidget);
splitter->addWidget(m_jobProperties);
splitter->setChildrenCollapsible(true);
auto mainLayout = new QVBoxLayout;
mainLayout->setMargin(0);
mainLayout->setSpacing(0);
mainLayout->setContentsMargins(0, 0, 0, 0);
mainLayout->addWidget(m_toolBar);
mainLayout->addWidget(m_splitter);
mainLayout->addWidget(splitter);
setLayout(mainLayout);
m_jobSelectorActions->setSelectionModel(m_jobListWidget->selectionModel());
......
......@@ -24,10 +24,6 @@ class JobSelectorActions;
class JobListWidget;
class JobPropertiesWidget;
namespace Manhattan {
class MiniSplitter;
}
//! The JobSelectorWidget class represents left panel of JobView. Contains a tree to select jobs
//! on the top and job property editor at the bottom.
......@@ -54,7 +50,6 @@ private slots:
void onSelectionChanged(JobItem* jobItem);
private:
Manhattan::MiniSplitter* m_splitter;
JobSelectorActions* m_jobSelectorActions;
JobSelectorToolBar* m_toolBar;
JobListWidget* m_jobListWidget;
......
......@@ -22,7 +22,6 @@
#include "GUI/coregui/Views/JobWidgets/ProjectionsWidget.h"
#include <QItemSelectionModel>
#include <QSplitter>
#include <qt-manhattan-style/minisplitter.h>
ProjectionsEditor::ProjectionsEditor(QWidget* parent)
: QMainWindow(parent)
......@@ -31,20 +30,19 @@ ProjectionsEditor::ProjectionsEditor(QWidget* parent)
, m_projectionsCanvas(new ProjectionsEditorCanvas)
, m_projectionsWidget(new ProjectionsWidget)
, m_propertyPanel(new ProjectionsPropertyPanel)
, m_selectionModel(nullptr)
, m_rightSplitter(new Manhattan::MiniSplitter)
, m_bottomSplitter(new QSplitter) {
, m_selectionModel(nullptr) {
addToolBar(Qt::RightToolBarArea, m_toolBar);
m_bottomSplitter->setOrientation(Qt::Vertical);
m_bottomSplitter->addWidget(m_projectionsCanvas);
m_bottomSplitter->addWidget(m_projectionsWidget);
m_bottomSplitter->setStyleSheet("background-color:white;");
auto bottomSplitter = new QSplitter;
bottomSplitter->setOrientation(Qt::Vertical);
bottomSplitter->addWidget(m_projectionsCanvas);
bottomSplitter->addWidget(m_projectionsWidget);
m_rightSplitter->addWidget(m_bottomSplitter);
m_rightSplitter->addWidget(m_propertyPanel);
auto rightSplitter(new QSplitter);
rightSplitter->addWidget(bottomSplitter);
rightSplitter->addWidget(m_propertyPanel);
setCentralWidget(m_rightSplitter);
setCentralWidget(rightSplitter);
m_propertyPanel->setHidden(true);
setup_connections();
......
......@@ -27,10 +27,6 @@ class ProjectionsEditorCanvas;
class ProjectionsPropertyPanel;
class ProjectionsWidget;
class QItemSelectionModel;
class QSplitter;
namespace Manhattan {
class MiniSplitter;
}
//! Editor to draw projections on top of intensity plot. Part of
......@@ -56,8 +52,6 @@ private:
ProjectionsWidget* m_projectionsWidget; //! bottom widget to draw projections plot
ProjectionsPropertyPanel* m_propertyPanel; //! pannel at the right with properties
QItemSelectionModel* m_selectionModel;
Manhattan::MiniSplitter* m_rightSplitter;
QSplitter* m_bottomSplitter;
};
#endif // BORNAGAIN_GUI_COREGUI_VIEWS_JOBWIDGETS_PROJECTIONSEDITOR_H
......@@ -21,25 +21,25 @@
#include "GUI/coregui/Views/MaskWidgets/MaskGraphicsScene.h"
#include <QBoxLayout>
#include <QContextMenuEvent>
#include <qt-manhattan-style/minisplitter.h>
#include <QSplitter>
MaskEditor::MaskEditor(QWidget* parent)
: QMainWindow(parent)
, m_editorActions(new MaskEditorActions(this))
, m_toolBar(new MaskEditorToolBar(m_editorActions))
, m_editorPropertyPanel(new MaskEditorPropertyPanel)
, m_editorCanvas(new MaskEditorCanvas)
, m_splitter(new Manhattan::MiniSplitter) {
, m_editorCanvas(new MaskEditorCanvas) {
setObjectName("MaskEditor");
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_splitter->addWidget(m_editorCanvas);
m_splitter->addWidget(m_editorPropertyPanel);
m_splitter->setCollapsible(1, true);
auto splitter = new QSplitter;
splitter->addWidget(m_editorCanvas);
splitter->addWidget(m_editorPropertyPanel);
splitter->setCollapsible(1, true);
addToolBar(Qt::RightToolBarArea, m_toolBar);
setCentralWidget(m_splitter);
setCentralWidget(splitter);
setup_connections();
......
......@@ -25,9 +25,6 @@ class MaskEditorToolBar;
class MaskEditorCanvas;
class SessionModel;
class IntensityDataItem;
namespace Manhattan {
class MiniSplitter;
}
//! Main class to draw masks on top of intensity data map
......@@ -60,7 +57,6 @@ private:
MaskEditorToolBar* m_toolBar;
MaskEditorPropertyPanel* m_editorPropertyPanel;
MaskEditorCanvas* m_editorCanvas;
Manhattan::MiniSplitter* m_splitter;
};
#endif // BORNAGAIN_GUI_COREGUI_VIEWS_MASKWIDGETS_MASKEDITOR_H
......@@ -27,6 +27,7 @@
#include "GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h"
#include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
#include "GUI/coregui/mainwindow/AppSvc.h"
#include "GUI/coregui/mainwindow/mainwindow.h"
#include "GUI/coregui/utils/GUIHelpers.h"
#include "Sample/Material/Material.h"
#include <QColorDialog>
......@@ -141,7 +142,7 @@ ExternalProperty MaterialItemUtils::colorProperty(const QColor& color) {
}
ExternalProperty MaterialItemUtils::selectMaterialProperty(const ExternalProperty& previous) {
MaterialEditorDialog dialog(AppSvc::materialModel());
MaterialEditorDialog dialog(AppSvc::materialModel(), MainWindow::instance());
dialog.setMaterialProperty(previous);
if (dialog.exec() == QDialog::Accepted) {
return dialog.selectedMaterialProperty();
......
......@@ -30,9 +30,9 @@
#include <QDebug>
#include <QItemSelectionModel>
#include <QPushButton>
#include <QSplitter>
#include <QTreeView>
#include <limits>
#include <qt-manhattan-style/minisplitter.h>
TestComponentView::TestComponentView(MainWindow* mainWindow)
: m_mainWindow(mainWindow)
......@@ -44,7 +44,7 @@ TestComponentView::TestComponentView(MainWindow* mainWindow)
, m_updateButton(new QPushButton("Update models"))
, m_addItemButton(new QPushButton("Add item"))
, m_expandButton(new QPushButton("Expand tree"))
, m_splitter(new Manhattan::MiniSplitter)
, m_splitter(new QSplitter)
, m_delegate(new SessionModelDelegate(this))
, m_isExpaned(false) {
auto buttonLayout = new QHBoxLayout;
......@@ -138,7 +138,7 @@ void TestComponentView::onSelectionChanged(const QItemSelection& selected, const
}
QWidget* TestComponentView::componentTreePanel() {
Manhattan::MiniSplitter* result = new Manhattan::MiniSplitter(Qt::Vertical);
auto* result = new QSplitter(Qt::Vertical);
result->addWidget(m_componentTree);
m_componentTree->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
......@@ -146,7 +146,7 @@ QWidget* TestComponentView::componentTreePanel() {
}
QWidget* TestComponentView::componentBoxPanel() {
Manhattan::MiniSplitter* result = new Manhattan::MiniSplitter(Qt::Vertical);
auto* result = new QSplitter(Qt::Vertical);
result->addWidget(m_componentFlat);
m_componentFlat->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
......
......@@ -25,10 +25,8 @@ class SessionModelDelegate;
class QItemSelection;
class ComponentEditor;
class ComponentTreeView;
namespace Manhattan {
class MiniSplitter;
}
class QBoxLayout;
class QSplitter;
class ComponentFlatView;
class MaterialModel;
......@@ -59,7 +57,7 @@ private:
QPushButton* m_updateButton;
QPushButton* m_addItemButton;
QPushButton* m_expandButton;
Manhattan::MiniSplitter* m_splitter;
QSplitter* m_splitter;
SessionModelDelegate* m_delegate;
bool m_isExpaned;
};
......
......@@ -15,7 +15,6 @@
#include "GUI/coregui/Views/SampleDesigner/SampleWidgetBox.h"
#include "GUI/coregui/Views/widgetbox/widgetbox.h"
#include <QVBoxLayout>
#include <qt-manhattan-style/styledbar.h>
#if QT_VERSION < 0x050000
#define QStringLiteral QString
......@@ -25,7 +24,6 @@ SampleWidgetBox::SampleWidgetBox(SampleDesignerInterface* core, QWidget* parent)
: QWidget(parent), m_core(core), m_widgetBox(0) {
setWindowTitle(QLatin1String("Widget Box"));
setObjectName(QLatin1String("WidgetBox"));
// Manhattan::StyledBar *bar = new Manhattan::StyledBar(this);
setWindowTitle("Items Toolbox");
......
......@@ -48,16 +48,17 @@ SimulationDataSelectorWidget::SimulationDataSelectorWidget(QWidget* parent)
// selection of input parameters
QGroupBox* groupBox = new QGroupBox("Data selection");
QLabel* instrumentSelectionLabel = new QLabel("Select Instrument:");
QLabel* instrumentSelectionLabel = new QLabel("Instrument:");
instrumentSelectionLabel->setToolTip(select_instrument_tooltip);
m_instrumentCombo->setToolTip(select_instrument_tooltip);
m_instrumentCombo->setAttribute(Qt::WA_MacShowFocusRect, false);
m_instrumentCombo->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
QLabel* sampleSelectionLabel = new QLabel("Select Sample:");
QLabel* sampleSelectionLabel = new QLabel("Sample:");
sampleSelectionLabel->setToolTip(select_sample_tooltip);
m_sampleCombo->setToolTip(select_sample_tooltip);
QLabel* readDataSelectionLabel = new QLabel("Select Real Data:");
QLabel* readDataSelectionLabel = new QLabel("Real Data:");
readDataSelectionLabel->setToolTip(select_realdata_tooltip);
m_realDataCombo->setToolTip(select_realdata_tooltip);
......
......@@ -33,15 +33,17 @@
#include <QApplication>
#include <QCloseEvent>
#include <QMessageBox>
#include <QProgressBar>
#include <QSettings>
#include <qt-manhattan-style/fancytabwidget.h>
#include <qt-manhattan-style/progressbar.h>
#include <qt-manhattan-style/stylehelper.h>
MainWindow* MainWindow::s_instance = nullptr;
MainWindow::MainWindow()
: Manhattan::FancyMainWindow(nullptr)
, m_tabWidget(new Manhattan::FancyTabWidget(this))
, m_progressBar(new Manhattan::ProgressBar(this))
, m_progressBar(new QProgressBar)
, m_applicationModels(new ApplicationModels(this))
, m_projectManager(new ProjectManager(this))
, m_actionManager(new ActionManager(this))
......@@ -54,6 +56,7 @@ MainWindow::MainWindow()
, m_simulationView(0)
, m_jobView(0)
, m_sessionModelView(0) {
s_instance = this;
initApplication();
readSettings();
initProgressBar();
......@@ -65,6 +68,14 @@ MainWindow::MainWindow()
// m_applicationModels->createTestRealData();
}
MainWindow::~MainWindow() {
s_instance = nullptr;
}
MainWindow* MainWindow::instance() {
return s_instance;
}
MaterialModel* MainWindow::materialModel() {
return models()->materialModel();
}
......@@ -89,7 +100,7 @@ ApplicationModels* MainWindow::models() {
return m_applicationModels;
}
Manhattan::ProgressBar* MainWindow::progressBar() {
QProgressBar* MainWindow::progressBar() {
return m_progressBar;
}
......@@ -181,8 +192,11 @@ void MainWindow::initApplication() {
}
void MainWindow::initProgressBar() {
m_tabWidget->addBottomCornerWidget(m_progressBar);
m_progressBar->hide();
m_progressBar->setTextVisible(false);
m_progressBar->setFixedHeight(10);
m_progressBar->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
m_tabWidget->addBottomCornerWidget(m_progressBar);
}
void MainWindow::initViews() {
......
......@@ -19,7 +19,6 @@
namespace Manhattan {
class FancyTabWidget;
class ProgressBar;
} // namespace Manhattan
class WelcomeView;
......@@ -40,6 +39,7 @@ class ProjectManager;
class ActionManager;
class ToolTipDataBase;
class UpdateNotifier;
class QProgressBar;
class MainWindow : public Manhattan::FancyMainWindow {
Q_OBJECT
......@@ -48,6 +48,10 @@ public:
enum ETabViewId { WELCOME, INSTRUMENT, SAMPLE, IMPORT, SIMULATION, JOB, MAXVIEWCOUNT };
explicit MainWindow();
~MainWindow();
//! Returns the one and only instance of this class
static MainWindow* instance();
MaterialModel* materialModel();
InstrumentModel* instrumentModel();
......@@ -56,7 +60,7 @@ public:
JobModel* jobModel();
ApplicationModels* models();
Manhattan::ProgressBar* progressBar();
QProgressBar* progressBar();
QStatusBar* statusBar();
ProjectManager* projectManager();
......@@ -81,7 +85,7 @@ private:
void initConnections();
Manhattan::FancyTabWidget* m_tabWidget;
Manhattan::ProgressBar* m_progressBar;
QProgressBar* m_progressBar;
ApplicationModels* m_applicationModels;
ProjectManager* m_projectManager;
......@@ -96,6 +100,9 @@ private:
SimulationView* m_simulationView;
JobView* m_jobView;
SessionModelView* m_sessionModelView;
//! Holds the one and only instance of this class
static MainWindow* s_instance;
};
#endif // BORNAGAIN_GUI_COREGUI_MAINWINDOW_MAINWINDOW_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment