Example #1
0
    def initUI(self):

        self.scopeSelector = QComboBox()
        self.scopeSelector.addItem("Layout", FileSelector.ScopeLayout)
        self.scopeSelector.addItem("Device and RF", FileSelector.ScopeDevice)
        self.scopeSelector.addItem("Firmware Update",
                                   FileSelector.ScopeFirmware)
        # self.scopeSelector.addItem("All", FileSelector.ScopeAll)

        self.scopeSelector.currentIndexChanged.connect(self.scopeUpdate)

        self.layoutSettings = LayoutSettingsScope()
        self.deviceSettings = DeviceSettingsScope()
        self.firmwareSettings = FirmwareSettingsScope()

        self.scope = None

        self.layout = QVBoxLayout()
        self.layout.addWidget(self.scopeSelector)

        self.stackedLayout = QStackedLayout()
        self.stackedLayout.addWidget(self.layoutSettings)
        self.stackedLayout.addWidget(self.deviceSettings)
        self.stackedLayout.addWidget(self.firmwareSettings)

        self.layout.addLayout(self.stackedLayout)

        self.setMinimumSize(0, 300)

        self.setLayout(self.layout)
Example #2
0
    def __init__(self, main_widget_or_layout, side_widgets, parent=None):
        super(VerticalSideBarLayout, self).__init__(parent)

        self.stars = []

        self.signal_mapper_tab_changed = QSignalMapper()
        self.signal_mapper_tab_changed.mapped.connect(self._tab_changed)

        self.side_widgets = side_widgets

        self.stack = QStackedLayout(self)
        for w in side_widgets:
            self.stack.addWidget(w)

        self.stack.setCurrentIndex(-1)

        # I need a widget so that I can show/hide it.
        # (we can't do that with a layout)
        self.stack_widget = QWidget(self)
        self.stack_widget.setLayout(self.stack)

        layout = QHBoxLayout()
        if isinstance(main_widget_or_layout, QWidget):
            layout.addWidget(main_widget_or_layout)
        else:
            layout.addLayout(main_widget_or_layout)

        # The panel layout is made of
        # stack of widgets, vertical separator, buttons for widget selection
        panel_layout = QHBoxLayout()
        panel_layout.addWidget(self.stack_widget)

        self.separator = VerticalSeparator(self)
        panel_layout.addWidget(self.separator)

        self.buttons_layout = self._make_tabs_button(
            side_widgets,
            ["appbar.cabinet.files.png", "thumb-up-3x.png"])  # ,"comments.png"
        panel_layout.addLayout(self.buttons_layout)

        # The panel layout is wrapped into an inline sub frame

        isf = InlineSubFrame(panel_layout, parent=self)
        isf.setObjectName("HorseSubFrame")  # ""HorseTightFrame")
        isf.layout().setContentsMargins(2, 2, 2, 2)

        # isf.setObjectName("HorseTightFrame")
        layout.addWidget(isf)

        # layout.setStretch(0,3)
        # layout.setStretch(1,2)

        self.setLayout(layout)
        self._hide_content_pane()
Example #3
0
    def __init__(self,
                 parent,
                 find_order_action_slot,
                 create_delivery_slip_action,
                 show_prices=True):
        super(OrderOverviewWidget, self).__init__(parent)
        self.set_panel_title(_("Order Overview"))
        self.base_date = date.today()
        self.touched_row = set()

        # maps order_id -> monthlygoal (true or false)
        self.touched_orders = dict()

        self.create_delivery_slip_action = create_delivery_slip_action

        # self.edit_action = QAction(_('Edit order'),self)
        # self.edit_action.triggered.connect( self.edit_order_slot)

        # self.past_orders_overview = PastOrdersOverviewWidget(None,None,None,show_prices)
        self.current_orders_overview = CurrentOrdersOverviewWidget(
            None, None, None, show_prices)
        self.current_orders_overview.order_part_activated_signal.connect(
            self.order_part_activated_slot)
        self.current_orders_overview.order_parts_changed.connect(
            self.order_parts_changed_slot)

        # self.past_orders_overview.order_part_activated_signal.connect(self.order_part_activated_slot)

        self.vlayout = QVBoxLayout(self)

        # self.select_active_orders = QRadioButton(_("Production"),self)
        # self.select_active_orders.setToolTip(_("Order that are in production (as specified by their state)"))
        #
        # self.select_preorders = QRadioButton(_("Preorders"),self)
        #
        # self.select_orders_on_hold = QRadioButton(_("Dormant"),self)
        # self.select_orders_on_hold.setToolTip(_("Orders that are either on hold or to be defined (as specified by their state)"))
        # self.select_orders_finished = QRadioButton(_("Finished"),self)
        # self.select_orders_finished.setToolTip(_("Orders that were marked as completed this month"))
        #
        # self.select_orders_aborted = QRadioButton(_("Aborted"),self)
        # self.select_orders_aborted.setToolTip(_("Orders that were prematurely cancelled"))

        # I need a button group which is exclusive but
        # which also allows *all* the buttons to bl cleared
        # at once. The regular exclusive flags forces
        # us to have always one button checked...

        # self.button_group = QButtonGroup(self)
        # self.button_group.addButton(self.select_active_orders)
        # self.button_group.addButton(self.select_preorders)
        # self.button_group.addButton(self.select_orders_on_hold)
        # self.button_group.addButton(self.select_orders_finished)
        # self.button_group.addButton(self.select_orders_aborted)
        # self.button_group.setExclusive(False)
        # self.button_group.buttonClicked.connect(self.button_clicked)

        # I need to be able to unselect all buttons (in case I use the super filter)

        # self.select_active_orders.setAutoExclusive(False)
        # self.select_preorders.setAutoExclusive(False)
        # self.select_orders_on_hold.setAutoExclusive(False)
        # self.select_orders_finished.setAutoExclusive(False)
        # self.select_orders_aborted.setAutoExclusive(False)

        # self.select_active_orders.setChecked(True) # Preselects active order

        self.persistent_filter = PersistentFilter(
            FilterQuery.ORDER_PARTS_OVERVIEW_FAMILY, find_suggestions)
        self.persistent_filter.apply_filter.connect(self.super_filter)

        navigation = NavBar(
            self, [(self.persistent_filter.get_filters_combo(), None),
                   (_("Edit filter"), self._toggle_edit_filters),
                   (_("Find"), find_order_action_slot)])

        self.persistent_filter.hide()

        # self.persistent_filter.select_default_filter()

        # navigation.buttons[7].setObjectName("specialMenuButton")

        # self.save_filter_action = QAction(_("Save filter"),self)
        # self.save_filter_action.triggered.connect( self.save_filter_action_slot)

        # self.save_filter_as_action = QAction(_("Save filter as"),self)
        # self.save_filter_as_action.triggered.connect( self.save_filter_as_action_slot)

        # self.delete_filter_action = QAction(_("Delete filter"),self)
        # self.delete_filter_action.triggered.connect( self.delete_filter_action_slot)

        def action_to_button(action):
            b = QPushButton(action.text())
            b.clicked.connect(action.trigger)
            return b

        # self.action_menu = QMenu(navigation.buttons[8])

        # self.filter_menu = QMenu("Filter menu")
        # self.filter_menu.addAction("filter alpha")
        # self.filter_menu.addAction("filter beta")

        # list_actions = [ (self.save_filter_action,None,None),
        #                  (self.save_filter_as_action,None,None),
        #                  (self.delete_filter_action,       None,None),
        #                  (self.filter_menu,       None,None) ]

        # populate_menu(self.action_menu, self, list_actions, context=Qt.WidgetWithChildrenShortcut)

        self.title_box = TitleWidget(
            _("Orders overview"), self,
            navigation)  # + date.today().strftime("%B %Y"),self)

        self.vlayout.addWidget(self.title_box)

        self.vlayout.addWidget(self.persistent_filter)

        # hlayout_god_mode = QHBoxLayout()
        # hlayout_god_mode.addWidget(QLabel(_("Filter :")))

        # self.filter_name = QComboBox()
        # self.filter_name.setMinimumWidth(100)
        # # self.filter_name.setEditable(True)

        # I use activated so that reselecting the same index
        # triggers an action (for example, clears a badly
        # edited filter)

        # self.filter_name.activated.connect(self.filter_activated_slot)

        # hlayout_god_mode.addWidget(self.filter_name)

        # hlayout_god_mode.addWidget(QLabel(_("Query :")))

        # hlayout_god_mode.addWidget(self.super_filter_entry)

        # # self.completion.setParent(self.super_filter_entry)
        # self.super_filter_entry.cursorPositionChanged.connect(self.cursorPositionChanged_slot)
        # # self.super_filter_entry.editingFinished.connect(self.completEditFinished_slot)
        # # self.super_filter_entry.returnPressed.connect(self.super_filter)

        # self.share_filter = QCheckBox(_("Shared"))
        # hlayout_god_mode.addWidget(self.share_filter)

        # self.super_filter_button = QPushButton(_("Filter"))
        # hlayout_god_mode.addWidget(self.super_filter_button)

        # self.save_filter_button = action_to_button(self.save_filter_action)
        # hlayout_god_mode.addWidget(self.save_filter_button)

        # hlayout_god_mode.addWidget(action_to_button(self.save_filter_as_action))

        # self.delete_filter_button = action_to_button(self.delete_filter_action)
        # hlayout_god_mode.addWidget(self.delete_filter_button)

        # self.vlayout.addLayout(hlayout_god_mode)

        # self.super_filter_button.clicked.connect(self.super_filter)
        # self.select_active_orders.clicked.connect(self.refresh_action)
        # self.select_preorders.clicked.connect(self.refresh_action)
        # self.select_orders_on_hold.clicked.connect(self.refresh_action)
        # self.select_orders_finished.clicked.connect(self.refresh_action)
        # self.select_orders_aborted.clicked.connect(self.refresh_action)

        self.current_orders_overview.data_changed_signal.connect(
            self.set_title)

        self.stack_layout = QStackedLayout()
        self.stack_layout.addWidget(self.current_orders_overview)
        # self.stack_layout.addWidget(self.past_orders_overview)

        self.vlayout.addLayout(self.stack_layout)
        self.setLayout(self.vlayout)

        # self._load_available_queries()
        self.persistent_filter.load_last_filter(configuration)
Example #4
0
 def testStackedReference(self):
     #QStackedLayout.addWidget reference count
     w = QWidget()
     self.checkLayoutReference(QStackedLayout(w))