Skip to content
Snippets Groups Projects
Commit c32be006 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

SampleView own list model

parent 2303765e
No related branches found
No related tags found
1 merge request!2387unify code for list views
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
#include "GUI/View/Widget/ListItemDelegate.h" #include "GUI/View/Widget/ListItemDelegate.h"
#include <QAction> #include <QAction>
SamplesQListView::SamplesQListView() SamplesQListView::SamplesQListView(SamplesQModel* model)
: m_model(new SamplesQModel(this)) : m_model(model)
{ {
setMaximumWidth(200); setMaximumWidth(200);
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
......
...@@ -24,7 +24,7 @@ class SamplesQModel; ...@@ -24,7 +24,7 @@ class SamplesQModel;
class SamplesQListView : public QListView { class SamplesQListView : public QListView {
Q_OBJECT Q_OBJECT
public: public:
SamplesQListView(); SamplesQListView(SamplesQModel*);
void createNewSample(); void createNewSample();
void createSampleFromLibrary(const QString& classname, const QString& title, void createSampleFromLibrary(const QString& classname, const QString& title,
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "GUI/View/Layout/ApplicationSettings.h" #include "GUI/View/Layout/ApplicationSettings.h"
#include "GUI/View/Layout/mainwindow_constants.h" #include "GUI/View/Layout/mainwindow_constants.h"
#include "GUI/View/List/SamplesQListView.h" #include "GUI/View/List/SamplesQListView.h"
#include "GUI/View/List/SamplesQModel.h"
#include "GUI/View/Realspace/RealspacePanel.h" #include "GUI/View/Realspace/RealspacePanel.h"
#include "GUI/View/Realspace/RealspaceWidget.h" #include "GUI/View/Realspace/RealspaceWidget.h"
#include "GUI/View/Sample/SampleEditor.h" #include "GUI/View/Sample/SampleEditor.h"
...@@ -40,8 +41,9 @@ ...@@ -40,8 +41,9 @@
#include <QWidgetAction> #include <QWidgetAction>
SampleView::SampleView() SampleView::SampleView()
: m_realspace_panel(new RealspacePanel(this)) : m_qlistmodel(new SamplesQModel(this))
, m_listing(new SamplesQListView) , m_qlistview(new SamplesQListView(m_qlistmodel))
, m_realspace_panel(new RealspacePanel(this))
{ {
auto* layout = new QVBoxLayout(this); auto* layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
...@@ -57,8 +59,8 @@ SampleView::SampleView() ...@@ -57,8 +59,8 @@ SampleView::SampleView()
//... Left margin: sample listing //... Left margin: sample listing
hLayout->addWidget(m_listing); hLayout->addWidget(m_qlistview);
m_listing->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); m_qlistview->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
//... Right block: sample editor and bottom panels //... Right block: sample editor and bottom panels
...@@ -99,7 +101,8 @@ SampleView::SampleView() ...@@ -99,7 +101,8 @@ SampleView::SampleView()
new_sample_action->setToolTip("Create new sample"); new_sample_action->setToolTip("Create new sample");
toolbar->addAction(new_sample_action); toolbar->addAction(new_sample_action);
connect(new_sample_action, &QAction::triggered, m_listing, &SamplesQListView::createNewSample); connect(new_sample_action, &QAction::triggered, m_qlistview,
&SamplesQListView::createNewSample);
#ifdef BORNAGAIN_PYTHON #ifdef BORNAGAIN_PYTHON
auto* import_sample_action = new QAction("Import", this); auto* import_sample_action = new QAction("Import", this);
...@@ -108,7 +111,7 @@ SampleView::SampleView() ...@@ -108,7 +111,7 @@ SampleView::SampleView()
"Import sample from a Python script that contains a function that returns a multi-layer"); "Import sample from a Python script that contains a function that returns a multi-layer");
toolbar->addAction(import_sample_action); toolbar->addAction(import_sample_action);
connect(import_sample_action, &QAction::triggered, m_listing, connect(import_sample_action, &QAction::triggered, m_qlistview,
&SamplesQListView::importSampleFromPython); &SamplesQListView::importSampleFromPython);
#endif #endif
...@@ -128,19 +131,19 @@ SampleView::SampleView() ...@@ -128,19 +131,19 @@ SampleView::SampleView()
auto* action = import_menu->addAction(icon, title); auto* action = import_menu->addAction(icon, title);
action->setToolTip(description); action->setToolTip(description);
connect(action, &QAction::triggered, [this, exampleName, title, description] { connect(action, &QAction::triggered, [this, exampleName, title, description] {
m_listing->createSampleFromLibrary(exampleName, title, description); m_qlistview->createSampleFromLibrary(exampleName, title, description);
}); });
} }
//... Finish //... Finish
connect(m_listing, &SamplesQListView::currentSampleChanged, editor, connect(m_qlistview, &SamplesQListView::currentSampleChanged, editor,
&SampleEditor::setCurrentSample); &SampleEditor::setCurrentSample);
connect(m_listing, &SamplesQListView::currentSampleChanged, connect(m_qlistview, &SamplesQListView::currentSampleChanged,
[&](SampleItem* m) { onRequestViewInRealspace(m); }); [&](SampleItem* m) { onRequestViewInRealspace(m); });
connect(m_listing, &SamplesQListView::currentSampleChanged, scriptPanel, connect(m_qlistview, &SamplesQListView::currentSampleChanged, scriptPanel,
&ScriptPanel::setCurrentSample); &ScriptPanel::setCurrentSample);
connect(editor, &SampleEditor::modified, scriptPanel, &ScriptPanel::onSampleModified); connect(editor, &SampleEditor::modified, scriptPanel, &ScriptPanel::onSampleModified);
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
class Item3D; class Item3D;
class RealspacePanel; class RealspacePanel;
class SamplesQListView; class SamplesQListView;
class SamplesQModel;
class SampleView : public QWidget { class SampleView : public QWidget {
Q_OBJECT Q_OBJECT
...@@ -39,8 +40,9 @@ private: ...@@ -39,8 +40,9 @@ private:
void applySplitterPos(); void applySplitterPos();
void saveSplitterPos(); void saveSplitterPos();
SamplesQModel* m_qlistmodel;
SamplesQListView* m_qlistview;
RealspacePanel* m_realspace_panel; RealspacePanel* m_realspace_panel;
SamplesQListView* m_listing;
}; };
#endif // BORNAGAIN_GUI_VIEW_VIEWS_SAMPLEVIEW_H #endif // BORNAGAIN_GUI_VIEW_VIEWS_SAMPLEVIEW_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