diff --git a/GUI/coregui/Models/DistributionItem.cpp b/GUI/coregui/Models/DistributionItem.cpp
index d8bdc310dc0014d48494acca19fa4018463d22e3..851fa67a5fd85adc8357a41833ab83bae94e54d8 100644
--- a/GUI/coregui/Models/DistributionItem.cpp
+++ b/GUI/coregui/Models/DistributionItem.cpp
@@ -53,7 +53,7 @@ std::unique_ptr<IDistribution1D> DistributionNoneItem::createDistribution() cons
     return nullptr;
 }
 
-void DistributionNoneItem::init_parameters(double value, PropertyAttribute attribute)
+void DistributionNoneItem::init_parameters(double value, PropertyAttribute)
 {
     setItemValue(DistributionNoneItem::P_VALUE, value);
 //    setPropertyAttribute(DistributionNoneItem::P_VALUE, attribute);
@@ -80,7 +80,7 @@ std::unique_ptr<IDistribution1D> DistributionGateItem::createDistribution() cons
     return GUIHelpers::make_unique<DistributionGate>(min, max);
 }
 
-void DistributionGateItem::init_parameters(double value, PropertyAttribute attribute)
+void DistributionGateItem::init_parameters(double value, PropertyAttribute)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -111,7 +111,7 @@ std::unique_ptr<IDistribution1D> DistributionLorentzItem::createDistribution() c
     return GUIHelpers::make_unique<DistributionLorentz>(mean, hwhm);
 }
 
-void DistributionLorentzItem::init_parameters(double value, PropertyAttribute attribute)
+void DistributionLorentzItem::init_parameters(double value, PropertyAttribute)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -143,7 +143,7 @@ std::unique_ptr<IDistribution1D> DistributionGaussianItem::createDistribution()
     return GUIHelpers::make_unique<DistributionGaussian>(mean, std_dev);
 }
 
-void DistributionGaussianItem::init_parameters(double value, PropertyAttribute attribute)
+void DistributionGaussianItem::init_parameters(double value, PropertyAttribute)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -175,7 +175,7 @@ std::unique_ptr<IDistribution1D> DistributionLogNormalItem::createDistribution()
     return GUIHelpers::make_unique<DistributionLogNormal>(median, scale_par);
 }
 
-void DistributionLogNormalItem::init_parameters(double value, PropertyAttribute attribute)
+void DistributionLogNormalItem::init_parameters(double value, PropertyAttribute)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
@@ -207,7 +207,7 @@ std::unique_ptr<IDistribution1D> DistributionCosineItem::createDistribution() co
     return GUIHelpers::make_unique<DistributionCosine>(mean, sigma);
 }
 
-void DistributionCosineItem::init_parameters(double value, PropertyAttribute attribute)
+void DistributionCosineItem::init_parameters(double value, PropertyAttribute)
 {
     double sigma(0.1*std::abs(value));
     if(sigma == 0.0) sigma = 0.1;
diff --git a/GUI/coregui/Models/DistributionItem.h b/GUI/coregui/Models/DistributionItem.h
index 1933fbaf0c578920c08f0d037aed7ac074e5a571..cbefc8a800885e1f75aedf4e8f9c9d87badf6b7b 100644
--- a/GUI/coregui/Models/DistributionItem.h
+++ b/GUI/coregui/Models/DistributionItem.h
@@ -45,7 +45,7 @@ public:
     static const QString P_VALUE;
     explicit DistributionNoneItem();
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value, PropertyAttribute attribute);
+    virtual void init_parameters(double value, PropertyAttribute);
 };
 
 
@@ -58,7 +58,7 @@ public:
     explicit DistributionGateItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value, PropertyAttribute attribute);
+    virtual void init_parameters(double value, PropertyAttribute);
 };
 
 
@@ -71,7 +71,7 @@ public:
     explicit DistributionLorentzItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value, PropertyAttribute attribute);
+    virtual void init_parameters(double value, PropertyAttribute);
 };
 
 
@@ -84,7 +84,7 @@ public:
     explicit DistributionGaussianItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value, PropertyAttribute attribute);
+    virtual void init_parameters(double value, PropertyAttribute);
 };
 
 
@@ -97,7 +97,7 @@ public:
     explicit DistributionLogNormalItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value, PropertyAttribute attribute);
+    virtual void init_parameters(double value, PropertyAttribute);
 };
 
 
@@ -110,7 +110,7 @@ public:
     explicit DistributionCosineItem();
 
     virtual std::unique_ptr<IDistribution1D> createDistribution() const;
-    virtual void init_parameters(double value, PropertyAttribute attribute);
+    virtual void init_parameters(double value, PropertyAttribute);
 };
 
 #endif // DISTRIBUTIONITEM_H
diff --git a/GUI/coregui/Models/GroupProperty.cpp b/GUI/coregui/Models/GroupProperty.cpp
index 4ee9ca673a232fb94079efa277bc03c7cf758319..f94b3a797f8a3a4728df983eeaa739a5b7b831a3 100644
--- a/GUI/coregui/Models/GroupProperty.cpp
+++ b/GUI/coregui/Models/GroupProperty.cpp
@@ -67,7 +67,7 @@ QString GroupProperty::getCurrentType() const
     return m_current_type;
 }
 
-void GroupProperty::setCurrentType(const QString &type, bool persistent)
+void GroupProperty::setCurrentType(const QString &type, bool)
 {
     qDebug() << "GGG GroupProperty::setCurrentType(const QString &type)" << type;
     if(type == getCurrentType()) return;
diff --git a/GUI/coregui/Models/GroupProperty.h b/GUI/coregui/Models/GroupProperty.h
index 5a09a01873fab8f8672bf609a1ef682fd8a6f645..404600066d8009d21f68dd909ca50c73bb4bec35 100644
--- a/GUI/coregui/Models/GroupProperty.h
+++ b/GUI/coregui/Models/GroupProperty.h
@@ -45,7 +45,7 @@ public:
     QString getGroupName() const;
 
     QString getCurrentType() const;
-    void setCurrentType(const QString &type, bool persistent = true);
+    void setCurrentType(const QString &type, bool = true);
 
     QString getCurrentLabel() const;
     void setCurrentLabel(const QString &label);
diff --git a/GUI/coregui/Models/ParameterModelBuilder.cpp b/GUI/coregui/Models/ParameterModelBuilder.cpp
index 5f925171bea3be7ed22e2f7556063845fe38babe..60b3099bbf26f758b139b70e34763c5c360d9132 100644
--- a/GUI/coregui/Models/ParameterModelBuilder.cpp
+++ b/GUI/coregui/Models/ParameterModelBuilder.cpp
@@ -179,7 +179,7 @@ QStandardItem *ParameterModelBuilder::iterateInstrumentModel(InstrumentModel *in
     return iterateInstrumentItem(instrument);
 }
 
-QStandardItem *ParameterModelBuilder::iterateInstrumentItem(InstrumentItem *instrument)
+QStandardItem *ParameterModelBuilder::iterateInstrumentItem(InstrumentItem *)
 {
     /*QStandardItem *standardItem(0);
     BeamItem *beamItem = instrument->getBeamItem();
diff --git a/GUI/coregui/Models/ParameterModelBuilder.h b/GUI/coregui/Models/ParameterModelBuilder.h
index f96ceef835bf11f44b5dcba43b733507597aba01..769fb205e2f41216809d3e56b30b28c92ba4ac13 100644
--- a/GUI/coregui/Models/ParameterModelBuilder.h
+++ b/GUI/coregui/Models/ParameterModelBuilder.h
@@ -44,7 +44,7 @@ public:
 private:
 
     static QStandardItem *iterateInstrumentModel(InstrumentModel *instrumentModel);
-    static QStandardItem *iterateInstrumentItem(InstrumentItem *instrument);
+    static QStandardItem *iterateInstrumentItem(InstrumentItem *);
 
     static void InsertRowIntoItem(QStandardItem *parentItem, QStandardItem *childTitleItem, QStandardItem *childValueItem = 0);
     static void addPropertyToParameterModel(QStandardItem *parentItem, const QString &title, const QString &property_name, QVariant value, SessionItem *parameterizedItem);
diff --git a/GUI/coregui/Models/SampleViewProxyModel.cpp b/GUI/coregui/Models/SampleViewProxyModel.cpp
index 299e4a2d405d802639597f4dc2837c84438ba737..7e69d6462072807f049a2e8e0739f610e7daa525 100644
--- a/GUI/coregui/Models/SampleViewProxyModel.cpp
+++ b/GUI/coregui/Models/SampleViewProxyModel.cpp
@@ -17,6 +17,7 @@
 
 int SampleViewProxyModel::columnCount(const QModelIndex &parent) const
 {
+    Q_UNUSED(parent);
     return 1;
 }
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
index 4eb19de278beb141cf1ff20f02fe3dfeefa1db1c..c00d7927ada1e94fef3935ca02df52a12b064012 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.cpp
@@ -68,6 +68,7 @@ void ComponentBoxEditor::updateItem(SessionItem *item, QtVariantProperty *parent
 
 void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
 {
+    Q_UNUSED(bottomRight);
 //    if (topLeft != bottomRight)
 //        return;
 
@@ -102,258 +103,7 @@ void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft, const QModelI
 
 }
 
-void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first, int last)
+void ComponentBoxEditor::onRowsInserted(const QModelIndex &, int , int )
 {
-    qDebug() << "ComponentBoxEditor::onRowsInserted";
-
+    // intentionally empty
 }
-
-
-
-
-//ComponentBoxEditor::ComponentBoxEditor(ComponentEditorFlags::PresentationType flags, QWidget *parent)
-//    : QWidget(parent), m_d(new ComponentEditorPrivate(flags, this))
-//{
-//    setWindowTitle(QLatin1String("Property Editor"));
-//    setObjectName(QLatin1String("ComponentEditor"));
-
-//    QVBoxLayout *layout = new QVBoxLayout(this);
-//    layout->setMargin(0);
-//    layout->addWidget(m_d->m_browser);
-
-//    connectManager();
-//}
-
-//ComponentBoxEditor::~ComponentBoxEditor()
-//{
-//}
-
-////! Sets editor to display all recursive properties of given item
-//void ComponentBoxEditor::setItem(SessionItem *item, const QString &group_name)
-//{
-//    clearEditor();
-//    if(!item) return;
-
-////    updateEditor(item);
-
-//    QtVariantProperty *groupVariantProperty(0);
-//    if(!group_name.isEmpty()) {
-//        groupVariantProperty = m_d->m_manager->addProperty(QtVariantPropertyManager::groupTypeId(), group_name);
-//        m_d->m_browser->addProperty(groupVariantProperty);
-//    }
-
-////    if(m_d->isFlat()) {
-//        foreach (SessionItem *childItem, componentItems(item)) {
-//            updateEditor(childItem, groupVariantProperty);
-//        }
-////    } else {
-////        updateEditor(item);
-////    }
-
-//}
-
-
-////! adds all property items to thr PropertyGroup with given name
-//void ComponentBoxEditor::addPropertyItems(SessionItem *item, const QString &group_name)
-//{
-//    if(item->modelType() == Constants::PropertyType) {
-//        addItem(item, group_name);
-//    }
-
-//    else if(item->modelType() == Constants::GroupItemType) {
-//        addItem(item, group_name);
-//        foreach (SessionItem *childItem, componentItems(item)) {
-//            addItem(childItem, group_name);
-//        }
-//    }
-
-//    else {
-//        foreach (SessionItem *childItem, componentItems(item)) {
-//            addItem(childItem, group_name);
-//        }
-//    }
-//}
-
-////! add single item to property group with given name
-//void ComponentBoxEditor::addItem(SessionItem *item, const QString &group_name)
-//{
-//    QtVariantProperty *groupProperty = m_d->processPropertyGroupForName(group_name);
-//    m_d->processPropertyForItem(item, groupProperty);
-//}
-
-////void ComponentEditor::addItemProperty(SessionItem *item, const QString &name)
-////{
-
-////}
-
-////! Main function to run through SessionItem tree and fill editor with
-////! properties
-//void ComponentBoxEditor::updateEditor(SessionItem *item,
-//                                   QtVariantProperty *parentProperty)
-//{
-//    connectModel(item->model());
-
-////    if(parentProperty)
-
-//    if (QtVariantProperty *childProperty
-//        = m_d->processPropertyForItem(item, parentProperty)) {
-//        parentProperty = childProperty;
-//    }
-
-//    foreach (SessionItem *childItem, componentItems(item)) {
-//        updateEditor(childItem, parentProperty);
-//    }
-//}
-
-////! Clear editor from all properties, ready to accept new items
-//void ComponentBoxEditor::clearEditor()
-//{
-//    disconnect();
-//    disconnectManager();
-//    m_d->clear();
-//    connectManager();
-//}
-
-////! Propagates data from SessionItem to editor
-//void ComponentBoxEditor::onDataChanged(const QModelIndex &topLeft,
-//                                    const QModelIndex &bottomRight,
-//                                    const QVector<int> &roles)
-//{
-//    if (topLeft != bottomRight)
-//        return;
-
-//    SessionModel *model = qobject_cast<SessionModel *>(sender());
-//    Q_ASSERT(model);
-//    SessionItem *item = model->itemForIndex(topLeft);
-//    Q_ASSERT(item);
-
-//    qDebug() << " ComponentEditor::onDataChanged" << m_d->m_presentationType
-//             << roles << item->modelType() << item->displayName();
-
-//    if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
-//        // updating editor's property appearance (tooltips, limits)
-//        if (roles.contains(Qt::UserRole)) {
-//            m_d->updatePropertyAppearance(property, item->getAttribute());
-//        }
-
-//        // updating editor's property values
-//        if (roles.contains(Qt::DisplayRole) || roles.contains(Qt::EditRole)) {
-//            disconnectManager();
-//            property->setValue(item->value());
-//            connectManager();
-
-//            if(item->modelType() == Constants::GroupItemType) {
-//                cleanChildren(item);
-//                //updateEditor(item, m_d->getPropertyForItem(item->parent()));
-//            }
-
-//        }
-//    }
-//}
-
-////! Updates the editor starting from given SessionItem's parent.
-////! Editor should know already about given item (i.e. corresponding
-////! QtVariantProperty should exist.
-//void ComponentBoxEditor::onRowsInserted(const QModelIndex &parent, int first,
-//                                     int last)
-//{
-//    qDebug() << "ComponentEditor::onRowsInserted" << parent << first << last;
-//    SessionModel *model = qobject_cast<SessionModel *>(sender());
-
-//    SessionItem *item = model->itemForIndex(parent);
-//    Q_ASSERT(item);
-
-//    if (QtVariantProperty *property = m_d->getPropertyForItem(item)) {
-//        updateEditor(item, property);
-//    }
-//}
-
-////! Propagates value from the editor to SessionItem
-//void ComponentBoxEditor::onQtPropertyChanged(QtProperty *property,
-//                                          const QVariant &value)
-//{
-//    qDebug() << "ComponentEditor::onQtPropertyChanged" << property << value;
-//    if (SessionItem *item = m_d->getItemForProperty(property)) {
-//        disconnectModel(item->model());
-//        item->setValue(value);
-//        connectModel(item->model());
-//    }
-//}
-
-////! Returns list of children suitable for displaying in ComponentEditor.
-////! In condensed mode, editor will analyse only nearest visible properties.
-//QList<SessionItem *>
-//ComponentBoxEditor::componentItems(SessionItem *item) const
-//{
-//    QList<SessionItem *> result;
-
-
-//        foreach (SessionItem *child, item->childItems()) {
-//            if (child->getAttribute().isHidden())
-//                continue;
-//            if (child->modelType() == Constants::PropertyType) {
-//                result.append(child);
-//            }
-//            if (child->modelType() == Constants::GroupItemType) {
-//                result.append(child);
-//            }
-//            if (item->modelType() == Constants::GroupItemType) {
-//                foreach(SessionItem *childOfChild, child->childItems()) {
-//                    result.append(childOfChild);
-//                }
-//            }
-//        }
-
-//    return result;
-//}
-
-//void ComponentBoxEditor::cleanChildren(SessionItem *item)
-//{
-//    foreach(SessionItem *child, item->childItems()) {
-//        if (QtVariantProperty *property = m_d->getPropertyForItem(child)) {
-//            m_d->removeQtVariantProperty(property);
-//        }
-//        cleanChildren(child);
-//    }
-//}
-
-//void ComponentBoxEditor::disconnectModel(SessionModel *model)
-//{
-//    disconnect(
-//        model, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &,
-//                                  const QVector<int> &)),
-//        this, SLOT(onDataChanged(const QModelIndex &, const QModelIndex &,
-//                                 const QVector<int> &)));
-
-//    disconnect(model, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this,
-//               SLOT(onRowsInserted(const QModelIndex &, int, int)));
-//}
-
-//void ComponentBoxEditor::connectModel(SessionModel *model)
-//{
-//    connect(model, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &,
-//                                      const QVector<int> &)),
-//            this, SLOT(onDataChanged(const QModelIndex &, const QModelIndex &,
-//                                     const QVector<int> &)),
-//            Qt::UniqueConnection);
-
-//    connect(model, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this,
-//            SLOT(onRowsInserted(const QModelIndex &, int, int)),
-//            Qt::UniqueConnection);
-//}
-
-//void ComponentBoxEditor::disconnectManager()
-//{
-//    disconnect(m_d->m_manager,
-//               SIGNAL(valueChanged(QtProperty *, const QVariant &)), this,
-//               SLOT(onQtPropertyChanged(QtProperty *, const QVariant &)));
-//}
-
-//void ComponentBoxEditor::connectManager()
-//{
-//    connect(m_d->m_manager,
-//            SIGNAL(valueChanged(QtProperty *, const QVariant &)), this,
-//            SLOT(onQtPropertyChanged(QtProperty *, const QVariant &)),
-//            Qt::UniqueConnection);
-//}
-
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h
index f2cce67a0250f793248f961f6738f47aa88676d9..8f5d729807ec47ff37c6355020d8198475386a38 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h
+++ b/GUI/coregui/Views/PropertyEditor/ComponentBoxEditor.h
@@ -35,7 +35,7 @@ public:
 
 public slots:
     void onDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
-    void onRowsInserted(const QModelIndex &parent, int first, int last);
+    void onRowsInserted(const QModelIndex &, int, int);
 
 };
 
diff --git a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
index a328fc914768094323698bd569d66c4094227015..ce08dccdf995329016c200fa85a4eec834b9bb1f 100644
--- a/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
+++ b/GUI/coregui/Views/PropertyEditor/ComponentEditor.cpp
@@ -90,6 +90,7 @@ void ComponentEditor::onDataChanged(const QModelIndex &topLeft,
 {
 //    if (topLeft != bottomRight)
 //        return;
+    Q_UNUSED(bottomRight);
 
     SessionModel *model = qobject_cast<SessionModel *>(sender());
     Q_ASSERT(model);
diff --git a/GUI/coregui/Views/TestComponentView.cpp b/GUI/coregui/Views/TestComponentView.cpp
index 7d643aa301ddb0e9b44b4a12a616d79f926994af..4df0a4656c9c62fab47e627c1c32b72a6ae312fc 100644
--- a/GUI/coregui/Views/TestComponentView.cpp
+++ b/GUI/coregui/Views/TestComponentView.cpp
@@ -62,16 +62,14 @@ TestComponentView::TestComponentView(MainWindow *mainWindow)
 
 void TestComponentView::onSelectionChanged(const QItemSelection &selected, const QItemSelection &)
 {
-    qDebug() << "TestComponentView::onSelectionChanged" << selected;
-
     QModelIndexList indices = selected.indexes();
 
     if(indices.isEmpty()) {
-//        m_editor2->setItem(0);
+        m_editor2->setItem(0);
 //        m_editor3->setItem(0);
     } else {
         if(SessionItem *item = m_model->itemForIndex(indices.at(0))) {
-//            m_editor2->setItem(item);
+            m_editor2->setItem(item);
 //            m_editor2->addItem(item);
 //            m_editor3->setItem(item);
         }
diff --git a/Tests/UnitTests/TestGUI/TestParticleDistributionItem.h b/Tests/UnitTests/TestGUI/TestParticleDistributionItem.h
index 46d148cbc989b4097cfac054c70299cc54114d4e..2aa6d4da2a54e2503ea88748bbe8d3a37437ecb6 100644
--- a/Tests/UnitTests/TestGUI/TestParticleDistributionItem.h
+++ b/Tests/UnitTests/TestGUI/TestParticleDistributionItem.h
@@ -42,7 +42,7 @@ inline void TestParticleDistributionItem::test_AddParticle()
 {
     SampleModel model;
     SessionItem *item = model.insertNewItem(Constants::ParticleDistributionType);
-    SessionItem *particle = model.insertNewItem(Constants::ParticleType, item->index());
+    model.insertNewItem(Constants::ParticleType, item->index());
 
     QCOMPARE(item->childItems().size(), 6); // xpos, ypos, P_ABUNDANCE, P_DISTRIBUTION, T_PARTICLES, P_DISTRIBUTED_PARAMETER