Example #1
0
 def initUI(self):
     vbox = QtGui.QVBoxLayout()
     vbox.addWidget(QtGui.QLabel("Project options"))
     
     projectWidget = QtGui.QWidget()
     grid = QtGui.QGridLayout()
     
     self.__projectTitleField = QtGui.QLineEdit()
     grid.addWidget(QtGui.QLabel("Project title"), 0, 0)
     grid.addWidget(self.__projectTitleField, 0, 1)
     
     grid.addWidget(QtGui.QLabel("Project folder"), 1, 0)
     self.__projectFolderField = FileField("Project folder", self.config.get('base', 'projectFolder') ,True)
     grid.addWidget(self.__projectFolderField, 1, 1)
     
     grid.addWidget(QtGui.QLabel("Master template"), 2, 0)
     self.__masterTemplateField = FileField("Master template", self.config.get('base', 'masterTemplate'))
     grid.addWidget(self.__masterTemplateField, 2, 1)
     
     projectWidget.setLayout(grid)
     
     vbox.addWidget(projectWidget)
     
     # Add documents
     vbox.addWidget(QtGui.QLabel("Documents"))
     
     self.__documentsEdit = DocumentsEdit(self.config)
     vbox.addWidget(self.__documentsEdit)
     
     vbox.addWidget(self.initOptions())
     
     self.setLayout(vbox)
     self.setWindowTitle("Kile project creator")
     self.show()
Example #2
0
 def __init__(self, config):
     super(DocumentsEdit, self).__init__()
     self.__config = config
     
     grid = QtGui.QGridLayout()
     
     grid.addWidget(QtGui.QLabel("Document title"), 0, 0)
     self.__documentTitleField = QtGui.QLineEdit()
     grid.addWidget(self.__documentTitleField, 0, 1)
     
     grid.addWidget(QtGui.QLabel("File name"), 1, 0)
     self.__documentFileNameField = QtGui.QLineEdit()
     grid.addWidget(self.__documentFileNameField, 1, 1)
     
     self.__documentTitleField.textChanged.connect(self.__documentFileNameField.setText)
     
     grid.addWidget(QtGui.QLabel("Template"), 2, 0)
     self.__templateField = FileField("Template")
     grid.addWidget(self.__templateField, 2, 1)
     
     addIcon = QtGui.QIcon.fromTheme("document-new")
     addButton = QtGui.QPushButton(addIcon, 'Add', self)
     addButton.clicked.connect(self.__addDocument)
     grid.addWidget(addButton, 3, 1)
     
     self.__documentList = QtGui.QListWidget(self)
     grid.addWidget(self.__documentList, 4, 0, 1, 2)
     
     self.setLayout(grid)
     self.__loadDocuments()
Example #3
0
class KileHelper(QtGui.QWidget):
    def __init__(self, config):
        super(KileHelper, self).__init__()
        self.config = config
        self.initUI()
    
    def initUI(self):
        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(QtGui.QLabel("Project options"))
        
        projectWidget = QtGui.QWidget()
        grid = QtGui.QGridLayout()
        
        self.__projectTitleField = QtGui.QLineEdit()
        grid.addWidget(QtGui.QLabel("Project title"), 0, 0)
        grid.addWidget(self.__projectTitleField, 0, 1)
        
        grid.addWidget(QtGui.QLabel("Project folder"), 1, 0)
        self.__projectFolderField = FileField("Project folder", self.config.get('base', 'projectFolder') ,True)
        grid.addWidget(self.__projectFolderField, 1, 1)
        
        grid.addWidget(QtGui.QLabel("Master template"), 2, 0)
        self.__masterTemplateField = FileField("Master template", self.config.get('base', 'masterTemplate'))
        grid.addWidget(self.__masterTemplateField, 2, 1)
        
        projectWidget.setLayout(grid)
        
        vbox.addWidget(projectWidget)
        
        # Add documents
        vbox.addWidget(QtGui.QLabel("Documents"))
        
        self.__documentsEdit = DocumentsEdit(self.config)
        vbox.addWidget(self.__documentsEdit)
        
        vbox.addWidget(self.initOptions())
        
        self.setLayout(vbox)
        self.setWindowTitle("Kile project creator")
        self.show()
    
    def initOptions(self):
        widget = QtGui.QWidget()
        optionsLayout = QtGui.QHBoxLayout()
        
        saveOptionsButton = QtGui.QPushButton('Save settings')
        saveOptionsButton.clicked.connect(self.__saveOptionsClick)
        optionsLayout.addWidget(saveOptionsButton)
        
        generateProjectButton = QtGui.QPushButton('Create project')
        generateProjectButton.clicked.connect(self.__createProject)
        optionsLayout.addWidget(generateProjectButton)
        
        widget.setLayout(optionsLayout)
        return widget
    
    def __saveOptionsClick(self, e):
        self.config.set('base', 'projectFolder', self.__projectFolderField.getPath())
        if self.__masterTemplateField.getPath():
            logging.info("Master template set")
            self.config.set('base', 'masterTemplate', self.__masterTemplateField.getPath())
        
        for doc in self.__documentsEdit.documents:
            if not doc.name:
                continue
            docSection = doc.name.lower()
            if not self.config.has_section(docSection):
                self.config.add_section(docSection)
            
            self.config.set('documents', doc.name)
            self.config.set(docSection, 'name', doc.name)
            self.config.set(docSection, 'title', doc.title)
            self.config.set(docSection, 'template', doc.template)
    
    def __createProject(self, e):
        project = Project()
        project.name = self.__projectTitleField.text()
        
        masterDoc = Document()
        masterDoc.name = 'Master'
        masterDoc.template = str(self.__masterTemplateField.getPath())
        project.setMaster(masterDoc)
        
        for doc in self.__documentsEdit.documents:
            project.addDocument(doc)
        
        project.createProject(str(self.__projectFolderField.getPath()))
Example #4
0
class DocumentsEdit(QtGui.QWidget):
    __documentTitleField = None
    __documentFileNameField = None
    documents = []
    
    def __init__(self, config):
        super(DocumentsEdit, self).__init__()
        self.__config = config
        
        grid = QtGui.QGridLayout()
        
        grid.addWidget(QtGui.QLabel("Document title"), 0, 0)
        self.__documentTitleField = QtGui.QLineEdit()
        grid.addWidget(self.__documentTitleField, 0, 1)
        
        grid.addWidget(QtGui.QLabel("File name"), 1, 0)
        self.__documentFileNameField = QtGui.QLineEdit()
        grid.addWidget(self.__documentFileNameField, 1, 1)
        
        self.__documentTitleField.textChanged.connect(self.__documentFileNameField.setText)
        
        grid.addWidget(QtGui.QLabel("Template"), 2, 0)
        self.__templateField = FileField("Template")
        grid.addWidget(self.__templateField, 2, 1)
        
        addIcon = QtGui.QIcon.fromTheme("document-new")
        addButton = QtGui.QPushButton(addIcon, 'Add', self)
        addButton.clicked.connect(self.__addDocument)
        grid.addWidget(addButton, 3, 1)
        
        self.__documentList = QtGui.QListWidget(self)
        grid.addWidget(self.__documentList, 4, 0, 1, 2)
        
        self.setLayout(grid)
        self.__loadDocuments()
    
    def __loadDocuments(self):
        options = self.__config.options('documents')
        
        for option in options:
            doc = Document()
            doc.name = self.__config.get(option, 'name')
            doc.title = self.__config.get(option, 'title')
            doc.template = self.__config.get(option, 'template')
            
            self.documents.append(doc)
            self.__documentList.addItem(doc.name)
            
            logging.debug("Loaded document:")
            logging.debug("name: %s", doc.name)
            logging.debug("title: %s", doc.title)
            logging.debug("template: %s", doc.template)
    
    def __addDocument(self, e):
        doc = Document()
        doc.name = str(self.__documentFileNameField.text())
        doc.title = str(self.__documentTitleField.text())
        doc.template = self.__templateField.getPath()
        
        self.documents.append(doc)
        
        self.__documentList.addItem(self.__documentFileNameField.text())