class UIMainDialog():
    """UI dialog + widgets definition"""
    def setup_ui(self, main_dialog):
        """Initializes the UI"""

        main_dialog.setObjectName("main_dialog")
        main_dialog.resize(395, 284)
        main_dialog.setStyleSheet(STYLE)

        self.target_path_line_edit = QLineEdit(main_dialog)
        self.target_path_line_edit.setGeometry(QRect(10, 10, 291, 20))
        self.target_path_line_edit.setObjectName("target_path_line_edit")

        self.browse_path_btn = QPushButton(main_dialog)
        self.browse_path_btn.setGeometry(QRect(310, 9, 75, 23))
        self.browse_path_btn.setFocusPolicy(Qt.NoFocus)
        self.browse_path_btn.setObjectName("browse_path_btn")

        self.prefix_chk = QCheckBox(main_dialog)
        self.prefix_chk.setGeometry(QRect(10, 43, 70, 17))
        self.prefix_chk.setFocusPolicy(Qt.NoFocus)
        self.prefix_chk.setObjectName("prefix_chk")

        self.prefix_line_edit = QLineEdit(main_dialog)
        self.prefix_line_edit.setEnabled(False)
        self.prefix_line_edit.setGeometry(QRect(90, 42, 294, 20))
        self.prefix_line_edit.setObjectName("prefix_line_edit")

        self.suff_chk = QCheckBox(main_dialog)
        self.suff_chk.setGeometry(QRect(10, 71, 70, 17))
        self.suff_chk.setFocusPolicy(Qt.NoFocus)
        self.suff_chk.setObjectName("suff_chk")

        self.suff_line_edit = QLineEdit(main_dialog)
        self.suff_line_edit.setEnabled(False)
        self.suff_line_edit.setGeometry(QRect(90, 70, 294, 20))
        self.suff_line_edit.setObjectName("suff_line_edit")

        self.rename_chk = QCheckBox(main_dialog)
        self.rename_chk.setGeometry(QRect(10, 101, 70, 17))
        self.rename_chk.setFocusPolicy(Qt.NoFocus)
        self.rename_chk.setChecked(True)
        self.rename_chk.setObjectName("rename_chk")

        self.rename_old_line_edit = QLineEdit(main_dialog)
        self.rename_old_line_edit.setEnabled(True)
        self.rename_old_line_edit.setGeometry(QRect(90, 100, 140, 20))
        self.rename_old_line_edit.setObjectName("rename_old_line_edit")

        self.rename_new_line_edit = QLineEdit(main_dialog)
        self.rename_new_line_edit.setEnabled(True)
        self.rename_new_line_edit.setGeometry(QRect(242, 100, 141, 20))
        self.rename_new_line_edit.setObjectName("rename_new_line_edit")

        self.ext_chk = QCheckBox(main_dialog)
        self.ext_chk.setGeometry(QRect(10, 131, 110, 17))
        self.ext_chk.setFocusPolicy(Qt.NoFocus)
        self.ext_chk.setObjectName("ext_chk")

        self.ext_line_edit = QLineEdit(main_dialog)
        self.ext_line_edit.setEnabled(False)
        self.ext_line_edit.setGeometry(QRect(133, 130, 251, 20))
        self.ext_line_edit.setObjectName("ext_line_edit")

        self.include_subdir_chk = QCheckBox(main_dialog)
        self.include_subdir_chk.setGeometry(QRect(134, 170, 128, 17))
        self.include_subdir_chk.setFocusPolicy(Qt.NoFocus)
        self.include_subdir_chk.setObjectName("include_subdir_chk")

        self.prev_file_name_title_label = QLabel(main_dialog)
        self.prev_file_name_title_label.setGeometry(QRect(20, 201, 90, 13))
        self.prev_file_name_title_label.setObjectName(
            "prev_file_name_title_label")

        self.prev_file_name_label = QLabel(main_dialog)
        self.prev_file_name_label.setGeometry(QRect(124, 201, 260, 13))
        self.prev_file_name_label.setObjectName("prev_file_name_label")

        self.rename_files_btn = QPushButton(main_dialog)
        self.rename_files_btn.setGeometry(QRect(156, 230, 91, 41))
        self.rename_files_btn.setFocusPolicy(Qt.NoFocus)
        self.rename_files_btn.setObjectName("rename_files_btn")

        self.view_log_btn = QPushButton(main_dialog)
        self.view_log_btn.setGeometry(QRect(310, 255, 75, 23))
        self.view_log_btn.setFocusPolicy(Qt.NoFocus)
        self.view_log_btn.setObjectName("view_log_btn")

        self.retranslate_ui(main_dialog)
        QMetaObject.connectSlotsByName(main_dialog)

    def retranslate_ui(self, main_dialog):
        """Initializes widget texts"""

        main_dialog.setWindowTitle(
            QApplication.translate("main_dialog", "Easy File Renamer", None,
                                   -1))

        self.target_path_line_edit.setToolTip(
            QApplication.translate("main_dialog",
                                   "Target directory containing the files",
                                   None, -1))
        self.target_path_line_edit.setPlaceholderText(
            QApplication.translate("main_dialog", "Target directory", None,
                                   -1))

        self.browse_path_btn.setToolTip(
            QApplication.translate("main_dialog", "Browse target directory",
                                   None, -1))
        self.browse_path_btn.setText(
            QApplication.translate("main_dialog", "Browse", None, -1))

        self.prefix_chk.setToolTip(
            QApplication.translate("main_dialog",
                                   "If checked, adds a prefix to file names",
                                   None, -1))
        self.prefix_chk.setText(
            QApplication.translate("main_dialog", "Add Prefix", None, -1))

        self.prefix_line_edit.setToolTip(
            QApplication.translate("main_dialog", "Desired prefix", None, -1))
        self.prefix_line_edit.setPlaceholderText(
            QApplication.translate("main_dialog", "PREF_", None, -1))

        self.suff_chk.setToolTip(
            QApplication.translate("main_dialog",
                                   "If checked, adds a suffix to file names",
                                   None, -1))
        self.suff_chk.setText(
            QApplication.translate("main_dialog", "Add Suffix", None, -1))

        self.suff_line_edit.setToolTip(
            QApplication.translate("main_dialog", "Desired suffix", None, -1))
        self.suff_line_edit.setPlaceholderText(
            QApplication.translate("main_dialog", "_SUFF", None, -1))

        self.rename_chk.setToolTip(
            QApplication.translate(
                "main_dialog",
                "If checked, it replaces the provided old name with the new name on file names",
                None, -1))
        self.rename_chk.setText(
            QApplication.translate("main_dialog", "Rename", None, -1))

        self.rename_old_line_edit.setToolTip(
            QApplication.translate("main_dialog",
                                   "Old name to replace on file names", None,
                                   -1))
        self.rename_old_line_edit.setPlaceholderText(
            QApplication.translate("main_dialog", "Old name", None, -1))

        self.rename_new_line_edit.setToolTip(
            QApplication.translate("main_dialog",
                                   "New name to replace on file names", None,
                                   -1))
        self.rename_new_line_edit.setPlaceholderText(
            QApplication.translate("main_dialog", "New name", None, -1))

        self.ext_chk.setToolTip(
            QApplication.translate("main_dialog",
                                   "If checked, changes file extension", None,
                                   -1))
        self.ext_chk.setText(
            QApplication.translate("main_dialog", "Change extension", None,
                                   -1))

        self.ext_line_edit.setToolTip(
            QApplication.translate("main_dialog",
                                   "New file extension (without dot)", None,
                                   -1))
        self.ext_line_edit.setPlaceholderText(
            QApplication.translate("main_dialog", "ext (No dot)", None, -1))

        self.include_subdir_chk.setToolTip(
            QApplication.translate(
                "main_dialog", "If checked, it includes files in sub-folders",
                None, -1))
        self.include_subdir_chk.setText(
            QApplication.translate("main_dialog", "Include subdirectories",
                                   None, -1))

        self.prev_file_name_title_label.setText(
            QApplication.translate("main_dialog", "File name preview:", None,
                                   -1))
        self.prev_file_name_label.setText(
            QApplication.translate("main_dialog", "Please input a directory",
                                   None, -1))

        self.rename_files_btn.setText(
            QApplication.translate("main_dialog", "Rename Files", None, -1))

        self.view_log_btn.setToolTip(
            QApplication.translate("main_dialog", "View application's log",
                                   None, -1))
        self.view_log_btn.setText(
            QApplication.translate("main_dialog", "View log", None, -1))
示例#2
0
class Prescreen(QWidget):
    REASONS = ('Inattentive', 'Child Talking', 'Parent Talking',
               'Parent Interference', 'Child Not Looking Before Sound',
               'Equipment Malfunction', 'Experiment Ended Early', 'Other')

    def __init__(self, callback):
        super().__init__()
        self.callback = callback

        trial_label = QLabel('Trial:')
        self.trial_box = QSpinBox()
        self.trial_box.setFixedWidth(64)
        self.trial_box.setValue(1)
        # self.trial_box.setFocusPolicy(Qt.NoFocus)

        reason_label = QLabel('Reason:')
        self.reason_box = QComboBox()
        self.reason_box.addItems(self.REASONS)
        self.reason_box.setFocusPolicy(Qt.NoFocus)

        self.code_radio = QRadioButton('Code')
        self.nocode_radio = QRadioButton('Do Not Code')
        self.code_radio.setChecked(True)
        self.code_radio.setFocusPolicy(Qt.NoFocus)
        self.nocode_radio.setFocusPolicy(Qt.NoFocus)

        radio_layout = QVBoxLayout()
        radio_layout.addStretch()
        radio_layout.addWidget(self.code_radio)
        radio_layout.addWidget(self.nocode_radio)
        radio_layout.addStretch()
        self.group_code = QButtonGroup()
        self.group_code.addButton(self.code_radio)
        self.group_code.addButton(self.nocode_radio)

        self.record_button = QPushButton('Record Reason')
        self.record_button.clicked.connect(self.record_reason)
        self.record_button.setEnabled(False)
        self.record_button.setFocusPolicy(Qt.NoFocus)

        self.both_checkbox = QCheckBox('Display both coders')
        self.both_checkbox.setFocusPolicy(Qt.NoFocus)
        self.radio_primary = QRadioButton('Primary')
        self.radio_secondary = QRadioButton('Secondary')
        self.radio_primary.setChecked(True)
        self.radio_primary.setFocusPolicy(Qt.NoFocus)
        self.radio_secondary.setFocusPolicy(Qt.NoFocus)
        who_layout = QVBoxLayout()
        who_layout.addWidget(self.both_checkbox)
        who_layout.addWidget(self.radio_primary)
        who_layout.addWidget(self.radio_secondary)
        self.group_who = QButtonGroup()
        self.group_who.addButton(self.radio_primary, id=1)
        self.group_who.addButton(self.radio_secondary, id=2)

        layout = QHBoxLayout()
        layout.addWidget(trial_label)
        layout.addWidget(self.trial_box)
        layout.addWidget(reason_label)
        layout.addWidget(self.reason_box)
        layout.addLayout(radio_layout)

        layout.addWidget(self.record_button)
        layout.addStretch()
        layout.addLayout(who_layout)

        self.setLayout(layout)

    def record_reason(self):
        reason = Reason(trial=self.trial_box.value(),
                        include=self.code_radio.isChecked(),
                        reason=self.reason_box.currentText())
        self.callback(reason)

    def prescreener(self):
        if self.both_checkbox.isChecked():
            return 0
        else:
            return self.group_who.checkedId()