Exemplo n.º 1
0
    def __init__(self, parent, source):
        super().__init__(parent)
        self.geometry(settings.get('view_window_geometry'))

        container = tk.Frame(self)
        container.pack(fill='both', expand=1, padx=5, pady=5)

        tk.Grid.columnconfigure(container, 0, weight=1)
        tk.Grid.rowconfigure(container, 0, weight=1)

        self.sourceview = SourceView(container)
        self.sourceview.grid(row=0, column=0, sticky='nesw')

        button_frame = tk.Frame(container)
        button_frame.grid(row=1, column=0, sticky='nesw')
        for x in range(0, 4):
            tk.Grid.columnconfigure(button_frame, x, weight=1, uniform='equal')

        tk.Button(button_frame, text='Save changes',
                  command=self.save_changes).grid(row=0,
                                                  column=0,
                                                  sticky='nesw')
        tk.Button(button_frame, text='View PDF',
                  command=self.view_pdf).grid(row=0, column=1, sticky='nesw')
        tk.Button(button_frame, text='Remove entry',
                  command=self.delete).grid(row=0, column=2, sticky='nesw')
        tk.Button(button_frame, text='Close',
                  command=self.destroy).grid(row=0, column=3, sticky='nesw')

        self.source = source
        self.load_values()
Exemplo n.º 2
0
    def __init__(self, exc_info, parent=None):
        QWidget.__init__(self, parent)

        etype, value, tb = exc_info

        self.tb = tb
        self.entries = traceback.extract_tb(tb)

        self.setWindowTitle('Python Error')

        msg = unicode(value).replace("\n", "<br>").replace(" ", "&nbsp;")
        self.error = QLabel("<h1>" + etype.__name__ + "</h1><b>" + msg +
                            "</b>")
        self.error.setTextInteractionFlags(Qt.TextSelectableByMouse)

        self.frames = FramesView()
        self.frames.setTraceback(tb)
        self.frames.selectionModel().currentChanged.connect(
            self.current_frame_changed)

        self.source = SourceView()

        self.splitterSrc = QSplitter(Qt.Horizontal)
        self.splitterSrc.addWidget(self.frames)
        self.splitterSrc.addWidget(self.source)
        self.splitterSrc.setStretchFactor(0, 1)
        self.splitterSrc.setStretchFactor(1, 2)

        self.variables = VariablesView()

        self.console = ConsoleWidget(exc_info)

        self.splitterMain = QSplitter(Qt.Vertical)
        self.splitterMain.addWidget(self.splitterSrc)
        self.splitterMain.addWidget(self.variables)
        self.splitterMain.addWidget(self.console)

        l = QVBoxLayout()
        l.addWidget(self.error)
        l.addWidget(self.splitterMain)
        self.setLayout(l)

        self.resize(800, 600)

        s = QSettings()
        self.splitterSrc.restoreState(s.value("/FirstAid/splitterSrc", ""))
        self.splitterMain.restoreState(s.value("/FirstAid/splitterMain", ""))
        self.restoreGeometry(s.value("/FirstAid/geometry", ""))

        # select the last frame
        self.frames.setCurrentIndex(
            self.frames.model().index(len(self.entries) - 1))
Exemplo n.º 3
0
    def __init__(self, parent):
        super().__init__(parent)

        container = tk.Frame(self)
        container.pack(fill='both', expand=1, padx=5, pady=5)

        tk.Grid.columnconfigure(container, 0, weight=1)
        tk.Grid.rowconfigure(container, 0, weight=1)

        self.sourceview = SourceView(container)
        self.sourceview.grid(row=0, column=0, sticky='nesw')

        tk.Button(container, text='Add source',
                  command=self.add_source).grid(row=1,
                                                column=0,
                                                sticky='nesw',
                                                pady=(2, 0))