Plugins/VcsPlugins/vcsMercurial/HgUserConfigDataDialog.py

Wed, 26 Feb 2014 19:39:29 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 26 Feb 2014 19:39:29 +0100
changeset 3308
955abb40a903
parent 3288
1a68ecb67c06
child 3366
6084bb3c3911
permissions
-rw-r--r--

Started implementing support for the Mercurial largefiles extension.

# -*- coding: utf-8 -*-

"""
Module implementing a dialog to enter some user data.
"""

from PyQt4.QtGui import QDialog

from .Ui_HgUserConfigDataDialog import Ui_HgUserConfigDataDialog


class HgUserConfigDataDialog(QDialog, Ui_HgUserConfigDataDialog):
    """
    Class implementing a dialog to enter some user data.
    """
    def __init__(self, version=(0, 0), parent=None):
        """
        Constructor
        
        @param version Mercurial version info (tuple of two integers)
        @param parent reference to the parent widget (QWidget)
        """
        super().__init__(parent)
        self.setupUi(self)
        
        if version >= (1, 8):
            self.bookmarksCheckBox.setEnabled(False)
        if version >= (2, 3):
            self.transplantCheckBox.setEnabled(False)
        
        self.resize(self.width(), self.minimumSizeHint().height())
    
    def getData(self):
        """
        Public method to retrieve the entered data.
        
        @return tuple with user's first name, last name, email address,
            list of activated extensions and dictionary with extension data
            (tuple of three strings, a list of strings and a dictionary with
             extension name as key)
        """
        extensions = []
        extensionsData = {}
        
        if self.bookmarksCheckBox.isChecked():
            extensions.append("bookmarks")
        if self.fetchCheckBox.isChecked():
            extensions.append("fetch")
        if self.gpgCheckBox.isChecked():
            extensions.append("gpg")
        if self.purgeCheckBox.isChecked():
            extensions.append("purge")
        if self.queuesCheckBox.isChecked():
            extensions.append("mq")
        if self.rebaseCheckBox.isChecked():
            extensions.append("rebase")
        if self.shelveCheckBox.isChecked():
            extensions.append("shelve")
        if self.transplantCheckBox.isChecked():
            extensions.append("transplant")
        if self.largefilesCheckBox.isChecked():
            extensions.append("largefiles")
            largefilesDataDict = {}
            lfFileSize = self.lfFileSizeSpinBox.value()
            if lfFileSize != 10:        # default value is 10 MB
                largefilesDataDict["minsize"] = lfFileSize
            lfFilePatterns = self.lfFilePatternsEdit.text()
            if lfFilePatterns:
                largefilesDataDict["patterns"] = lfFilePatterns.split()
            if largefilesDataDict:
                extensionsData["largefiles"] = largefilesDataDict
        
        return (
            self.firstNameEdit.text(),
            self.lastNameEdit.text(),
            self.emailEdit.text(),
            extensions,
            extensionsData,
        )

eric ide

mercurial