diff --git a/GUI/Model/Job/JobItem.cpp b/GUI/Model/Job/JobItem.cpp
index d5a943ec452acd5fcf0e08c3f91d4b27b5b08481..3fd0ab259690ed30b41024cf9d93702e1cbaf11f 100644
--- a/GUI/Model/Job/JobItem.cpp
+++ b/GUI/Model/Job/JobItem.cpp
@@ -105,31 +105,6 @@ void JobItem::setStatus(JobStatus status)
     emit jobStatusChanged(status);
 }
 
-bool JobItem::isRunning() const
-{
-    return status() == JobStatus::Running;
-}
-
-bool JobItem::isCompleted() const
-{
-    return status() == JobStatus::Completed;
-}
-
-bool JobItem::isCanceled() const
-{
-    return status() == JobStatus::Canceled;
-}
-
-bool JobItem::isFailed() const
-{
-    return status() == JobStatus::Failed;
-}
-
-bool JobItem::isFitting() const
-{
-    return status() == JobStatus::Fitting;
-}
-
 void JobItem::setBeginTime(const QDateTime& begin_time)
 {
     m_begin_time = begin_time;
diff --git a/GUI/Model/Job/JobItem.h b/GUI/Model/Job/JobItem.h
index c118e4de96a09dccf0ea708e75dd13de3cd5073e..2c0147dfbe21c48def1bdb40c013eeb3d00b80cc 100644
--- a/GUI/Model/Job/JobItem.h
+++ b/GUI/Model/Job/JobItem.h
@@ -52,11 +52,6 @@ public:
     JobStatus status() const { return m_status; }
     void setStatus(JobStatus status);
 
-    bool isRunning() const;
-    bool isCompleted() const;
-    bool isCanceled() const;
-    bool isFailed() const;
-    bool isFitting() const;
     bool isValidForFitting() const { return bool(m_real_item); }
 
     QDateTime beginTime() const { return m_begin_time; }
diff --git a/GUI/Model/Tune/JobQueueData.cpp b/GUI/Model/Tune/JobQueueData.cpp
index da73200355ed8233607f0134c659b19f36f31ece..174db02ecd9a455f3a96dda698adedeedf92abee 100644
--- a/GUI/Model/Tune/JobQueueData.cpp
+++ b/GUI/Model/Tune/JobQueueData.cpp
@@ -154,7 +154,7 @@ void JobQueueData::updateGlobalProgress()
     int global_progress(0);
     int nRunningJobs(0);
     for (auto* jobItem : m_job_model->jobItems())
-        if (jobItem->isRunning()) {
+        if (isRunning(jobItem->status())) {
             global_progress += jobItem->progress();
             nRunningJobs++;
         }
@@ -230,7 +230,7 @@ void JobQueueData::processFinishedJob(JobWorker* worker, JobItem* jobItem)
     jobItem->setStatus(worker->status());
 
     // fixing job progress (if job was successfull, but due to wrong estimation, progress not 100%)
-    if (jobItem->isCompleted())
+    if (isCompleted(jobItem->status()))
         jobItem->setProgress(100);
 }
 
diff --git a/GUI/Support/Data/JobStatus.cpp b/GUI/Support/Data/JobStatus.cpp
index a8eaa1b2ef2bf21a85dca7c51ff666dc56af5565..f7c0d662fd977f3299cbf60b57247200db7b8916 100644
--- a/GUI/Support/Data/JobStatus.cpp
+++ b/GUI/Support/Data/JobStatus.cpp
@@ -28,6 +28,30 @@ const boost::bimap<JobStatus, QString> status2name(values.begin(), values.end())
 
 } // namespace
 
+bool isRunning(JobStatus status)
+{
+    return status == JobStatus::Running;
+}
+
+bool isCompleted(JobStatus status)
+{
+    return status == JobStatus::Completed;
+}
+
+bool isCanceled(JobStatus status)
+{
+    return status == JobStatus::Canceled;
+}
+
+bool isFailed(JobStatus status)
+{
+    return status == JobStatus::Failed;
+}
+
+bool isFitting(JobStatus status)
+{
+    return status == JobStatus::Fitting;
+}
 
 QString jobStatusToString(JobStatus status)
 {
diff --git a/GUI/Support/Data/JobStatus.h b/GUI/Support/Data/JobStatus.h
index 39ac385756f039afd084554d2697bea93c6e0e02..2357c7fde0fab34613f66ac042dca13ecfdede67 100644
--- a/GUI/Support/Data/JobStatus.h
+++ b/GUI/Support/Data/JobStatus.h
@@ -28,6 +28,12 @@ enum class JobStatus {
     Failed     //!< the job aborted because it hit an error
 };
 
+bool isRunning(JobStatus status);
+bool isCompleted(JobStatus status);
+bool isCanceled(JobStatus status);
+bool isFailed(JobStatus status);
+bool isFitting(JobStatus status);
+
 //! Returns a string representation of the status
 QString jobStatusToString(JobStatus status);
 
diff --git a/GUI/View/Fit/FitSessionController.cpp b/GUI/View/Fit/FitSessionController.cpp
index 5caa37f6b4a454e5bd3cd697a21e82cb48174e0d..3d71e2ed69ae7d1622a71f92c2539f3c5160e62f 100644
--- a/GUI/View/Fit/FitSessionController.cpp
+++ b/GUI/View/Fit/FitSessionController.cpp
@@ -131,7 +131,7 @@ void FitSessionController::onFittingFinished()
     m_job_item->setEndTime(m_run_fit_manager->fitEnd());
     m_job_item->setProgress(100);
 
-    if (m_job_item->isCompleted())
+    if (isCompleted(m_job_item->status()))
         m_fitlog->append("Done", FitLogLevel::Success);
 
     // TODO: notify Fit2DFrame/Fit1DFrame in a proper way by fittingFinished();
diff --git a/GUI/View/JobControl/JobListing.cpp b/GUI/View/JobControl/JobListing.cpp
index 6d0289293b3e7bd223b257ad8d678c43cbd75916..b394d71e051085c46015948de4de3e28dd3d15c6 100644
--- a/GUI/View/JobControl/JobListing.cpp
+++ b/GUI/View/JobControl/JobListing.cpp
@@ -16,6 +16,7 @@
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Data/Data2DItem.h"
 #include "GUI/Model/Project/ProjectDocument.h"
+#include "GUI/Support/Data/JobStatus.h"
 #include "GUI/View/JobControl/JobListModel.h"
 #include "GUI/View/JobControl/JobProgressDelegate.h"
 #include "GUI/View/Widget/StyledToolbar.h"
@@ -245,7 +246,7 @@ void JobListing::updateActions()
         {
             JobItem* job = m_model->jobItemForIndex(i);
             ASSERT(job);
-            return job->isRunning() || job->isFitting();
+            return isRunning(job->status()) || isFitting(job->status());
         }
     };
 
diff --git a/GUI/View/JobControl/JobProgressDelegate.cpp b/GUI/View/JobControl/JobProgressDelegate.cpp
index 905938ed06afc96b1bd307448422acaa8578d8fd..7f1bc77329a05915f7e06f150c8582094e352275 100644
--- a/GUI/View/JobControl/JobProgressDelegate.cpp
+++ b/GUI/View/JobControl/JobProgressDelegate.cpp
@@ -53,7 +53,7 @@ void JobProgressDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o
 
     drawCustomProjectBar(item, painter, option);
 
-    if (item->isRunning()) {
+    if (isRunning(item->status())) {
         QStyleOptionButton button;
         button.rect = getButtonRect(option.rect);
         button.state = m_button_state | QStyle::State_Enabled;
@@ -81,7 +81,7 @@ bool JobProgressDelegate::editorEvent(QEvent* event, QAbstractItemModel* model,
     const JobItem* item = jqmodel->jobItemForIndex(index);
     ASSERT(item);
 
-    if (!item->isRunning())
+    if (!isRunning(item->status()))
         return false;
 
     QRect buttonRect = getButtonRect(option.rect);
diff --git a/GUI/View/JobControl/JobPropertiesWidget.cpp b/GUI/View/JobControl/JobPropertiesWidget.cpp
index e59c09ca2f2a1ace49a660982ba2d7e37f952d0d..27d78c27f33875998ede18f9014bf2ebe88738ec 100644
--- a/GUI/View/JobControl/JobPropertiesWidget.cpp
+++ b/GUI/View/JobControl/JobPropertiesWidget.cpp
@@ -14,6 +14,7 @@
 
 #include "GUI/View/JobControl/JobPropertiesWidget.h"
 #include "GUI/Model/Job/JobItem.h"
+#include "GUI/Support/Data/JobStatus.h"
 #include "GUI/View/JobControl/JobPropertiesTableModel.h"
 #include "GUI/View/Layout/mainwindow_constants.h"
 #include <QHeaderView>
@@ -81,7 +82,7 @@ void JobPropertiesWidget::setJobItem(JobItem* jobItem)
     m_job_item = jobItem;
     m_properties_model->setJobItem(m_job_item);
     if (m_job_item) {
-        if (m_job_item->isFailed())
+        if (isFailed(m_job_item->status()))
             m_tab_widget->tabBar()->setTabTextColor(JOB_MESSAGES, Qt::red);
         else
             m_tab_widget->tabBar()->setTabTextColor(JOB_MESSAGES, Qt::black);
diff --git a/GUI/View/Tuning/JobRealTimeWidget.cpp b/GUI/View/Tuning/JobRealTimeWidget.cpp
index a54e0f8dbc4b3398d566b328d1682574406742a6..3e18113ab40fb09eca458721c8fb0689aedfbe2b 100644
--- a/GUI/View/Tuning/JobRealTimeWidget.cpp
+++ b/GUI/View/Tuning/JobRealTimeWidget.cpp
@@ -15,6 +15,7 @@
 #include "GUI/View/Tuning/JobRealTimeWidget.h"
 #include "GUI/Model/Job/JobItem.h"
 #include "GUI/Model/Tune/JobModel.h"
+#include "GUI/Support/Data/JobStatus.h"
 #include "GUI/View/Layout/mainwindow_constants.h"
 #include "GUI/View/Tuning/ParameterTuningStackPresenter.h"
 #include "GUI/View/Tuning/ParameterTuningWidget.h"
@@ -65,7 +66,9 @@ void JobRealTimeWidget::setJobItem(JobItem* jobItem)
 
 bool JobRealTimeWidget::isValidJobItem(JobItem* item)
 {
-    return item && (item->isCompleted() || item->isCanceled() || item->isFailed());
+    return item
+           && (isCompleted(item->status()) || isCanceled(item->status())
+               || isFailed(item->status()));
 }
 
 void JobRealTimeWidget::applySettings()
diff --git a/GUI/View/Tuning/ParameterTuningWidget.cpp b/GUI/View/Tuning/ParameterTuningWidget.cpp
index b130cd6292d35411c9d960305462ddd1a5c7486d..94c2025aab9b139a5529e6d718f30fcd9d710fbf 100644
--- a/GUI/View/Tuning/ParameterTuningWidget.cpp
+++ b/GUI/View/Tuning/ParameterTuningWidget.cpp
@@ -156,7 +156,7 @@ void ParameterTuningWidget::onCurrentLinkChanged(ParameterItem* item)
 {
     ASSERT(m_job_item);
 
-    if (m_job_item->isRunning())
+    if (isRunning(m_job_item->status()))
         return;
 
     if (item)
@@ -215,7 +215,7 @@ void ParameterTuningWidget::restoreModelsOfCurrentJobItem(int index)
     ASSERT(m_job_model);
     ASSERT(m_job_item);
 
-    if (m_job_item->isRunning())
+    if (isRunning(m_job_item->status()))
         return;
 
     closeActiveEditors();
@@ -286,7 +286,7 @@ void ParameterTuningWidget::updateJobStatus()
 {
     m_caution_sign->clear();
 
-    if (m_job_item->isFailed()) {
+    if (isFailed(m_job_item->status())) {
         QString message;
         message.append("Current parameter values cause simulation failure.\n\n");
         message.append(m_job_item->comments());