Esempio n. 1
0
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent=parent)

        layout = QtWidgets.QVBoxLayout()

        text = QtWidgets.QLabel("Under development!")
        tab_widget = QtWidgets.QTabWidget()

        button_hlayout = QtWidgets.QHBoxLayout()
        button_hlayout.addStretch()

        # Generic update button
        update_button = QtWidgets.QPushButton("Update")
        update_button.setMinimumWidth(120)
        update_button.setStyleSheet(style.flat_button)

        button_hlayout.addWidget(update_button)

        # Create basic layout
        layout.addWidget(text)
        layout.addWidget(tab_widget)
        layout.addLayout(button_hlayout)

        self.setLayout(layout)

        self.tab_widget = tab_widget
        self.update_button = update_button

        self.connect_signals()
Esempio n. 2
0
    def __init__(self, side, parent=None):
        super(SelectorWidget, self).__init__(parent=parent)

        def icon(name):
            return lib.icon(name, color=SIDE_COLOR[side])

        body = {
            "tab": QtWidgets.QTabWidget(),
        }

        selector = {
            "host": HostSelectorWidget(),
            "databse": DatabaseSelectorWidget(),
        }

        body["tab"].addTab(selector["databse"], icon("cloud"), "Published")
        body["tab"].addTab(selector["host"], icon("home"), "In Scene")

        layout = QtWidgets.QHBoxLayout(self)
        layout.addWidget(body["tab"])

        # Connect

        body["tab"].currentChanged.connect(self.on_tab_changed)
        selector["host"].container_picked.connect(self.on_container_picked)
        selector["host"].host_selected.connect(self.on_host_selected)
        selector["databse"].version_changed.connect(self.on_version_changed)

        # Init

        self.selector = selector
        self.side = side
        self._host_tab_enabled = False

        if not has_host() or side == SIDE_B:
            body["tab"].setCurrentIndex(0)
        else:
            body["tab"].setCurrentIndex(1)
Esempio n. 3
0
    def __init__(self, parent=None):
        super(Window, self).__init__(parent=parent)

        self.setWindowIcon(lib.icon("share-alt-square", color="#EC905C"))
        self.setWindowTitle("Model Differ")
        self.setWindowFlags(QtCore.Qt.Window)

        page = {
            "tab": QtWidgets.QTabWidget(),
            "tables": list(),
        }

        page["tab"].addTab(QtWidgets.QWidget(), "+")

        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(page["tab"])

        # Connect
        page["tab"].currentChanged.connect(self.on_tab_changed)

        # Init
        self.page = page
        self.create_tab()
        self.resize(840, 720)
Esempio n. 4
0
    def create_tab(self):
        widget = pindict.to_pindict({
            "main":
            QtWidgets.QWidget(),
            "top": {
                "main": QtWidgets.QWidget(),
                "label": QtWidgets.QLabel("Table Name:"),
                "line": QtWidgets.QLineEdit(),
            },
            "ctrl": {
                "tabs": {
                    "main": QtWidgets.QTabWidget(),
                    "focus": views.FocusComparing(),
                    "select": {
                        "main": QtWidgets.QWidget(),
                        "selectorA": views.SelectorWidget(side=views.SIDE_A),
                        "selectorB": views.SelectorWidget(side=views.SIDE_B),
                    },
                },
            },
            "table": {
                "tabs": {
                    "main": QtWidgets.QTabWidget(),
                    "comparer": views.ComparingTable(),
                },
            },
            "statusLine":
            widgets.StatusLineWidget(main_logger, self),
        })

        with widget.pin("top") as top:
            layout = QtWidgets.QHBoxLayout(top["main"])
            layout.addWidget(top["label"])
            layout.addWidget(top["line"])

        with widget.pin("ctrl.tabs.select") as selectors:
            layout = QtWidgets.QHBoxLayout(selectors["main"])
            layout.addWidget(selectors["selectorA"])
            layout.addSpacing(-12)
            layout.addWidget(selectors["selectorB"])
            layout.setContentsMargins(2, 2, 2, 2)

        with widget.pin("ctrl.tabs") as ctrl:
            icon_1 = lib.icon("hand-o-right", "white")
            icon_2 = lib.icon("bullseye", "#BEBEBE")
            ctrl["main"].addTab(ctrl["select"]["main"], icon_1, "Select")
            ctrl["main"].addTab(ctrl["focus"], icon_2, "Focus")
            ctrl["main"].setTabPosition(QtWidgets.QTabWidget.West)

        with widget.pin("table.tabs") as table:
            icon = lib.icon("adjust", "#BEBEBE")
            table["main"].addTab(table["comparer"], icon, "Compare")
            table["main"].setTabPosition(QtWidgets.QTabWidget.West)

        layout = QtWidgets.QVBoxLayout(widget["main"])
        layout.addWidget(widget["top"]["main"])
        layout.addWidget(widget["ctrl"]["tabs"]["main"])
        layout.addWidget(widget["table"]["tabs"]["main"], stretch=True)
        layout.addWidget(widget["statusLine"])
        layout.setContentsMargins(4, 4, 4, 4)

        tab = self.page["tab"]

        # Add Tab
        name = "New %d" % tab.count()
        index = tab.addTab(widget["main"], name)
        tab.setCurrentIndex(index)
        widget["top"]["line"].setText(name)

        self.page["tables"].append(widget)

        # Connect
        with widget.pin("table.tabs") as table:
            with widget.pin("ctrl.tabs.select") as selectors:
                selectors["selectorA"].connect_comparer(table["comparer"])
                selectors["selectorB"].connect_comparer(table["comparer"])

            with widget.pin("ctrl.tabs") as ctrl:
                table["comparer"].picked.connect(ctrl["focus"].on_picked)
                ctrl["main"].currentChanged.connect(
                    ctrl["focus"].focus_enabled)
                ctrl["main"].currentChanged.connect(
                    table["comparer"].focus_enabled)

            with widget.pin("top") as top:
                top["line"].textChanged.connect(
                    lambda text: tab.setTabText(index, text))