diff --git a/mainwindow.ui b/mainwindow.ui
index d70d07a..6068e0d 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -63,26 +63,6 @@
6
- -
-
-
- Forme
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
@@ -127,6 +107,26 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+ Forme
+
+
+
-
@@ -140,6 +140,16 @@
+ -
+
+
+ false
+
+
+ Delete Cube
+
+
+
@@ -254,6 +264,9 @@
true
+
+ true
+
Linear
@@ -262,6 +275,9 @@
true
+
+ false
+
Nearest
@@ -270,6 +286,9 @@
true
+
+ true
+
Linear MipMap Linear
diff --git a/src/viewer/simpleViewer.cpp b/src/viewer/simpleViewer.cpp
index cb9f765..b4adfaf 100644
--- a/src/viewer/simpleViewer.cpp
+++ b/src/viewer/simpleViewer.cpp
@@ -199,6 +199,7 @@ void Viewer::mousePressEvent(QMouseEvent* e) {
}
selectedObj.shape = selectedGeom.shape;
selectedObj.shape->getParent()->addChild(selection);
+ cubeSelected(true);
}
if(!selectedGeom.position.isIdentity() && e->modifiers().testFlag(Qt::ShiftModifier))
@@ -779,6 +780,26 @@ void Viewer::setMinLinear(bool on) {
this->update();
}
+void Viewer::deleteSelected() {
+ // Remove Shape from its parent
+
+ selectedObj.shape->getParent()->getChildren()->erase(
+ std::remove(selectedObj.shape->getParent()->getChildren()->begin(),
+ selectedObj.shape->getParent()->getChildren()->end(),
+ selection),
+ selectedObj.shape->getParent()->getChildren()->end());
+
+ selectedObj.shape->getParent()->getChildren()->erase(
+ std::remove(selectedObj.shape->getParent()->getChildren()->begin(),
+ selectedObj.shape->getParent()->getChildren()->end(),
+ selectedObj.shape),
+ selectedObj.shape->getParent()->getChildren()->end());
+
+ selectedObj.shape = new Cube(); // Rebind to "null"
+
+ cubeSelected(false);
+}
+
void Viewer::changeColor(QColor c){
if(activeCell->getChildren()->size()){
diff --git a/src/viewer/simpleViewer.h b/src/viewer/simpleViewer.h
index c9326ee..15d9ca9 100644
--- a/src/viewer/simpleViewer.h
+++ b/src/viewer/simpleViewer.h
@@ -62,9 +62,11 @@ public slots:
void setPhong(bool);
void setMagLinear(bool);
void setMinLinear(bool);
+ void deleteSelected();
signals:
int shapeSelected(int);
+ bool cubeSelected(bool);
protected :
virtual void draw();
diff --git a/src/window/mainwindow.cpp b/src/window/mainwindow.cpp
index e8ccf5f..57244ad 100644
--- a/src/window/mainwindow.cpp
+++ b/src/window/mainwindow.cpp
@@ -45,6 +45,9 @@ void MainWindow::addViewer(Viewer* viewer)
connect(ui->actionPhong, SIGNAL(toggled(bool)), viewer, SLOT(setPhong(bool)));
connect(ui->actionMagLinear, SIGNAL(toggled(bool)), viewer, SLOT(setMagLinear(bool)));
connect(ui->actionMinLin, SIGNAL(toggled(bool)), viewer, SLOT(setMinLinear(bool)));
+
+ connect(ui->action_delete, SIGNAL(clicked(bool)), viewer, SLOT(deleteSelected()));
+ connect(viewer, SIGNAL(cubeSelected(bool)), ui->action_delete, SLOT(setEnabled(bool)));
}
void MainWindow::onColorPickerActivate(){