def setupUi(self, mainEditor):
        mainEditor.setObjectName("mainEditor")
        mainEditor.resize(791, 319)
        self.verticalLayout = QtWidgets.QVBoxLayout(mainEditor)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.tabSplitter = tabSplitter(mainEditor)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.tabSplitter.sizePolicy().hasHeightForWidth())
        self.tabSplitter.setSizePolicy(sizePolicy)
        self.tabSplitter.setObjectName("tabSplitter")
        self.verticalLayout.addWidget(self.tabSplitter)
        self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_19.setObjectName("horizontalLayout_19")
        self.btnRedacFolderText = QtWidgets.QPushButton(mainEditor)
        self.btnRedacFolderText.setCheckable(True)
        self.btnRedacFolderText.setFlat(True)
        self.btnRedacFolderText.setObjectName("btnRedacFolderText")
        self.buttonGroup = QtWidgets.QButtonGroup(mainEditor)
        self.buttonGroup.setObjectName("buttonGroup")
        self.buttonGroup.addButton(self.btnRedacFolderText)
        self.horizontalLayout_19.addWidget(self.btnRedacFolderText)
        self.btnRedacFolderCork = QtWidgets.QPushButton(mainEditor)
        self.btnRedacFolderCork.setCheckable(True)
        self.btnRedacFolderCork.setChecked(True)
        self.btnRedacFolderCork.setFlat(True)
        self.btnRedacFolderCork.setObjectName("btnRedacFolderCork")
        self.buttonGroup.addButton(self.btnRedacFolderCork)
        self.horizontalLayout_19.addWidget(self.btnRedacFolderCork)
        self.btnRedacFolderOutline = QtWidgets.QPushButton(mainEditor)
        self.btnRedacFolderOutline.setCheckable(True)
        self.btnRedacFolderOutline.setFlat(True)
        self.btnRedacFolderOutline.setObjectName("btnRedacFolderOutline")
        self.buttonGroup.addButton(self.btnRedacFolderOutline)
        self.horizontalLayout_19.addWidget(self.btnRedacFolderOutline)
        self.sldCorkSizeFactor = QtWidgets.QSlider(mainEditor)
        self.sldCorkSizeFactor.setMinimumSize(QtCore.QSize(100, 0))
        self.sldCorkSizeFactor.setMaximumSize(QtCore.QSize(200, 16777215))
        self.sldCorkSizeFactor.setMinimum(50)
        self.sldCorkSizeFactor.setMaximum(200)
        self.sldCorkSizeFactor.setProperty("value", 100)
        self.sldCorkSizeFactor.setOrientation(QtCore.Qt.Horizontal)
        self.sldCorkSizeFactor.setObjectName("sldCorkSizeFactor")
        self.horizontalLayout_19.addWidget(self.sldCorkSizeFactor)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_19.addItem(spacerItem)
        self.textFormat = textFormat(mainEditor)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.textFormat.sizePolicy().hasHeightForWidth())
        self.textFormat.setSizePolicy(sizePolicy)
        self.textFormat.setMinimumSize(QtCore.QSize(20, 20))
        self.textFormat.setObjectName("textFormat")
        self.horizontalLayout_19.addWidget(self.textFormat)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_19.addItem(spacerItem1)
        self.lblRedacWC = QtWidgets.QLabel(mainEditor)
        self.lblRedacWC.setMinimumSize(QtCore.QSize(10, 0))
        self.lblRedacWC.setText("")
        self.lblRedacWC.setObjectName("lblRedacWC")
        self.horizontalLayout_19.addWidget(self.lblRedacWC)
        self.lblRedacProgress = QtWidgets.QLabel(mainEditor)
        self.lblRedacProgress.setMinimumSize(QtCore.QSize(100, 6))
        self.lblRedacProgress.setMaximumSize(QtCore.QSize(200, 14))
        self.lblRedacProgress.setText("")
        self.lblRedacProgress.setObjectName("lblRedacProgress")
        self.horizontalLayout_19.addWidget(self.lblRedacProgress)
        self.btnRedacFullscreen = QtWidgets.QPushButton(mainEditor)
        self.btnRedacFullscreen.setText("")
        icon = QtGui.QIcon.fromTheme("view-fullscreen")
        self.btnRedacFullscreen.setIcon(icon)
        self.btnRedacFullscreen.setFlat(True)
        self.btnRedacFullscreen.setObjectName("btnRedacFullscreen")
        self.horizontalLayout_19.addWidget(self.btnRedacFullscreen)
        self.verticalLayout.addLayout(self.horizontalLayout_19)

        self.retranslateUi(mainEditor)
        QtCore.QMetaObject.connectSlotsByName(mainEditor)
    def __init__(self, index, parent=None):
        QWidget.__init__(self, parent)
        self._background = None
        self._index = index
        self._theme = findThemePath(settings.fullScreenTheme)
        self._themeDatas = loadThemeDatas(self._theme)
        self.setMouseTracking(True)
        self._geometries = {}

        # Text editor
        self.editor = textEditView(self,
                                   index=index,
                                   spellcheck=settings.spellcheck,
                                   highlighting=True,
                                   dict=settings.dict)
        self.editor.setFrameStyle(QFrame.NoFrame)
        self.editor.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.editor.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.editor.installEventFilter(self)
        self.editor.setMouseTracking(True)
        self.editor.setVerticalScrollBar(myScrollBar())
        self.scrollBar = self.editor.verticalScrollBar()
        self.scrollBar.setParent(self)

        # Top Panel
        self.topPanel = myPanel(parent=self)
        # self.topPanel.layout().addStretch(1)

        # Spell checking
        if enchant:
            self.btnSpellCheck = QPushButton(self)
            self.btnSpellCheck.setFlat(True)
            self.btnSpellCheck.setIcon(QIcon.fromTheme("tools-check-spelling"))
            self.btnSpellCheck.setCheckable(True)
            self.btnSpellCheck.setChecked(self.editor.spellcheck)
            self.btnSpellCheck.toggled.connect(self.editor.toggleSpellcheck)
            self.topPanel.layout().addWidget(self.btnSpellCheck)

        self.topPanel.layout().addStretch(1)

        # Formatting
        self.textFormat = textFormat(self)
        self.topPanel.layout().addWidget(self.textFormat)
        self.topPanel.layout().addStretch(1)

        self.btnClose = QPushButton(self)
        self.btnClose.setIcon(qApp.style().standardIcon(QStyle.SP_DialogCloseButton))
        self.btnClose.clicked.connect(self.close)
        self.btnClose.setFlat(True)
        self.topPanel.layout().addWidget(self.btnClose)

        # Left Panel
        self._locked = False
        self.leftPanel = myPanel(vertical=True, parent=self)
        self.locker = locker(self)
        self.locker.lockChanged.connect(self.setLocked)
        self.leftPanel.layout().addWidget(self.locker)

        # Bottom Panel
        self.bottomPanel = myPanel(parent=self)

        self.bottomPanel.layout().addSpacing(24)
        self.lstThemes = QComboBox(self)
        self.lstThemes.setAttribute(Qt.WA_TranslucentBackground)
        paths = allPaths("resources/themes")
        for p in paths:
            lst = [i for i in os.listdir(p) if os.path.splitext(i)[1] == ".theme"]
            for t in lst:
                themeIni = os.path.join(p, t)
                name = loadThemeDatas(themeIni)["Name"]
                # self.lstThemes.addItem(os.path.splitext(t)[0])
                self.lstThemes.addItem(name)
                self.lstThemes.setItemData(self.lstThemes.count()-1, os.path.splitext(t)[0])

        self.lstThemes.setCurrentIndex(self.lstThemes.findData(settings.fullScreenTheme))
        # self.lstThemes.setCurrentText(settings.fullScreenTheme)
        self.lstThemes.currentTextChanged.connect(self.setTheme)
        self.lstThemes.setMaximumSize(QSize(300, QFontMetrics(qApp.font()).height()))
        self.bottomPanel.layout().addWidget(QLabel(self.tr("Theme:"), self))
        self.bottomPanel.layout().addWidget(self.lstThemes)
        self.bottomPanel.layout().addStretch(1)

        self.lblProgress = QLabel(self)
        self.lblProgress.setMaximumSize(QSize(200, 14))
        self.lblProgress.setMinimumSize(QSize(100, 14))
        self.lblWC = QLabel(self)
        self.bottomPanel.layout().addWidget(self.lblWC)
        self.bottomPanel.layout().addWidget(self.lblProgress)
        self.updateStatusBar()

        self.bottomPanel.layout().addSpacing(24)

        # Connection
        self._index.model().dataChanged.connect(self.dataChanged)

        # self.updateTheme()
        self.showFullScreen()
    def __init__(self, index, parent=None):
        QWidget.__init__(self, parent)
        self._background = None
        self._index = index
        self._theme = findThemePath(settings.fullScreenTheme)
        self._themeDatas = loadThemeDatas(self._theme)
        self.setMouseTracking(True)
        self._geometries = {}

        # Text editor
        self.editor = textEditView(self,
                                   index=index,
                                   spellcheck=settings.spellcheck,
                                   highlighting=True,
                                   dict=settings.dict)
        self.editor.setFrameStyle(QFrame.NoFrame)
        self.editor.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.editor.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.editor.installEventFilter(self)
        self.editor.setMouseTracking(True)
        self.editor.setVerticalScrollBar(myScrollBar())
        self.scrollBar = self.editor.verticalScrollBar()
        self.scrollBar.setParent(self)

        # Top Panel
        self.topPanel = myPanel(parent=self)
        # self.topPanel.layout().addStretch(1)

        # Spell checking
        if enchant:
            self.btnSpellCheck = QPushButton(self)
            self.btnSpellCheck.setFlat(True)
            self.btnSpellCheck.setIcon(QIcon.fromTheme("tools-check-spelling"))
            self.btnSpellCheck.setCheckable(True)
            self.btnSpellCheck.setChecked(self.editor.spellcheck)
            self.btnSpellCheck.toggled.connect(self.editor.toggleSpellcheck)
            self.topPanel.layout().addWidget(self.btnSpellCheck)

        self.topPanel.layout().addStretch(1)

        # Formatting
        self.textFormat = textFormat(self)
        self.topPanel.layout().addWidget(self.textFormat)
        self.topPanel.layout().addStretch(1)

        self.btnClose = QPushButton(self)
        self.btnClose.setIcon(qApp.style().standardIcon(QStyle.SP_DialogCloseButton))
        self.btnClose.clicked.connect(self.close)
        self.btnClose.setFlat(True)
        self.topPanel.layout().addWidget(self.btnClose)

        # Left Panel
        self._locked = False
        self.leftPanel = myPanel(vertical=True, parent=self)
        self.locker = locker(self)
        self.locker.lockChanged.connect(self.setLocked)
        self.leftPanel.layout().addWidget(self.locker)

        # Bottom Panel
        self.bottomPanel = myPanel(parent=self)

        self.bottomPanel.layout().addSpacing(24)
        self.lstThemes = QComboBox(self)
        self.lstThemes.setAttribute(Qt.WA_TranslucentBackground)
        paths = allPaths("resources/themes")
        for p in paths:
            lst = [i for i in os.listdir(p) if os.path.splitext(i)[1] == ".theme"]
            for t in lst:
                themeIni = os.path.join(p, t)
                self.lstThemes.addItem(os.path.splitext(t)[0])
        self.lstThemes.setCurrentText(settings.fullScreenTheme)
        self.lstThemes.currentTextChanged.connect(self.setTheme)
        self.lstThemes.setMaximumSize(QSize(300, QFontMetrics(qApp.font()).height()))
        self.bottomPanel.layout().addWidget(QLabel(self.tr("Theme:"), self))
        self.bottomPanel.layout().addWidget(self.lstThemes)
        self.bottomPanel.layout().addStretch(1)

        self.lblProgress = QLabel(self)
        self.lblProgress.setMaximumSize(QSize(200, 14))
        self.lblProgress.setMinimumSize(QSize(100, 14))
        self.lblWC = QLabel(self)
        self.bottomPanel.layout().addWidget(self.lblWC)
        self.bottomPanel.layout().addWidget(self.lblProgress)
        self.updateStatusBar()

        self.bottomPanel.layout().addSpacing(24)

        # Connection
        self._index.model().dataChanged.connect(self.dataChanged)

        # self.updateTheme()
        self.showFullScreen()