Exemple #1
0
	def on_mnuMenuDelete_activate(self, *a):
		id = self.get_selected_menu()
		if MenuEditor.menu_is_global(id):
			text = _("Really delete selected global menu?")
		else:
			text = _("Really delete selected menu?")
		
		d = Gtk.MessageDialog(parent=self.editor.window,
			flags = Gtk.DialogFlags.MODAL,
			type = Gtk.MessageType.WARNING,
			buttons = Gtk.ButtonsType.OK_CANCEL,
			message_format = text,
		)
		
		if MenuEditor.menu_is_global(id):
			d.format_secondary_text(_("This action is not undoable!"))
		
		if d.run() == -5: # OK button, no idea where is this defined...
			if MenuEditor.menu_is_global(id):
				fname = os.path.join(get_menus_path(), id)
				try:
					os.unlink(fname)
				except Exception, e:
					log.error("Failed to remove %s: %s", fname, e)
			else:
				del self.app.current.menus[id]
				self.app.on_profile_modified()
			self.load_menu_list()
Exemple #2
0
    def on_mnuMenuDelete_activate(self, *a):
        id = self.get_selected_menu()
        if MenuEditor.menu_is_global(id):
            text = _("Really delete selected global menu?")
        else:
            text = _("Really delete selected menu?")

        d = Gtk.MessageDialog(
            parent=self.editor.window,
            flags=Gtk.DialogFlags.MODAL,
            type=Gtk.MessageType.WARNING,
            buttons=Gtk.ButtonsType.OK_CANCEL,
            message_format=text,
        )

        if MenuEditor.menu_is_global(id):
            d.format_secondary_text(_("This action is not undoable!"))

        if d.run() == -5:  # OK button, no idea where is this defined...
            if MenuEditor.menu_is_global(id):
                fname = os.path.join(get_menus_path(), id)
                try:
                    os.unlink(fname)
                except Exception, e:
                    log.error("Failed to remove %s: %s", fname, e)
            else:
                del self.app.current.menus[id]
                self.app.on_profile_modified()
            self.load_menu_list()
	def on_btEditMenu_clicked(self, *a):
		name = self._get_selected_menu()
		if name:
			log.debug("Editing %s", name)
			me = MenuEditor(self.app, self.on_menu_changed)
			id = self._get_selected_menu()
			log.debug("Opening editor for menu ID '%s'", id)
			me.set_menu(id)
			me.show(self.editor.window)
Exemple #4
0
	def on_new_menu_selected(self, make_copy=False):
		# 'New menu' selected
		self.load_menu_list()
		log.debug("Creating editor for new menu")
		me = MenuEditor(self.app, self.on_menu_changed)
		if make_copy:
			name = self.get_selected_menu()
			log.debug("Copying %s", name)
			me = MenuEditor(self.app, self.on_menu_changed)
			me.set_menu(name)
		me.set_new_menu()
		me.allow_menus(self.allow_globals, self.allow_in_profile)
		me.show(self.editor.window)
	def on_cbMenus_changed(self, *a):
		""" Called when user chooses menu in selection combo """
		if self._recursing : return
		name = self._get_selected_menu()
		if name == "":
			# 'New menu' selected
			self.load_menu_list()
			log.debug("Creating editor for new menu")
			me = MenuEditor(self.app, self.on_menu_changed)
			me.set_new_menu()
			me.show(self.editor.window)
			return
		if name:
			self.editor.set_action(MenuAction(name))
Exemple #6
0
 def on_btEditMenu_clicked(self, *a):
     name = self.get_selected_menu()
     if name:
         log.debug("Editing %s", name)
         me = MenuEditor(self.app, self.on_menu_changed)
         id = self.get_selected_menu()
         log.debug("Opening editor for menu ID '%s'", id)
         me.set_menu(id)
         me.allow_menus(self.allow_globals, self.allow_in_profile)
         me.show(self.editor.window)
	def on_cbMenus_changed(self, *a):
		""" Called when user chooses menu in selection combo """
		if self._recursing : return
		name = self.get_selected_menu()
		if name == "":
			# 'New menu' selected
			self.load_menu_list()
			log.debug("Creating editor for new menu")
			me = MenuEditor(self.app, self.on_menu_changed)
			me.set_new_menu()
			me.allow_menus(self.allow_globals, self.allow_in_profile)
			me.show(self.editor.window)
			return
		if name:
			self.builder.get_object("btEditMenu").set_sensitive(name not in MenuEditor.OPEN)
			cbm = self.builder.get_object("cbMenuType")
			if cbm and cbm.get_model().get_value(cbm.get_active_iter(), 1) == "gridmenu":
				# Grid menu
				self.editor.set_action(GridMenuAction(name))
			else:
				# Normal menu
				self.editor.set_action(MenuAction(name))
			self.editor.set_action(MenuAction(name))
Exemple #8
0
    def on_cbMenus_changed(self, *a):
        """ Called when user changes any menu settings """
        if self._recursing: return
        cbMenuAutoConfirm = self.builder.get_object("cbMenuAutoConfirm")
        cbConfirmWith = self.builder.get_object("cbConfirmWith")
        cbCancelWith = self.builder.get_object("cbCancelWith")

        if cbMenuAutoConfirm and cbConfirmWith:
            # Control Options block exists in UI
            lblConfirmWith = self.builder.get_object("lblConfirmWith")
            lblConfirmWith.set_sensitive(not cbMenuAutoConfirm.get_active())
            cbConfirmWith.set_sensitive(not cbMenuAutoConfirm.get_active())

        name = self.get_selected_menu()
        if name == "":
            # 'New menu' selected
            self.load_menu_list()
            log.debug("Creating editor for new menu")
            me = MenuEditor(self.app, self.on_menu_changed)
            me.set_new_menu()
            me.allow_menus(self.allow_globals, self.allow_in_profile)
            me.show(self.editor.window)
            return
        if name:
            # There is some menu choosen
            cbControlWith = self.builder.get_object("cbControlWith")
            self.builder.get_object("btEditMenu").set_sensitive(
                name not in MenuEditor.OPEN)
            params = [name]
            if cbControlWith:
                params += [
                    cbControlWith.get_model().get_value(
                        cbControlWith.get_active_iter(), 1),
                    getattr(
                        SCButtons,
                        cbConfirmWith.get_model().get_value(
                            cbConfirmWith.get_active_iter(), 1)),
                    getattr(
                        SCButtons,
                        cbCancelWith.get_model().get_value(
                            cbCancelWith.get_active_iter(), 1))
                ]
                if self.confirm_with_same_active():
                    params[2] = SAME
            elif self.confirm_with_same_active():
                params += [STICK, SAME]

            cbm = self.builder.get_object("cbMenuType")
            # Hide / apply and display 'Items per row' selector if it exists in UI
            if self.builder.get_object("rvMaxSize"):
                rvMaxSize = self.builder.get_object("rvMaxSize")
                spMaxSize = self.builder.get_object("spMaxSize")
                visible = cbm.get_model().get_value(cbm.get_active_iter(),
                                                    1) == "gridmenu"
                rvMaxSize.set_reveal_child(visible)
                if visible:
                    max_size = int(spMaxSize.get_adjustment().get_value())
                    if max_size > 0:
                        # max_size is 2nd parameter
                        params = [params[0], max_size] + params[1:]

            # Grab menu type and choose apropriate action
            action = NoAction()
            if cbm and cbm.get_model().get_value(cbm.get_active_iter(),
                                                 1) == "gridmenu":
                # Grid menu
                action = GridMenuAction(*params)
            elif cbm and cbm.get_model().get_value(cbm.get_active_iter(),
                                                   1) == "radialmenu":
                # Circular menu
                action = RadialMenuAction(*params)
            elif cbm and cbm.get_model().get_value(cbm.get_active_iter(),
                                                   1) == "hmenu":
                # Horizontal menu
                action = HorizontalMenuAction(*params)
            else:
                # Normal menu
                action = MenuAction(*params)

            # Apply Menu Position options, if such block exists in UI
            if self.builder.get_object("spMenuPosX"):
                cbMenuPosX = self.builder.get_object("cbMenuPosX")
                cbMenuPosY = self.builder.get_object("cbMenuPosY")
                x = int(self.builder.get_object("spMenuPosX").get_value())
                y = int(self.builder.get_object("spMenuPosY").get_value())
                x *= cbMenuPosX.get_model().get_value(
                    cbMenuPosX.get_active_iter(), 0)
                y *= cbMenuPosY.get_model().get_value(
                    cbMenuPosY.get_active_iter(), 0)
                if (x, y) != MenuAction.DEFAULT_POSITION:
                    action = PositionModifier(x, y, action)

            self.editor.set_action(action)
Exemple #9
0
 def on_new_menu_selected(self, make_copy=False):
     # 'New menu' selected
     self.load_menu_list()
     log.debug("Creating editor for new menu")
     me = MenuEditor(self.app, self.on_menu_changed)
     if make_copy:
         name = self.get_selected_menu()
         log.debug("Copying %s", name)
         me = MenuEditor(self.app, self.on_menu_changed)
         me.set_menu(name)
     me.set_new_menu()
     me.allow_menus(self.allow_globals, self.allow_in_profile)
     me.show(self.editor.window)
Exemple #10
0
    def on_cbMenus_changed(self, *a):
        """ Called when user changes any menu settings """
        if self._recursing: return
        cbMenuConfirmWithClick = self.builder.get_object(
            "cbMenuConfirmWithClick")
        cbMenuAutoConfirm = self.builder.get_object("cbMenuAutoConfirm")
        cbMenuAutoCancel = self.builder.get_object("cbMenuAutoCancel")
        lblControlWith = self.builder.get_object("lblControlWith")
        cbControlWith = self.builder.get_object("cbControlWith")
        lblConfirmWith = self.builder.get_object("lblConfirmWith")
        cbConfirmWith = self.builder.get_object("cbConfirmWith")
        lblCancelWith = self.builder.get_object("lblCancelWith")
        cbCancelWith = self.builder.get_object("cbCancelWith")

        cbm = self.builder.get_object("cbMenuType")
        menu_type = cbm.get_model().get_value(cbm.get_active_iter(), 1)

        if cbControlWith:
            sensitive = True
            if menu_type == "quickmenu":
                sensitive = False
            lblControlWith.set_sensitive(sensitive)
            cbControlWith.set_sensitive(sensitive)

        if cbConfirmWith:
            sensitive = True
            if cbMenuAutoConfirm and cbMenuAutoConfirm.get_active():
                sensitive = False
            if cbMenuConfirmWithClick and cbMenuConfirmWithClick.get_active():
                sensitive = False
            if menu_type == "quickmenu":
                sensitive = False
            lblConfirmWith.set_sensitive(sensitive)
            cbConfirmWith.set_sensitive(sensitive)

        if cbCancelWith:
            sensitive = True
            if cbMenuAutoCancel and cbMenuAutoCancel.get_active():
                sensitive = False
            if menu_type == "quickmenu":
                sensitive = False
            lblCancelWith.set_sensitive(sensitive)
            cbCancelWith.set_sensitive(sensitive)

        if cbMenuAutoConfirm:
            sensitive = True
            if menu_type == "quickmenu":
                sensitive = False
            cbMenuAutoConfirm.set_sensitive(sensitive)

        name = self.get_selected_menu()
        if name == "":
            # 'New menu' selected
            self.load_menu_list()
            log.debug("Creating editor for new menu")
            me = MenuEditor(self.app, self.on_menu_changed)
            me.set_new_menu()
            me.allow_menus(self.allow_globals, self.allow_in_profile)
            me.show(self.editor.window)
            return
        if name:
            # There is some menu choosen
            self.builder.get_object("btEditMenu").set_sensitive(
                name not in MenuEditor.OPEN)
            params = [name]

            cow = SAME
            if cbMenuAutoConfirm and cbMenuAutoConfirm.get_active():
                cow = SAME
            elif cbMenuConfirmWithClick and cbMenuConfirmWithClick.get_active(
            ):
                cow = DEFAULT
            elif cbConfirmWith:
                cow = cbConfirmWith.get_model().get_value(
                    cbConfirmWith.get_active_iter(), 1)
                cow = getattr(SCButtons, cow)
                if cow == self.get_default_confirm(): cow = DEFAULT

            caw = DEFAULT
            if cbMenuAutoCancel and cbMenuAutoCancel.get_active():
                caw = DEFAULT
            elif cbCancelWith:
                caw = cbCancelWith.get_model().get_value(
                    cbCancelWith.get_active_iter(), 1)
                caw = getattr(SCButtons, caw)
                if caw == self.get_default_cancel(): caw = DEFAULT

            params += [self.get_control_with(), cow, caw]

            # Hide / apply and display 'Items per row' selector if it exists in UI
            if self.builder.get_object("rvMenuSize"):
                spMenuSize = self.builder.get_object("spMenuSize")
                menu_type = cbm.get_model().get_value(cbm.get_active_iter(), 1)
                if menu_type == "gridmenu":
                    self.update_size_display(GridMenuAction("dummy"))
                    size = int(spMenuSize.get_adjustment().get_value())
                    if size > 0:
                        # size is 2nd parameter
                        params += [False, size]
                elif menu_type == "radialmenu":
                    self.update_size_display(RadialMenuAction("dummy"))
                    size = int(spMenuSize.get_adjustment().get_value())
                    if size > 0 and size < 100:
                        # Both 0 and 100 means default here
                        # size is 2nd parameter
                        params += [False, size]
                else:
                    # , "radialmenu"):
                    self.update_size_display(None)

            # Grab menu type and choose apropriate action
            action = NoAction()
            if cbm and menu_type == "gridmenu":
                # Grid menu
                action = GridMenuAction(*params)
            elif cbm and menu_type == "radialmenu":
                # Circular menu
                action = RadialMenuAction(*params)
            elif cbm and menu_type == "hmenu":
                # Horizontal menu
                action = HorizontalMenuAction(*params)
            elif cbm and menu_type == "quickmenu":
                # Horizontal menu
                action = QuickMenuAction(name)
            else:
                # Normal menu
                action = MenuAction(*params)

            # Apply Menu Position options, if such block exists in UI
            if self.builder.get_object("spMenuPosX"):
                cbMenuPosX = self.builder.get_object("cbMenuPosX")
                cbMenuPosY = self.builder.get_object("cbMenuPosY")
                x = int(self.builder.get_object("spMenuPosX").get_value())
                y = int(self.builder.get_object("spMenuPosY").get_value())
                x *= cbMenuPosX.get_model().get_value(
                    cbMenuPosX.get_active_iter(), 0)
                y *= cbMenuPosY.get_model().get_value(
                    cbMenuPosY.get_active_iter(), 0)
                if (x, y) != MenuAction.DEFAULT_POSITION:
                    action = PositionModifier(x, y, action)

            self.editor.set_action(action)
Exemple #11
0
	def on_cbMenus_changed(self, *a):
		""" Called when user changes any menu settings """
		if self._recursing : return
		cbMenuAutoConfirm = self.builder.get_object("cbMenuAutoConfirm")
		cbConfirmWith = self.builder.get_object("cbConfirmWith")
		cbCancelWith = self.builder.get_object("cbCancelWith")
		if cbMenuAutoConfirm and cbConfirmWith:
			# Control Options block exists in UI
			lblConfirmWith = self.builder.get_object("lblConfirmWith")
			lblConfirmWith.set_sensitive(not cbMenuAutoConfirm.get_active())
			cbConfirmWith.set_sensitive(not cbMenuAutoConfirm.get_active())
		
		name = self.get_selected_menu()
		if name == "":
			# 'New menu' selected
			self.load_menu_list()
			log.debug("Creating editor for new menu")
			me = MenuEditor(self.app, self.on_menu_changed)
			me.set_new_menu()
			me.allow_menus(self.allow_globals, self.allow_in_profile)
			me.show(self.editor.window)
			return
		if name:
			# There is some menu choosen
			cbControlWith = self.builder.get_object("cbControlWith")
			self.builder.get_object("btEditMenu").set_sensitive(name not in MenuEditor.OPEN)
			params = [ name ]
			if cbControlWith:
				params += [
					cbControlWith.get_model().get_value(cbControlWith.get_active_iter(), 1),
					getattr(SCButtons, cbConfirmWith.get_model().get_value(cbConfirmWith.get_active_iter(), 1)),
					getattr(SCButtons, cbCancelWith.get_model().get_value(cbCancelWith.get_active_iter(), 1))
				]
				if self.confirm_with_same_active():
					params[2] = SAME
			elif self.confirm_with_same_active():
				params += [ STICK, SAME ]
			# Grab menu type and choose apropriate action
			cbm = self.builder.get_object("cbMenuType")
			action = NoAction()
			if cbm and cbm.get_model().get_value(cbm.get_active_iter(), 1) == "gridmenu":
				# Grid menu
				action = GridMenuAction(*params)
			elif cbm and cbm.get_model().get_value(cbm.get_active_iter(), 1) == "radialmenu":
				# Circular menu
				action = RadialMenuAction(*params)
			else:
				# Normal menu
				action = MenuAction(*params)
			
			# Apply Menu Position options, if such block exists in UI
			if self.builder.get_object("spMenuPosX"):
				cbMenuPosX = self.builder.get_object("cbMenuPosX")
				cbMenuPosY = self.builder.get_object("cbMenuPosY")
				x = int(self.builder.get_object("spMenuPosX").get_value())
				y = int(self.builder.get_object("spMenuPosY").get_value())
				x *= cbMenuPosX.get_model().get_value(cbMenuPosX.get_active_iter(), 0)
				y *= cbMenuPosY.get_model().get_value(cbMenuPosY.get_active_iter(), 0)
				if (x, y) != MenuAction.DEFAULT_POSITION:
					action = PositionModifier(x, y, action)
			
			self.editor.set_action(action)