Skip to content
Snippets Groups Projects
Commit 241c0366 authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

JobProperties: done

parent 817001a0
No related branches found
No related tags found
1 merge request!1025GUI: remember docks sizes and tabs indices
......@@ -37,7 +37,6 @@ FitActivityPanel::FitActivityPanel(QWidget* parent)
setObjectName("FitActivityPanel");
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding);
auto* layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
......
......@@ -40,8 +40,8 @@ private:
void readSettings();
void writeSettings();
int m_panelWidth;
ItemStackPresenter<ParameterTuningWidget>* m_stackedWidget;
int m_panelWidth;
};
#endif // BORNAGAIN_GUI_VIEW_FIT_JOBREALTIMEWIDGET_H
......@@ -51,8 +51,6 @@ bool row_ascending(const QModelIndex& idx1, const QModelIndex& idx2)
JobListView::JobListView(JobModel* jobs, QWidget* parent, Qt::WindowFlags f)
: QWidget(parent, f)
{
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
auto* layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
......@@ -103,6 +101,8 @@ JobListView::JobListView(JobModel* jobs, QWidget* parent, Qt::WindowFlags f)
updateActions();
ensureItemSelected();
setMinimumWidth(10);
}
QVector<JobItem*> JobListView::selectedJobs() const
......
......@@ -39,7 +39,6 @@ enum ETabId { JOB_PROPERTIES, JOB_MESSAGES };
JobPropertiesWidget::JobPropertiesWidget(QWidget* parent, Qt::WindowFlags f)
: QWidget(parent, f)
, m_jobItem(nullptr)
, m_panelSize(10,10)
{
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding);
setWindowTitle(GUI::Constants::JobPropertiesWidgetName);
......@@ -66,32 +65,13 @@ JobPropertiesWidget::JobPropertiesWidget(QWidget* parent, Qt::WindowFlags f)
connect(m_commentsEditor, &QTextEdit::textChanged, this,
&JobPropertiesWidget::onCommentsEdited);
readSettings();
adjustSize();
setFixedHeight(m_panelSize.height());
setMinimumWidth(10);
}
JobPropertiesWidget::~JobPropertiesWidget()
{
if (m_jobItem)
disconnect(m_jobItem, nullptr, this, nullptr);
writeSettings();
}
void JobPropertiesWidget::resizeEvent(QResizeEvent*)
{
setMinimumHeight(0);
setMaximumHeight(QWIDGETSIZE_MAX);
}
QSize JobPropertiesWidget::sizeHint() const
{
return QSize(GUI::Util::Style::PropertyPanelWidth(), GUI::Util::Style::PropertyPanelWidth());
}
QSize JobPropertiesWidget::minimumSizeHint() const
{
return QSize(GUI::Util::Style::PropertyPanelWidth(), GUI::Util::Style::PropertyPanelWidth());
}
void JobPropertiesWidget::setJobItem(JobItem* jobItem)
......@@ -139,22 +119,3 @@ void JobPropertiesWidget::onCommentsEdited()
m_jobItem->blockSignals(false);
}
}
void JobPropertiesWidget::readSettings()
{
QSettings settings;
if (settings.childGroups().contains(GUI::Constants::S_JOB_PROPERTIES_PANEL)) {
settings.beginGroup(GUI::Constants::S_JOB_PROPERTIES_PANEL);
m_panelSize = settings.value(GUI::Constants::S_JOB_PROPERTIES_PANEL_SIZE).toSize();
settings.endGroup();
}
}
void JobPropertiesWidget::writeSettings()
{
QSettings settings;
settings.beginGroup(GUI::Constants::S_JOB_PROPERTIES_PANEL);
settings.setValue(GUI::Constants::S_JOB_PROPERTIES_PANEL_SIZE, size());
settings.endGroup();
settings.sync();
}
......@@ -33,17 +33,11 @@ public:
~JobPropertiesWidget() override;
void setJobItem(JobItem* jobItem);
void resizeEvent(QResizeEvent*) override;
QSize sizeHint() const override;
QSize minimumSizeHint() const override;
private:
void notifyJobPropertyChange();
private slots:
void onCommentsEdited();
void readSettings();
void writeSettings();
private:
QTabWidget* m_tabWidget;
......@@ -51,7 +45,6 @@ private:
JobPropertiesTableModel* m_propertiesModel;
QTextEdit* m_commentsEditor;
JobItem* m_jobItem;
QSize m_panelSize;
};
#endif // BORNAGAIN_GUI_VIEW_JOB_JOBPROPERTIESWIDGET_H
......@@ -21,6 +21,26 @@
#include <QSplitter>
#include <QVBoxLayout>
namespace {
QVariant listToQVariant(const QList<int>& list)
{
QList<QVariant> var_list;
for(int val : list)
var_list.push_back(QVariant(val));
return QVariant(var_list);
}
QList<int> qVariantToList(const QVariant& var)
{
QList<QVariant> var_list = var.toList();
QList<int> list;
for(QVariant var_val : var_list)
list.push_back(var_val.toInt());
return list;
}
} // namespace
JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent)
: QWidget(parent)
, m_jobModel(jobModel)
......@@ -34,15 +54,15 @@ JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent)
layout->setSpacing(0);
layout->setContentsMargins(0, 0, 0, 0);
auto* splitter = new QSplitter(Qt::Vertical, this);
splitter->setChildrenCollapsible(true);
layout->addWidget(splitter);
m_splitter = new QSplitter(Qt::Vertical, this);
m_splitter->setChildrenCollapsible(true);
layout->addWidget(m_splitter);
m_jobListView = new JobListView(m_jobModel, splitter);
splitter->addWidget(m_jobListView);
m_jobListView = new JobListView(m_jobModel, m_splitter);
m_splitter->addWidget(m_jobListView);
m_jobProperties = new JobPropertiesWidget(this);
splitter->addWidget(m_jobProperties);
m_splitter->addWidget(m_jobProperties);
connect(m_jobListView, &JobListView::selectedJobsChanged, this,
&JobSelectorWidget::onSelectedJobsChanged);
......@@ -86,12 +106,14 @@ void JobSelectorWidget::onSelectedJobsChanged(const QVector<JobItem*>& jobs)
m_jobProperties->setJobItem(nullptr);
}
void JobSelectorWidget::readSettings()
{
QSettings settings;
if (settings.childGroups().contains(GUI::Constants::S_JOB_SELECTOR_PANEL)) {
settings.beginGroup(GUI::Constants::S_JOB_SELECTOR_PANEL);
m_panelSize = settings.value(GUI::Constants::S_JOB_SELECTOR_PANEL_SIZE).toSize();
m_splitter->setSizes(qVariantToList(settings.value(GUI::Constants::S_JOB_SELECTOR_SPLITTER_SIZES)));
settings.endGroup();
}
}
......@@ -101,6 +123,7 @@ void JobSelectorWidget::writeSettings()
QSettings settings;
settings.beginGroup(GUI::Constants::S_JOB_SELECTOR_PANEL);
settings.setValue(GUI::Constants::S_JOB_SELECTOR_PANEL_SIZE, size());
settings.setValue(GUI::Constants::S_JOB_SELECTOR_SPLITTER_SIZES, listToQVariant(m_splitter->sizes()));
settings.endGroup();
settings.sync();
}
......@@ -17,6 +17,7 @@
#include <QWidget>
class QSplitter;
class JobModel;
class JobItem;
class JobListView;
......@@ -49,6 +50,7 @@ private:
void readSettings();
void writeSettings();
QSplitter* m_splitter;
JobListView* m_jobListView;
JobPropertiesWidget* m_jobProperties;
JobModel* m_jobModel;
......
......@@ -116,8 +116,3 @@ int GUI::Util::Style::SystemPointSize()
{
return QApplication::font().pointSize();
}
int GUI::Util::Style::PropertyPanelWidth()
{
return SizeOfLetterM().width() * 16;
}
......@@ -46,10 +46,6 @@ QSize SizeOfLetterM(const QWidget* widget = nullptr);
//! Returns size in points of default system font.
int SystemPointSize();
//! Returns typical width of the vertical property panel.
int PropertyPanelWidth();
} // namespace GUI::Util::Style
#endif // BORNAGAIN_GUI_VIEW_TOOL_STYLEUTILS_H
......@@ -24,7 +24,6 @@ const char S_MAIN_WINDOW[] = "MainWindow";
const char S_JOB_MESSAGE_PANEL[] = "JobMessagePanel";
const char S_JOB_SELECTOR_PANEL[] = "JobSelectorPanel";
const char S_FIT_ACTIVITY_PANEL[] = "FitActivityPanel";
const char S_JOB_PROPERTIES_PANEL[] = "JobPropertiesPanel";
const char S_SESSION_MODEL_VIEW[] = "SessionModelView";
// Settings keys
......@@ -34,8 +33,8 @@ const char S_VIEW_IS_ACTIVE[] = "ViewIsActive";
const char S_JOB_MESSAGE_PANEL_SIZE[] = "size";
const char S_JOB_SELECTOR_PANEL_SIZE[] = "size";
const char S_JOB_SELECTOR_SPLITTER_SIZES[] = "splitter_sizes";
const char S_FIT_ACTIVITY_PANEL_SIZE[] = "size";
const char S_JOB_PROPERTIES_PANEL_SIZE[] = "size";
const int MAX_RECENT_PROJECTS = 10;
......
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