示例#1
0
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.ui.chooseLessc.clicked.connect(self.openLesscDialog)
        self.ui.chooseEditor.clicked.connect(self.openEditorDialog)
        self.ui.buttonBox.accepted.connect(self.saveSetting)
        #lessc path
        if self.settings.contains('lessc_path') == 'False' or len(
                self.settings.value('less_path')) == 0:
            self.settings.setValue('less_path', '/usr/bin/lessc')
        #editor path
        if self.settings.contains('editor_path') == 'False' or len(
                self.settings.value('editor_path')) == 0:
            self.settings.setValue('editor_path', '/usr/bin/kate')
        #checkbox for open all file in less file folder
        if self.settings.contains('less_folder') == 'False':
            self.settings.setValue('less_folder', 'False')
        if self.settings.value('less_folder') == 'False':
            self.ui.lessFolder.setChecked(False)
        else:
            self.ui.lessFolder.setChecked(True)

        self.ui.editor.setText(self.settings.value('editor_path'))
        self.ui.lesscPath.setText(self.settings.value('less_path'))
示例#2
0
class SettingDialog ( QDialog , Ui_Settings):

	#var initialization
	settings = QSettings('Mte90','Plessc')
	settings.setFallbacksEnabled(False)

	def __init__ ( self, parent = None ):
		QDialog.__init__( self, parent )
		self.ui = Ui_Settings()
		self.ui.setupUi( self )
		self.ui.chooseLessc.clicked.connect(self.openLesscDialog)
		self.ui.chooseEditor.clicked.connect(self.openEditorDialog)
		self.ui.buttonBox.accepted.connect(self.saveSetting)
		#lessc path
		if self.settings.contains('lessc_path') == 'False' or len(self.settings.value('less_path')) == 0:
			self.settings.setValue('less_path','/usr/bin/lessc')
		#editor path
		if self.settings.contains('editor_path') == 'False' or len(self.settings.value('editor_path')) == 0:
			self.settings.setValue('editor_path','/usr/bin/kate')
		#checkbox for open all file in less file folder
		if self.settings.contains('less_folder') == 'False':
			self.settings.setValue('less_folder','False')
		if self.settings.value('less_folder') == 'False':
			self.ui.lessFolder.setChecked(False)
		else:
			self.ui.lessFolder.setChecked(True)

		self.ui.editor.setText(self.settings.value('editor_path'))
		self.ui.lesscPath.setText(self.settings.value('less_path'))
	
	#Function for open a dialog for choose the less compiler
	def openLesscDialog(self):
		lessc = QFileDialog.getOpenFileName(self, 'Choose less compiler',self.ui.lesscPath.text())
		self.ui.lesscPath.setText(self.lessc)
	
	#Function for open a dialog for choose the editor
	def openEditorDialog(self):
		editor = QFileDialog.getSaveFileName(self, 'Set editor',self.ui.editor.text())
		self.ui.editor.setText(editor)

	#Save the setting
	def saveSetting(self):
		if len(self.ui.editor.text()) > 0:
			self.settings.setValue('editor_path',self.ui.editor.text())
		else:
			self.ui.editor.setText('/usr/bin/kate')
			QMessageBox.critical(self.window(), "Editor empty","This field can't be empty!")
			
		if len(self.ui.lesscPath.text()) > 0:
			self.settings.setValue('less_path',self.ui.lesscPath.text())
		else:
			self.ui.lesscPath.setText('/usr/bin/lessc')
			QMessageBox.critical(self.window(), "Compiler empty","This field can't be empty!")
		
		if self.ui.lessFolder.isChecked() == False:
			self.settings.setValue('less_folder','False')
		else:
			self.settings.setValue('less_folder','True')
示例#3
0
 def __init__(self):
     super(Settings, self).__init__()
     
     # Init
     
     self.ui = Ui_Settings()
     self.ui.setupUi(self)
     self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint)
     self.ui.txtPath.setText(directory)
     if SettingsExist():
         self.ui.spinUpdateInterval.setValue(int(programSettings.value("UpdateInterval")))
     
     self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.btnOK_clicked)
     self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Cancel).clicked.connect(self.btnCancel_clicked)
     self.ui.btnOpen.clicked.connect(self.btnOpen_clicked)
示例#4
0
    def __init__(self):
        super(Window, self).__init__()

        # UI
        self.createActions()
        self.setTitle=programTitle
        self.createTrayIcon()
        # Draw system tray icon
        pixmap = QtGui.QPixmap(QtGui.QPixmap(":icons/mailbox_empty.png"))
        painter = QtGui.QPainter(pixmap)
        painter.setPen(QtGui.QColor(255, 0, 0))
        painter.setFont(QtGui.QFont('Arial', QtGui.QFont.Bold))
        painter.drawText(QtCore.QRectF(pixmap.rect()), QtCore.Qt.AlignCenter, "0")
        painter.end()
        self.trayIcon.setIcon(QtGui.QIcon(pixmap))
        # End drawing system tray icon
        
        self.trayIcon.setToolTip("You have no unread letters")
        self.trayIcon.show()
        
        # setup settings
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.setWindowIcon(QIcon(os.path.dirname(os.path.realpath(__file__))+"/icons/mailbox_empty.png"))
        self.SettingsRestore()
        
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.btnOK_clicked)
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Cancel).clicked.connect(self.btnCancel_clicked)
        self.ui.btnTestConnection.clicked.connect(self.btnTestConnection_clicked)
        self.ui.comboAccounts.currentTextChanged.connect(self.comboAccounts_changed)
        self.ui.btnAddAccount.clicked.connect(self.btnAddAccount_clicked)
        self.ui.btnRenameAccount.clicked.connect(self.btnRenameAccount_clicked)
        self.ui.btnSaveAccount.clicked.connect(self.btnSaveAccount_clicked)
        self.ui.btnRemoveAccount.clicked.connect(self.btnRemoveAccount_clicked)
        
        # Check if account doesn't exist, it creates default one
        if (AccountExist() == False):
            self.ui.comboAccounts.addItem("Default")
            self.ui.comboAccounts.setCurrentText("Default")
                
        
        # Main timer
        self.timer = QTimer(self)
        self.timer.timeout.connect(mail_check)
        
        self.lastCheckCount = 0 # variable for prevent annoying popup notification when mail count didn't change since last check
示例#5
0
class Settings(QDialog):
    def __init__(self):
        super(Settings, self).__init__()
        
        # Init
        
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint)
        self.ui.txtPath.setText(directory)
        if SettingsExist():
            self.ui.spinUpdateInterval.setValue(int(programSettings.value("UpdateInterval")))
        
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.btnOK_clicked)
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Cancel).clicked.connect(self.btnCancel_clicked)
        self.ui.btnOpen.clicked.connect(self.btnOpen_clicked)
        
        # Functions
        
    def btnCancel_clicked(self):
        self.hide()
    
    def closeEvent(self, event): 
        self.hide()
        event.ignore()
        
    def btnOpen_clicked(self):
        directory = QFileDialog.getExistingDirectory(self, 'Open file', os.path.expanduser("~"), QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks | QFileDialog.ReadOnly)
        self.ui.txtPath.setText(directory)
    
    def btnOK_clicked(self):
        SettingsSave()
        directory = self.ui.txtPath.text()
        setPicture(directory)
        window.stop()
        window.start()
        self.hide()
示例#6
0
    def __init__(self):
        super(Window, self).__init__()

        # UI
        self.createActions()
        self.setTitle = programTitle
        self.createTrayIcon()
        # Draw system tray icon
        pixmap = QtGui.QPixmap(QtGui.QPixmap(":icons/mailbox_empty.png"))
        painter = QtGui.QPainter(pixmap)
        painter.setPen(QtGui.QColor(255, 0, 0))
        painter.setFont(QtGui.QFont("Arial", QtGui.QFont.Bold))
        painter.drawText(QtCore.QRectF(pixmap.rect()), QtCore.Qt.AlignCenter, "0")
        painter.end()
        self.trayIcon.setIcon(QtGui.QIcon(pixmap))
        # End drawing system tray icon

        self.trayIcon.setToolTip("You have no unread letters")
        self.trayIcon.show()

        # setup settings
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.setWindowIcon(QIcon(os.path.dirname(os.path.realpath(__file__)) + "/icons/mailbox_empty.png"))
        self.SettingsRestore()

        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.btnOK_clicked)
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Cancel).clicked.connect(self.btnCancel_clicked)
        self.ui.btnTestConnection.clicked.connect(self.btnTestConnection_clicked)
        self.ui.comboAccounts.currentTextChanged.connect(self.comboAccounts_changed)
        self.ui.btnAddAccount.clicked.connect(self.btnAddAccount_clicked)
        self.ui.btnRenameAccount.clicked.connect(self.btnRenameAccount_clicked)
        self.ui.btnSaveAccount.clicked.connect(self.btnSaveAccount_clicked)
        self.ui.btnRemoveAccount.clicked.connect(self.btnRemoveAccount_clicked)

        # Main timer
        self.timer = QTimer(self)
        self.timer.timeout.connect(mail_check)

        self.lastCheckCount = (
            0
        )  # variable for prevent annoying popup notification when mail count didn't change since last check
示例#7
0
	def __init__ ( self, parent = None ):
		QDialog.__init__( self, parent )
		self.ui = Ui_Settings()
		self.ui.setupUi( self )
		self.ui.chooseLessc.clicked.connect(self.openLesscDialog)
		self.ui.chooseEditor.clicked.connect(self.openEditorDialog)
		self.ui.buttonBox.accepted.connect(self.saveSetting)
		#lessc path
		if self.settings.contains('lessc_path') == 'False' or len(self.settings.value('less_path')) == 0:
			self.settings.setValue('less_path','/usr/bin/lessc')
		#editor path
		if self.settings.contains('editor_path') == 'False' or len(self.settings.value('editor_path')) == 0:
			self.settings.setValue('editor_path','/usr/bin/kate')
		#checkbox for open all file in less file folder
		if self.settings.contains('less_folder') == 'False':
			self.settings.setValue('less_folder','False')
		if self.settings.value('less_folder') == 'False':
			self.ui.lessFolder.setChecked(False)
		else:
			self.ui.lessFolder.setChecked(True)

		self.ui.editor.setText(self.settings.value('editor_path'))
		self.ui.lesscPath.setText(self.settings.value('less_path'))
示例#8
0
class Window(QDialog):
    def __init__(self):
        super(Window, self).__init__()

        # UI
        self.createActions()
        self.setTitle = programTitle
        self.createTrayIcon()
        # Draw system tray icon
        pixmap = QtGui.QPixmap(QtGui.QPixmap(":icons/mailbox_empty.png"))
        painter = QtGui.QPainter(pixmap)
        painter.setPen(QtGui.QColor(255, 0, 0))
        painter.setFont(QtGui.QFont("Arial", QtGui.QFont.Bold))
        painter.drawText(QtCore.QRectF(pixmap.rect()), QtCore.Qt.AlignCenter, "0")
        painter.end()
        self.trayIcon.setIcon(QtGui.QIcon(pixmap))
        # End drawing system tray icon

        self.trayIcon.setToolTip("You have no unread letters")
        self.trayIcon.show()

        # setup settings
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.setWindowIcon(QIcon(os.path.dirname(os.path.realpath(__file__)) + "/icons/mailbox_empty.png"))
        self.SettingsRestore()

        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.btnOK_clicked)
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Cancel).clicked.connect(self.btnCancel_clicked)
        self.ui.btnTestConnection.clicked.connect(self.btnTestConnection_clicked)
        self.ui.comboAccounts.currentTextChanged.connect(self.comboAccounts_changed)
        self.ui.btnAddAccount.clicked.connect(self.btnAddAccount_clicked)
        self.ui.btnRenameAccount.clicked.connect(self.btnRenameAccount_clicked)
        self.ui.btnSaveAccount.clicked.connect(self.btnSaveAccount_clicked)
        self.ui.btnRemoveAccount.clicked.connect(self.btnRemoveAccount_clicked)

        # Main timer
        self.timer = QTimer(self)
        self.timer.timeout.connect(mail_check)

        self.lastCheckCount = (
            0
        )  # variable for prevent annoying popup notification when mail count didn't change since last check

        # Menu actions

    def createActions(self):
        self.detailsShow = QAction(QIcon(":icons/details.png"), "&Details", self, triggered=self.detailsShow)
        self.aboutShow = QAction(QIcon(":icons/mailbox_empty.png"), "&About", self, triggered=self.aboutShow)
        self.checkNow = QAction(QIcon(":icons/check_now.png"), "&Check now", self, triggered=mail_check)
        self.restoreAction = QAction(QIcon(":icons/settings.png"), "&Settings", self, triggered=self.showNormal)
        self.quitAction = QAction(QIcon(":icons/menu_quit.png"), "&Quit", self, triggered=QApplication.instance().quit)

        # UI functions

    def createTrayIcon(self):
        self.trayIconMenu = QMenu(self)
        self.trayIconMenu.addAction(self.aboutShow)
        self.trayIconMenu.addAction(self.detailsShow)
        self.trayIconMenu.addAction(self.checkNow)
        self.trayIconMenu.addAction(self.restoreAction)
        self.trayIconMenu.addAction(self.quitAction)
        self.trayIcon = QSystemTrayIcon(self)
        self.trayIcon.setContextMenu(self.trayIconMenu)
        self.trayIcon.activated.connect(self.trayIconActivated)

    def SettingsRestore(self):
        if GlobalSettingsExist() and AccountExist():
            groups = settings.childGroups()
            for i in range(len(groups)):
                self.ui.comboAccounts.addItem(groups[i])
                self.ui.comboAccounts.setCurrentText(groups[i])
                settings.beginGroup(groups[i])
                self.ui.txtboxMailServer.setText(settings.value("MailServer"))
                self.ui.txtboxPort.setText(settings.value("Port"))
                self.ui.txtboxLogin.setText(settings.value("Login"))
                self.ui.txtboxPassword.setText(settings.value("Password"))
                self.ui.boolifSSL.setChecked(bool(settings.value("SSL")))
                settings.endGroup()
            if self.ui.comboAccounts.count() == 0:
                self.ui.comboAccounts.addItem("Default")
                self.ui.comboAccounts.setCurrentText("Default")
            self.ui.checkFreq.setValue(int(settings.value("CheckInterval")))
            self.ui.boolifNotify.setChecked(bool(settings.value("Notify")))

    def SettingsSave(self, account):
        settings.setValue("CheckInterval", self.ui.checkFreq.value())
        settings.setValue("Notify", self.ui.boolifNotify.isChecked())
        settings.beginGroup(account)
        settings.setValue("MailServer", self.ui.txtboxMailServer.text())
        settings.setValue("Port", self.ui.txtboxPort.text())
        settings.setValue("Login", self.ui.txtboxLogin.text())
        settings.setValue("Password", self.ui.txtboxPassword.text())
        settings.setValue("SSL", self.ui.boolifSSL.isChecked())
        settings.endGroup()

    def SettingsRemove(self, group):
        settings.beginGroup(group)
        settings.remove("")
        settings.endGroup()

    def btnOK_clicked(self):
        self.SettingsSave(self.ui.comboAccounts.currentText())

        if (
            settings.value("MailServer") == ""
            or settings.value("Port") == ""
            or settings.value("Login") == ""
            or settings.value("Password") == ""
        ):
            QMessageBox.critical(self, "Warning", "You should fill all fields in IMAP settings!")
            self.show()
        mail_check()
        self.ui.lblTestOutput.setText("")
        self.stop()
        self.start()

    def btnCancel_clicked(self):
        self.SettingsRestore()
        self.ui.lblTestOutput.setText("")

    def btnTestConnection_clicked(self):
        try:
            if self.ui.boolifSSL.isChecked:
                self.imap = imaplib.IMAP4_SSL(self.ui.txtboxMailServer.text(), self.ui.txtboxPort.text())
            else:
                self.imap = imaplib.IMAP4(self.ui.txtboxMailServer.text(), self.ui.txtboxPort.text())
            self.imap.login(self.ui.txtboxLogin.text(), self.ui.txtboxPassword.text())
            output = "Connection was established successfully"
        except:
            output = "Unable to establish connection to mailbox"
        finally:
            self.ui.lblTestOutput.setText(output)

    def btnAddAccount_clicked(self):
        GroupName = QInputDialog.getText(self, "Enter account name", "Enter account name", QLineEdit.Normal, "")
        if GroupName[0]:
            self.ui.comboAccounts.addItem(GroupName[0])
            self.ui.comboAccounts.setCurrentText(GroupName[0])

    def btnRenameAccount_clicked(self):
        Index = self.ui.comboAccounts.currentIndex()
        OldGroupName = self.ui.comboAccounts.currentText()
        GroupName = QInputDialog.getText(
            self, "Enter account name", "Enter account name", QLineEdit.Normal, self.ui.comboAccounts.currentText()
        )
        if GroupName[0]:
            self.SettingsSave(GroupName[0])
            self.ui.comboAccounts.setItemText(Index, GroupName[0])
            self.ui.comboAccounts.setCurrentText(GroupName[0])
            self.SettingsRemove(OldGroupName)

    def btnSaveAccount_clicked(self):
        self.SettingsSave(self.ui.comboAccounts.currentText())
        self.ui.lblTestOutput.setText("Account saved")

    def btnRemoveAccount_clicked(self):
        reply = QMessageBox.warning(
            self, "Warning!", "Delete this account permanently?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No
        )
        if reply == QMessageBox.Yes:
            Index = self.ui.comboAccounts.currentIndex()
            GroupName = self.ui.comboAccounts.currentText()
            self.ui.comboAccounts.removeItem(Index)
            self.SettingsRemove(GroupName)

    def comboAccounts_changed(self):
        self.ui.lblTestOutput.setText("")
        settings.beginGroup(self.ui.comboAccounts.currentText())
        self.ui.txtboxMailServer.setText(settings.value("MailServer"))
        self.ui.txtboxPort.setText(settings.value("Port"))
        self.ui.txtboxLogin.setText(settings.value("Login"))
        self.ui.txtboxPassword.setText(settings.value("Password"))
        self.ui.boolifSSL.setChecked(bool(settings.value("SSL")))
        settings.endGroup()

    def aboutShow(self):
        if about.isMinimized:
            about.hide()
        about.show()
        about.activateWindow()

    def detailsShow(self):
        details.show()
        details.activateWindow()

    def trayIconActivated(self, reason):
        if reason in (QSystemTrayIcon.Trigger, QSystemTrayIcon.DoubleClick):
            details.show()
            details.activateWindow()

    def start(self):
        if GlobalSettingsExist() and AccountExist():
            CheckInterval = 1000 * 60 * int(settings.value("CheckInterval"))
        else:
            CheckInterval = 1000 * 60 * 5
        self.timer.setInterval(CheckInterval)
        self.timer.start()

    def stop(self):
        self.timer.stop()
示例#9
0
class Window(QDialog):
    def __init__(self):
        super(Window, self).__init__()

        # UI
        self.createActions()
        self.setTitle=programTitle
        self.createTrayIcon()
        # Draw system tray icon
        pixmap = QtGui.QPixmap(QtGui.QPixmap(":icons/mailbox_empty.png"))
        painter = QtGui.QPainter(pixmap)
        painter.setPen(QtGui.QColor(255, 0, 0))
        painter.setFont(QtGui.QFont('Arial', QtGui.QFont.Bold))
        painter.drawText(QtCore.QRectF(pixmap.rect()), QtCore.Qt.AlignCenter, "0")
        painter.end()
        self.trayIcon.setIcon(QtGui.QIcon(pixmap))
        # End drawing system tray icon
        
        self.trayIcon.setToolTip("You have no unread letters")
        self.trayIcon.show()
        
        # setup settings
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.setWindowIcon(QIcon(os.path.dirname(os.path.realpath(__file__))+"/icons/mailbox_empty.png"))
        self.SettingsRestore()
        
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.btnOK_clicked)
        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Cancel).clicked.connect(self.btnCancel_clicked)
        self.ui.btnTestConnection.clicked.connect(self.btnTestConnection_clicked)
        self.ui.comboAccounts.currentTextChanged.connect(self.comboAccounts_changed)
        self.ui.btnAddAccount.clicked.connect(self.btnAddAccount_clicked)
        self.ui.btnRenameAccount.clicked.connect(self.btnRenameAccount_clicked)
        self.ui.btnSaveAccount.clicked.connect(self.btnSaveAccount_clicked)
        self.ui.btnRemoveAccount.clicked.connect(self.btnRemoveAccount_clicked)
        
        # Check if account doesn't exist, it creates default one
        if (AccountExist() == False):
            self.ui.comboAccounts.addItem("Default")
            self.ui.comboAccounts.setCurrentText("Default")
                
        
        # Main timer
        self.timer = QTimer(self)
        self.timer.timeout.connect(mail_check)
        
        self.lastCheckCount = 0 # variable for prevent annoying popup notification when mail count didn't change since last check
        
        # Menu actions
    def createActions(self):
        self.detailsShow = QAction(QIcon(':icons/details.png'),"&Details...", self, triggered=self.detailsShow)
        self.aboutShow = QAction(QIcon(':icons/mailbox_empty.png'),"&About " + programTitle + "...", self, triggered=self.aboutShow)
        self.checkNow = QAction(QIcon(':icons/check_now.png'),"&Check now", self, triggered=mail_check)
        self.restoreAction = QAction(QIcon(":icons/settings.png"),"&Settings...", self, triggered=self.showNormal)
        self.quitAction = QAction(QIcon(':icons/menu_quit.png'),"&Quit", self, triggered=QApplication.instance().quit)

        # UI functions
    def createTrayIcon(self):
        self.trayIconMenu = QMenu(self)
        f = self.trayIconMenu.font()
        f.setBold(True)
        self.detailsShow.setFont(f)
        self.trayIconMenu.addAction(self.detailsShow)
        self.trayIconMenu.addSeparator()
        self.trayIconMenu.addAction(self.checkNow)
        self.trayIconMenu.addAction(self.restoreAction)
        self.trayIconMenu.addAction(self.aboutShow)
        self.trayIconMenu.addAction(self.quitAction)
        self.trayIcon = QSystemTrayIcon(self)
        self.trayIcon.setContextMenu(self.trayIconMenu)
        self.trayIcon.activated.connect(self.trayIconActivated)

    def SettingsRestore(self):
        if (GlobalSettingsExist() and AccountExist()):
            groups = settings.childGroups()
            self.ui.comboAccounts.clear() # Clear account items before fill them again
            for i in range (len(groups)):
                self.ui.comboAccounts.addItem(groups[i])
                self.ui.comboAccounts.setCurrentText(groups[i])
                settings.beginGroup(groups[i])
                self.ui.txtboxMailServer.setText(settings.value("MailServer"))
                self.ui.txtboxPort.setText(settings.value("Port"))
                self.ui.txtboxLogin.setText(settings.value("Login"))
                self.ui.txtboxPassword.setText(settings.value("Password"))
                self.ui.boolifSSL.setChecked(bool(settings.value("SSL")))
                settings.endGroup()
            if (self.ui.comboAccounts.count() == 0):
                self.ui.comboAccounts.addItem("Default")
                self.ui.comboAccounts.setCurrentText("Default")
            self.ui.checkFreq.setValue(int(settings.value("CheckInterval")))
            self.ui.boolifNotify.setChecked(bool(settings.value("Notify")))
           
    def SettingsSave(self,account):
        settings.setValue("CheckInterval",self.ui.checkFreq.value())
        settings.setValue("Notify", self.ui.boolifNotify.isChecked())
        settings.beginGroup(account)
        settings.setValue("MailServer",self.ui.txtboxMailServer.text())
        settings.setValue("Port",self.ui.txtboxPort.text())
        settings.setValue("Login",self.ui.txtboxLogin.text())
        settings.setValue("Password",self.ui.txtboxPassword.text())
        settings.setValue("SSL",self.ui.boolifSSL.isChecked())
        settings.endGroup()
            
    def SettingsRemove(self,group):
        settings.beginGroup(group)
        settings.remove("")
        settings.endGroup()
    
    def btnOK_clicked(self):
        self.SettingsSave(self.ui.comboAccounts.currentText())
        
        if (settings.value("MailServer") == "" or settings.value("Port") == "" or settings.value("Login") == "" or settings.value("Password") == ""):
            QMessageBox.critical(self, "Warning","You should fill all fields in IMAP settings!")
            self.show()
        mail_check()
        self.ui.lblTestOutput.setText("")
        self.stop()
        self.start()
			
    def btnCancel_clicked(self):
        self.SettingsRestore()
        self.ui.lblTestOutput.setText("")
        
    def btnTestConnection_clicked(self):
        try:
            if self.ui.boolifSSL.isChecked:
                self.imap = imaplib.IMAP4_SSL(self.ui.txtboxMailServer.text(), self.ui.txtboxPort.text())
            else:
                self.imap = imaplib.IMAP4(self.ui.txtboxMailServer.text(), self.ui.txtboxPort.text())
            self.imap.login(self.ui.txtboxLogin.text(), self.ui.txtboxPassword.text())
            output = "Connection was established successfully"
        except:
            output = "Unable to establish connection to mailbox"
        finally:
            self.ui.lblTestOutput.setText(output)
    
    def btnAddAccount_clicked(self):
        GroupName = QInputDialog.getText(self,"Enter account name","Enter account name",QLineEdit.Normal,"")
        if (GroupName[0]):
            self.ui.comboAccounts.addItem(GroupName[0])
            self.ui.comboAccounts.setCurrentText(GroupName[0])
            
    def btnRenameAccount_clicked(self):
        Index = self.ui.comboAccounts.currentIndex()
        OldGroupName = self.ui.comboAccounts.currentText()
        GroupName = QInputDialog.getText(self,"Enter account name","Enter account name",QLineEdit.Normal,self.ui.comboAccounts.currentText())
        if (GroupName[0]):
            self.SettingsSave(GroupName[0])
            self.ui.comboAccounts.setItemText(Index, GroupName[0])
            self.ui.comboAccounts.setCurrentText(GroupName[0])
            self.SettingsRemove(OldGroupName)
    
    def btnSaveAccount_clicked(self):
        self.SettingsSave(self.ui.comboAccounts.currentText())
        self.ui.lblTestOutput.setText("Account saved")
            
    def btnRemoveAccount_clicked(self):
        reply = QMessageBox.warning(self, 'Warning!', "Delete this account permanently?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
        if (reply == QMessageBox.Yes):
            Index = self.ui.comboAccounts.currentIndex()
            GroupName = self.ui.comboAccounts.currentText()
            self.ui.comboAccounts.removeItem(Index)
            self.SettingsRemove(GroupName)
        # Check if account doesn't exist, it creates default one
        if (AccountExist() == False):
            self.ui.comboAccounts.addItem("Default")
            self.ui.comboAccounts.setCurrentText("Default")
            
    def comboAccounts_changed(self):
        self.ui.lblTestOutput.setText("")
        settings.beginGroup(self.ui.comboAccounts.currentText())
        self.ui.txtboxMailServer.setText(settings.value("MailServer"))
        self.ui.txtboxPort.setText(settings.value("Port"))
        self.ui.txtboxLogin.setText(settings.value("Login"))
        self.ui.txtboxPassword.setText(settings.value("Password"))
        self.ui.boolifSSL.setChecked(bool(settings.value("SSL")))
        settings.endGroup()
        
    def aboutShow(self):
        if (about.isMinimized):
            about.hide()
        about.show()
        about.activateWindow()
        
    def detailsShow(self):
        details.show()
        details.activateWindow()
        
    def trayIconActivated(self, reason):
        if reason in (QSystemTrayIcon.Trigger, QSystemTrayIcon.DoubleClick):
            details.show()
            details.activateWindow()
                        
    def start(self):
        if (GlobalSettingsExist() and AccountExist()):
            CheckInterval = 1000*60*int(settings.value("CheckInterval"))
        else:
            CheckInterval = 1000*60*5
        self.timer.setInterval (CheckInterval)
        self.timer.start()
        
    def stop (self):
        self.timer.stop()
示例#10
0
class SettingDialog(QDialog, Ui_Settings):

    #var initialization
    settings = QSettings('Mte90', 'Plessc')
    settings.setFallbacksEnabled(False)

    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.ui = Ui_Settings()
        self.ui.setupUi(self)
        self.ui.chooseLessc.clicked.connect(self.openLesscDialog)
        self.ui.chooseEditor.clicked.connect(self.openEditorDialog)
        self.ui.buttonBox.accepted.connect(self.saveSetting)
        #lessc path
        if self.settings.contains('lessc_path') == 'False' or len(
                self.settings.value('less_path')) == 0:
            self.settings.setValue('less_path', '/usr/bin/lessc')
        #editor path
        if self.settings.contains('editor_path') == 'False' or len(
                self.settings.value('editor_path')) == 0:
            self.settings.setValue('editor_path', '/usr/bin/kate')
        #checkbox for open all file in less file folder
        if self.settings.contains('less_folder') == 'False':
            self.settings.setValue('less_folder', 'False')
        if self.settings.value('less_folder') == 'False':
            self.ui.lessFolder.setChecked(False)
        else:
            self.ui.lessFolder.setChecked(True)

        self.ui.editor.setText(self.settings.value('editor_path'))
        self.ui.lesscPath.setText(self.settings.value('less_path'))

    #Function for open a dialog for choose the less compiler
    def openLesscDialog(self):
        lessc = QFileDialog.getOpenFileName(self, 'Choose less compiler',
                                            self.ui.lesscPath.text())
        self.ui.lesscPath.setText(self.lessc)

    #Function for open a dialog for choose the editor
    def openEditorDialog(self):
        editor = QFileDialog.getSaveFileName(self, 'Set editor',
                                             self.ui.editor.text())
        self.ui.editor.setText(editor)

    #Save the setting
    def saveSetting(self):
        if len(self.ui.editor.text()) > 0:
            self.settings.setValue('editor_path', self.ui.editor.text())
        else:
            self.ui.editor.setText('/usr/bin/kate')
            QMessageBox.critical(self.window(), "Editor empty",
                                 "This field can't be empty!")

        if len(self.ui.lesscPath.text()) > 0:
            self.settings.setValue('less_path', self.ui.lesscPath.text())
        else:
            self.ui.lesscPath.setText('/usr/bin/lessc')
            QMessageBox.critical(self.window(), "Compiler empty",
                                 "This field can't be empty!")

        if self.ui.lessFolder.isChecked() == False:
            self.settings.setValue('less_folder', 'False')
        else:
            self.settings.setValue('less_folder', 'True')