def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.test = Test()

        # Copy the default irv file into app data directory if necessary
        data_path = QDesktopServices.storageLocation(QDesktopServices.DataLocation)
        if not os.path.exists(data_path):
            os.makedirs(data_path)
        verbs_file_path = os.path.join(data_path, VERBS_FILE)
        if not os.path.exists(verbs_file_path):
            shutil.copy(os.path.join(QApplication.applicationDirPath(), VERBS_FILE), 
                        verbs_file_path)

        format_file_path = os.path.join(data_path, FORMAT_FILE)
        if not os.path.exists(format_file_path):
            shutil.copy(os.path.join(QApplication.applicationDirPath(), FORMAT_FILE), 
                        format_file_path)

        # Load verbs informations
        workbook = xlrd.open_workbook(verbs_file_path)
        self.levels_list = []
        self.levels_dict = {}
        for sheet in workbook.sheets():
            verbs = []
            for i in range(sheet.nrows):
                verb = Verb(sheet.row(i)[0].value, sheet.row(i)[1].value,
                            sheet.row(i)[2].value, sheet.row(i)[3].value)
                verbs.append(verb)
            self.levels_list.append(sheet.name)
            self.levels_dict[sheet.name] = Level(verbs)

        self.mClassList.currentIndexChanged.connect(self._on_level_selected_changed)
        for level in self.levels_list:
            self.mClassList.addItem(level, level)
        self.mGenerate.clicked.connect(self._on_generate)
        self.mExport.clicked.connect(self._on_export)
        self.mActionExport.triggered.connect(self._on_export)
        self.mActionEditVerbsList.triggered.connect(self._on_edit_verbs_list)
        self.mActionEditExportStyle.triggered.connect(self._on_edit_export_style)