109 lines
2.7 KiB
Python
109 lines
2.7 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""novelWriter GUI Doc Merge
|
||
|
||
novelWriter – GUI Doc Merge
|
||
=============================
|
||
Tool for merging multiple documents to one
|
||
|
||
File History:
|
||
Created: 2020-01-23 [0.4.3]
|
||
|
||
"""
|
||
|
||
import logging
|
||
import nw
|
||
|
||
from PyQt5.QtCore import Qt
|
||
from PyQt5.QtWidgets import (
|
||
QDialog, QHBoxLayout, QVBoxLayout, QGridLayout, QPushButton, QLabel,
|
||
QProgressBar
|
||
)
|
||
|
||
from nw.tools import OptLastState
|
||
from nw.constants import nwFiles
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
class GuiDocMerge(QDialog):
|
||
|
||
def __init__(self, theParent, theProject):
|
||
QDialog.__init__(self, theParent)
|
||
|
||
logger.debug("Initialising GuiDocMerge ...")
|
||
|
||
self.mainConf = nw.CONFIG
|
||
self.theParent = theParent
|
||
self.theProject = theProject
|
||
self.optState = DocMergeLastState(self.theProject,nwFiles.MERGE_OPT)
|
||
self.optState.loadSettings()
|
||
|
||
self.outerBox = QHBoxLayout()
|
||
self.innerBox = QVBoxLayout()
|
||
self.setWindowTitle("Merge Documents")
|
||
self.setLayout(self.outerBox)
|
||
|
||
self.guiDeco = self.theParent.theTheme.loadDecoration("merge",(64,64))
|
||
|
||
self.outerBox.addWidget(self.guiDeco, 0, Qt.AlignTop)
|
||
self.outerBox.addLayout(self.innerBox)
|
||
|
||
self.doMergeForm = QGridLayout()
|
||
self.doMergeForm.setContentsMargins(10,5,0,10)
|
||
|
||
self.mergeButton = QPushButton("Merge")
|
||
self.mergeButton.clicked.connect(self._doMerge)
|
||
|
||
self.closeButton = QPushButton("Close")
|
||
self.closeButton.clicked.connect(self._doClose)
|
||
|
||
self.mergeStatus = QLabel("Ready ...")
|
||
self.mergeProgress = QProgressBar(self)
|
||
|
||
self.doMergeForm.addWidget(self.mergeStatus, 0, 0, 1, 3)
|
||
self.doMergeForm.addWidget(self.mergeProgress, 1, 0)
|
||
self.doMergeForm.addWidget(self.mergeButton, 1, 1)
|
||
self.doMergeForm.addWidget(self.closeButton, 1, 2)
|
||
|
||
self.innerBox.addLayout(self.doMergeForm)
|
||
|
||
self.rejected.connect(self._doClose)
|
||
self.show()
|
||
|
||
logger.debug("GuiDocMerge initialisation complete")
|
||
|
||
return
|
||
|
||
##
|
||
# Buttons
|
||
##
|
||
|
||
def _doMerge(self):
|
||
|
||
logger.verbose("GuiDocMerge merge button clicked")
|
||
|
||
return
|
||
|
||
def _doClose(self):
|
||
|
||
logger.verbose("GuiDocMerge close button clicked")
|
||
|
||
self.optState.saveSettings()
|
||
self.close()
|
||
|
||
return
|
||
|
||
# END Class GuiDocMerge
|
||
|
||
class DocMergeLastState(OptLastState):
|
||
|
||
def __init__(self, theProject, theFile):
|
||
OptLastState.__init__(self, theProject, theFile)
|
||
self.theState = {
|
||
}
|
||
self.stringOpt = ()
|
||
self.boolOpt = ()
|
||
self.intOpt = ()
|
||
return
|
||
|
||
# END Class DocMergeLastState
|