diff --git a/src/ui/views/outlineBasics.py b/src/ui/views/outlineBasics.py
index 6d3c6f05..5593b0a8 100644
--- a/src/ui/views/outlineBasics.py
+++ b/src/ui/views/outlineBasics.py
@@ -47,6 +47,55 @@ class outlineBasics(QAbstractItemView):
self.menu.addAction(self.actDelete)
self.menu.addSeparator()
+
+ self.menuPOV = QMenu(self.tr("Set POV"), self.menu)
+ mw = mainWindow()
+ a = QAction(self.tr("None"), self.menuPOV)
+ a.triggered.connect(lambda: self.setPOV(""))
+ self.menuPOV.addAction(a)
+ self.menuPOV.addSeparator()
+
+ mpr = QSignalMapper(self.menuPOV)
+ for i in range(mw.mdlPersos.rowCount()):
+ a = QAction(mw.mdlPersos.item(i, Perso.name.value).text(), self.menuPOV)
+ a.triggered.connect(mpr.map)
+ mpr.setMapping(a, int(mw.mdlPersos.item(i, Perso.ID.value).text()))
+ self.menuPOV.addAction(a)
+ mpr.mapped.connect(self.setPOV)
+ self.menu.addMenu(self.menuPOV)
+
+
+ self.menuStatus = QMenu(self.tr("Set Status"), self.menu)
+ if self.model():
+ a = QAction(self.tr("None"), self.menuStatus)
+ a.triggered.connect(lambda: self.setStatus(""))
+ self.menuStatus.addAction(a)
+ self.menuStatus.addSeparator()
+
+ mpr = QSignalMapper(self.menuStatus)
+ for status in self.model().statuses:
+ a = QAction(status, self.menuStatus)
+ a.triggered.connect(mpr.map)
+ mpr.setMapping(a, status)
+ self.menuStatus.addAction(a)
+ mpr.mapped[str].connect(self.setStatus)
+
+ self.menu.addMenu(self.menuStatus)
+
+
+ self.menuLabel = QMenu(self.tr("Set Label"), self.menu)
+ mpr = QSignalMapper(self.menuLabel)
+ for i in range(mw.mdlLabels.rowCount()):
+ a = QAction(mw.mdlLabels.item(i, 0).icon(),
+ mw.mdlLabels.item(i, 0).text(),
+ self.menuLabel)
+ a.triggered.connect(mpr.map)
+ mpr.setMapping(a, i)
+ self.menuLabel.addAction(a)
+ mpr.mapped.connect(self.setLabel)
+ self.menu.addMenu(self.menuLabel)
+
+ self.menu.popup(event.globalPos())
if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder() \
or not clipboard.mimeData().hasFormat("application/xml"):
@@ -56,21 +105,9 @@ class outlineBasics(QAbstractItemView):
self.actCopy.setEnabled(False)
self.actCut.setEnabled(False)
self.actDelete.setEnabled(False)
-
-
- menuPOV = QMenu(self.tr("Set POV"), self.menu)
- menuPOV.addAction("Not yet")
- self.menu.addMenu(menuPOV)
-
- menuStatus = QMenu(self.tr("Set Status"), self.menu)
- menuStatus.addAction("Not yet")
- self.menu.addMenu(menuStatus)
-
- menuLabel = QMenu(self.tr("Set Label"), self.menu)
- menuLabel.addAction("Not yet")
- self.menu.addMenu(menuLabel)
-
- self.menu.popup(event.globalPos())
+ self.menuPOV.setEnabled(False)
+ self.menuStatus.setEnabled(False)
+ self.menuLabel.setEnabled(False)
def copy(self):
mimeData = self.model().mimeData(self.selectionModel().selectedIndexes())
@@ -90,4 +127,15 @@ class outlineBasics(QAbstractItemView):
def delete(self):
for i in self.getSelection():
self.model().removeIndex(i)
-
\ No newline at end of file
+
+ def setPOV(self, POV):
+ for i in self.getSelection():
+ self.model().setData(i.sibling(i.row(), Outline.POV.value), str(POV))
+
+ def setStatus(self, status):
+ for i in self.getSelection():
+ self.model().setData(i.sibling(i.row(), Outline.status.value), str(status))
+
+ def setLabel(self, label):
+ for i in self.getSelection():
+ self.model().setData(i.sibling(i.row(), Outline.label.value), str(label))
\ No newline at end of file
diff --git a/test_project/outline.xml b/test_project/outline.xml
index f286f0ec..1c5f614a 100644
--- a/test_project/outline.xml
+++ b/test_project/outline.xml
@@ -37,13 +37,13 @@
-
+
-
-
-
+
+
+
@@ -53,7 +53,7 @@
-
-
-
+
+
+