mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-14 18:02:23 +12:00
Cleans treeView of some call to mainWindow that should be here
This commit is contained in:
parent
221c7a181d
commit
d51233ebba
|
@ -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
|
||||
###############################################################################
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -178,6 +178,8 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="treeView" name="tree"/>
|
||||
<widget class="mainEditor" name="editor" native="true"/>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -186,6 +188,19 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>treeView</class>
|
||||
<extends>QTreeView</extends>
|
||||
<header>manuskript.ui.views.treeView.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>mainEditor</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>manuskript.ui.editors.mainEditor.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue