Exemplo n.º 1
0
    def do_entry(self, node, label, option):
        "Helper function for entry and secretentry widgets"
        box = g.HBox(False, 4)
        entry = g.Entry()

        if label:
            label_wid = g.Label(label)
            label_wid.set_alignment(1.0, 0.5)
            box.pack_start(label_wid, False, True, 0)
            box.pack_start(entry, True, True, 0)
        else:
            box = None

        self.may_add_tip(entry, node)

        entry.connect('changed', lambda e: self.check_widget(option))

        def get():
            return entry.get_chars(0, -1)

        def set():
            entry.set_text(option.value)

        self.handlers[option] = (get, set)

        return (entry, [box or entry])
Exemplo n.º 2
0
    def __init__(self, document, uri, type):
        """'document' must be a subclass of Saveable.
		'uri' is the file's current location, or a simple name (eg 'TextFile')
		if it has never been saved.
		'type' is the MIME-type to use (eg 'text/plain').
		"""
        g.VBox.__init__(self, False, 0)

        self.document = document
        self.initial_uri = uri

        drag_area = self._create_drag_area(type)
        self.pack_start(drag_area, True, True, 0)
        drag_area.show_all()

        entry = g.Entry()
        entry.connect('activate', lambda w: self.save_to_file_in_entry())
        self.entry = entry
        self.pack_start(entry, False, True, 4)
        entry.show()

        entry.set_text(uri)
Exemplo n.º 3
0
def choose_wm(message):
    box = rox.Dialog('Choose a window manager', None,
                     g.DIALOG_MODAL | g.DIALOG_NO_SEPARATOR)
    box.add_button(g.STOCK_CLOSE, g.RESPONSE_CANCEL)
    box.add_button(g.STOCK_EXECUTE, g.RESPONSE_OK)
    box.set_position(g.WIN_POS_CENTER)

    box.vbox.pack_start(g.Label(message), True, True, 0)
    box.set_default_response(g.RESPONSE_OK)

    entry = g.Entry()
    entry.set_activates_default(True)
    box.vbox.pack_start(entry, False, True, 0)
    entry.set_text(get_window_manager()[0] or '')

    box.vbox.show_all()

    if box.run() == int(g.RESPONSE_OK):
        settings.settings.set('ROX/WindowManager', entry.get_text())
        box.destroy()
        start()
    else:
        box.destroy()
Exemplo n.º 4
0
	def __init__(self, tb):
		g.Frame.__init__(self, _('Stack trace (innermost last)'))

		vbox = g.VBox(False, 0)
		self.add(vbox)

		inner = g.Frame()
		inner.set_shadow_type(g.SHADOW_IN)
		vbox.pack_start(inner, False, True, 0)

		self.savebox = None

		self.tb = tb
		
		self.model = g.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT,
					 gobject.TYPE_STRING, gobject.TYPE_STRING,
					 gobject.TYPE_STRING)
		tree = g.TreeView(self.model)
		inner.add(tree)

		cell = g.CellRendererText()

		column = g.TreeViewColumn('File', cell, text = ExceptionExplorer.LEAF)
		cell.set_property('xalign', 1)
		tree.append_column(column)

		cell = g.CellRendererText()
		column = g.TreeViewColumn('Line', cell, text = ExceptionExplorer.LINE)
		tree.append_column(column)
		column = g.TreeViewColumn('Func', cell, text = ExceptionExplorer.FUNC)
		tree.append_column(column)
		column = g.TreeViewColumn('Code', cell, text = ExceptionExplorer.CODE)
		tree.append_column(column)

		inner.set_border_width(5)

		frames = []
		while tb is not None:
			frames.insert(0, (tb.tb_frame, traceback.tb_lineno(tb)))
			tb = tb.tb_next
		f = self.tb.tb_frame
		if f:
			f = f.f_back	# Skip the reporting frame
		while f is not None:
			frames.append((f, f.f_lineno))
			f = f.f_back

		frames.reverse()

		new = None
		for f, lineno in frames:
			co = f.f_code
			filename = co.co_filename
			name = co.co_name
			line = linecache.getline(filename, lineno).strip()

			leafname = os.path.basename(filename)
			
			new = self.model.append()
			self.model.set(new, ExceptionExplorer.LEAF, leafname,
					    ExceptionExplorer.LINE, lineno,
					    ExceptionExplorer.FUNC, name,
					    ExceptionExplorer.CODE, line,
					    ExceptionExplorer.FILE, filename)

		def selected_frame():
			selected = sel.get_selected()
			assert selected
			model, titer = selected
			frame, = model.get_path(titer)
			return frames[frame][0]

		vars = g.ListStore(str, str)
		sel = tree.get_selection()
		sel.set_mode(g.SELECTION_BROWSE)
		def select_frame(tree):
			vars.clear()
			for n, v in selected_frame().f_locals.iteritems():
				value = `v`
				if len(value) > 500:
					value = value[:500] + ' ...'
				new = vars.append()
				vars.set(new, 0, str(n), 1, value)
		sel.connect('changed', select_frame)
		def show_source(tree, path, column):
			line = self.model[path][ExceptionExplorer.LINE]
			file = self.model[path][ExceptionExplorer.FILE]
			import launch
			launch.launch('http://rox.sourceforge.net/2005/interfaces/Edit',
					'-l%d' % line, file)
			
		tree.connect('row-activated', show_source)

		# Area to show the local variables
		tree = g.TreeView(vars)

		vbox.pack_start(g.Label(_('Local variables in selected frame:')),
				False, True, 0)

		cell = g.CellRendererText()
		column = g.TreeViewColumn('Name', cell, text = 0)
		cell.set_property('xalign', 1)
		tree.append_column(column)
		cell = g.CellRendererText()
		column = g.TreeViewColumn('Value', cell, text = 1)
		tree.append_column(column)

		inner = g.ScrolledWindow()
		inner.set_size_request(-1, 200)
		inner.set_policy(g.POLICY_AUTOMATIC, g.POLICY_ALWAYS)
		inner.set_shadow_type(g.SHADOW_IN)
		inner.add(tree)
		inner.set_border_width(5)
		vbox.pack_start(inner, True, True, 0)

		if new:
			sel.select_iter(new)

		hbox = g.HBox(False, 4)
		hbox.set_border_width(5)
		vbox.pack_start(hbox, False, True, 0)
		hbox.pack_start(g.Label('>>>'), False, True, 0)

		expr = g.Entry()
		hbox.pack_start(expr, True, True, 0)
		def activate(entry):
			expr = entry.get_text()
			frame = selected_frame()
			try:
				info(`eval(expr, frame.f_locals, frame.f_globals)`)
			except:
				extype, value = sys.exc_info()[:2]
				brief = ''.join(traceback.format_exception_only(extype, value))
				alert(brief)
			entry.grab_focus()
		expr.connect('activate', activate)

		vbox.show_all()