mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-06-01 18:49:38 +12:00
88 lines
2.8 KiB
Python
88 lines
2.8 KiB
Python
|
#!/usr/bin/env python
|
||
|
# --!-- coding: utf8 --!--
|
||
|
import os
|
||
|
from collections import OrderedDict
|
||
|
|
||
|
from PyQt5.QtCore import Qt
|
||
|
from PyQt5.QtGui import QBrush, QColor
|
||
|
from PyQt5.QtWidgets import QWidget, QVBoxLayout
|
||
|
|
||
|
from manuskript import exporter
|
||
|
from manuskript.functions import lightBlue
|
||
|
from manuskript.ui.exporters.exporter_ui import Ui_exporter
|
||
|
from manuskript.ui.exporters.exportersManager import exportersManager
|
||
|
|
||
|
|
||
|
class exporterDialog(QWidget, Ui_exporter):
|
||
|
def __init__(self, parent=None):
|
||
|
QWidget.__init__(self, parent)
|
||
|
self.setupUi(self)
|
||
|
|
||
|
# Var
|
||
|
self.currentExporter = None
|
||
|
|
||
|
# Populates lite
|
||
|
self.cmbExporters.clear()
|
||
|
for E in exporter.exporters:
|
||
|
|
||
|
if not E.isValid():
|
||
|
continue
|
||
|
|
||
|
self.cmbExporters.addItem(E.name)
|
||
|
self.cmbExporters.setItemData(self.cmbExporters.count() - 1, QBrush(QColor(Qt.darkBlue)), Qt.ForegroundRole)
|
||
|
self.cmbExporters.setItemData(self.cmbExporters.count() - 1, QBrush(lightBlue()), Qt.BackgroundRole)
|
||
|
item = self.cmbExporters.model().item(self.cmbExporters.count() - 1)
|
||
|
item.setFlags(Qt.ItemIsEnabled)
|
||
|
|
||
|
for f in E.exportTo:
|
||
|
name = f.name if f.implemented else self.tr("{} (not implemented yet)").format(f.name)
|
||
|
self.cmbExporters.addItem(name, E.name)
|
||
|
|
||
|
self.btnManageExporters.clicked.connect(self.openManager)
|
||
|
|
||
|
self.cmbExporters.currentIndexChanged.connect(self.updateUi)
|
||
|
self.cmbExporters.setCurrentIndex(1)
|
||
|
|
||
|
def updateUi(self, index):
|
||
|
name = self.cmbExporters.currentText()
|
||
|
exporterName = self.cmbExporters.currentData()
|
||
|
|
||
|
E = exporter.getExporterByName(exporterName)
|
||
|
|
||
|
if not E:
|
||
|
self.setWidgetsEnabled(False)
|
||
|
return
|
||
|
|
||
|
F = E.getFormatByName(name)
|
||
|
|
||
|
if not F or not F.implemented:
|
||
|
self.setWidgetsEnabled(False)
|
||
|
return
|
||
|
|
||
|
self.setWidgetsEnabled(True)
|
||
|
|
||
|
self.grpSettings.setVisible(F.requires["Settings"])
|
||
|
self.grpPreviewBefore.setVisible(F.requires["PreviewBefore"])
|
||
|
self.grpPreviewAfter.setVisible(F.requires["PreviewAfter"])
|
||
|
|
||
|
# if F.requires["Settings"]:
|
||
|
# self.settingsWidget = F.settingsWidget()
|
||
|
#
|
||
|
# if F.requires["PreviewBefore"]:
|
||
|
# self.previewBefore = F.previewWidgetBefore()
|
||
|
#
|
||
|
# if F.requires["PreviewAfter"]:
|
||
|
# self.previewAfter = F.previewWidgetAfter()
|
||
|
|
||
|
def setWidgetsEnabled(self, value):
|
||
|
self.grpSettings.setEnabled(value)
|
||
|
self.grpPreviewBefore.setEnabled(value)
|
||
|
self.grpPreviewAfter.setEnabled(value)
|
||
|
|
||
|
def openManager(self):
|
||
|
self.dialog = exportersManager()
|
||
|
self.dialog.show()
|
||
|
|
||
|
r = self.dialog.geometry()
|
||
|
r2 = self.geometry()
|
||
|
self.dialog.move(r2.center() - r.center())
|