def __init__(self, parent, extAppMgrState, dialogs):
        super(ExternalAppsDialog, self).__init__(parent)
        self.ui = Ui_ExternalAppsDialog()
        self.ui.setupUi(self)

        self.__extAppMgrState = extAppMgrState
        self.__dialogs = dialogs
        self.__read()

        self.connect(self.ui.buttonBox, QtCore.SIGNAL("accepted()"), self.__buttonOkClicked)
        self.connect(self.ui.buttonBox, QtCore.SIGNAL("rejected()"), self.__buttonCancelClicked)

        self.connect(self.ui.comboBoxCategory, QtCore.SIGNAL("currentIndexChanged(int)"),
                     self.__updateCategoryDependentWidgets)

        validator = FileExtentionsListValidator(self.ui.lineEditFileExtensions)
        self.ui.lineEditFileExtensions.setValidator(validator)
        self.connect(self.ui.lineEditFileExtensions, QtCore.SIGNAL("editingFinished()"),
                     self.__parseAndWriteFileExtentions)

        self.connect(self.ui.lineEditAppCmd, QtCore.SIGNAL("textChanged(const QString&)"),
                     self.__writeApplicationCommand)
        self.connect(self.ui.buttonSelectApp, QtCore.SIGNAL("clicked()"),
                     self.__onButtonSelectAppClicked)

        self.connect(self.ui.buttonNewCategory, QtCore.SIGNAL("clicked()"),
                     self.__onButtonNewCategoryClicked)

        self.connect(self.ui.buttonDeleteCategory, QtCore.SIGNAL("clicked()"),
                     self.__onButtonDeleteCategoryClicked)

        self.connect(self.ui.lineEditExtFileBrowserCmd, QtCore.SIGNAL("textChanged(const QString&)"),
                     self.__writeFileBrowserCommand)
        self.connect(self.ui.buttonSelectFileBrowser, QtCore.SIGNAL("clicked()"),
                     self.__onButtonSelectFileBrowserClicked)