def __init__(self): """ Toolbar for the Room list side panel tab """ QToolBar.__init__(self) # Widgets self.delete_btn = QPushButton() self.delete_btn.setIcon(get_icon("del")) self.delete_btn.setIconSize(QSize(35, 35)) self.delete_btn.setToolTip(tr("btn_suppr")) self.delete_btn.setEnabled(False) self.add_widget = ViewAddWidget(self.delete_btn) self.sig_delete: Signal = None self.delete_btn.clicked.connect(lambda: self.sig_delete.emit()) # Layout self.addWidget(self.add_widget) # Empty space to align the about button to the right spacer = QWidget() spacer.setStyleSheet("background-color: transparent;") spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.addWidget(spacer) self.addWidget(self.delete_btn) self.__set_style()
def __init__(self): """ Toolbar for the attributes list side panel tab """ QToolBar.__init__(self) self.add_widget = ViewAddAttributeWidget() self.addWidget(self.add_widget) self.__set_style()
def __init__(self): QToolBar.__init__(self) self.back = QPushButton("back") self.next = QPushButton("next") self.reload = QPushButton("reload") self.url_box = QLineEdit(self) self.url_box.setClearButtonEnabled(True) self.addWidget(self.back) self.addWidget(self.next) self.addWidget(self.reload) self.addWidget(self.url_box)
def __init__(self): """ Toolbar for the students list side panel tab """ QToolBar.__init__(self) self.current_group: str = None self.__config_mode = False # Widgets self.combo_groups = QComboBox() self.create_field = ViewAddLine() self.config_action_menu = ViewMenuButton( "Actions", self.create_field.show_field, [(tr("grp_action_import_csv"), "import_csv"), (tr("grp_action_create_group"), "create_group"), (tr("grp_action_del_group"), "delete_group"), 'sep', (tr("grp_action_create_student"), "create_student"), (tr("grp_action_del_student"), "killstudent"), 'sep', (tr("grp_action_auto_placement"), "auto_place")]) self.sort_actions_menu = ViewMenuButton( "Tri", self.create_field.show_field, [ (tr("grp_action_sort_asc"), "sort_asc"), (tr("grp_action_sort_desc"), "sort_desc"), (tr("grp_action_sort_by_place") + " Z", "sort_desks_Z"), (tr("grp_action_sort_by_place") + " 2", "sort_desks_2"), (tr("grp_action_sort_by_place") + " U", "sort_desks_U"), ]) # Signals self.sig_combo_changed: Signal = None self.combo_groups.activated.connect(self.on_group_changed) # Layout self.a_combo = self.addWidget(self.combo_groups) self.a_conf_menu = self.addWidget(self.config_action_menu) self.a_sort_menu = self.addWidget(self.sort_actions_menu) self.addWidget(self.create_field) self.__set_style()
def __init__(self): QToolBar.__init__(self) exitAction = QAction(QtGui.QIcon("resources/icons/exit.png"), "exit", self) exitAction.setShortcut('Ctrl+E') exitAction.triggered.connect(self.exit_action) self.addAction(exitAction) newAction = QAction( QtGui.QIcon("resources/icons/icons8-add-file-100.png"), "new", self) newAction.setShortcut('Ctrl+N') newAction.triggered.connect(self.new_file) self.addAction(newAction) saveAction = QAction( QtGui.QIcon("resources/icons/icons8-save-100.png"), "save", self) saveAction.setShortcut('Ctrl+S') saveAction.triggered.connect(self.save_file) self.addAction(saveAction)
def __init__(self, parent, name, data, debug_state): if not type(data) == binaryninja.binaryview.BinaryView: raise Exception('expected widget data to be a BinaryView') self.bv = data self.debug_state = debug_state QToolBar.__init__(self, parent) # TODO: Is there a cleaner way to do this? self.setStyleSheet(""" QToolButton{padding: 4px 14px 4px 14px; font-size: 14pt;} QToolButton:disabled{color: palette(alternate-base)} """) self.actionRun = QAction("Run", self) self.actionRun.triggered.connect(lambda: self.perform_run()) self.actionRestart = QAction("Restart", self) self.actionRestart.triggered.connect(lambda: self.perform_restart()) self.actionQuit = QAction("Quit", self) self.actionQuit.triggered.connect(lambda: self.perform_quit()) self.actionAttach = QAction("Attach... (todo)", self) self.actionAttach.triggered.connect(lambda: self.perform_attach()) self.actionDetach = QAction("Detach", self) self.actionDetach.triggered.connect(lambda: self.perform_detach()) self.actionSettings = QAction("Settings...", self) self.actionSettings.triggered.connect(lambda: self.perform_settings()) self.actionPause = QAction("Pause", self) self.actionPause.triggered.connect(lambda: self.perform_pause()) self.actionResume = QAction("Resume", self) self.actionResume.triggered.connect(lambda: self.perform_resume()) self.actionStepInto = QAction("Step Into", self) self.actionStepInto.triggered.connect(lambda: self.perform_step_into()) self.actionStepOver = QAction("Step Over", self) self.actionStepOver.triggered.connect(lambda: self.perform_step_over()) self.actionStepReturn = QAction("Step Return", self) self.actionStepReturn.triggered.connect( lambda: self.perform_step_return()) # session control menu self.controlMenu = QMenu("Process Control", self) self.controlMenu.addAction(self.actionRun) self.controlMenu.addAction(self.actionRestart) self.controlMenu.addAction(self.actionQuit) self.controlMenu.addSeparator() # TODO: Attach to running process # self.controlMenu.addAction(self.actionAttach) self.controlMenu.addAction(self.actionDetach) # TODO: Switch adapter/etc (could go in regular settings) self.controlMenu.addSeparator() self.controlMenu.addAction(self.actionSettings) self.btnControl = QToolButton(self) self.btnControl.setMenu(self.controlMenu) self.btnControl.setPopupMode(QToolButton.MenuButtonPopup) self.btnControl.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.btnControl.setDefaultAction(self.actionRun) self.addWidget(self.btnControl) # execution control buttons self.addAction(self.actionPause) self.addAction(self.actionResume) self.addAction(self.actionStepInto) self.addAction(self.actionStepOver) # TODO: Step until returning from current function self.addAction(self.actionStepReturn) self.threadMenu = QMenu("Threads", self) self.btnThreads = QToolButton(self) self.btnThreads.setMenu(self.threadMenu) self.btnThreads.setPopupMode(QToolButton.InstantPopup) self.btnThreads.setToolButtonStyle(Qt.ToolButtonTextOnly) self.addWidget(self.btnThreads) self.set_thread_list([]) self.editStatus = QLineEdit('INACTIVE', self) self.editStatus.setReadOnly(True) self.editStatus.setAlignment(QtCore.Qt.AlignCenter) self.addWidget(self.editStatus) # disable buttons self.set_actions_enabled(Run=True, Restart=False, Quit=False, Attach=True, Detach=False, Pause=False, Resume=False, StepInto=False, StepOver=False, StepReturn=False) self.set_resume_pause_action("Pause")
def __init__(self, parent, name, data, debug_state): if not type(data) == BinaryView: raise Exception('expected widget data to be a BinaryView') self.bv = data self.debug_state = debug_state QToolBar.__init__(self, parent) # TODO: Is there a cleaner way to do this? self.setStyleSheet(""" QToolButton{padding: 4px 14px 4px 14px; font-size: 14pt;} QToolButton:disabled{color: palette(alternate-base)} """) self.actionRun = QAction("Run", self) self.actionRun.triggered.connect(lambda: self.perform_run()) self.actionRun.setIcon(load_icon('run.svg')) self.actionRestart = QAction("Restart", self) self.actionRestart.triggered.connect(lambda: self.perform_restart()) self.actionRestart.setIcon(load_icon('restart.svg')) self.actionQuit = QAction("Quit", self) self.actionQuit.triggered.connect(lambda: self.perform_quit()) self.actionQuit.setIcon(load_icon('cancel.svg')) self.actionAttach = QAction("Attach", self) self.actionAttach.triggered.connect(lambda: self.perform_attach()) self.actionAttach.setIcon(load_icon('connect.svg')) self.actionDetach = QAction("Detach", self) self.actionDetach.triggered.connect(lambda: self.perform_detach()) self.actionDetach.setIcon(load_icon('disconnect.svg')) self.actionSettings = QAction("Settings...", self) self.actionSettings.triggered.connect(lambda: self.perform_settings()) self.actionPause = QAction("Pause", self) self.actionPause.triggered.connect(lambda: self.perform_pause()) self.actionPause.setIcon(load_icon('pause.svg')) self.actionResume = QAction("Resume", self) self.actionResume.triggered.connect(lambda: self.perform_resume()) self.actionResume.setIcon(load_icon('resume.svg')) self.actionStepIntoAsm = QAction("Step Into (Assembly)", self) self.actionStepIntoAsm.triggered.connect( lambda: self.perform_step_into_asm()) self.actionStepIntoAsm.setIcon(load_icon('stepinto.svg')) self.actionStepIntoIL = QAction("Step Into", self) self.actionStepIntoIL.triggered.connect( lambda: self.perform_step_into_il()) self.actionStepIntoIL.setIcon(load_icon('stepinto.svg')) self.actionStepOverAsm = QAction("Step Over (Assembly)", self) self.actionStepOverAsm.triggered.connect( lambda: self.perform_step_over_asm()) self.actionStepOverAsm.setIcon(load_icon('stepover.svg')) self.actionStepOverIL = QAction("Step Over", self) self.actionStepOverIL.triggered.connect( lambda: self.perform_step_over_il()) self.actionStepOverIL.setIcon(load_icon('stepover.svg')) self.actionStepReturn = QAction("Step Return", self) self.actionStepReturn.triggered.connect( lambda: self.perform_step_return()) self.actionStepReturn.setIcon(load_icon('stepout.svg')) # session control menu self.controlMenu = QMenu("Process Control", self) self.controlMenu.addAction(self.actionRun) self.controlMenu.addAction(self.actionRestart) self.controlMenu.addAction(self.actionQuit) self.controlMenu.addSeparator() self.controlMenu.addAction(self.actionAttach) self.controlMenu.addAction(self.actionDetach) self.controlMenu.addSeparator() self.controlMenu.addAction(self.actionSettings) self.stepIntoMenu = QMenu("Step Into", self) self.stepIntoMenu.addAction(self.actionStepIntoIL) self.stepIntoMenu.addAction(self.actionStepIntoAsm) self.stepOverMenu = QMenu("Step Over", self) self.stepOverMenu.addAction(self.actionStepOverIL) self.stepOverMenu.addAction(self.actionStepOverAsm) self.btnControl = QToolButton(self) self.btnControl.setMenu(self.controlMenu) self.btnControl.setPopupMode(QToolButton.MenuButtonPopup) self.btnControl.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.btnControl.setDefaultAction(self.actionRun) self.addWidget(self.btnControl) # execution control buttons self.btnPauseResume = QToolButton(self) self.btnPauseResume.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.btnPauseResume.setDefaultAction(self.actionPause) self.addWidget(self.btnPauseResume) #self.addAction(self.actionPause) #self.addAction(self.actionResume) self.btnStepInto = QToolButton(self) self.btnStepInto.setMenu(self.stepIntoMenu) self.btnStepInto.setPopupMode(QToolButton.MenuButtonPopup) self.btnStepInto.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.btnStepInto.setDefaultAction(self.actionStepIntoIL) self.addWidget(self.btnStepInto) self.btnStepOver = QToolButton(self) self.btnStepOver.setMenu(self.stepOverMenu) self.btnStepOver.setPopupMode(QToolButton.MenuButtonPopup) self.btnStepOver.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.btnStepOver.setDefaultAction(self.actionStepOverIL) self.addWidget(self.btnStepOver) # TODO: Step until returning from current function self.btnStepReturn = QToolButton(self) self.btnStepReturn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.btnStepReturn.setDefaultAction(self.actionStepReturn) self.addWidget(self.btnStepReturn) #self.addAction(self.actionStepReturn) self.threadMenu = QMenu("Threads", self) self.btnThreads = QToolButton(self) self.btnThreads.setMenu(self.threadMenu) self.btnThreads.setPopupMode(QToolButton.InstantPopup) self.btnThreads.setToolButtonStyle(Qt.ToolButtonTextOnly) self.addWidget(self.btnThreads) self.set_thread_list([]) self.editStatus = QLineEdit('INACTIVE', self) self.editStatus.setReadOnly(True) self.editStatus.setAlignment(QtCore.Qt.AlignCenter) self.addWidget(self.editStatus) # disable buttons self.set_actions_enabled(Run=self.can_exec(), Restart=False, Quit=False, Attach=self.can_connect(), Detach=False, Pause=False, Resume=False, StepInto=False, StepOver=False, StepReturn=False) self.set_resume_pause_action("Pause") self.set_default_process_action( "Attach" if self.can_connect() else "Run")
def __init__(self): """ Main ToolBar, providing features buttons that operates over the canvas. The callbacks methods provided by this class should be redirected towards any widget handling the associated process. """ QToolBar.__init__(self) self.sig_TBbutton = None self.config_mode = False # Buttons self.__btn_config = ToggleSwitchButton(self, "unlock", "lock", self.on_config_mode) self.__btn_magic = ToolBarButton( "unkwown", tr("btn_selection_filter"), lambda: self.sig_TBbutton.emit("filter_select")) self.__btn_perspective = ToolBarButton("teacher", tr("btn_change_perspective"), self.on_btn_perspective_clicked) self.__btn_shuffle = ToolBarButton("shuffle", tr("btn_shuffle"), self.on_btn_shuffle_clicked) self.__btn_select = ToolBarButton( "selection", tr("btn_select"), lambda: self.sig_TBbutton.emit("select")) self.__btn_choice = ToolBarButton( "choixvolontaire", tr("btn_choose_student"), lambda: self.sig_TBbutton.emit("choice")) self.__btn_attr_choice = ToolBarButton( "choixvolontaire_attr", tr("btn_choose_student_with_attr"), lambda: self.sig_TBbutton.emit("choice_attr")) self.__btn_delete = ToolBarButton( "corbeille", tr("btn_delete"), lambda: self.sig_TBbutton.emit("delete")) self.__btn_lot_change = ToolBarButton( "fill", tr("btn_lot_change"), lambda: self.sig_TBbutton.emit("lot_change")) self.__btn_png = ToolBarButton("camera", tr("export_PNG"), lambda: self.sig_TBbutton.emit("print")) self.__btn_qr = ToolBarButton( "qr-code", tr("btn_qr"), lambda: self.sig_TBbutton.emit("show_qr")) self.__btn_export_csv = ToolBarButton("csv", tr("export_CSV"), self.on_export_csv) self.__btn_config_edition = ToolBarButton("config", tr("btn_config"), self.on_edit_config) self.__btn_about = ToolBarButton( "info", tr("btn_about"), self.open_about_box) # Keep at the end self.actions_table = { self.__btn_config: None, self.__btn_magic: None, self.__btn_perspective: None, self.__btn_shuffle: None, self.__btn_select: None, self.__btn_choice: None, self.__btn_attr_choice: None, self.__btn_delete: None, self.__btn_lot_change: None, self.__btn_png: None, self.__btn_qr: None, self.__btn_export_csv: None, self.__btn_config_edition: None, self.__btn_about: None } # Signals self.sig_enable_animation_btns.connect(self.enable_animation_btns) self.__init_widgets() self.__set_style()
def __init__(self, title=None, parent=None, dock=None): QToolBar.__init__(self, title, parent) self.connect_db = ConnectDatabase(parent) self.init_toolbar_buttons()