src/gui.cpp

changeset 283
c5401af41685
parent 276
a21e49914264
child 286
7a562bf3d829
--- a/src/gui.cpp	Thu Jun 13 14:00:34 2013 +0300
+++ b/src/gui.cpp	Thu Jun 13 16:16:55 2013 +0300
@@ -39,6 +39,7 @@
 #include "colors.h"
 #include "history.h"
 #include "widgets.h"
+#include "addObjectDialog.h"
 #include "config.h"
 
 actionmeta g_actionMeta[MAX_ACTIONS];
@@ -71,6 +72,7 @@
 	m_objList->setSelectionMode (QListWidget::ExtendedSelection);
 	m_objList->setAlternatingRowColors (true);
 	connect (m_objList, SIGNAL (itemSelectionChanged ()), this, SLOT (slot_selectionChanged ()));
+	connect (m_objList, SIGNAL (itemDoubleClicked (QListWidgetItem*)), this, SLOT (slot_editObject (QListWidgetItem*)));
 	
 	m_splitter = new QSplitter;
 	m_splitter->addWidget (m_renderer);
@@ -944,7 +946,7 @@
 	contextMenu->exec (pos);
 }
 
-// ========================================================================================================================================
+// =============================================================================
 void ForgeWindow::deleteObjVector (vector<LDObject*> objs) {
 	for (LDObject* obj : objs) {
 		g_curfile->forgetObject (obj);
@@ -952,7 +954,7 @@
 	}
 }
 
-// ========================================================================================================================================
+// =============================================================================
 void ForgeWindow::deleteByColor (const short colnum) {
 	vector<LDObject*> objs;
 	for (LDObject* obj : g_curfile->objs ()) {
@@ -965,7 +967,7 @@
 	deleteObjVector (objs);
 }
 
-// ========================================================================================================================================
+// =============================================================================
 void ForgeWindow::updateEditModeActions () {
 	const EditMode mode = R ()->editMode ();
 	const size_t numModeActions = (sizeof g_modeActionNames / sizeof *g_modeActionNames);
@@ -982,7 +984,19 @@
 	}
 }
 
-// ========================================================================================================================================
+void ForgeWindow::slot_editObject (QListWidgetItem* listitem) {
+	LDObject* obj = null;
+	for (LDObject* it : *g_curfile) {
+		if (it->qObjListEntry == listitem) {
+			obj = it;
+			break;
+		}
+	}
+	
+	AddObjectDialog::staticDialog (obj->getType (), obj);
+}
+
+// ============================================================================
 void ObjectList::contextMenuEvent (QContextMenuEvent* ev) {
 	g_win->spawnContextMenu (ev->globalPos ());
 }

mercurial