def __init__(self, parent, fileinfo_node, luggage):
        HideableQDialog.__init__(self, parent)
        self.setModal(True)
        self.setupUi(self)
        self.luggage = luggage
        self.fileinfo_node = fileinfo_node
        self.vlc_instance = None
        self.pdf_image_list = None

        # Used as properties
        self._is_metainfo_modified = False
        self._are_contents_modified = False
        self._decrypted_data = self.luggage.get_decrypted_file(self.fileinfo_node.encrypted_name).read()

        for type in self.previewable_file_types:
            self.combo_filetype.addItem(self.file_type_name[type])

        # Timer to update UI when media is being played
        self._timer_multimedia_update = QTimer(self)
        self._timer_multimedia_update.setInterval(self.gui_update_interval_ms)
        self._timer_multimedia_update.timeout.connect(self.__update_multimedia_controls)

        # Connections
        self.combo_encoding.currentIndexChanged.connect(self.__update_controls)
        self.combo_filetype.currentIndexChanged.connect(self.__update_filetype)
        self.button_play_pause.clicked.connect(self.__playpause_multimedia_contents)
        self.slider_multimedia_position.sliderMoved.connect(self.__update_media_position)
        self.spin_current_page.valueChanged.connect(self.__update_pdf_contents)
        self.slider_pdf_zoom.valueChanged.connect(self.__update_pdf_contents)
        self.frame_video_contents.clicked.connect(self.button_play_pause.click)
        self.frame_music_icon.clicked.connect(self.button_play_pause.click)

        self.__update_controls()
    def __init__(self,
                 parent, task_count=1, current_task=1,
                 current_progress=0, maximum_progress=0,
                 action_name=_translate("Processing..."), target_name="",
                 cancelable=True, show_bar=True, show_task_count=True):
        self._action_name = action_name
        self._target_name = target_name
        if self._target_name is None:
            self._target_name = ""
        self._task_count = task_count
        self._current_task = current_task
        self._current_progress = current_progress
        self._maximum_progress = maximum_progress
        self._is_cancelled = False
        self.cancelable = cancelable
        self.show_bar = show_bar
        self.show_task_count = show_task_count
        self.is_finished = False

        # Setup GUI
        HideableQDialog.__init__(self, parent)
        self.setupUi(self)
        self.__update_controls()
        self.button_cancel = self.buttonbox.button(QDialogButtonBox.Cancel)
        if not self.cancelable:
            self.button_cancel.setVisible(False)
        self.progressbar.setVisible(show_bar)
        self.label_task_n_of_m.setVisible(show_task_count)
        self.label_loading_icon.setMovie(QMovie(":/pyluggage/img/loading_cube.gif"))
        self.label_loading_icon.movie().start()
        self.adjustSize()
        self.setFixedSize(self.size())

        # Connections
        self.button_cancel.clicked.connect(self.cancel_progress)
    def __init__(self, pyluggage_config):
        self.pyluggage_config = pyluggage_config

        HideableQDialog.__init__(self)
        self.setupUi(self)

        self.frame_config = EditConfigFrame(pyluggage_config=self.pyluggage_config)
        self.layout_main.addWidget(self.frame_config)
    def __init__(self, parent=None, luggage_path=None):
        HideableQDialog.__init__(self, parent)
        Ui_QueryPasswordDialog.__init__(self)
        self.setupUi(self)
        self.adjustSize()
        self.setFixedSize(self.size())

        self.luggage_path = luggage_path
        self._update_controls()

        self.button_cancel.clicked.connect(self.reject)
        self.button_ok.clicked.connect(self._accept_password)
        self.check_show_password.stateChanged.connect(self._update_controls)
        self.lineedit_password.textChanged.connect(self._update_controls)
    def __init__(self, parent, pyluggage_config):
        HideableQDialog.__init__(self, parent)
        self.setupUi(self)
        self.update_controls()
        self.pyluggage_config = pyluggage_config

        self.button_select_luggage_path.clicked.connect(self.select_luggage_path)
        self.lineedit_luggage_path.focusReceived.connect(self.select_luggage_path)
        self.button_cancel.clicked.connect(self.close)
        self.button_create.clicked.connect(self.create_and_close)
        self.lineedit_password1.textChanged.connect(self.update_controls)
        self.lineedit_password2.textChanged.connect(self.update_controls)
        self.checkbox_show_password.clicked.connect(self.update_controls)
        self.lineedit_password1.returnPressed.connect(self.button_create.click)
        self.lineedit_password2.returnPressed.connect(self.button_create.click)
    def __init__(self, parent, old_name, invalid_strings):
        self.accepted_name = None
        self.parent = parent
        self.old_name = old_name
        self.invalid_names = invalid_strings

        # UI setup
        HideableQDialog.__init__(self, parent)
        self.setupUi(self)
        self.label_old_name.setText(old_name)
        self.setFixedSize(self.size())
        self.__update_controls()

        # Connections
        self.buttonbox.button(QDialogButtonBox.Ok).clicked.connect(self.__accept)
        self.buttonbox.button(QDialogButtonBox.Cancel).clicked.connect(self.close)
        self.lineedit_new_name.textChanged.connect(self.__update_controls)
    def __init__(self, parent, pyluggage_config, previous_secret=None):
        """
        :param previous_secret: if not None, the dialog behaves as an 'Edit' dialog and
        the passed model.Secret is modified if it the dialog is accepted. Otherwise,
        the dialog behaves as a 'New' dialog
        """
        # Qt Designer
        HideableQDialog.__init__(self, parent)
        Ui_EditSecretDialog.__init__(self)
        self.setupUi(self)
        gui_tools.center_widget(self)

        self.pyluggage_config = pyluggage_config

        self.previous_secret = previous_secret
        if self.previous_secret is not None:
            self.lineedit_name.setText(self.previous_secret.name)
            self.plaintext_contents.setPlainText(self.previous_secret.contents)
            self.lineedit_tags.setText(" ".join(self.previous_secret.tags))
        self.accepted_secret = None
        self.check_show_contents.setChecked(self.pyluggage_config.show_secret_contents)
        self.check_use_special_chars.setChecked(self.pyluggage_config.generator_show_special_chars)
        self.spin_pass_length.setValue(self.pyluggage_config.generator_password_length)
        self.__update_controls()

        # Connections
        self.button_save.clicked.connect(self.__accept_changes)
        self.button_discard.clicked.connect(self.reject)
        self.lineedit_name.textChanged.connect(self.__update_controls)
        self.button_copy_user.clicked.connect(self.copy_user_to_clipboard)
        self.button_copy_pass.clicked.connect(self.copy_pass_to_clipboard)
        self.button_show_contents.clicked.connect(self.__show_contents)
        self.button_generate_pass.clicked.connect(self.generate_pass_to_clipboard)
        self.check_show_contents.stateChanged.connect(self.__update_config_show_contents_changed)
        self.spin_pass_length.valueChanged.connect(self.__update_config_generate_pass_length)
        self.check_use_special_chars.stateChanged.connect(self.__update_config_use_special_chars)
        self.plaintext_contents.textChanged.connect(self.__update_controls)
 def setVisible(self, bool):
     HideableQDialog.setVisible(self, bool)
     self.adjustSize()
     self.setFixedSize(self.width(), self.height())