Ejemplo n.º 1
0
    def slotStyleItemChanged(self, current, previous):
        """Item changed in list of styles."""
        if current is None:
            return

        if self.tabformat:
            self.tabformat.deleteLater()
        if self.properties:
            self.properties.deleteLater()

        settings = current.VZsettings

        # update formatting properties
        setnsproxy = SettingsProxySingle(self.document, settings)
        self.tabformat = TabbedFormatting(self.document, setnsproxy)
        self.formattingGroup.layout().addWidget(self.tabformat)

        # update properties
        self.properties = PropertyList(self.document, showformatsettings=False)
        self.properties.updateProperties(setnsproxy, showformatting=False)
        self.propertiesScrollArea.setWidget(self.properties)
Ejemplo n.º 2
0
    def slotStyleItemChanged(self, current, previous):
        """Item changed in list of styles."""
        if current is None:
            return

        if self.tabformat:
            self.tabformat.deleteLater()
        if self.properties:
            self.properties.deleteLater()

        settings = current.VZsettings

        # update formatting properties
        setnsproxy = SettingsProxySingle(self.document, settings)
        self.tabformat = TabbedFormatting(self.document, setnsproxy)
        self.formattingGroup.layout().addWidget(self.tabformat)

        # update properties
        self.properties = PropertyList(self.document, showformatsettings=False)
        self.properties.updateProperties(setnsproxy, showformatting=False)
        self.propertiesScrollArea.setWidget(self.properties)
Ejemplo n.º 3
0
class StylesheetDialog(VeuszDialog):
    """This is a dialog box to edit stylesheets.
    Most of the work is done elsewhere, so this doesn't do a great deal
    """

    def __init__(self, parent, document):
        VeuszDialog.__init__(self, parent, "stylesheet.ui")
        self.document = document
        self.stylesheet = document.basewidget.settings.StyleSheet

        self.stylesListWidget.setMinimumWidth(100)

        # initial properties widget
        self.tabformat = None
        self.properties = None

        self.fillStyleList()

        self.connect(
            self.stylesListWidget,
            qt4.SIGNAL("currentItemChanged(QListWidgetItem *,QListWidgetItem *)"),
            self.slotStyleItemChanged,
        )

        self.stylesListWidget.setCurrentRow(0)

        # we disable default buttons as they keep grabbing the enter key
        close = self.buttonBox.button(qt4.QDialogButtonBox.Close)
        close.setDefault(False)
        close.setAutoDefault(False)

        self.connect(self.saveButton, qt4.SIGNAL("clicked()"), self.slotSaveStyleSheet)
        self.connect(self.loadButton, qt4.SIGNAL("clicked()"), self.slotLoadStyleSheet)

        # recent button shows list of recently used files for loading
        self.connect(self.recentButton, qt4.SIGNAL("filechosen"), self.loadStyleSheet)
        self.recentButton.setSetting("stylesheetdialog_recent")

    def loadStyleSheet(self, filename):
        """Load the given stylesheet."""
        self.document.applyOperation(document.OperationLoadStyleSheet(filename))

    def fillStyleList(self):
        """Fill list of styles."""
        for stns in self.stylesheet.getSettingsList():
            item = qt4.QListWidgetItem(utils.getIcon(stns.pixmap), stns.usertext)
            item.VZsettings = stns
            self.stylesListWidget.addItem(item)

    def slotStyleItemChanged(self, current, previous):
        """Item changed in list of styles."""
        if current is None:
            return

        if self.tabformat:
            self.tabformat.deleteLater()
        if self.properties:
            self.properties.deleteLater()

        style = str(current.text())
        settings = current.VZsettings

        # update formatting properties
        setnsproxy = SettingsProxySingle(self.document, settings)
        self.tabformat = TabbedFormatting(self.document, setnsproxy)
        self.formattingGroup.layout().addWidget(self.tabformat)

        # update properties
        self.properties = PropertyList(self.document, showsubsettings=False)
        self.properties.updateProperties(setnsproxy, showformatting=False)
        self.propertiesScrollArea.setWidget(self.properties)

    def slotSaveStyleSheet(self):
        """Save stylesheet as a file."""

        filename = self.parent()._fileSaveDialog("vst", "Veusz stylesheet", "Save stylesheet")
        if filename:
            try:
                f = open(filename, "w")
                self.document.exportStyleSheet(f)
                f.close()
                self.recentButton.addFile(filename)

            except IOError:
                qt4.QMessageBox.critical(self, "Veusz", "Cannot export stylesheet as '%s'" % filename)

    def slotLoadStyleSheet(self):
        """Load a style sheet."""
        filename = self.parent()._fileOpenDialog("vst", "Veusz stylesheet", "Load stylesheet")
        if filename:
            try:
                self.loadStyleSheet(filename)
            except IOError:
                qt4.QMessageBox.critical(self, "Veusz", "Cannot load stylesheet '%s'" % filename)
            else:
                # add to recent file list
                self.recentButton.addFile(filename)
Ejemplo n.º 4
0
class StylesheetDialog(VeuszDialog):
    """This is a dialog box to edit stylesheets.
    Most of the work is done elsewhere, so this doesn't do a great deal
    """
    def __init__(self, parent, document):
        VeuszDialog.__init__(self, parent, 'stylesheet.ui')
        self.document = document
        self.stylesheet = document.basewidget.settings.StyleSheet

        self.stylesListWidget.setMinimumWidth(100)

        # initial properties widget
        self.tabformat = None
        self.properties = None

        self.fillStyleList()

        self.connect(
            self.stylesListWidget,
            qt4.SIGNAL(
                'currentItemChanged(QListWidgetItem *,QListWidgetItem *)'),
            self.slotStyleItemChanged)

        self.stylesListWidget.setCurrentRow(0)

        # we disable default buttons as they keep grabbing the enter key
        close = self.buttonBox.button(qt4.QDialogButtonBox.Close)
        close.setDefault(False)
        close.setAutoDefault(False)

        self.connect(self.saveButton, qt4.SIGNAL('clicked()'),
                     self.slotSaveStyleSheet)
        self.connect(self.loadButton, qt4.SIGNAL('clicked()'),
                     self.slotLoadStyleSheet)

        # recent button shows list of recently used files for loading
        self.connect(self.recentButton, qt4.SIGNAL('filechosen'),
                     self.loadStyleSheet)
        self.recentButton.setSetting('stylesheetdialog_recent')

    def loadStyleSheet(self, filename):
        """Load the given stylesheet."""
        self.document.applyOperation(
            document.OperationLoadStyleSheet(filename))

    def fillStyleList(self):
        """Fill list of styles."""
        for stns in self.stylesheet.getSettingsList():
            item = qt4.QListWidgetItem(utils.getIcon(stns.pixmap),
                                       stns.usertext)
            item.VZsettings = stns
            self.stylesListWidget.addItem(item)

    def slotStyleItemChanged(self, current, previous):
        """Item changed in list of styles."""
        if current is None:
            return

        if self.tabformat:
            self.tabformat.deleteLater()
        if self.properties:
            self.properties.deleteLater()

        settings = current.VZsettings

        # update formatting properties
        setnsproxy = SettingsProxySingle(self.document, settings)
        self.tabformat = TabbedFormatting(self.document, setnsproxy)
        self.formattingGroup.layout().addWidget(self.tabformat)

        # update properties
        self.properties = PropertyList(self.document, showformatsettings=False)
        self.properties.updateProperties(setnsproxy, showformatting=False)
        self.propertiesScrollArea.setWidget(self.properties)

    def slotSaveStyleSheet(self):
        """Save stylesheet as a file."""

        filename = self.parent()._fileSaveDialog('vst', _('Veusz stylesheet'),
                                                 _('Save stylesheet'))
        if filename:
            try:
                f = open(filename, 'w')
                self.document.exportStyleSheet(f)
                f.close()
                self.recentButton.addFile(filename)

            except EnvironmentError, e:
                qt4.QMessageBox.critical(
                    self, _("Error - Veusz"),
                    _("Unable to save '%s'\n\n%s") %
                    (filename, utils.decodeDefault(e.strerror)))