Exemplo n.º 1
0
    def __init__(self,
                 topLevelPath,
                 settings,
                 knittingSymbols,
                 fileName=None,
                 parent=None):
        """ Initialize the main window. """

        super(MainWindow, self).__init__(parent)
        self.setupUi(self)

        self.settings = settings
        self.preferencesDialog = PreferencesDialog(self.settings, self)
        self.manualDialog = None

        self.clear_project_save_file()

        self._topLevelPath = topLevelPath
        self._knittingSymbols = knittingSymbols
        self.canvas = PatternCanvas(self.settings, knittingSymbols["knit"],
                                    self)

        self.exportBitmapDialog = None
        self.create_export_bitmap_dialog()

        self.manageSymbolsDialog = None
        self.create_manage_knitting_symbols_dialog()

        self.initialize_symbol_widget(knittingSymbols)
        self.initialize_color_widget()
        self.initialize_row_col_widget()

        self._restore_window_settings()

        self.recentlyUsedSymbolWidget.update_num_recent_symbols(
            self.settings.numRecentSymbols.value)

        # we set a manual scene rectangle for our view. we
        # should be a little smarter about this in the future
        self.graphicsView.setScene(self.canvas)

        self._set_up_recently_used_files_menu()

        # set up all the connections
        self._set_up_connections()

        # nothing happened so far
        self._projectIsDirty = False

        # read project if we received a filename but first check
        # if we have a recovery file.
        if fileName:
            (was_recovered, readFileName) = check_for_recovery_file(fileName)
            if self._read_project(readFileName):
                self.set_project_save_file(fileName)
                self.update_recently_used_files(fileName)
                self.canvas.clear_undo_stack()
                if not was_recovered:
                    self.mark_project_clean()

        # set up timers
        # NOTE: Needs to be last, otherwise some signals may not
        # connect properly
        self._set_up_timers()