diff --git a/GUI/coregui/Views/JobView.cpp b/GUI/coregui/Views/JobView.cpp index 8904a9dcf060425ba4a0612ee54061051063b8c8..cbb4165cee53671699cb678910798c502c933103 100644 --- a/GUI/coregui/Views/JobView.cpp +++ b/GUI/coregui/Views/JobView.cpp @@ -43,6 +43,7 @@ void JobView::onFocusRequest(JobItem *jobItem) if(jobItem->runInBackground()) return; + setAppropriateActivityForJob(jobItem); m_docks->jobSelector()->makeJobItemSelected(jobItem); emit focusRequest(MainWindow::JOB); @@ -138,3 +139,15 @@ void JobView::connectJobRelated() this, SLOT(onSelectionChanged(JobItem*))); } + +//! Sets appropriate activity for new JobItem + +void JobView::setAppropriateActivityForJob(JobItem *jobItem) +{ + if(m_docks->jobSelector()->currentJobItem() != jobItem) { + if(jobItem->isValidForFitting()) + setActivity(JobViewFlags::FITTING_ACTIVITY); +// else +// setActivity(JobViewFlags::JOB_VIEW_ACTIVITY); + } +} diff --git a/GUI/coregui/Views/JobView.h b/GUI/coregui/Views/JobView.h index 8bbb313c7164a7ce850904564394999db0ec0872..56252638de2922b50a76cb2b0f463b5639c1d522 100644 --- a/GUI/coregui/Views/JobView.h +++ b/GUI/coregui/Views/JobView.h @@ -56,6 +56,8 @@ private: void connectLayoutRelated(); void connectJobRelated(); + void setAppropriateActivityForJob(JobItem *jobItem); + JobViewDocks *m_docks; JobActivityStatusBar *m_jobActivityStatusBar; JobProgressAssistant *m_progressAssistant; diff --git a/GUI/coregui/Views/JobWidgets/JobListWidget.cpp b/GUI/coregui/Views/JobWidgets/JobListWidget.cpp index 43a97fe52c2870bac9c8e9366dc54054c893f469..01b78c6749a03ff2bc08916de5ddfa400d73251a 100644 --- a/GUI/coregui/Views/JobWidgets/JobListWidget.cpp +++ b/GUI/coregui/Views/JobWidgets/JobListWidget.cpp @@ -73,6 +73,16 @@ QItemSelectionModel *JobListWidget::selectionModel() return m_listView->selectionModel(); } +//! Returns currently selected JobItem + +const JobItem *JobListWidget::currentJobItem() const +{ + QModelIndexList selected = m_listView->selectionModel()->selectedIndexes(); + if(selected.size() == 1) + return m_jobModel->getJobItemForIndex(selected.at(0)); + return nullptr; +} + //! setup context menu for listView //void JobListWidget::setupContextMenuActions() diff --git a/GUI/coregui/Views/JobWidgets/JobListWidget.h b/GUI/coregui/Views/JobWidgets/JobListWidget.h index 5c7da398e7266fdc5a1e898e8ed126d9283736ad..84c51d318d2cf2a4c3bd019959e1b925d4aed6eb 100644 --- a/GUI/coregui/Views/JobWidgets/JobListWidget.h +++ b/GUI/coregui/Views/JobWidgets/JobListWidget.h @@ -26,6 +26,8 @@ class JobListViewDelegate; class QItemSelectionModel; class ItemSelectorWidget; class QModelIndex; +class JobItem; +class SessionItem; //! The JobListWidget class contains list view to select job items. @@ -42,15 +44,17 @@ public: QItemSelectionModel *selectionModel(); + const JobItem *currentJobItem() const; + signals: void contextMenuRequest(const QPoint &point, const QModelIndex &index); - void selectionChanged(class JobItem *); + void selectionChanged(JobItem *); public slots: - void makeJobItemSelected(class JobItem *jobItem); + void makeJobItemSelected(JobItem *jobItem); private slots: - void onItemSelectionChanged(class SessionItem *item); + void onItemSelectionChanged(SessionItem *item); private: JobListViewDelegate *m_listViewDelegate; diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp index 474aaa2ee2a6a08e183a571e98c0c8f12ca7b96d..bf11ca360903fdf2d911641abd4fc76fecb8e568 100644 --- a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp +++ b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp @@ -69,6 +69,11 @@ void JobSelectorWidget::setModel(JobModel *jobModel) m_jobListWidget->setModel(m_jobModel); } +const JobItem *JobSelectorWidget::currentJobItem() const +{ + return m_jobListWidget->currentJobItem(); +} + void JobSelectorWidget::makeJobItemSelected(JobItem *item) { Q_ASSERT(item); diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h index eb4bbbc0e1dce861fb5529b5940cc50b376552b7..767a420d317961297cac9885821e8e387b14f729 100644 --- a/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h +++ b/GUI/coregui/Views/JobWidgets/JobSelectorWidget.h @@ -46,6 +46,8 @@ public: QSize sizeHint() const { return QSize(210, 600); } QSize minimumSizeHint() const { return QSize(64, 300); } + const JobItem *currentJobItem() const; + signals: void selectionChanged(JobItem *);