#
# patch "configure.ac"
# from [e5b02da6f834e4f4e61b85f925a2b7ba87c7be9d]
# to [9f3cd70fbd6b8350ba4b85beebf8d6df8c64d4a9]
#
# patch "query.ml"
# from [6275ad90471c3193c0b477af9ce2f30b1fc413c0]
# to [acdeef859b8d7d2e3cef094a832c02f6a6322feb]
#
# patch "ui.ml"
# from [0d4d672f6ed2a70f09ca2f22d54947d27e59c400]
# to [7d156a725cc388c4495bc8b46dbb062386ac0845]
#
# patch "unidiff.ml"
# from [adba6e0ccf2cd60de8b72a8a1126398839104791]
# to [d2a54e9183e027c92faee8c6a7eec008478876ee]
#
========================================================================
--- configure.ac e5b02da6f834e4f4e61b85f925a2b7ba87c7be9d
+++ configure.ac 9f3cd70fbd6b8350ba4b85beebf8d6df8c64d4a9
@@ -10,18 +10,20 @@
fi
# Check LablGTK
+AC_ARG_VAR(LABLGTK_DIR,[LablGTK location])
AC_ARG_WITH([lablgtk-dir],
AS_HELP_STRING([--with-lablgtk-dir=],
[specify location of lablgtk library]),
LABLGTK_DIR=$withval)
-AC_CHECK_OCAML_MODULE(lablgtk, LABLGTK_DIR, GFile, +lablgtk2 +lablgtk)
+FINDLIB_LABLGTK=$(ocamlfind query lablgtk2 2> /dev/null)
+AC_CHECK_OCAML_MODULE(lablgtk, LABLGTK_DIR, GFile, +lablgtk2 +lablgtk ${FINDLIB_LABLGTK})
# Stop if LablGTK is not found
if test -z "$LABLGTK_DIR" ; then
AC_MSG_ERROR([
Could not find LablGTK. Make sure LablGTK >= 2.4.0 is installed and
specify its location to configure with the `--with-lablgtk-dir='
-option.])
+option or the LABLGTK_DIR environment variable.])
fi
LABLGTK_DIR=$(echo $LABLGTK_DIR | sed "address@hidden@$OCAMLLIB/@")
# Check if LablGTK was compiled with libgnomecanvas support
@@ -50,27 +52,33 @@
MONOTONE_DIR=$withval,
MONOTONE_DIR=monotone)
AC_ARG_WITH([shared-sqlite],
- AS_HELP_STRING([--with-shared-sqlite=],
+ AS_HELP_STRING([--with-shared-sqlite],
[use a system-wide shared sqlite library]),
SHARED_SQLITE=$withval,
- SHARED_SQLITE=no)
-AC_MSG_CHECKING(sqlite)
-if test "$SHARED_SQLITE" = "yes" ; then
- PKG_CHECK_MODULES(SQLITE, sqlite3 >= 3.0,,AC_MSG_ERROR([
-Couldn't use the shared sqlite package.]))
-elif test -d "$MONOTONE_DIR" -a -r "$MONOTONE_DIR/sqlite/lib3rdparty_a-main.o" ; then
- AC_MSG_RESULT(found in $MONOTONE_DIR/sqlite)
-else
- AC_MSG_ERROR([
+ SHARED_SQLITE=maybe)
+if test "$SHARED_SQLITE" = "yes" -o "$SHARED_SQLITE" = "maybe" ; then
+ PKG_CHECK_MODULES(SQLITE, sqlite3 >= 3.0,
+ SHARED_SQLITE=yes,
+ if test "$SHARED_SQLITE" = "yes" ; then AC_MSG_ERROR([
+Couldn't find the shared sqlite package.]) ; fi)
+fi
+if test "$SHARED_SQLITE" != "yes" ; then
+ AC_MSG_CHECKING(monotone's sqlite)
+ if test -d "$MONOTONE_DIR" -a -r "$MONOTONE_DIR/sqlite/lib3rdparty_a-main.o" ; then
+ AC_MSG_RESULT(found in $MONOTONE_DIR/sqlite)
+ else
+ AC_MSG_ERROR([
+
Could not find compiled sqlite sources. Monotone-viz needs a compiled
monotone tree for the sqlite library. Create a link named `monotone'
or specify the location to configure using the `--with-monotone-dir='
option.])
+ fi
+ if test "${MONOTONE_DIR:0:1}" != "/" ; then
+ MONOTONE_DIR=$(pwd)/$MONOTONE_DIR
+ fi
fi
-if test "${MONOTONE_DIR:0:1}" != "/" ; then
- MONOTONE_DIR=$(pwd)/$MONOTONE_DIR
-fi
AC_SUBST(MONOTONE_DIR)
========================================================================
--- query.ml 6275ad90471c3193c0b477af9ce2f30b1fc413c0
+++ query.ml acdeef859b8d7d2e3cef094a832c02f6a6322feb
@@ -35,17 +35,24 @@
let category title ?expand (vbox : #GPack.box) =
- let _ =
+ let base_label =
+ Printf.sprintf "%s" (Glib.Markup.escape_text title) in
+ let lab =
GMisc.label
- ~markup:(Printf.sprintf "%s" (Glib.Markup.escape_text title))
+ ~markup:base_label
~xalign:0.
~packing:vbox#pack () in
+ let set_label nb =
+ if nb = 0
+ then lab#set_label base_label
+ else lab#set_label (Printf.sprintf "%s (%d matches)" base_label nb) in
let al = GBin.alignment ~border_width:8 ~packing:(vbox#pack ?expand) () in
al#misc#set_property "left-padding" (`INT 16) ;
- al#add
+ (al#add, set_label)
-let setup_query_builder packing =
+let setup_query_builder vbox =
Lazy.force init_stock ;
+ let (packing, _) = category "Query" vbox in
let packing = (GPack.hbox ~packing ())#pack in
let _ = GMisc.label ~text:"Cert name: " ~packing () in
let (e_cert_name, _) =
@@ -79,7 +86,8 @@
let clear_model m =
m.model#clear ()
-let setup_results_view packing =
+let setup_results_view vbox =
+ let (packing, set_label) = category "Results" ~expand:true vbox in
let { model = model } as m = make_model () in
let packing = View.wrap_in_scroll_window packing in
let v = GTree.view ~model ~headers_clickable:true ~packing ~height:100 () in
@@ -93,7 +101,7 @@
add_string_renderer "Id" ~props:[`FAMILY "Monospace"] m.col_id ;
add_string_renderer "Date" m.col_date ;
add_string_renderer "Author" m.col_author ;
- m, v
+ m, v, set_label
let update_results m r =
if r <> [] then clear_model m ;
@@ -110,13 +118,13 @@
let make v =
let w = GWindow.dialog
~title:"Monotone-viz Query"
- ~icon:(Lazy.force Icon.monotone)
?parent:(View.get_toplevel v)
~destroy_with_parent:true
- ~border_width:8 () in
+ ~border_width:8
+ ~type_hint:`NORMAL () in
- let (e1, e2) = setup_query_builder (category "Query" w#vbox) in
- let (m, rv) = setup_results_view (category "Results" ~expand:true w#vbox) in
+ let (e1, e2) = setup_query_builder w#vbox in
+ let (m, rv, set_label) = setup_results_view w#vbox in
w#add_button_stock `CLOSE `CLOSE ;
w#add_button_stock `CLEAR `CLEAR ;
@@ -134,10 +142,12 @@
| `CLEAR ->
clear_model m
| `QUERY ->
- update_results m
- (do_query
- ~cert_name:e1#text ~cert_value:e2#text
- v))) ;
+ let results =
+ do_query
+ ~cert_name:e1#text ~cert_value:e2#text
+ v in
+ update_results m results ;
+ set_label (List.length results))) ;
ignore (rv#connect#row_activated (fun path view_col ->
let id =
========================================================================
--- ui.ml 0d4d672f6ed2a70f09ca2f22d54947d27e59c400
+++ ui.ml 7d156a725cc388c4495bc8b46dbb062386ac0845
@@ -240,7 +240,6 @@
let prefs = ref v.View.prefs in
let w = GWindow.dialog
~title:"Monotone-viz Preferences"
- ~icon:(Lazy.force Icon.monotone)
?parent:(View.get_toplevel v)
~destroy_with_parent:true
~border_width:8 () in
========================================================================
--- unidiff.ml adba6e0ccf2cd60de8b72a8a1126398839104791
+++ unidiff.ml d2a54e9183e027c92faee8c6a7eec008478876ee
@@ -44,7 +44,10 @@
(fun q (n, s, len) ->
if is_prefix "--- " text s
then begin
- let filename = String.sub text (s + 4) (len - 4) in
+ let filename =
+ let s = String.sub text (s + 4) (len - 4) in
+ try String.sub s 0 (String.rindex s '\t')
+ with Not_found -> s in
Q.push_list q [ HEADER n ; FILE (filename, n) ] end
else if is_prefix "+++ " text s
then Q.push q (HEADER n)
@@ -106,7 +109,7 @@
~no_separator:true ?parent
~title:"Monotone diff output"
~type_hint:`NORMAL
- ~icon:(Lazy.force Icon.monotone) () in
+ () in
window#add_button_stock `SAVE `SAVE ;
window#add_button_stock `CLOSE `CLOSE ;
window#set_default_response `CLOSE ;