diff --git a/Doc/graph/mask-classes.gv b/Doc/graph/mask-classes.gv
index 6f6ff7498f7d79d42423728c84c7ac83ca451352..811e3435a4d93412b10f2760b34d3d8b712c4737 100644
--- a/Doc/graph/mask-classes.gv
+++ b/Doc/graph/mask-classes.gv
@@ -14,9 +14,9 @@ MaskEditingFrame[label="MaskEditingFrame\n< DataAccessWidget\n< QWidget" style=f
 MaskEditingFrame->MaskEditorActions;
 MaskEditingFrame->MaskPanel;
 MaskEditingFrame->MaskEditorCanvas;
-MaskEditingFrame->MaskToolbox[style=dashed color=blue]
+MaskEditingFrame->MaskToolbar[style=dashed color=blue]
 
-MaskToolbox[label="MaskToolbox\n< QToolBar\n< QWidget" style=filled fillcolor=orchid]
+MaskToolbar[label="MaskToolbar\n< QToolBar\n< QWidget" style=filled fillcolor=orchid]
 
 MaskEditorActions[label="MaskEditorActions\n< QObject" style=filled fillcolor=beige];
 MaskEditorActions->MaskeditorListmodel;
@@ -65,7 +65,7 @@ MaskGraphicsProxy[label="MaskGraphicsProxy\n< QGraphicsProxyWidget\n... < QGraph
 ColorMap[label="ColorMap\n< ScientificPlot\n< QWidget" style=filled fillcolor=orchid];
 ColorMap->Data2DItem;
 
-MaskToolbox->MaskEditorActions[style=dotted color=magenta];
+MaskToolbar->MaskEditorActions[style=dotted color=magenta];
 
 Data2DItem[label="Data2DItem\n< DataItem\n< QObject" style=filled fillcolor=beige];
 Data2DItem->MaskList;
diff --git a/Doc/graph/projn-classes.gv b/Doc/graph/projn-classes.gv
index 8483b04159452524c04babc5ea4f9093aea5d114..833142edd257444744a3ca27b3ce643239f026eb 100644
--- a/Doc/graph/projn-classes.gv
+++ b/Doc/graph/projn-classes.gv
@@ -7,7 +7,7 @@ digraph maskClasses
 
     Plot2DWithProjectionFrame->DataAccessWidget[arrowhead=onormal color=chocolate4];
     Plot2DWithProjectionFrame->ProjectionActions;
-    Plot2DWithProjectionFrame->ProjectionsToolpanel;
+    Plot2DWithProjectionFrame->ProjectionToolbar;
     Plot2DWithProjectionFrame->ProjectionsEditorCanvas;
     Plot2DWithProjectionFrame->ProjectionsWidget;
     Plot2DWithProjectionFrame->Scale2DEditor;
@@ -15,7 +15,7 @@ digraph maskClasses
     ProjectionActions->MaskeditorListmodel;
     ProjectionActions->Data2DItem;
 
-    ProjectionsToolpanel->ProjectionActions;
+    ProjectionToolbar->ProjectionActions;
 
     ProjectionsEditorCanvas->MaskGraphicsScene;
     ProjectionsEditorCanvas->MaskGraphicsView;
diff --git a/GUI/View/Canvas/MaskEditorCanvas.cpp b/GUI/View/Canvas/MaskEditorCanvas.cpp
index 6ab228199c8645b04f6c730e7855445e6b68a179..a96619cad653a80a3ab3f21681df28f5110a6daa 100644
--- a/GUI/View/Canvas/MaskEditorCanvas.cpp
+++ b/GUI/View/Canvas/MaskEditorCanvas.cpp
@@ -25,12 +25,11 @@
 #include "GUI/View/Scene/MaskGraphicsView.h"
 #include <QVBoxLayout>
 
-MaskEditorCanvas::MaskEditorCanvas(QWidget* parent)
-    : QWidget(parent)
-    , m_scene(new MaskGraphicsScene)
+MaskEditorCanvas::MaskEditorCanvas()
+    : m_scene(new MaskGraphicsScene)
     , m_view(new MaskGraphicsView(m_scene))
-    , m_data2DItem(nullptr)
     , m_statusLabel(new PlotStatusLabel(nullptr, this))
+    , m_data2DItem(nullptr)
 {
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
@@ -53,9 +52,10 @@ void MaskEditorCanvas::updateMaskCanvas(Data2DItem* data2DItem, QItemSelectionMo
 {
     m_data2DItem = data2DItem;
 
-    repaintScene();
     m_scene->associateItems(data2DItem, data2DItem->getOrCreateMaskModel(), selModel);
 
+    repaintScene();
+
     m_statusLabel->addPlot(m_scene->colorMap());
 }
 
diff --git a/GUI/View/Canvas/MaskEditorCanvas.h b/GUI/View/Canvas/MaskEditorCanvas.h
index 5b8a385749b5f92a2d836a0aca3a14139241ac7b..29230a109c97775a01f0035e42cedf441306133b 100644
--- a/GUI/View/Canvas/MaskEditorCanvas.h
+++ b/GUI/View/Canvas/MaskEditorCanvas.h
@@ -17,7 +17,6 @@
 
 #include "GUI/View/Scene/MaskFlags.h"
 #include <QItemSelectionModel>
-#include <QModelIndex>
 #include <QWidget>
 #include <memory>
 
@@ -32,11 +31,10 @@ class PlotStatusLabel;
 class MaskEditorCanvas : public QWidget {
     Q_OBJECT
 public:
-    MaskEditorCanvas(QWidget* parent = nullptr);
+    MaskEditorCanvas();
     ~MaskEditorCanvas();
 
     void updateMaskCanvas(Data2DItem* data2DItem, QItemSelectionModel* selModel);
-
     void resetMaskCanvas();
 
     MaskGraphicsScene* getScene() { return m_scene; }
@@ -46,9 +44,9 @@ signals:
     void deleteSelectedRequest();
 
 public slots:
-    void onPresentationChange(bool pixelized);
-    void onSavePlotRequest();
     void onResetViewRequest();
+    void onSavePlotRequest();
+    void onPresentationChange(bool pixelized);
 
 private:
     void repaintScene();
@@ -56,8 +54,8 @@ private:
 
     MaskGraphicsScene* m_scene;
     MaskGraphicsView* m_view;
-    Data2DItem* m_data2DItem;
     PlotStatusLabel* m_statusLabel;
+    Data2DItem* m_data2DItem;
     std::unique_ptr<Datafield> m_backup_data;
     bool m_backup_interpolated = false;
 };
diff --git a/GUI/View/Canvas/ProjectionsEditorCanvas.cpp b/GUI/View/Canvas/ProjectionsEditorCanvas.cpp
index 7bfb552e4e2f58bdf642d5f6d6cce2d24e72c937..664f8b9cee70e24d876074cf908a41e6907abff4 100644
--- a/GUI/View/Canvas/ProjectionsEditorCanvas.cpp
+++ b/GUI/View/Canvas/ProjectionsEditorCanvas.cpp
@@ -26,9 +26,8 @@
 #include <QItemSelectionModel>
 #include <QVBoxLayout>
 
-ProjectionsEditorCanvas::ProjectionsEditorCanvas(QWidget* parent)
-    : QWidget(parent)
-    , m_scene(new MaskGraphicsScene)
+ProjectionsEditorCanvas::ProjectionsEditorCanvas()
+    : m_scene(new MaskGraphicsScene)
     , m_view(new MaskGraphicsView(m_scene))
     , m_statusLabel(new PlotStatusLabel(nullptr, this))
     , m_currentActivity(MaskFlags::HORIZONTAL_LINE_MODE)
@@ -148,7 +147,7 @@ void ProjectionsEditorCanvas::onResetViewRequest()
     gDoc->setModified();
 }
 
-void ProjectionsEditorCanvas::onActivityChanged(MaskFlags::MaskMode mask_mode)
+void ProjectionsEditorCanvas::setProjectionsCanvasMode(MaskFlags::MaskMode mask_mode)
 {
     m_currentActivity = mask_mode;
     m_scene->onActivityChanged(mask_mode);
diff --git a/GUI/View/Canvas/ProjectionsEditorCanvas.h b/GUI/View/Canvas/ProjectionsEditorCanvas.h
index cc42a215777837a896153ff82501ecafee5966b4..85e1b96cbc1c3eff4f76c4e26a3fc468fca916d1 100644
--- a/GUI/View/Canvas/ProjectionsEditorCanvas.h
+++ b/GUI/View/Canvas/ProjectionsEditorCanvas.h
@@ -35,24 +35,26 @@ class PlotStatusLabel;
 class ProjectionsEditorCanvas : public QWidget {
     Q_OBJECT
 public:
-    ProjectionsEditorCanvas(QWidget* parent = nullptr);
-    virtual ~ProjectionsEditorCanvas();
+    ProjectionsEditorCanvas();
+    ~ProjectionsEditorCanvas();
 
     void updateProjsCanvas(Data2DItem* data2DItem);
     void resetProjsCanvas();
 
 signals:
-    void changeProjectionsTabRequest(MaskFlags::MaskMode);
     void changeActivityRequest(MaskFlags::MaskMode);
     void deleteSelectedRequest();
+    void changeProjectionsTabRequest(MaskFlags::MaskMode);
     void marginsChanged(double left, double right);
 
 public slots:
+    void onResetViewRequest();
+    void setProjectionsCanvasMode(MaskFlags::MaskMode mask_mode);
+
+private slots:
     void onEnteringColorMap();
     void onLeavingColorMap();
     void onPositionChanged(double x, double y);
-    void onResetViewRequest();
-    void onActivityChanged(MaskFlags::MaskMode mask_mode);
 
 private:
     void onLineItemMoved(LineItem* sender);
@@ -61,12 +63,10 @@ private:
 
     MaskGraphicsScene* m_scene;
     MaskGraphicsView* m_view;
-    ColorMap* m_colorMap;
     PlotStatusLabel* m_statusLabel;
-
-    std::unique_ptr<LineItem> m_liveProjection; //!< temporary, matching mouse move
     Data2DItem* m_data2DItem;
-
+    ColorMap* m_colorMap;
+    std::unique_ptr<LineItem> m_liveProjection; //!< temporary, matching mouse move
     MaskFlags::MaskMode m_currentActivity;
     bool m_block_update = false;
 };
diff --git a/GUI/View/Frame/MaskEditingFrame.cpp b/GUI/View/Frame/MaskEditingFrame.cpp
index 045b9191b5abe918128ace4140b00c8033b90430..233b7e3d38f3ecb5b1d286b29cc9cfda01b5a528 100644
--- a/GUI/View/Frame/MaskEditingFrame.cpp
+++ b/GUI/View/Frame/MaskEditingFrame.cpp
@@ -13,14 +13,14 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Frame/MaskEditingFrame.h"
+#include "Base/Util/Assert.h"
 #include "GUI/Model/Data/Data2DItem.h"
-#include "GUI/Model/Mask/MaskItems.h"
 #include "GUI/Model/Mask/MaskeditorListmodel.h"
 #include "GUI/View/Canvas/MaskEditorActions.h"
 #include "GUI/View/Canvas/MaskEditorCanvas.h"
-#include "GUI/View/Canvas/MaskToolbox.h"
 #include "GUI/View/Scene/MaskGraphicsScene.h"
 #include "GUI/View/Setup/MaskPanel.h"
+#include "GUI/View/Setup/MaskToolbar.h"
 #include <QSplitter>
 #include <QVBoxLayout>
 
@@ -30,8 +30,6 @@ MaskEditingFrame::MaskEditingFrame(QWidget* parent)
     , m_panel(new MaskPanel)
     , m_canvas(new MaskEditorCanvas)
 {
-    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-
     auto* layout = new QHBoxLayout;
     setLayout(layout);
     layout->setContentsMargins(0, 0, 0, 0);
@@ -39,14 +37,13 @@ MaskEditingFrame::MaskEditingFrame(QWidget* parent)
 
     auto* splitter = new QSplitter;
     layout->addWidget(splitter);
+    splitter->setOrientation(Qt::Horizontal);
     splitter->addWidget(m_canvas);
     splitter->addWidget(m_panel);
     splitter->setCollapsible(1, true);
 
-    auto* toolbox = new MaskToolbox(m_actions);
-    layout->addWidget(toolbox);
-    toolbox->setOrientation(Qt::Vertical);
-    toolbox->setStyleSheet("QToolBar{border-left:1px solid rgb(180,180,180);}");
+    auto* toolbar = new MaskToolbar(m_actions);
+    layout->addWidget(toolbar);
 
     m_panel->setPanelHidden(true);
 
@@ -55,24 +52,24 @@ MaskEditingFrame::MaskEditingFrame(QWidget* parent)
     connect(m_actions, &MaskEditorActions::resetViewRequest, m_canvas,
             &MaskEditorCanvas::onResetViewRequest);
 
-    connect(m_actions, &MaskEditorActions::propertyPanelRequest, this,
-            &MaskEditingFrame::onPropertyPanelRequest);
+    connect(m_actions, &MaskEditorActions::propertyPanelRequest,
+            [this] { m_panel->setPanelHidden(!m_panel->isHidden()); });
 
     connect(m_actions, &MaskEditorActions::savePlotRequest, m_canvas,
             &MaskEditorCanvas::onSavePlotRequest);
 
-    connect(toolbox, &MaskToolbox::activityChanged, m_canvas->getScene(),
+    connect(toolbar, &MaskToolbar::activityChanged, m_canvas->getScene(),
             &MaskGraphicsScene::onActivityChanged);
 
-    connect(toolbox, &MaskToolbox::maskValueChanged, m_canvas->getScene(),
+    connect(toolbar, &MaskToolbar::maskValueChanged, m_canvas->getScene(),
             &MaskGraphicsScene::onMaskValueChanged);
 
-    connect(toolbox, &MaskToolbox::presentationChange, m_canvas,
+    connect(toolbar, &MaskToolbar::presentationChange, m_canvas,
             &MaskEditorCanvas::onPresentationChange);
 
     // space bar push (request for zoom mode)
-    connect(m_canvas, &MaskEditorCanvas::changeActivityRequest, toolbox,
-            &MaskToolbox::onChangeActivityRequest);
+    connect(m_canvas, &MaskEditorCanvas::changeActivityRequest, toolbar,
+            &MaskToolbar::onChangeActivityRequest);
 
     connect(m_canvas, &MaskEditorCanvas::deleteSelectedRequest, m_actions,
             &MaskEditorActions::onDeleteMaskAction);
@@ -87,13 +84,7 @@ MaskEditingFrame::MaskEditingFrame(QWidget* parent)
 void MaskEditingFrame::setJobOrDatafileItem(QObject* item)
 {
     setBaseItem(item);
-    updateMaskFrame();
-}
-
-//! shows/hides right panel with properties
-void MaskEditingFrame::onPropertyPanelRequest()
-{
-    m_panel->setPanelHidden(!m_panel->isHidden());
+    updateFrame();
 }
 
 //! Returns list of actions intended for styled toolbox (on the top).
@@ -103,19 +94,7 @@ QList<QAction*> MaskEditingFrame::actionList()
     return m_actions->topToolboxActions();
 }
 
-void MaskEditingFrame::showEvent(QShowEvent*)
-{
-    if (currentData2DItem())
-        updateMaskFrame();
-}
-
-void MaskEditingFrame::hideEvent(QHideEvent*)
-{
-    m_panel->resetMaskPanel();
-    m_canvas->resetMaskCanvas();
-}
-
-void MaskEditingFrame::updateMaskFrame()
+void MaskEditingFrame::updateFrame()
 {
     ASSERT(currentData2DItem());
 
@@ -130,3 +109,15 @@ void MaskEditingFrame::updateMaskFrame()
 
     update();
 }
+
+void MaskEditingFrame::showEvent(QShowEvent*)
+{
+    if (currentData2DItem())
+        updateFrame();
+}
+
+void MaskEditingFrame::hideEvent(QHideEvent*)
+{
+    m_panel->resetMaskPanel();
+    m_canvas->resetMaskCanvas();
+}
diff --git a/GUI/View/Frame/MaskEditingFrame.h b/GUI/View/Frame/MaskEditingFrame.h
index 89040299f12c5f98183dcae072e9990aebdc9ce9..b4112de9047e524a7dad56c19b8b02b6f5bfa9f8 100644
--- a/GUI/View/Frame/MaskEditingFrame.h
+++ b/GUI/View/Frame/MaskEditingFrame.h
@@ -33,8 +33,7 @@ public:
     QList<QAction*> actionList() override;
 
 private:
-    void updateMaskFrame();
-    void onPropertyPanelRequest();
+    void updateFrame();
     void showEvent(QShowEvent*) override;
     void hideEvent(QHideEvent*) override;
 
diff --git a/GUI/View/Frame/Plot2DWithProjectionFrame.cpp b/GUI/View/Frame/Plot2DWithProjectionFrame.cpp
index e2d3cc62a315c0b761eea1aead0db5f79a04bf9c..75898f32c22eb6035730005ac7bc931b469e385b 100644
--- a/GUI/View/Frame/Plot2DWithProjectionFrame.cpp
+++ b/GUI/View/Frame/Plot2DWithProjectionFrame.cpp
@@ -15,19 +15,17 @@
 #include "GUI/View/Frame/Plot2DWithProjectionFrame.h"
 #include "Base/Util/Assert.h"
 #include "GUI/Model/Data/Data2DItem.h"
-#include "GUI/Model/Mask/ProjectionList.h"
 #include "GUI/View/Canvas/ProjectionsEditorCanvas.h"
 #include "GUI/View/Canvas/ProjectionsWidget.h"
 #include "GUI/View/Setup/ProjectionActions.h"
-#include "GUI/View/Setup/ProjectionsToolpanel.h"
+#include "GUI/View/Setup/ProjectionToolbar.h"
 #include "GUI/View/Setup/Scale2DEditor.h"
-#include <QBoxLayout>
+#include <QHBoxLayout>
 #include <QSplitter>
 
 Plot2DWithProjectionFrame::Plot2DWithProjectionFrame(QWidget* parent)
     : DataAccessWidget(parent)
-    , m_editorActions(new ProjectionActions(this))
-    , m_toolbar(new ProjectionsToolpanel(m_editorActions))
+    , m_actions(new ProjectionActions(this))
     , m_projectionsCanvas(new ProjectionsEditorCanvas)
     , m_projectionsWidget(new ProjectionsWidget)
     , m_scaleEditor(new Scale2DEditor(this))
@@ -47,21 +45,55 @@ Plot2DWithProjectionFrame::Plot2DWithProjectionFrame(QWidget* parent)
     m_scaleEditor->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
     m_scaleEditor->setHidden(true);
 
-    m_toolbar->setOrientation(Qt::Vertical);
-    m_toolbar->setStyleSheet("QToolBar{border-left:1px solid rgb(180,180,180);}");
-    layout->addWidget(m_toolbar);
+    auto* toolbar = new ProjectionToolbar(m_actions);
+    layout->addWidget(toolbar);
 
-    setup_connections();
+    //... Connections
+
+    connect(m_actions, &ProjectionActions::resetViewRequest, m_projectionsCanvas,
+            &ProjectionsEditorCanvas::onResetViewRequest);
+
+    connect(m_actions, &ProjectionActions::propertyPanelRequest,
+            [this] { m_scaleEditor->setHidden(!m_scaleEditor->isHidden()); });
+
+    connect(toolbar, &ProjectionToolbar::activityChanged, m_projectionsCanvas,
+            &ProjectionsEditorCanvas::setProjectionsCanvasMode);
+
+    connect(toolbar, &ProjectionToolbar::activityChanged, m_projectionsWidget,
+            &ProjectionsWidget::onActivityChanged);
+
+    connect(m_projectionsWidget, &ProjectionsWidget::changeActivityRequest, toolbar,
+            &ProjectionToolbar::onProjectionTabChange);
+
+    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::deleteSelectedRequest, m_actions,
+            &ProjectionActions::onDeleteAction);
+
+    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::changeProjectionsTabRequest,
+            m_projectionsWidget, &ProjectionsWidget::onActivityChanged);
+
+    // space bar push (request for zoom mode)
+    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::changeActivityRequest, toolbar,
+            &ProjectionToolbar::onChangeActivityRequest);
+
+    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::marginsChanged, m_projectionsWidget,
+            &ProjectionsWidget::onMarginsChanged);
+
+    toolbar->onChangeActivityRequest(MaskFlags::HORIZONTAL_LINE_MODE);
 }
 
 void Plot2DWithProjectionFrame::setJobOrDatafileItem(QObject* item)
 {
     setBaseItem(item);
     m_scaleEditor->setJobOrDatafileItem(item);
-    updateProjsFrame();
+    updateFrame();
 }
 
-void Plot2DWithProjectionFrame::updateProjsFrame()
+QList<QAction*> Plot2DWithProjectionFrame::actionList()
+{
+    return m_actions->topToolboxActions();
+}
+
+void Plot2DWithProjectionFrame::updateFrame()
 {
     ASSERT(currentData2DItem());
 
@@ -72,13 +104,13 @@ void Plot2DWithProjectionFrame::updateProjsFrame()
     m_projectionsCanvas->updateProjsCanvas(currentData2DItem());
     m_projectionsWidget->setData2DItem(currentData2DItem());
 
-    m_editorActions->updateProjsActions(currentData2DItem());
+    m_actions->updateProjsActions(currentData2DItem());
 }
 
 void Plot2DWithProjectionFrame::showEvent(QShowEvent*)
 {
     if (currentData2DItem())
-        updateProjsFrame();
+        updateFrame();
 }
 
 void Plot2DWithProjectionFrame::hideEvent(QHideEvent*)
@@ -87,49 +119,3 @@ void Plot2DWithProjectionFrame::hideEvent(QHideEvent*)
     m_projectionsWidget->disconnectItem();
     m_projectionsWidget->setData2DItem(nullptr);
 }
-
-QList<QAction*> Plot2DWithProjectionFrame::actionList()
-{
-    return m_editorActions->topToolboxActions();
-}
-
-void Plot2DWithProjectionFrame::setup_connections()
-{
-    // tool panel request is propagated from editorActions to this MaskEditor
-    connect(m_editorActions, &ProjectionActions::resetViewRequest, m_projectionsCanvas,
-            &ProjectionsEditorCanvas::onResetViewRequest, Qt::UniqueConnection);
-
-    // tool panel request is propagated from editorActions to this MaskEditor
-    connect(m_editorActions, &ProjectionActions::propertyPanelRequest,
-            [this] { m_scaleEditor->setHidden(!m_scaleEditor->isHidden()); });
-
-    // selection/drawing activity is propagated from Toolbar to graphics scene
-    connect(m_toolbar, &ProjectionsToolpanel::activityChanged, m_projectionsCanvas,
-            &ProjectionsEditorCanvas::onActivityChanged, Qt::UniqueConnection);
-
-    // selection/drawing activity is propagated from Toolbar to Projections Widget
-    connect(m_toolbar, &ProjectionsToolpanel::activityChanged, m_projectionsWidget,
-            &ProjectionsWidget::onActivityChanged, Qt::UniqueConnection);
-
-    // click on projections tab is propagated to tool bar
-    connect(m_projectionsWidget, &ProjectionsWidget::changeActivityRequest, m_toolbar,
-            &ProjectionsToolpanel::onProjectionTabChange, Qt::UniqueConnection);
-
-    // Delete request is propagated from canvas to actions
-    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::deleteSelectedRequest, m_editorActions,
-            &ProjectionActions::onDeleteAction, Qt::UniqueConnection);
-
-    // moving projection automatically switches projections tab
-    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::changeProjectionsTabRequest,
-            m_projectionsWidget, &ProjectionsWidget::onActivityChanged, Qt::UniqueConnection);
-
-    // space bar push (request for zoom mode) is propagated from graphics view to Toolbar
-    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::changeActivityRequest, m_toolbar,
-            &ProjectionsToolpanel::onChangeActivityRequest, Qt::UniqueConnection);
-
-    // ColorMap margins changed, canvas -> projection widget
-    connect(m_projectionsCanvas, &ProjectionsEditorCanvas::marginsChanged, m_projectionsWidget,
-            &ProjectionsWidget::onMarginsChanged, Qt::UniqueConnection);
-
-    m_toolbar->onChangeActivityRequest(MaskFlags::HORIZONTAL_LINE_MODE);
-}
diff --git a/GUI/View/Frame/Plot2DWithProjectionFrame.h b/GUI/View/Frame/Plot2DWithProjectionFrame.h
index dd67b51fc14a4b986bcffa646444e5dda9f5c63e..f037e074de702cb4141dbd104dbb7cb4f34430ad 100644
--- a/GUI/View/Frame/Plot2DWithProjectionFrame.h
+++ b/GUI/View/Frame/Plot2DWithProjectionFrame.h
@@ -19,7 +19,6 @@
 
 class ProjectionActions;
 class ProjectionsEditorCanvas;
-class ProjectionsToolpanel;
 class ProjectionsWidget;
 class Scale2DEditor;
 
@@ -35,13 +34,11 @@ public:
     QList<QAction*> actionList() override;
 
 private:
-    void updateProjsFrame();
+    void updateFrame();
     void showEvent(QShowEvent*) override;
     void hideEvent(QHideEvent*) override;
-    void setup_connections();
 
-    ProjectionActions* m_editorActions;
-    ProjectionsToolpanel* m_toolbar;              //! main tool bar with buttons at the right
+    ProjectionActions* m_actions;
     ProjectionsEditorCanvas* m_projectionsCanvas; //! canvas with color map at the top
     ProjectionsWidget* m_projectionsWidget;       //! bottom widget to draw projections plot
     Scale2DEditor* m_scaleEditor;                 //! panel at the right with properties
diff --git a/GUI/View/Scene/MaskGraphicsProxy.cpp b/GUI/View/Scene/MaskGraphicsProxy.cpp
index b39b124e5e0bdbee663b5946852947a188a19780..e00d3053e9dc0323e9570c1ec738a08bf27bef6d 100644
--- a/GUI/View/Scene/MaskGraphicsProxy.cpp
+++ b/GUI/View/Scene/MaskGraphicsProxy.cpp
@@ -16,9 +16,7 @@
 #include <QGraphicsSceneMouseEvent>
 
 MaskGraphicsProxy::MaskGraphicsProxy()
-    : m_zooming(false)
 {
-    resize(1200, 1000);
     setZooming(true);
 }
 
diff --git a/GUI/View/Canvas/MaskToolbox.cpp b/GUI/View/Setup/MaskToolbar.cpp
similarity index 92%
rename from GUI/View/Canvas/MaskToolbox.cpp
rename to GUI/View/Setup/MaskToolbar.cpp
index c8f2dd39380cce3f950a2adb08c23d4f4dfb8ff6..9e1f0ec32a8e63a66d5bda31b682cd980e3383bd 100644
--- a/GUI/View/Canvas/MaskToolbox.cpp
+++ b/GUI/View/Setup/MaskToolbar.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/View/Canvas/MaskToolbox.cpp
-//! @brief     Implements class MaskToolbox.
+//! @file      GUI/View/Setup/MaskToolbar.cpp
+//! @brief     Implements class MaskToolbar.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/View/Canvas/MaskToolbox.h"
+#include "GUI/View/Setup/MaskToolbar.h"
 #include "Base/Util/Assert.h"
 #include "GUI/View/Canvas/MaskEditorActions.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
@@ -22,12 +22,12 @@
 #include <QToolButton>
 #include <QVariant>
 
-MaskToolbox::MaskToolbox(MaskEditorActions* actions, QWidget* parent)
-    : QToolBar(parent)
-    , m_activityButtonGroup(new QButtonGroup(this))
+MaskToolbar::MaskToolbar(MaskEditorActions* actions)
+    : m_activityButtonGroup(new QButtonGroup(this))
 {
+    setOrientation(Qt::Vertical);
+    setStyleSheet("border-left:1px solid rgb(180,180,180)");
     setIconSize(QSize(GUI::Style::toolbar_icon_size, GUI::Style::toolbar_icon_size));
-    setProperty("_q_custom_style_disabled", QVariant(true));
 
     //... Zoom / selection mode
 
@@ -168,25 +168,25 @@ MaskToolbox::MaskToolbox(MaskEditorActions* actions, QWidget* parent)
     add_separator();
 }
 
-void MaskToolbox::onChangeActivityRequest(MaskFlags::MaskMode mask_mode)
+void MaskToolbar::onChangeActivityRequest(MaskFlags::MaskMode mask_mode)
 {
     setCurrentActivity(mask_mode);
     emit activityChanged(currentActivity());
 }
 
-void MaskToolbox::add_separator()
+void MaskToolbar::add_separator()
 {
     addWidget(new QLabel(" "));
     addSeparator();
     addWidget(new QLabel(" "));
 }
 
-MaskFlags::MaskMode MaskToolbox::currentActivity() const
+MaskFlags::MaskMode MaskToolbar::currentActivity() const
 {
     return MaskFlags::EMaskMode(m_activityButtonGroup->checkedId());
 }
 
-void MaskToolbox::setCurrentActivity(MaskFlags::MaskMode mask_mode)
+void MaskToolbar::setCurrentActivity(MaskFlags::MaskMode mask_mode)
 {
     m_activityButtonGroup->button(mask_mode)->setChecked(true);
 }
diff --git a/GUI/View/Canvas/MaskToolbox.h b/GUI/View/Setup/MaskToolbar.h
similarity index 76%
rename from GUI/View/Canvas/MaskToolbox.h
rename to GUI/View/Setup/MaskToolbar.h
index 9b586666bfbe69a4b1446238ff8afe38f6b9aa6f..78d092809f84a9300aa8bc0a599f99af4f6360c8 100644
--- a/GUI/View/Canvas/MaskToolbox.h
+++ b/GUI/View/Setup/MaskToolbar.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/View/Canvas/MaskToolbox.h
-//! @brief     Defines class MaskToolbox.
+//! @file      GUI/View/Setup/MaskToolbar.h
+//! @brief     Defines class MaskToolbar.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_VIEW_CANVAS_MASKTOOLBOX_H
-#define BORNAGAIN_GUI_VIEW_CANVAS_MASKTOOLBOX_H
+#ifndef BORNAGAIN_GUI_VIEW_SETUP_MASKTOOLBAR_H
+#define BORNAGAIN_GUI_VIEW_SETUP_MASKTOOLBAR_H
 
 #include "GUI/View/Scene/MaskFlags.h"
 #include <QButtonGroup>
@@ -23,10 +23,10 @@ class MaskEditorActions;
 
 //! Iconic representation of mask editing tools.
 
-class MaskToolbox : public QToolBar {
+class MaskToolbar : public QToolBar {
     Q_OBJECT
 public:
-    MaskToolbox(MaskEditorActions* actions, QWidget* parent = nullptr);
+    MaskToolbar(MaskEditorActions* actions);
 
 signals:
     void activityChanged(MaskFlags::MaskMode);
@@ -45,4 +45,4 @@ private:
     QButtonGroup* m_activityButtonGroup;
 };
 
-#endif // BORNAGAIN_GUI_VIEW_CANVAS_MASKTOOLBOX_H
+#endif // BORNAGAIN_GUI_VIEW_SETUP_MASKTOOLBAR_H
diff --git a/GUI/View/Setup/ProjectionsToolpanel.cpp b/GUI/View/Setup/ProjectionToolbar.cpp
similarity index 64%
rename from GUI/View/Setup/ProjectionsToolpanel.cpp
rename to GUI/View/Setup/ProjectionToolbar.cpp
index 5a4a62b5be7bad730ac6c5392b8419a627641176..c4abf2f4bd5858923343a0638534162199af223a 100644
--- a/GUI/View/Setup/ProjectionsToolpanel.cpp
+++ b/GUI/View/Setup/ProjectionToolbar.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/View/Setup/ProjectionsToolpanel.cpp
-//! @brief     Implements class ProjectionsToolpanel.
+//! @file      GUI/View/Setup/ProjectionToolbar.cpp
+//! @brief     Implements class ProjectionToolbar.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,73 +12,33 @@
 //
 //  ************************************************************************************************
 
-#include "GUI/View/Setup/ProjectionsToolpanel.h"
+#include "GUI/View/Setup/ProjectionToolbar.h"
 #include "GUI/View/Setup/ProjectionActions.h"
 #include "GUI/View/Tool/mainwindow_constants.h"
 #include <QLabel>
 #include <QToolButton>
 
-namespace {
-
-const QString pan_zoom_tooltip = "Pan/zoom mode (space)\n"
-                                 "Drag axes with the mouse, use mouse wheel to zoom in/out";
-
-const QString reset_view_tooltip = "Reset view\nx,y,z axes range will be set to default";
-
-const QString selection_mode_tooltip =
-    "Selection mode\nYou can select existing projections and move them around";
-
-const QString horizontal_mode_tooltip =
-    "Horizontal projections mode\nCreate projection along x-axis by clicking on color map";
-
-const QString vertical_mode_tooltip =
-    "Vertical projections mode\nCreate projection along y-axis by clicking on color map";
-
-} // namespace
-
-ProjectionsToolpanel::ProjectionsToolpanel(ProjectionActions* editorActions, QWidget* parent)
-    : QToolBar(parent)
-    , m_editorActions(editorActions)
+ProjectionToolbar::ProjectionToolbar(ProjectionActions* editorActions)
+    : m_editorActions(editorActions)
     , m_activityButtonGroup(new QButtonGroup(this))
 {
+    setOrientation(Qt::Vertical);
+    setStyleSheet("border-left:1px solid rgb(180,180,180);");
     setIconSize(QSize(GUI::Style::toolbar_icon_size, GUI::Style::toolbar_icon_size));
-    setProperty("_q_custom_style_disabled", QVariant(true));
-
-    setup_selection_group();
-    setup_shapes_group();
-    setup_extratools_group();
-
-    connect(m_activityButtonGroup, &QButtonGroup::idClicked,
-            [this] { emit activityChanged(currentActivity()); });
-}
 
-void ProjectionsToolpanel::onChangeActivityRequest(MaskFlags::MaskMode mask_mode)
-{
-    setCurrentActivity(mask_mode);
-    emit activityChanged(currentActivity());
-}
-
-//! Change activity only if current activity is one of drawing mode (horizontal, vertical
-//! projections drawing).
-void ProjectionsToolpanel::onProjectionTabChange(MaskFlags::MaskMode mask_mode)
-{
-    if (currentActivity() == MaskFlags::HORIZONTAL_LINE_MODE
-        || currentActivity() == MaskFlags::VERTICAL_LINE_MODE)
-        onChangeActivityRequest(mask_mode);
-}
+    //... Selection group
 
-void ProjectionsToolpanel::setup_selection_group()
-{
     auto* panButton = new QToolButton(this);
     panButton->setIcon(QIcon(":/images/hand-right.svg"));
-    panButton->setToolTip(pan_zoom_tooltip);
+    panButton->setToolTip("Pan/zoom mode (space)\n"
+                          "Drag axes with the mouse, use mouse wheel to zoom in/out");
     panButton->setCheckable(true);
     panButton->setChecked(true);
     addWidget(panButton);
 
     auto* resetViewButton = new QToolButton(this);
     resetViewButton->setIcon(QIcon(":/images/camera-metering-center.svg"));
-    resetViewButton->setToolTip(reset_view_tooltip);
+    resetViewButton->setToolTip("Reset view\nx,y,z axes range will be set to default");
     addWidget(resetViewButton);
     connect(resetViewButton, &QToolButton::clicked, m_editorActions,
             &ProjectionActions::resetViewRequest);
@@ -87,36 +47,40 @@ void ProjectionsToolpanel::setup_selection_group()
 
     auto* selectionButton = new QToolButton(this);
     selectionButton->setIcon(QIcon(":/images/maskeditor_arrow.svg"));
-    selectionButton->setToolTip(selection_mode_tooltip);
+    selectionButton->setToolTip(
+        "Selection mode\nYou can select existing projections and move them around");
     selectionButton->setCheckable(true);
     addWidget(selectionButton);
 
     m_activityButtonGroup->addButton(panButton, MaskFlags::PAN_ZOOM_MODE);
     m_activityButtonGroup->addButton(selectionButton, MaskFlags::SELECTION_MODE);
-}
 
-void ProjectionsToolpanel::setup_shapes_group()
-{
+    //... Shapes group
+
     auto* horizontalLineButton = new QToolButton(this);
     horizontalLineButton->setIcon(QIcon(":/images/maskeditor_horizontalline.svg"));
-    horizontalLineButton->setToolTip(horizontal_mode_tooltip);
+    horizontalLineButton->setToolTip(
+        "Horizontal projections mode\nCreate projection along x-axis by clicking on color map");
     horizontalLineButton->setCheckable(true);
     addWidget(horizontalLineButton);
 
     auto* verticalLineButton = new QToolButton(this);
     verticalLineButton->setIcon(QIcon(":/images/maskeditor_verticalline.svg"));
-    verticalLineButton->setToolTip(vertical_mode_tooltip);
+    verticalLineButton->setToolTip(
+        "Vertical projections mode\nCreate projection along y-axis by clicking on color map");
     verticalLineButton->setCheckable(true);
     addWidget(verticalLineButton);
 
     m_activityButtonGroup->addButton(verticalLineButton, MaskFlags::VERTICAL_LINE_MODE);
     m_activityButtonGroup->addButton(horizontalLineButton, MaskFlags::HORIZONTAL_LINE_MODE);
 
+    connect(m_activityButtonGroup, &QButtonGroup::idClicked,
+            [this] { emit activityChanged(currentActivity()); });
+
     add_separator();
-}
 
-void ProjectionsToolpanel::setup_extratools_group()
-{
+    //... Extratools group
+
     auto* saveButton = new QToolButton(this);
     saveButton->setIcon(QIcon(":/images/maskeditor_save.svg"));
     saveButton->setToolTip("Save created projections in multi-column ASCII file.");
@@ -124,19 +88,34 @@ void ProjectionsToolpanel::setup_extratools_group()
     connect(saveButton, &QToolButton::clicked, m_editorActions, &ProjectionActions::onSaveAction);
 }
 
-void ProjectionsToolpanel::add_separator()
+void ProjectionToolbar::onChangeActivityRequest(MaskFlags::MaskMode mask_mode)
+{
+    setCurrentActivity(mask_mode);
+    emit activityChanged(currentActivity());
+}
+
+//! Change activity only if current activity is one of drawing mode (horizontal, vertical
+//! projections drawing).
+void ProjectionToolbar::onProjectionTabChange(MaskFlags::MaskMode mask_mode)
+{
+    if (currentActivity() == MaskFlags::HORIZONTAL_LINE_MODE
+        || currentActivity() == MaskFlags::VERTICAL_LINE_MODE)
+        onChangeActivityRequest(mask_mode);
+}
+
+void ProjectionToolbar::add_separator()
 {
     addWidget(new QLabel(" "));
     addSeparator();
     addWidget(new QLabel(" "));
 }
 
-MaskFlags::MaskMode ProjectionsToolpanel::currentActivity() const
+MaskFlags::MaskMode ProjectionToolbar::currentActivity() const
 {
     return MaskFlags::EMaskMode(m_activityButtonGroup->checkedId());
 }
 
-void ProjectionsToolpanel::setCurrentActivity(MaskFlags::MaskMode mask_mode)
+void ProjectionToolbar::setCurrentActivity(MaskFlags::MaskMode mask_mode)
 {
     int button_index = static_cast<int>(mask_mode);
     m_activityButtonGroup->button(button_index)->setChecked(true);
diff --git a/GUI/View/Setup/ProjectionsToolpanel.h b/GUI/View/Setup/ProjectionToolbar.h
similarity index 71%
rename from GUI/View/Setup/ProjectionsToolpanel.h
rename to GUI/View/Setup/ProjectionToolbar.h
index 53c29dea671691c2e9ce80703f811b3d3742a208..2acfb7ed9b9416c4096beb806d5237b2a86b3a02 100644
--- a/GUI/View/Setup/ProjectionsToolpanel.h
+++ b/GUI/View/Setup/ProjectionToolbar.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      GUI/View/Setup/ProjectionsToolpanel.h
-//! @brief     Defines class ProjectionsToolpanel.
+//! @file      GUI/View/Setup/ProjectionToolbar.h
+//! @brief     Defines class ProjectionToolbar.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -12,8 +12,8 @@
 //
 //  ************************************************************************************************
 
-#ifndef BORNAGAIN_GUI_VIEW_SETUP_PROJECTIONSTOOLPANEL_H
-#define BORNAGAIN_GUI_VIEW_SETUP_PROJECTIONSTOOLPANEL_H
+#ifndef BORNAGAIN_GUI_VIEW_SETUP_PROJECTIONTOOLBAR_H
+#define BORNAGAIN_GUI_VIEW_SETUP_PROJECTIONTOOLBAR_H
 
 #include "GUI/View/Scene/MaskFlags.h"
 #include <QButtonGroup>
@@ -24,10 +24,10 @@ class ProjectionActions;
 //! Toolbar with projections buttons (horizontal projections, vertical projections, select, zoom)
 //! located at the right-hand side of ProjectionsEditor (part of JobProjectionsWidget).
 
-class ProjectionsToolpanel : public QToolBar {
+class ProjectionToolbar : public QToolBar {
     Q_OBJECT
 public:
-    ProjectionsToolpanel(ProjectionActions* editorActions, QWidget* parent = nullptr);
+    ProjectionToolbar(ProjectionActions* editorActions);
 
 public slots:
     void onChangeActivityRequest(MaskFlags::MaskMode mask_mode);
@@ -37,9 +37,6 @@ signals:
     void activityChanged(MaskFlags::MaskMode);
 
 private:
-    void setup_selection_group();
-    void setup_shapes_group();
-    void setup_extratools_group();
     void add_separator();
     MaskFlags::MaskMode currentActivity() const;
     void setCurrentActivity(MaskFlags::MaskMode mask_mode);
@@ -48,4 +45,4 @@ private:
     QButtonGroup* m_activityButtonGroup;
 };
 
-#endif // BORNAGAIN_GUI_VIEW_SETUP_PROJECTIONSTOOLPANEL_H
+#endif // BORNAGAIN_GUI_VIEW_SETUP_PROJECTIONTOOLBAR_H