Added toolbars and buttons.

This commit is contained in:
Veronica K. B. Olsen
2018-09-29 18:14:44 +02:00
parent 4a83e210a3
commit 009555b963
3 changed files with 161 additions and 21 deletions
+93 -8
View File
@@ -14,25 +14,110 @@ import logging
import nw
from os import path
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QTextEdit
# from PyQt5.QtWidgets import QTabWidget, QWidget
# from PyQt5.QtGui import QStandardItemModel
from PyQt5.QtWidgets import QWidget, QTextEdit, QVBoxLayout, QFrame, QSplitter, QToolBar, QAction
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QIcon
logger = logging.getLogger(__name__)
class GuiDocEditor(QTextEdit):
class GuiDocEditor(QWidget):
def __init__(self):
QTextEdit.__init__(self)
QWidget.__init__(self)
logger.debug("Initialising DocEditor ...")
self.mainConf = nw.CONFIG
self.setPlainText("Hello Kitty!")
self.mainConf = nw.CONFIG
self.outerBox = QVBoxLayout()
self.guiEditor = QTextEdit()
# self.outerBox.addWidget(self.guiEditor)
self.setLayout(self.outerBox)
# self.editPane = QFrame()
# self.editPane.setFrameShape(QFrame.StyledPanel)
self.metaPane = QFrame()
self.metaPane.setFrameShape(QFrame.StyledPanel)
self.splitEdit = QSplitter(Qt.Horizontal)
self.splitEdit.addWidget(self.guiEditor)
self.splitEdit.addWidget(self.metaPane)
self.editToolBar = QToolBar()
self._buildTabToolBar()
self.outerBox.addWidget(self.editToolBar)
self.outerBox.addWidget(self.splitEdit)
self.guiEditor.setPlainText("Hello Kitty!")
logger.debug("DocEditor initialisation complete")
return
def _buildTabToolBar(self):
toolBar = self.editToolBar
toolBar.setToolButtonStyle(Qt.ToolButtonIconOnly)
toolBar.setIconSize(QSize(16,16))
# Text > Bold
tbTextBold = QAction(QIcon.fromTheme("format-text-bold"), "Bold (Ctrl+B)", toolBar)
tbTextBold.setShortcut("Ctrl+B")
tbTextBold.setStatusTip("Toggle Selected Text Bold")
toolBar.addAction(tbTextBold)
# Text > Italics
tbTextItalic = QAction(QIcon.fromTheme("format-text-italic"), "Italic (Ctrl+I)", toolBar)
tbTextItalic.setShortcut("Ctrl+I")
tbTextItalic.setStatusTip("Toggle Selected Text Italic")
toolBar.addAction(tbTextItalic)
# Text > Underline
tbTextUnderline = QAction(QIcon.fromTheme("format-text-underline"), "Underline (Ctrl+U)", toolBar)
tbTextUnderline.setShortcut("Ctrl+U")
tbTextUnderline.setStatusTip("Toggle Selected Text Underline")
toolBar.addAction(tbTextUnderline)
# Text > Strikethrough
tbTextStrikethrough = QAction(QIcon.fromTheme("format-text-strikethrough"), "Strikethrough (Ctrl+D)", toolBar)
tbTextStrikethrough.setShortcut("Ctrl+D")
tbTextStrikethrough.setStatusTip("Toggle Selected Text Strikethrough")
toolBar.addAction(tbTextStrikethrough)
# --------------------
toolBar.addSeparator()
# Edit > Cut
tbEditCut = QAction(QIcon.fromTheme("edit-cut"), "Cut (Ctrl+X)", toolBar)
tbEditCut.setShortcut("Ctrl+X")
tbEditCut.setStatusTip("Cut Selected Text")
toolBar.addAction(tbEditCut)
# Edit > Copy
tbEditCopy = QAction(QIcon.fromTheme("edit-copy"), "Copy (Ctrl+C)", toolBar)
tbEditCopy.setShortcut("Ctrl+C")
tbEditCopy.setStatusTip("Copy Selected Text")
toolBar.addAction(tbEditCopy)
# Edit > Paste
tbEditPaste = QAction(QIcon.fromTheme("edit-paste"), "Paste (Ctrl+V)", toolBar)
tbEditPaste.setShortcut("Ctrl+V")
tbEditPaste.setStatusTip("Paste Text")
toolBar.addAction(tbEditPaste)
# --------------------
toolBar.addSeparator()
# Edit > Undo
tbEditUndo = QAction(QIcon.fromTheme("edit-undo"), "Undo (Ctrl+Z)", toolBar)
tbEditUndo.setShortcut("Ctrl+Z")
tbEditUndo.setStatusTip("Undo Last Change")
toolBar.addAction(tbEditUndo)
# Edit > Redo
tbEditRedo = QAction(QIcon.fromTheme("edit-redo"), "Redo (Ctrl+Y)", toolBar)
tbEditRedo.setShortcut("Ctrl+Y")
tbEditRedo.setStatusTip("Revert Last Undo")
toolBar.addAction(tbEditRedo)
return
# END Class GuiDocEditor
+1 -7
View File
@@ -28,7 +28,6 @@ class GuiDocTabs(QTabWidget):
logger.debug("Initialising DocTabs ...")
self.mainConf = nw.CONFIG
self.docList = []
self.tabList = []
self.resize(900,500)
@@ -42,13 +41,8 @@ class GuiDocTabs(QTabWidget):
tabName = "New Document"
else:
tabName = docFile
thisTab = QWidget()
tabBox = QVBoxLayout()
thisDoc = GuiDocEditor()
tabBox.addWidget(thisDoc)
thisTab.setLayout(tabBox)
thisTab = GuiDocEditor()
self.tabList.append(thisTab)
self.docList.append(thisDoc)
self.addTab(self.tabList[-1],tabName)
return True
+67 -6
View File
@@ -14,8 +14,8 @@ import logging
import nw
from os import path
from PyQt5.QtWidgets import QWidget, QMainWindow, QHBoxLayout, QVBoxLayout, QFrame, QSplitter, QTreeView
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import qApp, QWidget, QMainWindow, QHBoxLayout, QVBoxLayout, QFrame, QSplitter, QAction, QToolBar
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QIcon, QStandardItemModel
from nw.gui.doctree import GuiDocTree
@@ -42,8 +42,6 @@ class GuiMain(QMainWindow):
self.treePane = QFrame()
self.treePane.setFrameShape(QFrame.StyledPanel)
# self.textPane = QFrame()
# self.textPane.setFrameShape(QFrame.StyledPanel)
self.splitMain = QSplitter(Qt.Horizontal)
self.splitMain.addWidget(self.treePane)
self.splitMain.addWidget(self.docTabs)
@@ -53,6 +51,10 @@ class GuiMain(QMainWindow):
self.treeBox.addWidget(self.treeView)
self.treePane.setLayout(self.treeBox)
self.treeToolBar = QToolBar()
self._buildTreeToolBar()
self.treeBox.addWidget(self.treeToolBar)
self.setCentralWidget(self.splitMain)
self._buildMenu()
@@ -81,8 +83,67 @@ class GuiMain(QMainWindow):
#
def _buildMenu(self):
menuBar = self.menuBar()
menuBar.addMenu("File")
menuBar = self.menuBar()
# File
fileMenu = menuBar.addMenu("&File")
# File > New
menuNew = QAction(QIcon.fromTheme("document-new"), "&New", menuBar)
menuNew.setShortcut("Ctrl+N")
menuNew.setStatusTip("Create new document")
fileMenu.addAction(menuNew)
# File > Open
menuOpen = QAction(QIcon.fromTheme("document-open"), "&Open", menuBar)
menuOpen.setShortcut("Ctrl+O")
menuOpen.setStatusTip("Open document")
fileMenu.addAction(menuOpen)
# File > Save
menuSave = QAction(QIcon.fromTheme("document-save"), "&Save", menuBar)
menuSave.setShortcut("Ctrl+S")
menuSave.setStatusTip("Save document")
fileMenu.addAction(menuSave)
# ---------------------
fileMenu.addSeparator()
# File > Exit
menuExit = QAction(QIcon.fromTheme("application-exit"), "&Exit", menuBar)
menuExit.setShortcut("Ctrl+Q")
menuExit.setStatusTip("Exit %s" % nw.__package__)
menuExit.triggered.connect(self._menuExit)
fileMenu.addAction(menuExit)
return
def _buildTreeToolBar(self):
toolBar = self.treeToolBar
toolBar.setToolButtonStyle(Qt.ToolButtonIconOnly)
toolBar.setIconSize(QSize(16,16))
# Folder > New
tbFolderNew = QAction(QIcon.fromTheme("folder-new"), "New Folder (Ctrl+Shift+N)", toolBar)
tbFolderNew.setShortcut("Ctrl+Shift+N")
tbFolderNew.setStatusTip("Create new folder")
toolBar.addAction(tbFolderNew)
# Document > New
tbDocNew = QAction(QIcon.fromTheme("document-new"), "New Document (Ctrl+N)", toolBar)
tbDocNew.setShortcut("Ctrl+N")
tbDocNew.setStatusTip("Create new document")
toolBar.addAction(tbDocNew)
return
#
# Menu Action
#
def _menuExit(self):
logger.info("Exiting %s" % nw.__package__)
qApp.quit()
return True
# END Class GuiMain