diff options
Diffstat (limited to 'x11/py-xdot/files/patch-xdot.py')
-rw-r--r-- | x11/py-xdot/files/patch-xdot.py | 478 |
1 files changed, 478 insertions, 0 deletions
diff --git a/x11/py-xdot/files/patch-xdot.py b/x11/py-xdot/files/patch-xdot.py new file mode 100644 index 000000000000..17a41b3413ed --- /dev/null +++ b/x11/py-xdot/files/patch-xdot.py @@ -0,0 +1,478 @@ +--- xdot.py.orig 2016-03-07 15:58:48 UTC ++++ xdot.py +@@ -30,13 +30,13 @@ import time + import re + import optparse + +-from gi.repository import GLib +-from gi.repository import GObject +-from gi.repository import Gtk +-from gi.repository import Gdk +-from gi.repository import GdkPixbuf +-from gi.repository import Pango +-from gi.repository import PangoCairo ++import glib ++import gobject ++import gtk ++import gtk.gdk ++import gtk.keysyms ++import pango ++import pangocairo + import cairo + + +@@ -120,7 +120,7 @@ class TextShape(Shape): + try: + layout = self.layout + except AttributeError: +- layout = PangoCairo.create_layout(cr) ++ layout = pangcairo.create_layout(cr) + + # set font options + # see http://lists.freedesktop.org/archives/cairo/2007-February/009688.html +@@ -130,21 +130,21 @@ class TextShape(Shape): + fo.set_hint_style(cairo.HINT_STYLE_NONE) + fo.set_hint_metrics(cairo.HINT_METRICS_OFF) + try: +- PangoCairo.context_set_font_options(context, fo) ++ pangcairo.context_set_font_options(context, fo) + except TypeError: + # XXX: Some broken pangocairo bindings show the error + # 'TypeError: font_options must be a cairo.FontOptions or None' + pass + except KeyError: +- # cairo.FontOptions is not registered as a foreign struct in older PyGObject versions. ++ # cairo.FontOptions is not registered as a foreign struct in older Pygobject versions. + # https://git.gnome.org/browse/pygobject/commit/?id=b21f66d2a399b8c9a36a1758107b7bdff0ec8eaa + pass + + # set font +- font = Pango.FontDescription() ++ font = pango.FontDescription() + +- # https://developer.gnome.org/pango/stable/PangoMarkupFormat.html +- markup = GObject.markup_escape_text(self.t) ++ # https://developer.gnome.org/pango/stable/pangoMarkupFormat.html ++ markup = gobject.markup_escape_text(self.t) + if self.pen.bold: + markup = '<b>' + markup + '</b>' + if self.pen.italic: +@@ -158,12 +158,12 @@ class TextShape(Shape): + if self.pen.subscript: + markup = '<sub><small>' + markup + '</small></sub>' + +- success, attrs, text, accel_char = Pango.parse_markup(markup, -1, '\x00') ++ success, attrs, text, accel_char = pango.parse_markup(markup, -1, '\x00') + assert success + layout.set_attributes(attrs) + + font.set_family(self.pen.fontname) +- font.set_absolute_size(self.pen.fontsize*Pango.SCALE) ++ font.set_absolute_size(self.pen.fontsize*pango.SCALE) + layout.set_font_description(font) + + # set text +@@ -172,13 +172,13 @@ class TextShape(Shape): + # cache it + self.layout = layout + else: +- PangoCairo.update_layout(cr, layout) ++ pangcairo.update_layout(cr, layout) + + descent = 2 # XXX get descender from font metrics + + width, height = layout.get_size() +- width = float(width)/Pango.SCALE +- height = float(height)/Pango.SCALE ++ width = float(width)/pango.SCALE ++ height = float(height)/pango.SCALE + + # we know the width that dot thinks this text should have + # we do not necessarily have a font with the same metrics +@@ -207,7 +207,7 @@ class TextShape(Shape): + cr.save() + cr.scale(f, f) + cr.set_source_rgba(*self.select_pen(highlight).color) +- PangoCairo.show_layout(cr, layout) ++ pangcairo.show_layout(cr, layout) + cr.restore() + + if 0: # DEBUG +@@ -239,13 +239,13 @@ class ImageShape(Shape): + self.path = path + + def draw(self, cr, highlight=False): +- pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.path) ++ pixbuf = gtk.gdk.pixbuf_new_from_file(self.path) + sx = float(self.w)/float(pixbuf.get_width()) + sy = float(self.h)/float(pixbuf.get_height()) + cr.save() + cr.translate(self.x0, self.y0 - self.h) + cr.scale(sx, sy) +- Gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0) ++ gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0) + cr.paint() + cr.restore() + +@@ -631,7 +631,7 @@ class XDotAttrParser: + + def lookup_color(self, c): + try: +- color = Gdk.color_parse(c) ++ color = gdk.color_parse(c) + except ValueError: + pass + else: +@@ -1318,12 +1318,12 @@ class Animation(object): + self.timeout_id = None + + def start(self): +- self.timeout_id = GLib.timeout_add(int(self.step * 1000), self.tick) ++ self.timeout_id = glib.timeout_add(int(self.step * 1000), self.tick) + + def stop(self): + self.dot_widget.animation = NoAnimation(self.dot_widget) + if self.timeout_id is not None: +- GLib.source_remove(self.timeout_id) ++ glib.source_remove(self.timeout_id) + self.timeout_id = None + + def tick(self): +@@ -1453,7 +1453,7 @@ class NullAction(DragAction): + if item is None: + item = dot_widget.get_jump(x, y) + if item is not None: +- dot_widget.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.HAND2)) ++ dot_widget.get_window().set_cursor(gdk.Cursor(gdk.CursorType.HAND2)) + dot_widget.set_highlight(item.highlight) + else: + dot_widget.get_window().set_cursor(None) +@@ -1463,7 +1463,7 @@ class NullAction(DragAction): + class PanAction(DragAction): + + def start(self): +- self.dot_widget.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.FLEUR)) ++ self.dot_widget.get_window().set_cursor(gdk.Cursor(gdk.CursorType.FLEUR)) + + def drag(self, deltax, deltay): + self.dot_widget.x += deltax / self.dot_widget.zoom_ratio +@@ -1518,18 +1518,18 @@ class ZoomAreaAction(DragAction): + self.dot_widget.queue_draw() + + +-class DotWidget(Gtk.DrawingArea): ++class DotWidget(gtk.DrawingArea): + """GTK widget that draws dot graphs.""" + +- #TODO GTK3: Second argument has to be of type Gdk.EventButton instead of object. ++ #TODO GTK3: Second argument has to be of type gdk.EventButton instead of object. + __gsignals__ = { +- 'clicked' : (GObject.SIGNAL_RUN_LAST, None, (str, object)) ++ 'clicked' : (gobject.SIGNAL_RUN_LAST, None, (str, object)) + } + + filter = 'dot' + + def __init__(self): +- Gtk.DrawingArea.__init__(self) ++ gtk.DrawingArea.__init__(self) + + self.graph = Graph() + self.openfilename = None +@@ -1537,13 +1537,13 @@ class DotWidget(Gtk.DrawingArea): + self.set_can_focus(True) + + self.connect("draw", self.on_draw) +- self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK) ++ self.add_events(gdk.EventMask.BUTTON_PRESS_MASK | gdk.EventMask.BUTTON_RELEASE_MASK) + self.connect("button-press-event", self.on_area_button_press) + self.connect("button-release-event", self.on_area_button_release) +- self.add_events(Gdk.EventMask.POINTER_MOTION_MASK | +- Gdk.EventMask.POINTER_MOTION_HINT_MASK | +- Gdk.EventMask.BUTTON_RELEASE_MASK | +- Gdk.EventMask.SCROLL_MASK) ++ self.add_events(gdk.EventMask.POINTER_MOTION_MASK | ++ gdk.EventMask.POINTER_MOTION_HINT_MASK | ++ gdk.EventMask.BUTTON_RELEASE_MASK | ++ gdk.EventMask.SCROLL_MASK) + self.connect("motion-notify-event", self.on_area_motion_notify) + self.connect("scroll-event", self.on_area_scroll_event) + self.connect("size-allocate", self.on_area_size_allocate) +@@ -1551,7 +1551,7 @@ class DotWidget(Gtk.DrawingArea): + self.connect('key-press-event', self.on_key_press_event) + self.last_mtime = None + +- GLib.timeout_add(1000, self.update) ++ glib.timeout_add(1000, self.update) + + self.x, self.y = 0.0, 0.0 + self.zoom_ratio = 1.0 +@@ -1729,59 +1729,59 @@ class DotWidget(Gtk.DrawingArea): + POS_INCREMENT = 100 + + def on_key_press_event(self, widget, event): +- if event.keyval == Gdk.KEY_Left: ++ if event.keyval == gdk.KEY_Left: + self.x -= self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True +- if event.keyval == Gdk.KEY_Right: ++ if event.keyval == gdk.KEY_Right: + self.x += self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True +- if event.keyval == Gdk.KEY_Up: ++ if event.keyval == gdk.KEY_Up: + self.y -= self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True +- if event.keyval == Gdk.KEY_Down: ++ if event.keyval == gdk.KEY_Down: + self.y += self.POS_INCREMENT/self.zoom_ratio + self.queue_draw() + return True +- if event.keyval in (Gdk.KEY_Page_Up, +- Gdk.KEY_plus, +- Gdk.KEY_equal, +- Gdk.KEY_KP_Add): ++ if event.keyval in (gdk.KEY_Page_Up, ++ gdk.KEY_plus, ++ gdk.KEY_equal, ++ gdk.KEY_KP_Add): + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT) + self.queue_draw() + return True +- if event.keyval in (Gdk.KEY_Page_Down, +- Gdk.KEY_minus, +- Gdk.KEY_KP_Subtract): ++ if event.keyval in (gdk.KEY_Page_Down, ++ gdk.KEY_minus, ++ gdk.KEY_KP_Subtract): + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT) + self.queue_draw() + return True +- if event.keyval == Gdk.KEY_Escape: ++ if event.keyval == gdk.KEY_Escape: + self.drag_action.abort() + self.drag_action = NullAction(self) + return True +- if event.keyval == Gdk.KEY_r: ++ if event.keyval == gdk.KEY_r: + self.reload() + return True +- if event.keyval == Gdk.KEY_f: ++ if event.keyval == gdk.KEY_f: + win = widget.get_toplevel() + find_toolitem = win.uimanager.get_widget('/ToolBar/Find') + textentry = find_toolitem.get_children() + win.set_focus(textentry[0]) + return True +- if event.keyval == Gdk.KEY_q: +- Gtk.main_quit() ++ if event.keyval == gdk.KEY_q: ++ gtk.main_quit() + return True +- if event.keyval == Gdk.KEY_p: ++ if event.keyval == gdk.KEY_p: + self.on_print() + return True + return False + + print_settings = None + def on_print(self, action=None): +- print_op = Gtk.PrintOperation() ++ print_op = gtk.PrintOperation() + + if self.print_settings != None: + print_op.set_print_settings(self.print_settings) +@@ -1789,8 +1789,8 @@ class DotWidget(Gtk.DrawingArea): + print_op.connect("begin_print", self.begin_print) + print_op.connect("draw_page", self.draw_page) + +- res = print_op.run(Gtk.PrintOperationAction.PRINT_DIALOG, self.get_toplevel()) +- if res == Gtk.PrintOperationResult.APPLY: ++ res = print_op.run(gtk.PrintOperationAction.PRINT_DIALOG, self.get_toplevel()) ++ if res == gtk.PrintOperationResult.APPLY: + self.print_settings = print_op.get_print_settings() + + def begin_print(self, operation, context): +@@ -1810,10 +1810,10 @@ class DotWidget(Gtk.DrawingArea): + def get_drag_action(self, event): + state = event.state + if event.button in (1, 2): # left or middle button +- modifiers = Gtk.accelerator_get_default_mod_mask() +- if state & modifiers == Gdk.ModifierType.CONTROL_MASK: ++ modifiers = gtk.accelerator_get_default_mod_mask() ++ if state & modifiers == gdk.ModifierType.CONTROL_MASK: + return ZoomAction +- elif state & modifiers == Gdk.ModifierType.SHIFT_MASK: ++ elif state & modifiers == gdk.ModifierType.SHIFT_MASK: + return ZoomAreaAction + else: + return PanAction +@@ -1831,7 +1831,7 @@ class DotWidget(Gtk.DrawingArea): + return False + + def is_click(self, event, click_fuzz=4, click_timeout=1.0): +- assert event.type == Gdk.EventType.BUTTON_RELEASE ++ assert event.type == gdk.EventType.BUTTON_RELEASE + if self.presstime is None: + # got a button release without seeing the press? + return False +@@ -1873,11 +1873,11 @@ class DotWidget(Gtk.DrawingArea): + return False + + def on_area_scroll_event(self, area, event): +- if event.direction == Gdk.ScrollDirection.UP: ++ if event.direction == gdk.ScrollDirection.UP: + self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT, + pos=(event.x, event.y)) + return True +- if event.direction == Gdk.ScrollDirection.DOWN: ++ if event.direction == gdk.ScrollDirection.DOWN: + self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT, + pos=(event.x, event.y)) + return True +@@ -1918,14 +1918,14 @@ class DotWidget(Gtk.DrawingArea): + return self.graph.get_jump(x, y) + + +-class FindMenuToolAction(Gtk.Action): ++class FindMenuToolAction(gtk.Action): + __gtype_name__ = "FindMenuToolAction" + + def do_create_tool_item(self): +- return Gtk.ToolItem() ++ return gtk.ToolItem() + + +-class DotWindow(Gtk.Window): ++class DotWindow(gtk.Window): + + ui = ''' + <ui> +@@ -1947,7 +1947,7 @@ class DotWindow(Gtk.Window): + base_title = 'Dot Viewer' + + def __init__(self, widget=None): +- Gtk.Window.__init__(self) ++ gtk.Window.__init__(self) + + self.graph = Graph() + +@@ -1955,31 +1955,31 @@ class DotWindow(Gtk.Window): + + window.set_title(self.base_title) + window.set_default_size(512, 512) +- vbox = Gtk.VBox() ++ vbox = gtk.VBox() + window.add(vbox) + + self.dotwidget = widget or DotWidget() + + # Create a UIManager instance +- uimanager = self.uimanager = Gtk.UIManager() ++ uimanager = self.uimanager = gtk.UIManager() + + # Add the accelerator group to the toplevel window + accelgroup = uimanager.get_accel_group() + window.add_accel_group(accelgroup) + + # Create an ActionGroup +- actiongroup = Gtk.ActionGroup('Actions') ++ actiongroup = gtk.ActionGroup('Actions') + self.actiongroup = actiongroup + + # Create actions + actiongroup.add_actions(( +- ('Open', Gtk.STOCK_OPEN, None, None, None, self.on_open), +- ('Reload', Gtk.STOCK_REFRESH, None, None, None, self.on_reload), +- ('Print', Gtk.STOCK_PRINT, None, None, "Prints the currently visible part of the graph", self.dotwidget.on_print), +- ('ZoomIn', Gtk.STOCK_ZOOM_IN, None, None, None, self.dotwidget.on_zoom_in), +- ('ZoomOut', Gtk.STOCK_ZOOM_OUT, None, None, None, self.dotwidget.on_zoom_out), +- ('ZoomFit', Gtk.STOCK_ZOOM_FIT, None, None, None, self.dotwidget.on_zoom_fit), +- ('Zoom100', Gtk.STOCK_ZOOM_100, None, None, None, self.dotwidget.on_zoom_100), ++ ('Open', gtk.STOCK_OPEN, None, None, None, self.on_open), ++ ('Reload', gtk.STOCK_REFRESH, None, None, None, self.on_reload), ++ ('Print', gtk.STOCK_PRINT, None, None, "Prints the currently visible part of the graph", self.dotwidget.on_print), ++ ('ZoomIn', gtk.STOCK_ZOOM_IN, None, None, None, self.dotwidget.on_zoom_in), ++ ('ZoomOut', gtk.STOCK_ZOOM_OUT, None, None, None, self.dotwidget.on_zoom_out), ++ ('ZoomFit', gtk.STOCK_ZOOM_FIT, None, None, None, self.dotwidget.on_zoom_fit), ++ ('Zoom100', gtk.STOCK_ZOOM_100, None, None, None, self.dotwidget.on_zoom_100), + )) + + find_action = FindMenuToolAction("Find", None, +@@ -2004,8 +2004,8 @@ class DotWindow(Gtk.Window): + + # Add Find text search + find_toolitem = uimanager.get_widget('/ToolBar/Find') +- self.textentry = Gtk.Entry(max_length=20) +- self.textentry.set_icon_from_stock(0, Gtk.STOCK_FIND) ++ self.textentry = gtk.Entry(max_length=20) ++ self.textentry.set_icon_from_stock(0, gtk.STOCK_FIND) + find_toolitem.add(self.textentry) + + self.textentry.set_activates_default(True) +@@ -2073,23 +2073,23 @@ class DotWindow(Gtk.Window): + self.error_dialog(str(ex)) + + def on_open(self, action): +- chooser = Gtk.FileChooserDialog(title="Open dot File", +- action=Gtk.FileChooserAction.OPEN, +- buttons=(Gtk.STOCK_CANCEL, +- Gtk.ResponseType.CANCEL, +- Gtk.STOCK_OPEN, +- Gtk.ResponseType.OK)) +- chooser.set_default_response(Gtk.ResponseType.OK) ++ chooser = gtk.FileChooserDialog(title="Open dot File", ++ action=gtk.FileChooserAction.OPEN, ++ buttons=(gtk.STOCK_CANCEL, ++ gtk.ResponseType.CANCEL, ++ gtk.STOCK_OPEN, ++ gtk.ResponseType.OK)) ++ chooser.set_default_response(gtk.ResponseType.OK) + chooser.set_current_folder(self.last_open_dir) +- filter = Gtk.FileFilter() ++ filter = gtk.FileFilter() + filter.set_name("Graphviz dot files") + filter.add_pattern("*.dot") + chooser.add_filter(filter) +- filter = Gtk.FileFilter() ++ filter = gtk.FileFilter() + filter.set_name("All files") + filter.add_pattern("*") + chooser.add_filter(filter) +- if chooser.run() == Gtk.ResponseType.OK: ++ if chooser.run() == gtk.ResponseType.OK: + filename = chooser.get_filename() + self.last_open_dir = chooser.get_current_folder() + chooser.destroy() +@@ -2101,9 +2101,9 @@ class DotWindow(Gtk.Window): + self.dotwidget.reload() + + def error_dialog(self, message): +- dlg = Gtk.MessageDialog(type=Gtk.MessageType.ERROR, ++ dlg = gtk.MessageDialog(type=gtk.MessageType.ERROR, + message_format=message, +- buttons=Gtk.ButtonsType.OK) ++ buttons=gtk.ButtonsType.OK) + dlg.set_title(self.base_title) + dlg.run() + dlg.destroy() +@@ -2150,14 +2150,14 @@ Shortcuts: + parser.error('incorrect number of arguments') + + win = DotWindow() +- win.connect('delete-event', Gtk.main_quit) ++ win.connect('delete-event', gtk.main_quit) + win.set_filter(options.filter) + if len(args) >= 1: + if args[0] == '-': + win.set_dotcode(sys.stdin.read()) + else: + win.open_file(args[0]) +- Gtk.main() ++ gtk.main() + + + # Apache-Style Software License for ColorBrewer software and ColorBrewer Color |