Added toolbars and buttons.
This commit is contained in:
+93
-8
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user