diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py
index 6a01d1bb..f72bd8b5 100644
--- a/manuskript/mainWindow.py
+++ b/manuskript/mainWindow.py
@@ -383,6 +383,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def openIndex(self, index):
self.treeRedacOutline.setCurrentIndex(index)
+ def openIndexes(self, indexes, newTab=True):
+ self.mainEditor.openIndexes(indexes, newTab=True)
+
###############################################################################
# LOAD AND SAVE
###############################################################################
diff --git a/manuskript/ui/importers/importer.py b/manuskript/ui/importers/importer.py
index 4aaad994..72152f36 100644
--- a/manuskript/ui/importers/importer.py
+++ b/manuskript/ui/importers/importer.py
@@ -12,6 +12,7 @@ from manuskript.ui.importers.importer_ui import Ui_importer
from manuskript.ui.importers.generalSettings import generalSettings
from manuskript.ui import style
from manuskript import importer
+from manuskript.models.outlineModel import outlineModel
class importerDialog(QWidget, Ui_importer):
@@ -157,4 +158,4 @@ class importerDialog(QWidget, Ui_importer):
def preview(self):
# TODO
- pass
+ previewModel = outlineModel(self)
diff --git a/manuskript/ui/importers/importer_ui.py b/manuskript/ui/importers/importer_ui.py
index 7d393291..44afddc1 100644
--- a/manuskript/ui/importers/importer_ui.py
+++ b/manuskript/ui/importers/importer_ui.py
@@ -80,6 +80,10 @@ class Ui_importer(object):
self.splitter_2 = QtWidgets.QSplitter(self.grpPreview)
self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
self.splitter_2.setObjectName("splitter_2")
+ self.tree = treeView(self.splitter_2)
+ self.tree.setObjectName("tree")
+ self.editor = mainEditor(self.splitter_2)
+ self.editor.setObjectName("editor")
self.verticalLayout_2.addWidget(self.splitter_2)
self.verticalLayout.addWidget(self.splitter)
@@ -97,3 +101,5 @@ class Ui_importer(object):
self.grpSettings.setTitle(_translate("importer", "Settings"))
self.grpPreview.setTitle(_translate("importer", "Preview"))
+from manuskript.ui.editors.mainEditor import mainEditor
+from manuskript.ui.views.treeView import treeView
diff --git a/manuskript/ui/importers/importer_ui.ui b/manuskript/ui/importers/importer_ui.ui
index 404db62e..afb053e9 100644
--- a/manuskript/ui/importers/importer_ui.ui
+++ b/manuskript/ui/importers/importer_ui.ui
@@ -178,6 +178,8 @@
Qt::Horizontal
+
+
@@ -186,6 +188,19 @@
+
+
+ treeView
+ QTreeView
+ manuskript.ui.views.treeView.h
+
+
+ mainEditor
+ QWidget
+ manuskript.ui.editors.mainEditor.h
+ 1
+
+
diff --git a/manuskript/ui/views/outlineBasics.py b/manuskript/ui/views/outlineBasics.py
index 8c21a8ec..7b12f794 100644
--- a/manuskript/ui/views/outlineBasics.py
+++ b/manuskript/ui/views/outlineBasics.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
# --!-- coding: utf8 --!--
from PyQt5.QtCore import Qt, QSignalMapper, QSize
-from PyQt5.QtGui import QIcon
+from PyQt5.QtGui import QIcon, QCursor
from PyQt5.QtWidgets import QAbstractItemView, qApp, QMenu, QAction
from PyQt5.QtWidgets import QListWidget, QWidgetAction, QListWidgetItem, QLineEdit
@@ -14,7 +14,7 @@ from manuskript.models.outlineModel import outlineItem
class outlineBasics(QAbstractItemView):
def __init__(self, parent=None):
- pass
+ self._indexesToOpen = None
def getSelection(self):
sel = []
@@ -39,11 +39,44 @@ class outlineBasics(QAbstractItemView):
menu = QMenu(self)
- # Open items
- self.actOpen = QAction(QIcon.fromTheme("go-right"), qApp.translate("outlineBasics", "Open Item"), menu)
+ # Get index under cursor
+ pos = self.viewport().mapFromGlobal(QCursor.pos())
+ mouseIndex = self.indexAt(pos)
+
+ # Get index's title
+ if mouseIndex.isValid():
+ title = mouseIndex.internalPointer().title()
+
+ elif self.rootIndex().parent().isValid():
+ # mouseIndex is the background of an item, so we check the parent
+ mouseIndex = self.rootIndex().parent()
+ title = mouseIndex.internalPointer().title()
+
+ else:
+ title = self.tr("Root")
+
+ if len(title) > 25:
+ title = title[:25] + "…"
+
+ # Open Item action
+ self.actOpen = QAction(QIcon.fromTheme("go-right"),
+ qApp.translate("outlineBasics", "Open {}".format(title)),
+ menu)
self.actOpen.triggered.connect(self.openItem)
menu.addAction(self.actOpen)
+ # Open item(s) in new tab
+ if mouseIndex in sel and len(sel) > 1:
+ actionTitle = self.tr("Open {} items in new tabs").format(len(sel))
+ self._indexesToOpen = sel
+ else:
+ actionTitle = self.tr("Open {} in a new tab").format(title)
+ self._indexesToOpen = [mouseIndex]
+
+ self.actNewTab = QAction(QIcon.fromTheme("go-right"), actionTitle, menu)
+ self.actNewTab.triggered.connect(self.openItemsInNewTabs)
+ menu.addAction(self.actNewTab)
+
menu.addSeparator()
# Rename / add / remove items
@@ -185,7 +218,6 @@ class outlineBasics(QAbstractItemView):
self.actAddText.setEnabled(False)
if len(sel) == 0:
- self.actOpen.setEnabled(False)
self.actCopy.setEnabled(False)
self.actCut.setEnabled(False)
self.actRename.setEnabled(False)
@@ -201,10 +233,15 @@ class outlineBasics(QAbstractItemView):
return menu
def openItem(self):
- idx = self.currentIndex()
+ #idx = self.currentIndex()
+ idx = self._indexesToOpen[0]
from manuskript.functions import MW
MW.openIndex(idx)
+ def openItemsInNewTabs(self):
+ from manuskript.functions import MW
+ MW.openIndexes(self._indexesToOpen)
+
def rename(self):
if len(self.getSelection()) == 1:
index = self.currentIndex()
diff --git a/manuskript/ui/views/treeView.py b/manuskript/ui/views/treeView.py
index 53a063f7..4e28d1c9 100644
--- a/manuskript/ui/views/treeView.py
+++ b/manuskript/ui/views/treeView.py
@@ -31,30 +31,13 @@ class treeView(QTreeView, dndView, outlineBasics):
def makePopupMenu(self):
menu = outlineBasics.makePopupMenu(self)
- first = menu.actions()[0]
+ first = menu.actions()[3]
# Open item in new tab
- sel = self.selectedIndexes()
+ #sel = self.selectedIndexes()
pos = self.viewport().mapFromGlobal(QCursor.pos())
mouseIndex = self.indexAt(pos)
- if mouseIndex.isValid():
- mouseTitle = mouseIndex.internalPointer().title()
- else:
- mouseTitle = self.tr("Root")
-
- if mouseIndex in sel and len(sel) > 1:
- actionTitle = self.tr("Open {} items in new tabs").format(len(sel))
- self._indexesToOpen = sel
- else:
- actionTitle = self.tr("Open {} in a new tab").format(mouseTitle)
- self._indexesToOpen = [mouseIndex]
-
- self.actNewTab = QAction(actionTitle, menu)
- self.actNewTab.triggered.connect(self.openNewTab)
- menu.insertAction(first, self.actNewTab)
- menu.insertSeparator(first)
-
# Expand /collapse item
if mouseIndex.isValid():
# index = self.currentIndex()
@@ -83,9 +66,6 @@ class treeView(QTreeView, dndView, outlineBasics):
return menu
- def openNewTab(self):
- mainWindow().mainEditor.openIndexes(self._indexesToOpen, newTab=True)
-
def expandCurrentIndex(self, index=None):
if index is None or type(index) == bool:
index = self._indexesToOpen[0] # self.currentIndex()