def __init__(self, parent):
        QtGui.QWidget.__init__(self, parent)

        self.debug = False
        self.ogtGroup = None

        self.mainLayout = xwidgets.vlayout()
        self.setLayout(self.mainLayout)

        ## View Checkboxes
        self.topLay = xwidgets.hlayout(margin=5, spacing=5)
        self.mainLayout.addLayout(self.topLay)

        self.buttGroup = QtGui.QButtonGroup(self)
        self.buttGroup.setExclusive(True)

        self.radFixed = QtGui.QRadioButton("Show Fixed Values")
        self.radFixed.setChecked(True)
        self.topLay.addWidget(self.radFixed)
        self.buttGroup.addButton(self.radFixed, GroupSourceGridModel.FIXED)

        self.radRaw = QtGui.QRadioButton("Show Raw Values")
        self.topLay.addWidget(self.radRaw)
        self.buttGroup.addButton(self.radRaw, GroupSourceGridModel.RAW)

        self.topLay.addStretch(30)
        self.buttGroup.buttonClicked.connect(self.on_view_raw_clicked)

        ## Main Table
        self.table = QtGui.QTableView()
        self.mainLayout.addWidget(self.table, 0)

        self.model = QtGui.QStandardItemModel()
        self.table.setModel(self.model)
Example #2
0
    def __init__(self,
                 parent=None,
                 title=None,
                 width=None,
                 hide_labels=False,
                 is_group=False,
                 toggle_icons=False,
                 toggle_callback=None):
        QtGui.QWidget.__init__(self, parent)

        if width:
            self.setFixedWidth(width)

        self.icon_on = Ico.FilterOn
        self.icon_off = Ico.FilterOff
        self.toggle_icons = toggle_icons
        self.toggle_callback = toggle_callback
        self.hide_labels = hide_labels

        self.buttonGroup = None
        self.is_group = is_group
        if self.is_group:
            self.buttonGroup = QtGui.QButtonGroup()
            self.buttonGroup.setExclusive(True)
            if self.toggle_callback:
                self.buttonGroup.buttonClicked.connect(self.on_button_clicked)

        self.group_var = None
        self.callback = None
        self.show_icons = True
        self.icon_size = 12
        self.bg_color = '#333333'

        ## Main Layout
        mainLayout = QtGui.QVBoxLayout()
        mainLayout.setContentsMargins(0, 0, 0, 0)
        mainLayout.setSpacing(0)
        self.setLayout(mainLayout)

        ## Label
        self.label = QtGui.QLabel()
        bg = "#8F8F8F"  ##eeeeee"
        fg = "#eeeeee"  ##333333"
        lbl_sty = "background: %s; " % bg  # qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #fefefe, stop: 1 #CECECE);"
        lbl_sty += " color: %s; font-size: 8pt; padding: 1px;" % fg  # border: 1px outset #cccccc;"
        self.label.setStyleSheet(lbl_sty)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        mainLayout.addWidget(self.label)

        ## Toolbar
        self.toolbar = QtGui.QToolBar()
        self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
        self.toolbar.setFixedHeight(30)

        mainLayout.addWidget(self.toolbar)

        if title:
            self.set_title(title)
Example #3
0
    def __init__(self, parent=None):
        super(MainUI, self).__init__(parent)

        # setup ui
        self.setupUi(self)

        # hide title bar
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        # add a size grip
        size_grip = QtGui.QSizeGrip(self)
        self.sizegrip_layout.addWidget(
            size_grip, 0, QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight)
        # shadow effect
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.shadow = QtGui.QGraphicsDropShadowEffect(self)
        self.shadow.setBlurRadius(15)
        self.shadow.setOffset(0, 0)
        self.main_frame.setGraphicsEffect(self.shadow)

        # enable drag and move
        self.title_bar_grp.last_clicked_pos = self.user_info_grp.last_clicked_pos = None
        self.title_bar_grp.main_dialog = self.user_info_grp.main_dialog = self
        cgtk_py.implant_method(self.title_bar_grp, mousePressEvent,
                               "mousePressEvent")
        cgtk_py.implant_method(self.title_bar_grp, mouseMoveEvent,
                               "mouseMoveEvent")
        cgtk_py.implant_method(self.title_bar_grp, mouseReleaseEvent,
                               "mouseReleaseEvent")
        cgtk_py.implant_method(self.user_info_grp, mousePressEvent,
                               "mousePressEvent")
        cgtk_py.implant_method(self.user_info_grp, mouseMoveEvent,
                               "mouseMoveEvent")
        cgtk_py.implant_method(self.user_info_grp, mouseReleaseEvent,
                               "mouseReleaseEvent")

        # make tab button radio
        self.tab_btn_grp = QtGui.QButtonGroup()
        self.tab_btn_grp.addButton(self.action_btn)
        self.tab_btn_grp.addButton(self.task_btn)
        self.tab_btn_grp.addButton(self.publish_btn)
        self.tab_btn_grp.addButton(self.chat_btn)
        self.tab_btn_grp.setExclusive(True)

        # change tab page
        self.tab_btn_grp.buttonClicked.connect(self.tab_change)
Example #4
0
    def __init__(self, parent=None, mode=None):
        QtGui.QWidget.__init__(self, parent)

        self.debug = False
        self.mode = mode
        if self.mode == None:
            freak_out()

        self.mainLayout = QtGui.QVBoxLayout()
        self.mainLayout.setSpacing(0)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)

        self.toolBar = QtGui.QToolBar()
        self.mainLayout.addWidget(self.toolBar)

        self.buttGroupFilters = QtGui.QButtonGroup(self)
        self.buttGroupFilters.setExclusive(False)

        self.buttWarnings = xwidgets.XToolButton(text="Show Warnings",
                                                 checkable=True,
                                                 checked=True)
        self.buttGroupFilters.addButton(self.buttWarnings)

        self.buttErrors = xwidgets.XToolButton(text="Show Errors",
                                               checkable=True,
                                               checked=True)
        self.buttGroupFilters.addButton(self.buttErrors)

        self.buttGroupFilters.buttonClicked.connect(self.on_update_filter)

        self.toolBar.addWidget(self.buttWarnings)
        self.toolBar.addWidget(self.buttErrors)

        #=============================
        ## Set up tree
        self.tree = QtGui.QTreeView()
        self.mainLayout.addWidget(self.tree, 30)

        self.model = ErrorsListModel(mode=self.mode)
        self.tree.setModel(self.model)

        self.tree.setRootIsDecorated(False)
        self.tree.header().setStretchLastSection(True)
        #self.tree.setSortingEnabled(True)
        """
        hi = self.tree.headerItem()
        hi.setText(C_ERR.err, "Type")
        hi.setText(C_ERR.lidx, "Line")
        hi.setText(C_ERR.cidx, "Col")
        hi.setText(C_ERR.rule, "Rule")
        hi.setText(C_ERR.highlight, "Rule")
        hi.setText(C_ERR.descr, "Description")
        hi.setText(C_ERR.search, "search")
        """

        self.tree.setColumnHidden(C_ERR.err, True)
        self.tree.setColumnHidden(C_ERR.search, True)
        self.tree.setColumnWidth(C_ERR.lidx, 30)
        self.tree.setColumnWidth(C_ERR.cidx, 30)
        self.tree.setColumnWidth(C_ERR.rule, 50)
        self.tree.setColumnWidth(C_ERR.highlight, 8)
Example #5
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.debug = False
        self.setObjectName("AGS4GroupsBrowser")

        self.proxy = QtGui.QSortFilterProxyModel()
        self.proxy.setSourceModel(G.ags.modelGroups)
        self.proxy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)

        ##===============================================
        self.mainLayout = QtGui.QVBoxLayout()
        self.mainLayout.setSpacing(0)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)

        self.splitter = QtGui.QSplitter(self)
        self.splitter.setObjectName(self.objectName() + "groups_splitter")
        self.mainLayout.addWidget(self.splitter)

        ##############################################################################
        leftWidget = QtGui.QWidget()
        leftLayout = xwidgets.vlayout()
        leftWidget.setLayout(leftLayout)
        self.splitter.addWidget(leftWidget)

        self.tabFilter = QtGui.QTabWidget()
        leftLayout.addWidget(self.tabFilter)

        ##================================
        ## Filter
        grpFilter = xwidgets.GroupGridBox()
        mmm = 5
        grpFilter.setContentsMargins(mmm, mmm, mmm, mmm)
        # grpFilter.grid.setSpacing(5)
        # grpFilter.setFixedWidth(150)
        self.tabFilter.addTab(grpFilter, "Filter")

        # filter combo
        self.buttGroupFilter = QtGui.QButtonGroup()
        self.buttGroupFilter.setExclusive(True)

        #self.comboSearchFor = QtGui.QComboBox()
        #grpFilter.addWidget(self.comboSearchFor)
        for ridx, s in enumerate(["Code", "Description",
                                  "Code + Description"]):
            rad = QtGui.QRadioButton()
            rad.setText(s)
            grpFilter.grid.addWidget(rad, ridx, 0, 1, 2)
            self.buttGroupFilter.addButton(rad, 3 if ridx == 2 else ridx)

        self.buttGroupFilter.button(0).setChecked(True)
        self.buttGroupFilter.buttonClicked.connect(self.on_filter_col)

        #self.comboSearchFor.addItem("Code", CG.code)
        #self.comboSearchFor.addItem("Description", CG.description)
        #self.comboSearchFor.addItem("Code + Description", CG.search)
        #self.comboSearchFor.setMaximumWidth(150)
        # clear button
        self.buttClear = xwidgets.ClearButton(self,
                                              callback=self.on_clear_filter)
        grpFilter.grid.addWidget(self.buttClear, 3, 0)

        ## filter text
        self.txtFilter = QtGui.QLineEdit()
        self.txtFilter.setMaximumWidth(100)
        grpFilter.grid.addWidget(self.txtFilter, 3, 1)
        self.txtFilter.textChanged.connect(self.on_txt_changed)

        grpFilter.grid.addWidget(QtGui.QLabel(), 4, 2)

        #grpFilter.layout.addStretch(3)
        grpFilter.grid.setColumnStretch(0, 0)
        grpFilter.grid.setColumnStretch(1, 10)

        ##================================
        ## Classification Tree
        topLayout = QtGui.QVBoxLayout()
        leftLayout.addLayout(topLayout, 0)

        self.treeClass = QtGui.QTreeView()
        self.tabFilter.addTab(self.treeClass, "By classification")
        self.treeClass.setModel(G.ags.modelClasses)
        self.treeClass.setRootIsDecorated(False)

        self.treeClass.setExpandsOnDoubleClick(False)

        self.treeClass.setFixedHeight(220)

        self.treeClass.selectionModel().selectionChanged.connect(
            self.on_class_tree_selected)

        ##== Groups Tree
        self.treeGroups = QtGui.QTreeView()
        leftLayout.addWidget(self.treeGroups, 10)
        self.treeGroups.setModel(self.proxy)

        self.treeGroups.setUniformRowHeights(True)
        self.treeGroups.setRootIsDecorated(False)
        self.treeGroups.setAlternatingRowColors(True)

        self.treeGroups.header().setStretchLastSection(True)
        self.treeGroups.setColumnHidden(CG.search, True)
        self.treeGroups.setColumnWidth(CG.code, 120)
        self.treeGroups.setColumnWidth(CG.description, 250)

        self.treeGroups.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.treeGroups.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)

        self.treeGroups.setSortingEnabled(True)
        self.treeGroups.sortByColumn(CG.code)

        self.treeGroups.selectionModel().selectionChanged.connect(
            self.on_groups_tree_selected)

        self.agsGroupViewWidget = AGS4GroupViewWidget(self)
        self.splitter.addWidget(self.agsGroupViewWidget)

        self.splitter.setStretchFactor(0, 2)
        self.splitter.setStretchFactor(1, 5)
        G.settings.restore_splitter(self.splitter)
        self.splitter.splitterMoved.connect(self.on_splitter_moved)

        #self.statusBar = QtGui.QStatusBar()
        #self.mainLayout.addWidget(self.statusBar, 0)

        ##############################################################################
        rightWidget = QtGui.QWidget()
        rightLayout = xwidgets.vlayout()
        rightWidget.setLayout(rightLayout)
        self.splitter.addWidget(rightWidget)

        #self.agsHeadingDetailWidget = AGS4HeadingDetailWidget()
        #rightLayout.addWidget(self.agsHeadingDetailWidget)

        #self.init_setup()
        G.ags.sigLoaded.connect(self.on_loaded)

        self.txtFilter.setText("DETL")
Example #6
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.debug = True

        self.proxy = QtGui.QSortFilterProxyModel()
        self.proxy.setSourceModel(G.Ags.modelGroups)
        self.proxy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)

        ##===============================================
        self.mainLayout = QtGui.QVBoxLayout()
        self.mainLayout.setSpacing(0)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.mainLayout)

        self.splitter = QtGui.QSplitter()
        self.mainLayout.addWidget(self.splitter)

        ##############################################################################
        leftWidget = QtGui.QWidget()
        leftLayout = xwidgets.vlayout()
        leftWidget.setLayout(leftLayout)
        self.splitter.addWidget(leftWidget)

        ##================================
        ## Classification
        topLayout = QtGui.QHBoxLayout()
        leftLayout.addLayout(topLayout, 0)
        self.treeClass = QtGui.QTreeView()
        topLayout.addWidget(self.treeClass, 3)
        self.treeClass.setModel(G.Ags.modelClasses)
        self.treeClass.setRootIsDecorated(False)

        self.treeClass.setExpandsOnDoubleClick(False)

        self.treeClass.setFixedHeight(250)

        self.treeClass.selectionModel().selectionChanged.connect(
            self.on_class_selection)

        ##================================
        ## Filter Widget
        rLay = QtGui.QVBoxLayout()
        topLayout.addLayout(rLay)

        grpFilter = xwidgets.GroupGridBox("Filter by")
        #mmm = 20
        #grpFilter.setContentsMargins(mmm,mmm,mmm,mmm)
        grpFilter.grid.setSpacing(5)
        grpFilter.setFixedWidth(150)
        rLay.addWidget(grpFilter, 1)

        ## Buttons
        self.buttGrp = QtGui.QButtonGroup()
        self.buttGrp.setExclusive(True)
        self.connect(self.buttGrp, QtCore.SIGNAL("buttonClicked(int)"),
                     self.on_filter_col)

        row = 0
        self.buttFilterCode = QtGui.QRadioButton()
        grpFilter.grid.addWidget(self.buttFilterCode, row, 1)
        self.buttFilterCode.setText("Code")
        self.buttGrp.addButton(self.buttFilterCode, CG.code)

        row += 1
        self.buttFilterDesc = QtGui.QRadioButton()
        grpFilter.grid.addWidget(self.buttFilterDesc, row, 1)
        self.buttFilterDesc.setText("Description")
        self.buttGrp.addButton(self.buttFilterDesc, CG.description)

        row += 1
        self.buttFilterAll = QtGui.QRadioButton()
        grpFilter.grid.addWidget(self.buttFilterAll, row, 1)
        self.buttFilterAll.setText("Both")
        self.buttFilterAll.setChecked(True)
        self.buttGrp.addButton(self.buttFilterAll, CG.search)

        row += 1
        self.buttClear = xwidgets.ClearButton(self,
                                              callback=self.on_clear_filter)
        grpFilter.grid.addWidget(self.buttClear, row, 0)

        self.txtCode = QtGui.QLineEdit()
        self.txtCode.setMaximumWidth(100)
        grpFilter.grid.addWidget(self.txtCode, row, 1)
        self.txtCode.textChanged.connect(self.on_txt_changed)

        grpFilter.grid.setColumnStretch(0, 0)
        grpFilter.grid.setColumnStretch(1, 10)
        rLay.addStretch(1)

        ##===============================================
        self.tree = QtGui.QTreeView()
        leftLayout.addWidget(self.tree, 10)
        self.tree.setUniformRowHeights(True)
        self.tree.setRootIsDecorated(False)
        self.tree.setAlternatingRowColors(True)
        self.tree.setSortingEnabled(True)
        self.tree.setModel(self.proxy)
        self.tree.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)

        self.tree.header().setStretchLastSection(True)
        self.tree.setColumnHidden(CG.search, True)
        self.tree.setColumnHidden(CG.x_id, True)
        #self.tree.setColumnHidden(C.abbrev_id, True)

        self.tree.setColumnWidth(CG.code, 120)
        self.tree.setColumnWidth(CG.description, 250)
        #self.tree.setColumnWidth(CG.cls, 150)

        self.tree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.tree.selectionModel().selectionChanged.connect(
            self.on_tree_selected)

        self.tree.sortByColumn(CG.code)

        self.agsGroupViewWidget = AGS4_GroupViewWidget(self)
        self.splitter.addWidget(self.agsGroupViewWidget)

        self.splitter.setStretchFactor(0, 2)
        self.splitter.setStretchFactor(1, 5)
        #self.statusBar = StatusBar(self, False)
        #self.mainLayout.addWidget(self.statusBar, 0)

        ##############################################################################
        rightWidget = QtGui.QWidget()
        rightLayout = xwidgets.vlayout()
        rightWidget.setLayout(rightLayout)
        self.splitter.addWidget(rightWidget)

        self.agsHeadingDetailWidget = AGS4_HeadingDetailWidget()
        rightLayout.addWidget(self.agsHeadingDetailWidget)

        #self.init_setup()
        G.Ags.sigLoaded.connect(self.on_loaded)
        self.agsGroupViewWidget.sigHeadCodeSelected.connect(
            self.agsHeadingDetailWidget.load_heading)