Cleans treeView of some call to mainWindow that should be here

This commit is contained in:
Olivier Keshavjee 2017-11-07 12:02:02 +01:00
parent 221c7a181d
commit d51233ebba
6 changed files with 71 additions and 29 deletions

View file

@ -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
###############################################################################

View file

@ -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)

View file

@ -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

View file

@ -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>

View file

@ -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()

View file

@ -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()