Commits

Graziella Toutoungis  committed 72d97de

create paquet

  • Participants
  • Parent commits 3aaeb1c

Comments (0)

Files changed (37)

+COPYING
+ChangeLog
+README
+TODO
+hgview.1
+setup.py
+bin/hgview
+bin/hgview.bat
+hgview/__init__.py
+hgview/__pkginfo__.py
+hgview/buildtree.py
+hgview/fixes.py
+hgview/hgrepo.py
+hgview/hgviewrc.py
+hgview/gtk/__init__.py
+hgview/gtk/diffstatrenderer.py
+hgview/gtk/graphrenderer.py
+hgview/gtk/hgview.glade
+hgview/gtk/hgview_gtk.py
+hgview/qt4/__init__.py
+hgview/qt4/hgrepomodel.py
+hgview/qt4/hgview.ui
+hgview/qt4/hgview_qt4.py

File build-stamp

Empty file added.

File changelog.gz

Binary file added.

File debian/files

+hgview_0.9.0-1_all.deb python optional
+hgview_0.9.0-1_all.deb python optional
+hgview_0.9.0-1_all.deb python optional
+hgview_0.9.0-1_all.deb python optional

File debian/hgview.debhelper.log

+dh_installdirs
+dh_install
+dh_pycentral
+dh_installchangelogs
+dh_installexamples
+dh_installdocs
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_installdirs
+dh_install
+dh_pycentral
+dh_installchangelogs
+dh_installexamples
+dh_installdocs
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_installdirs
+dh_install
+dh_pycentral
+dh_installchangelogs
+dh_installexamples
+dh_installdocs
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_installdirs
+dh_install
+dh_pycentral
+dh_installchangelogs
+dh_installexamples
+dh_installdocs
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb

File debian/hgview.postinst.debhelper

+# Automatically added by dh_pycentral
+if which pycentral >/dev/null 2>&1; then
+	pycentral pkginstall hgview
+	if grep -qs '^hgview$' /var/lib/pycentral/delayed-pkgs; then
+		sed -i '/^hgview$/d' /var/lib/pycentral/delayed-pkgs
+	fi
+fi
+# End automatically added section

File debian/hgview.preinst.debhelper

+# Automatically added by dh_pycentral
+if which pycentral >/dev/null 2>&1 && pycentral --help 2>/dev/null | grep -q '^ *version'; then
+	pycentral pkgprepare hgview <<PYEOF
+[python-package]
+format = 1
+python-version = current
+[pycentral]
+version = 0.6.7
+[files]
+/usr/share/pyshared/hgview=d
+/usr/share/pyshared/hgview/gtk=d
+/usr/share/pyshared/hgview/gtk/__init__.py=f
+/usr/share/pyshared/hgview/gtk/graphrenderer_old.py=f
+/usr/share/pyshared/hgview/gtk/graphrenderer.py=f
+/usr/share/pyshared/hgview/gtk/diffstatrenderer.py=f
+/usr/share/pyshared/hgview/gtk/hgview_gtk.py=f
+/usr/share/pyshared/hgview/qt4=d
+/usr/share/pyshared/hgview/qt4/__init__.py=f
+/usr/share/pyshared/hgview/qt4/hgrepomodel.py=f
+/usr/share/pyshared/hgview/qt4/hgview_qt4.py=f
+/usr/share/pyshared/hgview/__init__.py=f
+/usr/share/pyshared/hgview/hgrepo.py=f
+/usr/share/pyshared/hgview/buildtree.py=f
+/usr/share/pyshared/hgview/hgviewrc.py=f
+/usr/share/pyshared/hgview/fixes.py=f
+/usr/share/pyshared/hgview/__pkginfo__.py=f
+/usr/share/pyshared/hgview-0.3.1.egg-info=f
+PYEOF
+else
+	mkdir -p /var/lib/pycentral
+	echo hgview >> /var/lib/pycentral/delayed-pkgs
+fi
+# End automatically added section

File debian/hgview.prerm.debhelper

+# Automatically added by dh_pycentral
+case "$1" in remove)
+	pkgremove=y
+esac
+if [ -f /var/lib/pycentral/hgview.pkgremove ] || [ -f /var/lib/pycentral/pkgremove ]; then
+	pkgremove=y
+fi
+if [ "$pkgremove" = y ]; then
+if which python >/dev/null 2>&1 && which pycentral >/dev/null 2>&1; then
+	pycentral pkgremove hgview
+else
+	flist=$(tempfile)
+	slist=$(tempfile)
+	dpkg -L hgview | tee $flist | \
+	while read n; do
+	  case "$n" in
+	    /usr/share/pyshared/*)
+	      n2=${n#/usr/share/pyshared/*}
+	      case "$n" in
+		*.py) echo "p $n";;
+		*) [ -d "$n" ] && echo "d $n2" || echo "f $n2"
+	      esac
+	      ;;
+	    *) continue
+	  esac
+	done > $slist
+	if [ -s $slist ]; then
+	    for d in /usr/lib/python[0-9].[0-9]/????-packages; do
+		case "$d" in */python2.1/*|*/python2.2/*) continue; esac
+		while read t n; do
+		    case "$t" in
+			p) rm -f $d/$n $d/${n}[co];;
+			d) rmdir $d/$n 2>/dev/null || true;;
+			*) rm -f $d/$n
+		    esac
+		done < $slist
+	    done
+	fi
+        awk '/\/usr\/share\/pyshared/ {next} /\.py$/ {print $0"c\n" $0"o"}' $flist \
+	    | xargs -r rm -f >&2
+	rm -f $flist $slist
+fi
+rm -f /var/lib/pycentral/hgview.pkgremove
+fi
+# End automatically added section

File debian/hgview.substvars

+python:Versions=current
+python:Depends=python, python-central (>= 0.6.7)

File debian/hgview/DEBIAN/control

+Package: hgview
+Version: 0.9.0-1
+Architecture: all
+Maintainer: David Douard <david.douard@logilab.fr>
+Installed-Size: 292
+Depends: python, python-glade2 | python-qt4
+Section: python
+Priority: optional
+Homepage: http://www.logilab.org/projects/hgview
+Description: mercurial interactive history viewer
+ Its purpose is similar to the hgk tool of mercurial, and it has been
+ written with efficiency in mind when dealing with big repositories
+ (it can happily be used to browse Linux kernel source code
+ repository).
+Python-Version: current

File debian/hgview/DEBIAN/md5sums

+3b77dd595957586b8846cec1d1015c73  usr/bin/hgview
+154fa98d7c885121f9685ebe4547c470  usr/share/man/man1/hgview.1.gz
+5a0a21ea70bdc28d412cc3e15e248ead  usr/share/pyshared-data/hgview
+f31bef7ad60bdc5367accd52f9ab12b1  usr/share/doc/hgview/copyright
+af2871f03ecb206a03af609ec93e17bb  usr/share/doc/hgview/changelog.gz
+9a59a872b4b130e38fe5fb694f70be67  usr/share/doc/hgview/changelog.Debian.gz
+b22e22cfb29c8a7e028596fdb211069e  usr/share/hgview/hgview.glade
+3dc2026cf52ba373f12d02ef51e3131c  usr/share/hgview/hgview.ui
+d41d8cd98f00b204e9800998ecf8427e  usr/share/pyshared/hgview/gtk/__init__.py
+b219217fa40a4ccb70dbfc229ec21c6a  usr/share/pyshared/hgview/gtk/graphrenderer_old.py
+3b68bac66327378200a1ead15fbd18bc  usr/share/pyshared/hgview/gtk/graphrenderer.py
+8c6619f6f28713249be20cae5ac1d7b0  usr/share/pyshared/hgview/gtk/diffstatrenderer.py
+fac6f4463ac70613b72fb9f861babf56  usr/share/pyshared/hgview/gtk/hgview_gtk.py
+d41d8cd98f00b204e9800998ecf8427e  usr/share/pyshared/hgview/qt4/__init__.py
+57aade77ef089925320f319525cad4a0  usr/share/pyshared/hgview/qt4/hgrepomodel.py
+4ccac4773729a6f3196a75494af15455  usr/share/pyshared/hgview/qt4/hgview_qt4.py
+db120b59d8a76fdfaa47a082f4ad50c8  usr/share/pyshared/hgview/__init__.py
+024c891d14d5e92b37903fd97f81366a  usr/share/pyshared/hgview/hgrepo.py
+0226b8851921b70bff77884b92e63fdf  usr/share/pyshared/hgview/buildtree.py
+76e6752f3cee75b21698b30c955c73a9  usr/share/pyshared/hgview/hgviewrc.py
+d11aa2b199f5e6ff4eccdc57de0ba3b1  usr/share/pyshared/hgview/fixes.py
+2adde5f19dc5c78fbfea3ec595a73e57  usr/share/pyshared/hgview/__pkginfo__.py
+ff2c4b86e11d953ccc91d9f4ad9bdbc1  usr/share/pyshared/hgview-0.3.1.egg-info

File debian/hgview/DEBIAN/postinst

+#!/bin/sh
+set -e
+# Automatically added by dh_pycentral
+if which pycentral >/dev/null 2>&1; then
+	pycentral pkginstall hgview
+	if grep -qs '^hgview$' /var/lib/pycentral/delayed-pkgs; then
+		sed -i '/^hgview$/d' /var/lib/pycentral/delayed-pkgs
+	fi
+fi
+# End automatically added section

File debian/hgview/DEBIAN/preinst

+#!/bin/sh
+set -e
+# Automatically added by dh_pycentral
+if which pycentral >/dev/null 2>&1 && pycentral --help 2>/dev/null | grep -q '^ *version'; then
+	pycentral pkgprepare hgview <<PYEOF
+[python-package]
+format = 1
+python-version = current
+[pycentral]
+version = 0.6.7
+[files]
+/usr/share/pyshared/hgview=d
+/usr/share/pyshared/hgview/gtk=d
+/usr/share/pyshared/hgview/gtk/__init__.py=f
+/usr/share/pyshared/hgview/gtk/graphrenderer_old.py=f
+/usr/share/pyshared/hgview/gtk/graphrenderer.py=f
+/usr/share/pyshared/hgview/gtk/diffstatrenderer.py=f
+/usr/share/pyshared/hgview/gtk/hgview_gtk.py=f
+/usr/share/pyshared/hgview/qt4=d
+/usr/share/pyshared/hgview/qt4/__init__.py=f
+/usr/share/pyshared/hgview/qt4/hgrepomodel.py=f
+/usr/share/pyshared/hgview/qt4/hgview_qt4.py=f
+/usr/share/pyshared/hgview/__init__.py=f
+/usr/share/pyshared/hgview/hgrepo.py=f
+/usr/share/pyshared/hgview/buildtree.py=f
+/usr/share/pyshared/hgview/hgviewrc.py=f
+/usr/share/pyshared/hgview/fixes.py=f
+/usr/share/pyshared/hgview/__pkginfo__.py=f
+/usr/share/pyshared/hgview-0.3.1.egg-info=f
+PYEOF
+else
+	mkdir -p /var/lib/pycentral
+	echo hgview >> /var/lib/pycentral/delayed-pkgs
+fi
+# End automatically added section

File debian/hgview/DEBIAN/prerm

+#!/bin/sh
+set -e
+# Automatically added by dh_pycentral
+case "$1" in remove)
+	pkgremove=y
+esac
+if [ -f /var/lib/pycentral/hgview.pkgremove ] || [ -f /var/lib/pycentral/pkgremove ]; then
+	pkgremove=y
+fi
+if [ "$pkgremove" = y ]; then
+if which python >/dev/null 2>&1 && which pycentral >/dev/null 2>&1; then
+	pycentral pkgremove hgview
+else
+	flist=$(tempfile)
+	slist=$(tempfile)
+	dpkg -L hgview | tee $flist | \
+	while read n; do
+	  case "$n" in
+	    /usr/share/pyshared/*)
+	      n2=${n#/usr/share/pyshared/*}
+	      case "$n" in
+		*.py) echo "p $n";;
+		*) [ -d "$n" ] && echo "d $n2" || echo "f $n2"
+	      esac
+	      ;;
+	    *) continue
+	  esac
+	done > $slist
+	if [ -s $slist ]; then
+	    for d in /usr/lib/python[0-9].[0-9]/????-packages; do
+		case "$d" in */python2.1/*|*/python2.2/*) continue; esac
+		while read t n; do
+		    case "$t" in
+			p) rm -f $d/$n $d/${n}[co];;
+			d) rmdir $d/$n 2>/dev/null || true;;
+			*) rm -f $d/$n
+		    esac
+		done < $slist
+	    done
+	fi
+        awk '/\/usr\/share\/pyshared/ {next} /\.py$/ {print $0"c\n" $0"o"}' $flist \
+	    | xargs -r rm -f >&2
+	rm -f $flist $slist
+fi
+rm -f /var/lib/pycentral/hgview.pkgremove
+fi
+# End automatically added section

File debian/hgview/usr/bin/hgview

+#!/usr/bin/python
+
+import sys, os
+import os.path as pos
+
+use_gtk=False
+use_qt = False
+
+if '--gtk' in sys.argv:
+    use_gtk = True
+    sys.argv.remove('--gtk')
+if '--qt' in sys.argv:
+    use_qt = True
+    sys.argv.remove('--qt')
+
+if use_gtk and use_qt:
+    print "Cannot use both gtk and Qt!"
+    sys.exit(1)
+
+if not (use_gtk or use_qt):
+    if pos.isfile(pos.join(os.environ['HOME'], '.hgviewrc')):
+        try:
+            d = open(pos.join(os.environ['HOME'], '.hgviewrc')).readlines()
+        except:
+            print "Can't access to your .hgviewrc file! "
+            print "Check permissions or specify your desired backend with '--gtk' or '--qt'"
+            sys.exit(1)
+        else:
+            for l in d:
+                if l.startswith('backend'):
+                    backend = l.split('=')[1].strip()
+                    use_gtk = 'gtk' in backend
+                    use_qt = 'qt' in backend
+
+    if not (use_gtk or use_qt): # still ...
+        use_gtk = True
+        
+
+try:
+    import hgview
+    # print hgview.__file__
+except ImportError:
+    import stat
+    exec_path = pos.abspath(__file__)
+    # Resolve symbolic links
+    statinfo = os.lstat(exec_path)
+    if stat.S_ISLNK(statinfo.st_mode):
+        exec_path = pos.abspath(pos.join(pos.dirname(exec_path),
+                                os.readlink(exec_path)))
+    py_path = pos.abspath(pos.join(pos.dirname(exec_path), ".."))
+    #print "Inserting:", py_path
+    sys.path.append(py_path)
+
+if use_qt:
+    from hgview.qt4 import hgview_qt4 as hgview
+elif use_gtk:    
+    from hgview.gtk import hgview_gtk as hgview
+
+hgview.main()
+

File debian/hgview/usr/share/doc/hgview/changelog.Debian.gz

Binary file added.

File debian/hgview/usr/share/doc/hgview/changelog.gz

Binary file added.

File debian/hgview/usr/share/doc/hgview/copyright

+This package was debianized by Logilab <devel@logilab.fr>  Sat, 13 Apr 2002 19:05:23 +0200.
+
+It was downloaded from ftp://ftp.logilab.org/pub/hgview
+
+Upstream Author: 
+
+  Logilab <devel@logilab.fr>
+
+Copyright:
+
+Copyright (c) 2004-2007 LOGILAB S.A. (Paris, FRANCE).
+http://www.logilab.fr/ -- mailto:contact@logilab.fr
+
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+On Debian systems, the complete text of the GNU General Public License
+may be found in '/usr/share/common-licenses/GPL'.

File debian/hgview/usr/share/hgview/hgview.glade

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
+<glade-interface>
+  <widget class="GtkWindow" id="window_main">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">HgView</property>
+    <property name="default_width">800</property>
+    <property name="default_height">600</property>
+    <signal name="delete_event" handler="on_window_main_delete_event"/>
+    <child>
+      <widget class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <child>
+          <widget class="GtkMenuBar" id="menubar1">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkMenuItem" id="menuitem1">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_File</property>
+                <property name="use_underline">True</property>
+                <child>
+                  <widget class="GtkMenu" id="menuitem1_menu">
+                    <child>
+                      <widget class="GtkImageMenuItem" id="new1">
+                        <property name="visible">True</property>
+                        <property name="label">gtk-new</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="on_new1_activate"/>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="open1">
+                        <property name="visible">True</property>
+                        <property name="label">gtk-open</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="on_open1_activate"/>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="save1">
+                        <property name="visible">True</property>
+                        <property name="label">gtk-save</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="on_save1_activate"/>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="save_as1">
+                        <property name="visible">True</property>
+                        <property name="label">gtk-save-as</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="on_save_as1_activate"/>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
+                        <property name="visible">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="quit1">
+                        <property name="visible">True</property>
+                        <property name="label">gtk-quit</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="on_quit1_activate"/>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkMenuItem" id="menuitem3">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_View</property>
+                <property name="use_underline">True</property>
+                <child>
+                  <widget class="GtkMenu" id="menuitem3_menu">
+                    <child>
+                      <widget class="GtkCheckMenuItem" id="diffstat">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Diffstat</property>
+                        <property name="use_underline">True</property>
+                        <property name="active">True</property>
+                        <signal name="activate" handler="on_diffstat_activate"/>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="refresh">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Refresh</property>
+                        <property name="use_underline">True</property>
+                        <signal name="activate" handler="on_refresh_activate"/>
+                        <accelerator key="R" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkMenuItem" id="menuitem4">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Help</property>
+                <property name="use_underline">True</property>
+                <child>
+                  <widget class="GtkMenu" id="menuitem4_menu">
+                    <child>
+                      <widget class="GtkMenuItem" id="about">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_About</property>
+                        <property name="use_underline">True</property>
+                        <signal name="activate" handler="on_about_activate"/>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkVPaned" id="vpaned1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="position">260</property>
+            <child>
+              <widget class="GtkScrolledWindow" id="scrolledwindow1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="border_width">3</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <widget class="GtkTreeView" id="treeview_revisions">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="reorderable">True</property>
+                    <property name="rules_hint">True</property>
+                    <property name="search_column">0</property>
+                    <signal name="button_press_event" handler="on_treeview_revisions_button_press_event"/>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="resize">False</property>
+                <property name="shrink">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="vbox2">
+                <property name="visible">True</property>
+                <child>
+                  <widget class="GtkExpander" id="expander1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">3</property>
+                    <property name="expanded">True</property>
+                    <child>
+                      <widget class="GtkTable" id="table1">
+                        <property name="visible">True</property>
+                        <property name="n_rows">4</property>
+                        <property name="n_columns">3</property>
+                        <property name="column_spacing">4</property>
+                        <property name="row_spacing">2</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <widget class="GtkHSeparator" id="hseparator1">
+                            <property name="visible">True</property>
+                          </widget>
+                          <packing>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                            <property name="x_padding">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkEntry" id="entry_file_filter">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="invisible_char">*</property>
+                            <signal name="activate" handler="on_button_filter_apply_clicked"/>
+                          </widget>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label3">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Files (regexp)</property>
+                          </widget>
+                          <packing>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="button_filter_apply">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label">gtk-apply</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                            <signal name="clicked" handler="on_button_filter_apply_clicked"/>
+                          </widget>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkHBox" id="hbox3">
+                            <property name="visible">True</property>
+                            <property name="spacing">8</property>
+                            <child>
+                              <widget class="GtkLabel" id="label5">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">from</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkSpinButton" id="spinbutton_rev_low">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">0 0 100 1 10 10</property>
+                                <property name="climb_rate">1</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label6">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">to</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkSpinButton" id="spinbutton_rev_high">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">1 0 100 1 10 10</property>
+                                <property name="climb_rate">1</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">3</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label8">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Hilighlight branch</property>
+                              </widget>
+                              <packing>
+                                <property name="position">5</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkComboBox" id="branch_highlight_combo">
+                                <property name="visible">True</property>
+                                <property name="items" translatable="yes"></property>
+                                <signal name="changed" handler="on_branch_highlight_combo_changed"/>
+                              </widget>
+                              <packing>
+                                <property name="position">6</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                            <child>
+                              <widget class="GtkCheckButton" id="branch_checkbox">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">Hide others</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_branch_checkbox_toggled"/>
+                              </widget>
+                              <packing>
+                                <property name="position">7</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Revision range</property>
+                          </widget>
+                          <packing>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label9">
+                            <property name="visible">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Find (regexp)</property>
+                          </widget>
+                          <packing>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="button_find">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="response_id">0</property>
+                            <signal name="clicked" handler="on_button_find_clicked"/>
+                            <child>
+                              <widget class="GtkAlignment" id="alignment1">
+                                <property name="visible">True</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <widget class="GtkHBox" id="hbox2">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">2</property>
+                                    <child>
+                                      <widget class="GtkImage" id="image1">
+                                        <property name="visible">True</property>
+                                        <property name="stock">gtk-find</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <widget class="GtkLabel" id="label2">
+                                        <property name="visible">True</property>
+                                        <property name="label" translatable="yes">Find Next</property>
+                                        <property name="use_underline">True</property>
+                                      </widget>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="x_options"></property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkEntry" id="entry_find">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="has_focus">True</property>
+                            <property name="invisible_char">*</property>
+                            <signal name="changed" handler="on_entry_find_changed"/>
+                            <signal name="activate" handler="on_entry_find_activate"/>
+                          </widget>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="y_options"></property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label7">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Find &amp; Filter</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkHPaned" id="hpaned1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <widget class="GtkScrolledWindow" id="scrolledwindow3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="border_width">3</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <widget class="GtkTextView" id="textview_status">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="editable">False</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="resize">True</property>
+                        <property name="shrink">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkScrolledWindow" id="scrolledwindow4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="border_width">3</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <widget class="GtkTreeView" id="treeview_filelist">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="rules_hint">True</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="resize">True</property>
+                        <property name="shrink">True</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="resize">True</property>
+                <property name="shrink">True</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkStatusbar" id="statusbar1">
+            <property name="visible">True</property>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="dialog_prefs">
+    <property name="title" translatable="yes">Preferences</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <child>
+          <widget class="GtkNotebook" id="notebook1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <widget class="GtkTable" id="table2">
+                <property name="visible">True</property>
+                <property name="n_rows">4</property>
+                <property name="n_columns">3</property>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="button2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">gtk-open</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="button1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label">gtk-open</property>
+                    <property name="use_stock">True</property>
+                    <property name="response_id">0</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkEntry" id="entry_tool_diff">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkEntry" id="entry_tool_editor">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label14">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">External diff tool</property>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label13">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">File viewer</property>
+                  </widget>
+                  <packing>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label10">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Tools</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkTable" id="table3">
+                <property name="visible">True</property>
+                <property name="n_rows">4</property>
+                <property name="n_columns">2</property>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <widget class="GtkScrolledWindow" id="scrolledwindow6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <widget class="GtkTreeView" id="treeview_groups">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">3</property>
+                    <property name="bottom_attach">4</property>
+                    <property name="x_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label16">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Groups</property>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">2</property>
+                    <property name="bottom_attach">3</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkScrolledWindow" id="scrolledwindow5">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="shadow_type">GTK_SHADOW_IN</property>
+                    <child>
+                      <widget class="GtkTreeView" id="treeview_authors">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label17">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Actions</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label15">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Authors in this repository</property>
+                  </widget>
+                  <packing>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label11">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Authors</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkTable" id="table4">
+                <property name="visible">True</property>
+                <property name="n_rows">3</property>
+                <property name="n_columns">3</property>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label18">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">files</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="right_attach">3</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkCheckButton" id="checkbutton_difflimit">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">Show diffs if less than </property>
+                    <property name="use_underline">True</property>
+                    <property name="response_id">0</property>
+                    <property name="draw_indicator">True</property>
+                  </widget>
+                  <packing>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkCheckButton" id="checkbutton_diffstat">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="label" translatable="yes">Show diffstat in filetree</property>
+                    <property name="use_underline">True</property>
+                    <property name="response_id">0</property>
+                    <property name="draw_indicator">True</property>
+                  </widget>
+                  <packing>
+                    <property name="x_options"></property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkSpinButton" id="spinbutton_difflimit">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="adjustment">0 0 0 1 10 10</property>
+                    <property name="climb_rate">1</property>
+                  </widget>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="right_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="bottom_attach">2</property>
+                    <property name="y_options"></property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label12">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Misc</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="applybutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-apply</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-10</property>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="cancelbutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-6</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="okbutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-ok</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-5</property>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+</glade-interface>

File debian/hgview/usr/share/hgview/hgview.ui

+<ui version="4.0" >
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>645</width>
+    <height>646</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget" >
+   <layout class="QVBoxLayout" >
+    <property name="margin" >
+     <number>2</number>
+    </property>
+    <property name="spacing" >
+     <number>2</number>
+    </property>
+    <item>
+     <widget class="QSplitter" name="splitter" >
+      <property name="orientation" >
+       <enum>Qt::Vertical</enum>
+      </property>
+      <widget class="QTableView" name="tableView_revisions" >
+       <property name="frameShape" >
+        <enum>QFrame::StyledPanel</enum>
+       </property>
+      </widget>
+      <widget class="QFrame" name="frame_2" >
+       <property name="frameShape" >
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <property name="frameShadow" >
+        <enum>QFrame::Sunken</enum>
+       </property>
+       <property name="midLineWidth" >
+        <number>0</number>
+       </property>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="QFrame" name="frame" >
+          <property name="sizePolicy" >
+           <sizepolicy>
+            <hsizetype>5</hsizetype>
+            <vsizetype>1</vsizetype>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="frameShape" >
+           <enum>QFrame::NoFrame</enum>
+          </property>
+          <property name="frameShadow" >
+           <enum>QFrame::Plain</enum>
+          </property>
+          <property name="lineWidth" >
+           <number>0</number>
+          </property>
+          <layout class="QGridLayout" >
+           <property name="margin" >
+            <number>0</number>
+           </property>
+           <property name="spacing" >
+            <number>0</number>
+           </property>
+           <item row="3" column="1" >
+            <layout class="QHBoxLayout" >
+             <property name="margin" >
+              <number>0</number>
+             </property>
+             <property name="spacing" >
+              <number>6</number>
+             </property>
+             <item>
+              <widget class="QSpinBox" name="spinbutton_rev_low" />
+             </item>
+             <item>
+              <widget class="QSpinBox" name="spinbutton_rev_high" />
+             </item>
+             <item>
+              <spacer>
+               <property name="orientation" >
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" >
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+           <item row="3" column="0" >
+            <widget class="QLabel" name="label_3" >
+             <property name="text" >
+              <string>Revision range</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="0" >
+            <widget class="QLabel" name="label" >
+             <property name="text" >
+              <string>Find</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="0" >
+            <widget class="QLabel" name="label_2" >
+             <property name="text" >
+              <string>Filter (regex)</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="2" >
+            <widget class="QPushButton" name="button_filter" >
+             <property name="text" >
+              <string>Filter</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="1" >
+            <widget class="QLineEdit" name="entry_file_filter" />
+           </item>
+           <item row="0" column="2" >
+            <widget class="QPushButton" name="button_find" >
+             <property name="text" >
+              <string>Find Next</string>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="0" colspan="3" >
+            <widget class="Line" name="line" >
+             <property name="orientation" >
+              <enum>Qt::Horizontal</enum>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1" >
+            <widget class="QLineEdit" name="entry_find" />
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QFrame" name="frame_3" >
+          <property name="sizePolicy" >
+           <sizepolicy>
+            <hsizetype>5</hsizetype>
+            <vsizetype>7</vsizetype>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="frameShape" >
+           <enum>QFrame::NoFrame</enum>
+          </property>
+          <property name="frameShadow" >
+           <enum>QFrame::Plain</enum>
+          </property>
+          <layout class="QVBoxLayout" >
+           <property name="margin" >
+            <number>0</number>
+           </property>
+           <property name="spacing" >
+            <number>0</number>
+           </property>
+           <item>
+            <widget class="QSplitter" name="splitter_2" >
+             <property name="orientation" >
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <widget class="QTextBrowser" name="textview_status" />
+             <widget class="QTableView" name="tableView_filelist" />
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar" >
+   <property name="geometry" >
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>645</width>
+     <height>27</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile" >
+    <property name="title" >
+     <string>&amp;File</string>
+    </property>
+    <addaction name="actionOpen_repository" />
+    <addaction name="actionRefresh" />
+    <addaction name="separator" />
+    <addaction name="actionQuit" />
+   </widget>
+   <widget class="QMenu" name="menuHelp" >
+    <property name="title" >
+     <string>&amp;Help</string>
+    </property>
+    <addaction name="actionAbout" />
+   </widget>
+   <addaction name="menuFile" />
+   <addaction name="menuHelp" />
+  </widget>
+  <widget class="QStatusBar" name="statusbar" />
+  <action name="action" >
+   <property name="text" >
+    <string>'</string>
+   </property>
+  </action>
+  <action name="actionOpen_repository" >
+   <property name="text" >
+    <string>&amp;Open repository</string>
+   </property>
+   <property name="shortcut" >
+    <string>Ctrl+O</string>
+   </property>
+  </action>
+  <action name="actionRefresh" >
+   <property name="text" >
+    <string>&amp;Refresh</string>
+   </property>
+   <property name="shortcut" >
+    <string>Ctrl+R</string>
+   </property>
+  </action>
+  <action name="actionQuit" >
+   <property name="text" >
+    <string>&amp;Quit</string>
+   </property>
+   <property name="toolTip" >
+    <string>Quit</string>
+   </property>
+   <property name="shortcut" >
+    <string>Ctrl+Q</string>
+   </property>
+  </action>
+  <action name="actionAbout" >
+   <property name="text" >
+    <string>About</string>
+   </property>
+  </action>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

File debian/hgview/usr/share/man/man1/hgview.1.gz

Binary file added.

File debian/hgview/usr/share/pyshared-data/hgview

+[python-package]
+format = 1
+python-version = current
+[pycentral]
+version = 0.6.7
+[files]
+/usr/share/pyshared/hgview=d
+/usr/share/pyshared/hgview/gtk=d
+/usr/share/pyshared/hgview/gtk/__init__.py=f
+/usr/share/pyshared/hgview/gtk/graphrenderer_old.py=f
+/usr/share/pyshared/hgview/gtk/graphrenderer.py=f
+/usr/share/pyshared/hgview/gtk/diffstatrenderer.py=f
+/usr/share/pyshared/hgview/gtk/hgview_gtk.py=f
+/usr/share/pyshared/hgview/qt4=d
+/usr/share/pyshared/hgview/qt4/__init__.py=f
+/usr/share/pyshared/hgview/qt4/hgrepomodel.py=f
+/usr/share/pyshared/hgview/qt4/hgview_qt4.py=f
+/usr/share/pyshared/hgview/__init__.py=f
+/usr/share/pyshared/hgview/hgrepo.py=f
+/usr/share/pyshared/hgview/buildtree.py=f
+/usr/share/pyshared/hgview/hgviewrc.py=f
+/usr/share/pyshared/hgview/fixes.py=f
+/usr/share/pyshared/hgview/__pkginfo__.py=f
+/usr/share/pyshared/hgview-0.3.1.egg-info=f

File debian/hgview/usr/share/pyshared/hgview-0.3.1.egg-info

+Metadata-Version: 1.0
+Name: hgview
+Version: 0.3.1
+Summary: mercurial interactive history viewer
+Home-page: http://www.logilab.org/projects/hgview
+Author: Logilab
+Author-email: devel@logilab.fr
+License: GPL
+Description: 
+        Its purpose is similar to the hgk tool of mercurial, and it has been
+        written with efficiency in mind when dealing with big repositories
+        (it can happily be used to browse Linux kernel source code
+        repository).
+        
+Platform: UNKNOWN

File debian/hgview/usr/share/pyshared/hgview/__init__.py

+# Copyright (c) 2003-2007 LOGILAB S.A. (Paris, FRANCE).
+# http://www.logilab.fr/ -- mailto:contact@logilab.fr
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+"""mercurial interactive history viewer
+
+Its purpose is similar to the hgk tool of mercurial, and it has been
+written with efficiency in mind when dealing with big repositories
+(it can happily be used to browse Linux kernel source code
+repository).
+"""

File debian/hgview/usr/share/pyshared/hgview/__pkginfo__.py

+# pylint: disable-msg=W0622
+# coding: iso-8859-1
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+"""Copyright (c) 2000-2008 LOGILAB S.A. (Paris, FRANCE).
+http://www.logilab.fr/ -- mailto:contact@logilab.fr  
+"""
+
+import glob
+modname = 'hgview'
+numversion = (0, 3, 1)
+version = '.'.join([str(num) for num in numversion])
+
+
+license = 'GPL'
+copyright = '''Copyright � 2007-2008 LOGILAB S.A. (Paris, FRANCE).
+http://www.logilab.fr/ -- mailto:contact@logilab.fr'''
+
+short_desc = "mercurial interactive history viewer"
+
+long_desc = """
+ Its purpose is similar to the hgk tool of mercurial, and it has been
+ written with efficiency in mind when dealing with big repositories
+ (it can happily be used to browse Linux kernel source code
+ repository).
+"""
+
+author = "Logilab"
+author_email = "devel@logilab.fr"
+
+# TODO - publish
+web = "http://www.logilab.org/projects/%s" % modname
+ftp = "ftp://ftp.logilab.org/pub/%s" % modname
+
+
+scripts = ['bin/hgview']
+debian_name = 'hgview'
+debian_maintainer = 'Alexandre Fayolle' 
+debian_maintainer_email = 'alexandre.fayolle@logilab.fr'
+pyversions = ["2.4", "2.5"]
+
+debian_handler = 'python-dep-standalone'
+ 
+from os.path import join
+include_dirs = [] #join('tests', 'data'), join('tests', 'packages')]
+data_files = [('share/hgview', ['hgview/gtk/hgview.glade',
+                                 'hgview/qt4/hgview.ui']),
+              ('share/man/man1', ['hgview.1',
+                                 ]),]
+

File debian/hgview/usr/share/pyshared/hgview/buildtree.py

+# buildtree.py - the graph algorithm inherited from gitk
+#
+# Copyright (C) 2007 Logilab. All rights reserved.
+# Copyright (C) 2005 Tristan Wibberley <tristan at wibberley.com>. All rights reserved.
+# Copyright (C) 2005 Paul Mackerras.  All rights reserved.
+#
+# This software may be used and distributed according to the terms
+# of the GNU General Public License, incorporated herein by reference.
+
+# This was translated by Tristan from tcl/tk (gitk) to python
+# and then reworked and pruned
+# I got it from : http://www.selenic.com/pipermail/mercurial/2005-August/003585.html
+
+
+from mercurial import hg, ui
+from mercurial.node import hex as binhex
+from itertools import *
+
+nullid = "\x00"*20
+
+def parents_of(repo, node):
+    return [ p for p in repo.changelog.parents(node) if p != nullid ]
+
+# TODO : make it work with a partial set of nodes ?
+COLORS = [ "blue", "darkgreen", "darkred", "green", "darkblue", "purple",
+           "cyan", "magenta" ]
+
+class RevGraph(object):
+    def __init__(self, repo, nodes, allnodes):
+        self.repo = repo
+        self.nextcolor = 0
+        start = repo.heads()
+        
+        # number of children left to do for a given node
+        ncleft = {}
+
+        # for a given node
+        self.x = {}
+
+        # mapping of node to row
+        self.idrow = {}        
+
+        # mapping of row to list of lines
+        self.rowlines = [ set() for i in xrange(len(allnodes)) ]
+           
+        # initial depot when it is empty
+        if len(allnodes) == 0:
+            allnodes= [nullid]
+            
+        # mapping of row to number of line       
+        self.rownlines = [None]*len(allnodes)
+        self.rows = [None]*len(allnodes)
+        
+        # calculate initial ncleft for each node
+        ncleft = dict( izip( nodes, repeat(0) ) )
+        ncleft[nullid] = 0
+        
+        # build parent mapping
+        _parents = {}
+        for p in allnodes:
+            _parents[p] = _p = parents_of(repo, p)
+        if len(nodes) == len(allnodes):
+            todo = start[:] # None is a blank column
+            parents = _parents
+        else:
+            # this path is ... approximative at best
+            children = {}
+            parents = {}
+            todo = allnodes
+            _nodes = set(nodes)
+            while todo:
+                print "*"
+                next = set()
+                for node in todo:
+                    par = _parents[node]
+                    npar = set()
+                    for p in par:
+                        if p not in _nodes:
+                            npar.update( _parents[p] )
+                            next.add( node )
+                        else:
+                            npar.add(p)
+                    for p in set(npar):
+                        for k in _parents[p]:
+                            if k in npar:
+                                npar.remove(p)
+                                break
+                    _parents[node] = npar
+                todo = next
+            for n in nodes:
+                par = _parents[n]
+                parents[n] = list(par)
+                for p in par:
+                    children[p] = n
+            todo = []
+            for p in nodes:
+                if p not in children:
+                    todo.append( p )
+            del children
+
+        for node in nodes:
+            ps = parents[node]
+            for p in ps:
+                ncleft[p] += 1
+
+        level = len(todo) - 1 # column of the node being worked with
+        # next column to be eradicate when it is determined that one should be
+        nullentry = -1 
+
+        todo.reverse()
+        
+        rowno = -1
+        linestarty = {}
+        self.datemode = False
+        
+        self.todo = todo
+        self.colors = {}
+        self.rowno = rowno
+        self.level = level
+        self.parents = parents
+        self.ncleft = ncleft
+        self.nchildren = ncleft.copy()
+        self.linestarty = linestarty
+        self.nullentry = nullentry
+        self.done = False
+        #print "START", [binhex(n) for n in todo]
+
+    def assigncolor(self, p, color = None):
+        while len(self.parents[p]) == 1:
+            p = self.parents[p][0]
+            if self.nchildren[p] != 1:
+                break
+        if p in self.colors:
+            return p
+        if color is None:
+            n = self.nextcolor
+            color = COLORS[n]