]> git.donarmstrong.com Git - xournal.git/commitdiff
Release 0.4.1
authorauroux <auroux>
Sun, 16 Sep 2007 01:54:13 +0000 (01:54 +0000)
committerauroux <auroux>
Sun, 16 Sep 2007 01:54:13 +0000 (01:54 +0000)
24 files changed:
ChangeLog
INSTALL
Makefile.am
NEWS
README
configure.in
html-doc/manual.html
install-binary
pixmaps/xoj.svg [new file with mode: 0644]
src/TODO
src/main.c
src/xo-callbacks.c
src/xo-callbacks.h
src/xo-file.c
src/xo-file.h
src/xo-interface.c
src/xo-misc.c
src/xo-misc.h
src/xo-paint.c
src/xournal.h
x-xoj.desktop [new file with mode: 0644]
xournal.desktop [new file with mode: 0644]
xournal.glade
xournal.xml [new file with mode: 0644]

index 89fe6c16965ec440010878dce2b1fe1ace7e80ee..a1eb927270c567506b9fe4e635ba504b768a94a1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Version 0.4.1 (Sep 15, 2007):
+  - bugfix: compatibility with new versions of pdftoppm (thanks to V. Ciancia)
+  - GTK+ 2.11 event processing bugfix
+  - minor bugfixes: hand tool, handling of filenames containing '&'
+  - desktop and MIME files (thanks to Mathieu Bouchard) + updated installer
+  - config options: left-handed scrollbar (contributed by Uwe Winter),
+    hide some menu items (customizable in config file), auto-save preferences
+
 Version 0.4.0.1 (Sep 3, 2007):
   - bugfixes for GTK+ 2.11 behavior (thanks to everyone who reported bugs)
 
diff --git a/INSTALL b/INSTALL
index d7fe13bba188a236d8f6f9bcd75d656416f99066..4e92d76701a5b8f1d25d86c236c6a5f14a1b3e6c 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -56,7 +56,7 @@ Installation in /usr/local:
 ./autogen.sh
 make
 (as root) make install
-
+(as root) make desktop-install
 
 Installation in $HOME:
 
@@ -64,3 +64,4 @@ Installation in $HOME:
 ./configure --prefix=$HOME
 make
 make install
+make home-desktop-install
index 0a4d4bc4a2d302e02cb14f9cc1cb3a4c78342e82..2bfe3dbb108ff88a2f26d271ca88f4c5cd974d84 100644 (file)
@@ -4,10 +4,9 @@ SUBDIRS = src
 
 EXTRA_DIST = \
        autogen.sh \
-       xournal.glade \
-       xournal.gladep \
-       maemo/xournal.desktop \
-       maemo/xournal.service
+       xournal.glade xournal.gladep \
+       xournal.xml x-xoj.desktop xournal.desktop \
+       maemo/xournal.desktop maemo/xournal.service
 
 install-data-local:
        @$(NORMAL_INSTALL)
@@ -29,6 +28,66 @@ install-data-local:
          if test ! -e $(DESTDIR)$(pkgdatadir)/html-doc/pixmaps; then \
            ln -s ../pixmaps $(DESTDIR)$(pkgdatadir)/html-doc/pixmaps; \
          fi \
+       fi; \
+       echo "*** Desktop files, icons, MIME types not installed. Run 'make desktop-install'"; \
+       echo "*** (or 'make home-desktop-install' for installation in a home directory)."
+
+desktop-install:
+       if test "$(datadir)" = "/usr/share"; then \
+         desktopdir=/usr/share; \
+       else \
+         desktopdir=/usr/local/share; \
+       fi; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/mime/packages; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/applications; \
+       $(mkinstalldirs) $(DESTDIR)/usr/share/mimelnk/application; \
+       $(INSTALL_DATA) $(srcdir)/pixmaps/xournal.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+       $(INSTALL_DATA) $(srcdir)/pixmaps/xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+       if test ! -e $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then \
+         ln -s xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; \
+       fi; \
+       $(INSTALL_DATA) $(srcdir)/xournal.xml $(DESTDIR)$$desktopdir/mime/packages; \
+       $(INSTALL_DATA) $(srcdir)/xournal.desktop $(DESTDIR)$$desktopdir/applications; \
+       $(INSTALL_DATA) $(srcdir)/x-xoj.desktop $(DESTDIR)/usr/share/mimelnk/application; \
+       if test -z "$(DESTDIR)"; then \
+         echo "Updating desktop, mime, and icon databases."; \
+         update-desktop-database; \
+         update-mime-database $$desktopdir/mime; \
+         gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor; \
+       else \
+         echo "*** Not updating desktop, mime, and icon databases. After install, run:"; \
+         echo "***   update-desktop-database"; \
+         echo "***   update-mime-database $$desktopdir/mime"; \
+         echo "***   gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor"; \
+       fi
+
+home-desktop-install:
+       desktopdir=$(HOME)/.local/share; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/mime/packages; \
+       $(mkinstalldirs) $(DESTDIR)$$desktopdir/applications; \
+       $(mkinstalldirs) $(DESTDIR)$(HOME)/.kde/share/mimelnk/application; \
+       $(INSTALL_DATA) $(srcdir)/pixmaps/xournal.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/apps; \
+       $(INSTALL_DATA) $(srcdir)/pixmaps/xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes; \
+       if test ! -e $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then \
+         ln -s xoj.svg $(DESTDIR)$$desktopdir/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; \
+       fi; \
+       $(INSTALL_DATA) $(srcdir)/xournal.xml $(DESTDIR)$$desktopdir/mime/packages; \
+       $(INSTALL_DATA) $(srcdir)/xournal.desktop $(DESTDIR)$$desktopdir/applications; \
+       $(INSTALL_DATA) $(srcdir)/x-xoj.desktop $(DESTDIR)$(HOME)/.kde/share/mimelnk/application; \
+       if test -z "$(DESTDIR)"; then \
+         echo "Updating desktop, mime, and icon databases."; \
+         XDG_DATA_DIRS=$(HOME)/.local/share update-desktop-database; \
+         update-mime-database $$desktopdir/mime; \
+         gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor; \
+       else \
+         echo "*** Not updating desktop, mime, and icon databases. After install, run:"; \
+         echo "***   update-desktop-database"; \
+         echo "***   update-mime-database $$desktopdir/mime"; \
+         echo "***   gtk-update-icon-cache -f -t $$desktopdir/icons/hicolor"; \
        fi
 
 dist-hook:
diff --git a/NEWS b/NEWS
index db0d707265ff82cef634d6a5cd03b80fbc965424..8bed444d5d58abbde7389c4d6d6be23e15402297 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Version 0.4.0.1 (September 3, 2007)
+Version 0.4.1 (September 15, 2007)
 
 Installation:  see INSTALL
 User's manual: see html-doc/manual.html
diff --git a/README b/README
index db0d707265ff82cef634d6a5cd03b80fbc965424..8bed444d5d58abbde7389c4d6d6be23e15402297 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Version 0.4.0.1 (September 3, 2007)
+Version 0.4.1 (September 15, 2007)
 
 Installation:  see INSTALL
 User's manual: see html-doc/manual.html
index f5c9a72fa166cb0bf464d9db28ce563f13d12ac0..3f83ca89f70bfe10ff2440fc9d3dbea11b4b7af8 100644 (file)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(xournal, 0.4.0.1)
+AM_INIT_AUTOMAKE(xournal, 0.4.1)
 AM_CONFIG_HEADER(config.h)
 AM_MAINTAINER_MODE
 
index 8e7a14a9507591b74c024bd0e99648753da2ba1b..3faea72bdd09500ef1f33ad2f4736d413297248b 100644 (file)
@@ -24,7 +24,7 @@
   Xournal User's Manual
 </h2>
 <p style="font-size: 0.95em; text-align: center; color: rgb(0,0,0)">
- Version 0.4.0.1
+ Version 0.4.1
 </p>
 <hr />
 <p>
@@ -555,6 +555,19 @@ Bug reports and suggestions can also be submitted on Xournal's
 <a name="changelog"></a>
 <h2 class="subtitle">Version history</h2>
 <p>
+Version 0.4.1 (Sep 15, 2007):
+<ul>
+ <li> bugfix: compatibility with new versions of pdftoppm (thanks to
+      Vincenzo Ciancia)</li>
+ <li>GTK+ 2.11 event processing bugfix</li>
+ <li>minor bugfixes: hand tool, handling of filenames containing '&amp;'</li>
+ <li>desktop and MIME files (thanks to Mathieu Bouchard) + updated installer</li>
+ <li>config options: left-handed scrollbar (contributed by Uwe Winter),
+     hide some menu items (customizable in config file), auto-save
+     preferences</li>
+</ul>
+</p>
+<p>
 Version 0.4.0.1 (September 3, 2007):
 <ul>
  <li>bugfixes for GTK+ 2.11 behavior (thanks to everyone who reported bugs)</li>
@@ -871,6 +884,7 @@ installed on your system).
 ./autogen.sh
 make
 (as root) make install
+(as root) make desktop-install
 </pre>
 </p>
 <p>
@@ -880,6 +894,7 @@ make
 ./configure --prefix=$HOME
 make
 make install
+make home-desktop-install
 </pre>
 </p>
 <p><b>Configure error message:</b> <br />
index 63a1fa385b6e4b5fbbeb893b1810b5072b2c60e4..3e8df6a16b678af62285aaacc2cfe69ea551baaf 100755 (executable)
@@ -6,14 +6,17 @@ if test `id -u` = 0; then
   echo "Press Control-C to abort, or Enter to proceed."
   read
 
+  echo "Installing xournal in /usr/local/bin..."
   test -z /usr/local/bin || mkdir -p /usr/local/bin
   install -c src/xournal /usr/local/bin/xournal
 
+  echo "Installing pixmaps in /usr/local/share/xournal/pixmaps..."
   install -d /usr/local/share/xournal/pixmaps
   for pixmap in pixmaps/*; do
     install -c -m 644 $pixmap /usr/local/share/xournal/pixmaps
   done
 
+  echo "Installing html-doc in /usr/local/share/xournal/html-doc..."
   install -d /usr/local/share/xournal/html-doc
   for docfile in html-doc/*; do
     if test -f $docfile; then
@@ -23,6 +26,24 @@ if test `id -u` = 0; then
   if test ! -e /usr/local/share/xournal/html-doc/pixmaps; then
     ln -s ../pixmaps /usr/local/share/xournal/html-doc/pixmaps
   fi
+
+  echo "Installing desktop files and MIME info in /usr/local/share and /usr/share/mimelnk..."
+  install -d /usr/local/share/icons/hicolor/scalable/apps
+  install -d /usr/local/share/icons/hicolor/scalable/mimetypes
+  install -d /usr/share/mimelnk/application
+  install -d /usr/local/share/mime/packages
+  install -d /usr/local/share/applications
+  install -c -m 644 pixmaps/xournal.svg /usr/local/share/icons/hicolor/scalable/apps
+  install -c -m 644 pixmaps/xoj.svg /usr/local/share/icons/hicolor/scalable/mimetypes
+  if test ! -e /usr/local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then
+    ln -s xoj.svg /usr/local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg
+  fi
+  install -c -m 644 x-xoj.desktop /usr/share/mimelnk/application
+  install -c -m 644 xournal.xml /usr/local/share/mime/packages
+  install -c -m 644 xournal.desktop /usr/local/share/applications
+  update-desktop-database
+  update-mime-database /usr/local/share/mime
+  gtk-update-icon-cache -f -t /usr/local/share/icons/hicolor
 else
   echo "To install xournal in /usr/local, you must run this installer as root."
   echo "This installer will now attempt to install xournal in your home directory."
@@ -36,14 +57,17 @@ else
     location=$HOME/bin
   fi
 
+  echo "Installing xournal in $location..."
   test -z $location || mkdir -p $location
   install -c src/xournal $location/xournal
 
+  echo "Installing pixmaps in $location/pixmaps..."
   install -d $location/pixmaps
   for pixmap in pixmaps/*; do
     install -c -m 644 $pixmap $location/pixmaps
   done
 
+  echo "Installing html-doc in $location/html-doc..."
   install -d $location/html-doc
   for docfile in html-doc/*; do
     if test -f $docfile; then
@@ -53,4 +77,22 @@ else
   if test ! -e $location/html-doc/pixmaps; then
     ln -s ../pixmaps $location/html-doc/pixmaps
   fi
+
+  echo "Installing desktop files and MIME info in $HOME/.local..."
+  install -d $HOME/.local/share/icons/hicolor/scalable/apps
+  install -d $HOME/.local/share/icons/hicolor/scalable/mimetypes
+  install -d $HOME/.kde/share/mimelnk/application
+  install -d $HOME/.local/share/mime/packages
+  install -d $HOME/.local/share/applications
+  install -c -m 644 pixmaps/xournal.svg $HOME/.local/share/icons/hicolor/scalable/apps
+  install -c -m 644 pixmaps/xoj.svg $HOME/.local/share/icons/hicolor/scalable/mimetypes
+  if test ! -e $HOME/.local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg; then
+    ln -s xoj.svg $HOME/.local/share/icons/hicolor/scalable/mimetypes/gnome-mime-application-x-xoj.svg
+  fi
+  install -c -m 644 x-xoj.desktop $HOME/.kde/share/mimelnk/application
+  install -c -m 644 xournal.xml $HOME/.local/share/mime/packages
+  install -c -m 644 xournal.desktop $HOME/.local/share/applications
+  XDG_DATA_DIRS=$HOME/.local/share update-desktop-database
+  update-mime-database $HOME/.local/share/mime
+  gtk-update-icon-cache -f -t $HOME/.local/share/icons/hicolor
 fi
diff --git a/pixmaps/xoj.svg b/pixmaps/xoj.svg
new file mode 100644 (file)
index 0000000..0951969
--- /dev/null
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 10.0.3, SVG Export Plug-In . SVG Version: 3.0.0 Build 77)  -->
+<svg
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="128"
+   height="128"
+   viewBox="0 0 128 128"
+   overflow="visible"
+   enable-background="new 0 0 128 128"
+   xml:space="preserve"
+   id="svg2326"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="xoj.svg"
+   sodipodi:docbase="/home/mbouchar/src/debian/xournal/0.4/xournal-0.4/debian"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
+   id="metadata2428"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+   id="defs2426"><linearGradient
+     id="linearGradient9952"
+     inkscape:collect="always"><stop
+       id="stop9954"
+       offset="0"
+       style="stop-color:#ffffff;stop-opacity:1;" /><stop
+       id="stop9956"
+       offset="1"
+       style="stop-color:#ffffff;stop-opacity:0;" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient9952"
+     id="linearGradient1544"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+     x1="55.876038"
+     y1="62.401989"
+     x2="38.061356"
+     y2="62.827091" /><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient9910"
+     id="linearGradient1542"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+     x1="28.244684"
+     y1="60.445503"
+     x2="28.244684"
+     y2="68.224884" /><linearGradient
+     id="linearGradient9920"><stop
+       style="stop-color:#5b90c8;stop-opacity:1;"
+       offset="0"
+       id="stop9922" /><stop
+       id="stop9924"
+       offset="0.31578946"
+       style="stop-color:#8fb0d1;stop-opacity:1;" /><stop
+       style="stop-color:#34679d;stop-opacity:1;"
+       offset="1"
+       id="stop9926" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient9920"
+     id="linearGradient1540"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+     x1="28.244684"
+     y1="60.445503"
+     x2="28.244684"
+     y2="68.224884" /><linearGradient
+     id="linearGradient9910"><stop
+       id="stop9912"
+       offset="0"
+       style="stop-color:#729fcf;stop-opacity:1;" /><stop
+       style="stop-color:#a5bfda;stop-opacity:1;"
+       offset="0.31578946"
+       id="stop9918" /><stop
+       id="stop9914"
+       offset="1"
+       style="stop-color:#376ca4;stop-opacity:1;" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient9910"
+     id="linearGradient1538"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.345313,-0.501658,-0.501658,-0.345313,87.52497,58.69517)"
+     x1="28.244684"
+     y1="60.445503"
+     x2="28.244684"
+     y2="68.224884" /></defs><sodipodi:namedview
+   inkscape:window-height="877"
+   inkscape:window-width="1052"
+   inkscape:pageshadow="2"
+   inkscape:pageopacity="0.0"
+   guidetolerance="10.0"
+   gridtolerance="10.0"
+   objecttolerance="10.0"
+   borderopacity="1.0"
+   bordercolor="#666666"
+   pagecolor="#ffffff"
+   id="base"
+   inkscape:zoom="2"
+   inkscape:cx="55.768863"
+   inkscape:cy="113.05075"
+   inkscape:window-x="0"
+   inkscape:window-y="0"
+   inkscape:current-layer="g2329" />
+       <g
+   id="Layer_1">
+               <g
+   id="g2329">
+                       <g
+   id="g2331">
+                               <path
+   fill="#FFFFFF"
+   d="M121.164,1.052H6.836v125.896h80.701l33.627-33.627V1.052z"
+   id="path2333" />
+                               <linearGradient
+   id="XMLID_1_"
+   gradientUnits="userSpaceOnUse"
+   x1="63.9204"
+   y1="154.5645"
+   x2="63.9204"
+   y2="-100.9347">
+                                       <stop
+   offset="0"
+   style="stop-color:#FFFFFF"
+   id="stop2336" />
+                                       <stop
+   offset="0.2457"
+   style="stop-color:#F6F6F6"
+   id="stop2338" />
+                                       <stop
+   offset="0.6374"
+   style="stop-color:#DFDFDF"
+   id="stop2340" />
+                                       <stop
+   offset="1"
+   style="stop-color:#C4C4C4"
+   id="stop2342" />
+                                       <a:midPointStop
+   offset="0"
+   style="stop-color:#FFFFFF" />
+                                       <a:midPointStop
+   offset="0.6045"
+   style="stop-color:#FFFFFF" />
+                                       <a:midPointStop
+   offset="1"
+   style="stop-color:#C4C4C4" />
+                               </linearGradient>
+                               <path
+   fill="url(#XMLID_1_)"
+   d="M117.734,4.019H10.266l-0.16,122.654h76.457l31.172-31.252V4.019z"
+   id="path2344" />
+                               <linearGradient
+   id="XMLID_2_"
+   gradientUnits="userSpaceOnUse"
+   x1="-26.333"
+   y1="-26.333"
+   x2="56.1662"
+   y2="56.1662">
+                                       <stop
+   offset="0"
+   style="stop-color:#B3B3B3"
+   id="stop2347" />
+                                       <stop
+   offset="1"
+   style="stop-color:#828282"
+   id="stop2349" />
+                                       <a:midPointStop
+   offset="0"
+   style="stop-color:#B3B3B3" />
+                                       <a:midPointStop
+   offset="0.5"
+   style="stop-color:#B3B3B3" />
+                                       <a:midPointStop
+   offset="1"
+   style="stop-color:#828282" />
+                               </linearGradient>
+                               <path
+   fill="url(#XMLID_2_)"
+   d="M121.164,0.552H6.336v126.896h81.408l33.92-33.92V0.552H121.164z M120.664,1.552      c0,0.987,0,91.152,0,91.562c-0.289,0.289-33.045,33.045-33.334,33.334c-0.41,0-79.01,0-79.994,0c0-0.988,0-123.909,0-124.896      C8.322,1.552,119.678,1.552,120.664,1.552z"
+   id="path2351" />
+                               <linearGradient
+   id="XMLID_3_"
+   gradientUnits="userSpaceOnUse"
+   x1="43.0229"
+   y1="25.4214"
+   x2="204.0073"
+   y2="111.0652">
+                                       <stop
+   offset="0"
+   style="stop-color:#FFFFFF"
+   id="stop2354" />
+                                       <stop
+   offset="0.8603"
+   style="stop-color:#DADADA"
+   id="stop2356" />
+                                       <stop
+   offset="1"
+   style="stop-color:#D4D4D4"
+   id="stop2358" />
+                                       <a:midPointStop
+   offset="0"
+   style="stop-color:#FFFFFF" />
+                                       <a:midPointStop
+   offset="0.5254"
+   style="stop-color:#FFFFFF" />
+                                       <a:midPointStop
+   offset="1"
+   style="stop-color:#D4D4D4" />
+                               </linearGradient>
+                               <path
+   fill="url(#XMLID_3_)"
+   d="M118.006,15.223V3.94H10.199l-0.096,65.34c9.975,4.547,21.151,7.096,32.954,7.096      C80.402,76.376,111.455,48.876,118.006,15.223z"
+   id="path2360" />
+                       </g>
+                       <linearGradient
+   id="XMLID_4_"
+   gradientUnits="userSpaceOnUse"
+   x1="-3.7275"
+   y1="10.6514"
+   x2="127.5933"
+   y2="10.6514">
+                               <stop
+   offset="0"
+   style="stop-color:#B3CAFF"
+   id="stop2363" />
+                               <stop
+   offset="1"
+   style="stop-color:#0053BD"
+   id="stop2365" />
+                               <a:midPointStop
+   offset="0"
+   style="stop-color:#B3CAFF" />
+                               <a:midPointStop
+   offset="0.5"
+   style="stop-color:#B3CAFF" />
+                               <a:midPointStop
+   offset="1"
+   style="stop-color:#0053BD" />
+                       </linearGradient>
+                       <path
+   fill="url(#XMLID_4_)"
+   d="M117.692,17.023H10.308V4.279h107.385V17.023z"
+   id="path2367" />
+                       
+                       <g
+   id="g2384">
+                               
+                                       <radialGradient
+   id="XMLID_6_"
+   cx="108.4668"
+   cy="118.249"
+   r="34.7364"
+   fx="108.4668"
+   fy="118.249"
+   gradientUnits="userSpaceOnUse">
+                                       <stop
+   offset="0"
+   style="stop-color:#000000"
+   id="stop2387" />
+                                       <stop
+   offset="1"
+   style="stop-color:#000000"
+   id="stop2389" />
+                                       <a:midPointStop
+   offset="0"
+   style="stop-color:#000000" />
+                                       <a:midPointStop
+   offset="0.5"
+   style="stop-color:#000000" />
+                                       <a:midPointStop
+   offset="1"
+   style="stop-color:#000000" />
+                               </radialGradient>
+                               <path
+   opacity="0.1"
+   fill="url(#XMLID_6_)"
+   d="M85.191,90.976v35.754h1.793l33.639-33.639v-2.115H85.191z"
+   id="path2391" />
+                               <path
+   fill="#FFFFFF"
+   d="M87.537,126.948l33.627-33.627H87.537V126.948z"
+   id="path2393" />
+                               <linearGradient
+   id="XMLID_7_"
+   gradientUnits="userSpaceOnUse"
+   x1="104.0166"
+   y1="98.1807"
+   x2="95.0883"
+   y2="135.7938">
+                                       <stop
+   offset="0"
+   style="stop-color:#FFFFFF"
+   id="stop2396" />
+                                       <stop
+   offset="1"
+   style="stop-color:#CCCCCC"
+   id="stop2398" />
+                                       <a:midPointStop
+   offset="0"
+   style="stop-color:#FFFFFF" />
+                                       <a:midPointStop
+   offset="0.5"
+   style="stop-color:#FFFFFF" />
+                                       <a:midPointStop
+   offset="1"
+   style="stop-color:#CCCCCC" />
+                               </linearGradient>
+                               <path
+   fill="url(#XMLID_7_)"
+   d="M89.865,125.056l29.594-29.592H89.865V125.056z"
+   id="path2400" />
+                               <linearGradient
+   id="XMLID_8_"
+   gradientUnits="userSpaceOnUse"
+   x1="82.3086"
+   y1="88.0928"
+   x2="96.1043"
+   y2="101.8885">
+                                       <stop
+   offset="0"
+   style="stop-color:#B3B3B3"
+   id="stop2403" />
+                                       <stop
+   offset="1"
+   style="stop-color:#828282"
+   id="stop2405" />
+                                       <a:midPointStop
+   offset="0"
+   style="stop-color:#B3B3B3" />
+                                       <a:midPointStop
+   offset="0.5"
+   style="stop-color:#B3B3B3" />
+                                       <a:midPointStop
+   offset="1"
+   style="stop-color:#828282" />
+                               </linearGradient>
+                               <path
+   fill="url(#XMLID_8_)"
+   d="M87.537,92.821c-0.277,0-0.5,0.223-0.5,0.5v33.627c0,0.203,0.121,0.385,0.309,0.463      c0.186,0.076,0.402,0.033,0.545-0.109l33.627-33.627c0.143-0.145,0.186-0.359,0.109-0.545c-0.078-0.188-0.26-0.309-0.463-0.309      H87.537z M119.957,93.821c-1.58,1.578-30.342,30.34-31.92,31.92c0-2.209,0-30.986,0-31.92      C88.971,93.821,117.748,93.821,119.957,93.821z"
+   id="path2407" />
+                       </g>
+                       <g
+   id="g2409">
+                               
+                               
+                               
+                               
+                               
+                               <path
+   d="M 14.533455,15 L 17.421455,10.5 L 14.799455,6.359 L 16.773455,6.359 L 18.422455,8.939 L 20.078455,6.359 L 22.049455,6.359 L 19.419455,10.498 L 22.299455,15 L 20.270455,15 L 18.417455,12.075 L 16.559455,15 L 14.533455,15 z "
+   id="path2421"
+   style="fill:#ffffff" />
+                       <path
+   d="M 35.724995,6.4604787 L 37.458995,6.4604787 L 37.458995,11.906479 C 37.458995,12.618479 37.395995,13.166479 37.270995,13.550479 C 37.102995,14.051479 36.797995,14.452479 36.356995,14.756479 C 35.914995,15.059479 35.332995,15.211479 34.608995,15.211479 C 33.760995,15.211479 33.107995,14.971479 32.650995,14.492479 C 32.192995,14.013479 31.962995,13.310479 31.958995,12.383479 L 33.599995,12.195479 C 33.619995,12.695479 33.690995,13.049479 33.815995,13.256479 C 34.002995,13.570479 34.286995,13.727479 34.667995,13.727479 C 35.052995,13.727479 35.325995,13.617479 35.484995,13.395479 C 35.644995,13.174479 35.724995,12.715479 35.724995,12.019479 L 35.724995,6.4604787 L 35.724995,6.4604787 z "
+   id="path2776"
+   style="fill:#ffffff" /></g>
+               <path
+   d="M 22.502167,10.888479 C 22.502167,10.011479 22.632167,9.2754787 22.894167,8.6794787 C 23.089167,8.2414787 23.356167,7.8474787 23.694167,7.4984787 C 24.032167,7.1494787 24.402167,6.8914787 24.804167,6.7234787 C 25.339167,6.4964787 25.956167,6.3824787 26.655167,6.3824787 C 27.920167,6.3824787 28.932167,6.7764787 29.692167,7.5634787 C 30.451167,8.3504787 30.831167,9.4454787 30.831167,10.847479 C 30.831167,12.238479 30.454167,13.326479 29.701167,14.111479 C 28.947167,14.896479 27.940167,15.289479 26.679167,15.289479 C 25.402167,15.289479 24.387167,14.898479 23.634167,14.117479 C 22.878167,13.335479 22.502167,12.259479 22.502167,10.888479 z M 24.283167,10.829479 C 24.283167,11.805479 24.508167,12.545479 24.959167,13.048479 C 25.410167,13.551479 25.981167,13.803479 26.675167,13.803479 C 27.369167,13.803479 27.937167,13.553479 28.382167,13.053479 C 28.827167,12.553479 29.049167,11.804479 29.049167,10.804479 C 29.049167,9.8174787 28.833167,9.0794787 28.400167,8.5944787 C 27.967167,8.1094787 27.392167,7.8654787 26.675167,7.8654787 C 25.958167,7.8654787 25.380167,8.1114787 24.941167,8.6034787 C 24.502167,9.0964787 24.283167,9.8384787 24.283167,10.829479 z "
+   style="fill:#ffffff"
+   id="path3243" /><path
+   style="font-size:62.90097427px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Andy MT"
+   d="M 56.378404,53.727644 C 56.668877,54.044686 57.440051,54.748517 58.691911,55.839135 C 76.26413,72.746011 84.710366,82.212429 84.030658,84.238414 C 83.542134,85.728697 82.133994,86.992396 79.806235,88.029514 C 77.482319,89.006293 75.388674,89.449224 73.525301,89.358281 C 72.049981,89.286317 65.045123,82.161374 52.510691,67.983438 C 49.981499,65.013564 48.496025,63.336141 48.054267,62.951159 C 46.217767,64.799641 43.472596,68.602352 39.818747,74.359305 C 36.246459,80.059738 33.765764,84.571838 32.376657,87.895625 C 34.806155,86.500085 36.797364,85.840188 38.350293,85.915942 C 39.126687,85.953843 39.642135,86.40294 39.896636,87.263235 C 40.232698,88.066979 40.252215,88.946109 39.95519,89.900625 C 39.678117,90.553327 37.804116,91.794295 34.33318,93.623537 C 31.833974,94.894575 30.255777,95.786591 29.59858,96.2996 C 27.565246,97.59337 26.159852,99.40227 25.382393,101.72633 C 24.299788,105.12565 21.545641,106.71734 17.119954,106.5014 C 14.790614,106.38775 13.35947,105.65172 12.826525,104.29331 C 12.293546,102.93489 12.511493,100.8258 13.480366,97.96599 C 15.340414,92.242619 24.285789,78.355714 40.316531,56.305247 C 40.225329,55.33182 37.928391,51.797888 33.425692,45.703433 C 28.922916,39.60909 25.348113,35.376885 22.701276,33.006805 C 19.833476,30.444392 18.639798,28.478386 19.120241,27.108783 C 20.202794,23.709537 23.616911,22.150045 29.362604,22.43031 C 32.15776,22.566772 37.139648,27.89722 44.308294,38.421666 C 47.370341,42.750047 49.376015,45.391592 50.325311,46.346312 C 51.978351,44.912928 54.33478,42.272245 57.394595,38.424256 C 60.458301,34.516024 62.57704,31.348952 63.750835,28.923025 C 64.912472,26.678352 66.744903,24.890281 69.248153,23.5588 C 71.751253,22.227483 74.128678,21.616715 76.380435,21.726501 C 79.874332,21.897057 81.138905,23.382012 80.174144,26.181363 C 79.091486,29.580762 72.791895,37.055854 61.275357,48.606664 C 58.27165,51.609486 56.63934,53.316475 56.378404,53.727644"
+   id="text1485" /><g
+   id="g1528"
+   transform="matrix(2.8576126,0.4391838,-0.4588303,2.7352402,-115.43399,-24.508237)"><path
+     inkscape:r_cy="true"
+     inkscape:r_cx="true"
+     sodipodi:nodetypes="cszsc"
+     id="path9903"
+     d="M 64.323851,23.753654 C 63.706163,23.328472 61.957281,24.862952 60.381466,27.152239 C 58.80565,29.441527 58.478283,31.954496 58.614374,32.048174 C 58.766049,32.152578 60.980944,30.938876 62.55676,28.649588 C 64.132575,26.3603 64.94154,24.178835 64.323851,23.753654 z "
+     style="color:#000000;fill:#e7e7e7;fill-opacity:1;fill-rule:evenodd;stroke:#7d7d7d;stroke-width:0.69999969;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><g
+     inkscape:r_cy="true"
+     inkscape:r_cx="true"
+     transform="matrix(-0.55721,5.78064e-2,5.78064e-2,0.55721,79.96601,2.590748)"
+     id="g9975"><path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1.25350261;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path9905"
+       sodipodi:cx="40.1875"
+       sodipodi:cy="62"
+       sodipodi:rx="13.0625"
+       sodipodi:ry="5.5"
+       d="M 32.085889,57.685642 A 13.0625,5.5 0 0 1 52.946432,60.821161"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:start="4.0433671"
+       sodipodi:end="6.067175"
+       sodipodi:open="true"
+       transform="matrix(-0.56251,-0.817194,0.825069,-0.567931,-15.22056,83.88674)" /><path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:1.25350261;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path9907"
+       sodipodi:cx="33.5"
+       sodipodi:cy="54.9375"
+       sodipodi:rx="3"
+       sodipodi:ry="1.5625"
+       d="M 36.364517,54.473244 A 3,1.5625 0 0 1 30.693831,55.490029 L 33.5,54.9375 z"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:start="5.9815064"
+       sodipodi:end="9.0633414"
+       transform="matrix(-0.56251,-0.817194,0.825069,-0.567931,-14.28556,81.45324)" /></g><path
+     inkscape:r_cy="true"
+     inkscape:r_cx="true"
+     id="path9898"
+     d="M 68.220855,22.03384 C 66.161588,24.942137 64.137874,27.460945 62.467865,29.270908 L 59.760605,27.407384 C 60.993535,24.922104 62.913702,21.706016 65.241996,18.323557 C 69.444736,12.21797 73.612295,7.5665296 75.260752,7.0147343 C 75.311342,6.9987019 75.379183,6.9775974 75.424823,6.9695952 C 75.456909,6.9647079 75.504446,6.9663697 75.533931,6.9656604 C 75.580264,6.9658747 75.63967,6.975441 75.679136,6.9865735 C 75.688784,6.989702 75.718329,6.9897217 75.727538,6.9935444 C 75.736526,6.997714 75.755092,7.0135223 75.763635,7.0183914 C 75.767794,7.0210008 75.777636,7.0280287 75.781683,7.0308147 C 75.785731,7.0336007 75.795809,7.0402845 75.799732,7.0432381 C 75.807329,7.0494797 75.828724,7.0611783 75.835828,7.068085 C 75.842686,7.075322 75.853253,7.1029128 75.85962,7.1108081 C 75.884109,7.1436991 75.914254,7.1957743 75.930996,7.2389772 C 75.940861,7.2667725 75.959385,7.3105836 75.966275,7.3423002 C 75.975094,7.3877889 75.979602,7.4586944 75.982687,7.511674 C 76.055791,9.2484938 73.198804,14.802057 68.996063,20.907645 C 68.73456,21.287548 68.481406,21.665863 68.220855,22.03384 z "
+     style="color:#000000;fill:url(#linearGradient1538);fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+     inkscape:r_cy="true"
+     inkscape:r_cx="true"
+     id="path9893"
+     d="M 71.416857,17.699951 C 70.893924,18.433249 70.352189,19.137828 69.837722,19.800844 L 66.047558,17.19191 C 66.667225,16.171651 67.355385,15.098728 68.098369,14.019347 C 71.644431,8.8677579 75.303395,5.042076 76.878437,4.7032625 C 76.892273,4.7005267 76.925638,4.6945386 76.939144,4.6923573 C 76.952484,4.6904538 76.986846,4.6827969 76.999851,4.6814522 C 77.031942,4.67879 77.079004,4.6766455 77.108959,4.6775174 C 77.120769,4.6781515 77.145901,4.6832822 77.157361,4.6844884 C 77.191215,4.6889688 77.241564,4.701155 77.272212,4.7108538 C 77.282248,4.7143793 77.310943,4.7137117 77.320615,4.7178248 C 77.334846,4.7244363 77.361358,4.74715 77.37476,4.7550951 C 77.379134,4.7578925 77.388527,4.7645722 77.392808,4.7675187 C 77.397089,4.7704652 77.406682,4.776855 77.410856,4.779942 C 77.423062,4.7896242 77.453744,4.8062785 77.465001,4.8172126 C 77.472296,4.8247781 77.481917,4.85182 77.488793,4.8599357 C 77.508796,4.8851017 77.538154,4.9277816 77.554426,4.9578055 C 77.559644,4.9680796 77.573409,4.9897239 77.578218,5.0005286 C 77.589727,5.0281981 77.604526,5.0729245 77.613497,5.1038512 C 77.616883,5.1164787 77.621999,5.1513102 77.624984,5.1644504 C 77.627768,5.1778446 77.634086,5.2111484 77.636471,5.2250495 C 77.882309,6.8172541 75.61508,11.600927 72.069017,16.752517 C 71.848374,17.07306 71.637752,17.390195 71.416857,17.699951 z "
+     style="color:#000000;fill:url(#linearGradient1540);fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+     inkscape:r_cy="true"
+     inkscape:r_cx="true"
+     id="path9888"
+     d="M 76.697261,8.7148938 L 74.026098,6.8762164 C 75.443506,5.2908747 76.722887,4.3117038 77.413414,4.3511484 C 77.417819,4.3514872 77.434616,4.3522365 77.438973,4.3526605 C 77.44328,4.3531691 77.460274,4.3535789 77.464532,4.3541722 C 77.46874,4.354851 77.485934,4.3549196 77.490092,4.3556839 C 77.514737,4.3607826 77.554504,4.375343 77.577307,4.3835542 C 77.581056,4.3850098 77.59166,4.3944343 77.595355,4.3959775 C 77.599,4.3976079 77.617324,4.3957711 77.620915,4.3974898 C 77.624452,4.3992965 77.635479,4.4080185 77.638963,4.4099134 C 77.642394,4.4118966 77.653635,4.4202647 77.657011,4.4223368 C 77.660335,4.4244975 77.671791,4.4325104 77.67506,4.4347604 C 77.678329,4.4370105 77.689904,4.4448509 77.693108,4.4471838 C 77.696249,4.4495983 77.708079,4.4571105 77.711157,4.4596074 C 77.714171,4.4621857 77.726255,4.4693715 77.729205,4.4720307 C 77.732093,4.4747711 77.736919,4.4925441 77.739743,4.4953655 C 77.742504,4.4982671 77.755093,4.5048071 77.757791,4.5077888 C 77.773602,4.5261576 77.8014,4.5581054 77.814963,4.5793067 C 77.817161,4.5829179 77.823364,4.5989533 77.8255,4.6026421 C 77.827574,4.6064079 77.834025,4.6221353 77.836038,4.6259773 C 77.837989,4.6298956 77.844685,4.6453173 77.846575,4.6493122 C 78.129953,5.2802475 77.672078,6.8248978 76.697261,8.7148938 z "
+     style="color:#000000;fill:url(#linearGradient1542);fill-opacity:1;fill-rule:evenodd;stroke:#3465a4;stroke-width:0.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+     sodipodi:nodetypes="cccszsc"
+     id="path9930"
+     d="M 70.245095,17.972588 C 70.112917,18.159708 69.980402,18.334049 69.849098,18.517294 L 67.224383,16.708474 C 67.58359,16.163635 68.090072,15.27492 68.467754,14.708463 C 72.816017,8.1868296 77.077705,4.9281066 77.255374,5.0497893 C 77.450812,5.1836414 75.740229,10.283755 71.307249,16.444573 C 71.046975,16.806293 70.495538,17.618044 70.245095,17.972588 z "
+     style="opacity:0.35714285;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1544);stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+     inkscape:r_cx="true"
+     inkscape:r_cy="true" /></g></g>
+               <path
+   fill="none"
+   d="M128,128H0V0h128V128z"
+   id="path2423" />
+       </g>
+</svg>
\ No newline at end of file
index dc0975c2b31df8af5b39bce789584ea5908c36b8..fef98ae2470a5ba93111ccef85e97940ca51e97b 100644 (file)
--- a/src/TODO
+++ b/src/TODO
@@ -1,12 +1,10 @@
 List of features to be implemented (not in any particular order)
 ----------------------------------------------------------------
-- hand tool bug: upon page change, keeps scrolling till end of document
 - paste text directly into xournal, from xournal?
     (instead of starting a text item and pasting into/from it)
 - internationalization / translation of interface
-- fix: & in bgpdf file name must be quoted to &amp; in save_journal()
-- integration into desktop environment (document icons/previews? 
-       mime type? click on xoj opens it? list app in start menu?)
+- a command + keyboard shortcut to switch between mappings (1<->2, 1<->3)
+     (A. Rechnitzer Sept 11, 2007)
 - rewrite printing using GtkPrint + Cairo as GnomePrint replacement
    (keep GnomePrint option for compatibility with GTK+ <2.10)
 - xournal_page-shadow.diff (Martin Kiefel Feb 5 2007)
@@ -59,20 +57,23 @@ List of features to be implemented (not in any particular order)
   pages by parsing pdf info rather than generating bitmaps for all of them.
 - win32 port (Matteo Abrate)
 - snap-to-grid tool? (Matteo Abrate)
-- option to auto-save preferences on exit (Michele Codutti)
 - EPOS 7/24/07: Thumbnails pane
 - EPOS: Connect to EPOS api which sends A4 mapped points
 - EPOS: Cut and Paste into OpenOffice applications and the GIMP (as bitmap??)
 - EPOS: Export pages to pictures in the Jpg and Png formats.
 - EPOS: Rotate Ink in custom angle.
+- handwriting recognition???? (cellwriter?) unlikely. we don't have grids
+- handwritten stroke search in document (see cellwriter?)
 - option: export to PDF with incremental pages for successive layers
     (for presentations) (Daniel Brugarth 8/18/07)
 - render page to bitmap: for export, preview, and copy-paste
-- cut-and-paste of selection into other apps (as bitmap)
+    (render using libart, see how gnomecanvas does it?)
+    (copy-paste: config option to render only current layer or all below?)
+- cut-and-paste of selection into other apps (as bitmap; as SVG?)
+- ability to select entire page for copy-paste (as bitmap / reorder xournal)
 - Lukasz Kaiser 8/15/07 shapes patch (approximate stroke by geometric shapes)
   (make it an optional mode of the pen, like the ruler)
   (rewrite without gsl dependency?)
-  (config file should be in share/...)
+  (config file should be loaded from share/... and .xournal/...)
   (disconnected shapes: add timestamps to strokes?)
 - Samuel Hoffstaetter: lasso, gettext localization, sidebar thumbnails, ...
-- left-hand patch: Uwe Winter 8/27/07 (xournal-lefthand.patch)
index 59afa6c4b2d56040a2ae942c2cbd75ec25a860d3..cbe9415f42d71ff86cef2c0c8e62cca0c3d59bba 100644 (file)
@@ -23,19 +23,6 @@ struct UndoItem *undo, *redo; // the undo and redo stacks
 
 double DEFAULT_ZOOM;
 
-void hide_unimplemented(void)
-{
-  gtk_widget_hide(GET_COMPONENT("filePrintOptions"));
-  gtk_widget_hide(GET_COMPONENT("journalFlatten"));
-  gtk_widget_hide(GET_COMPONENT("papercolorOther"));
-  gtk_widget_hide(GET_COMPONENT("toolsSelectRegion"));
-  gtk_widget_hide(GET_COMPONENT("buttonSelectRegion"));
-  gtk_widget_hide(GET_COMPONENT("button2SelectRegion"));
-  gtk_widget_hide(GET_COMPONENT("button3SelectRegion"));
-  gtk_widget_hide(GET_COMPONENT("colorOther"));
-  gtk_widget_hide(GET_COMPONENT("helpIndex"));
-}
-
 void init_stuff (int argc, char *argv[])
 {
   GtkWidget *w;
@@ -189,25 +176,22 @@ void init_stuff (int argc, char *argv[])
     gtk_widget_set_sensitive(GET_COMPONENT("optionsUseXInput"), FALSE);
 
   ui.use_xinput = ui.allow_xinput && can_xinput;
-  gtk_widget_set_extension_events(GTK_WIDGET (canvas), 
-    ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
 
-  gtk_check_menu_item_set_active(
-    GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsUseXInput")), ui.use_xinput);
   gtk_check_menu_item_set_active(
     GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAntialiasBG")), ui.antialias_bg);
   gtk_check_menu_item_set_active(
     GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsProgressiveBG")), ui.progressive_bg);
   gtk_check_menu_item_set_active(
     GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsPrintRuling")), ui.print_ruling);
-
-  hide_unimplemented();
+  gtk_check_menu_item_set_active(
+    GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsLeftHanded")), ui.left_handed);
+  gtk_check_menu_item_set_active(
+    GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsShortenMenus")), ui.shorten_menus);
+  gtk_check_menu_item_set_active(
+    GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsAutoSavePrefs")), ui.auto_save_prefs);
   
-  /* config file only works with glib 2.6 */
-  if (glib_minor_version<6) {
-    gtk_widget_hide(GET_COMPONENT("optionsSavePreferences"));
-  }
-    
+  hide_unimplemented();
+
   update_undo_redo_enabled();
   update_copy_paste_enabled();
   update_vbox_order(ui.vertical_order[ui.fullscreen?1:0]);
@@ -217,6 +201,11 @@ void init_stuff (int argc, char *argv[])
   
   gtk_widget_show (winMain);
   update_cursor();
+  
+  /* this will cause extension events to get enabled/disabled, but
+     we need the windows to be mapped first */
+  gtk_check_menu_item_set_active(
+    GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsUseXInput")), ui.use_xinput);
 
   // load the MRU
   
@@ -281,6 +270,7 @@ main (int argc, char *argv[])
   if (bgpdf.status != STATUS_NOT_INIT) end_bgpdf_shutdown();
 
   save_mru_list();
+  if (ui.auto_save_prefs) save_config_to_file();
   
   return 0;
 }
index 49b3bd17e37158cf0fdc96a10e99a3b3165dcabd..5e3a3cdf1f1f5f21bb3653b756b3e05b35dd2503 100644 (file)
@@ -770,7 +770,7 @@ on_editRedo_activate                   (GtkMenuItem     *menuitem,
     }
     journal.pages = g_list_remove(journal.pages, redo->page);
     journal.npages--;
-    if (ui.pageno > undo->val || ui.pageno == journal.npages) ui.pageno--;
+    if (ui.pageno > redo->val || ui.pageno == journal.npages) ui.pageno--;
     ui.cur_page = NULL;
       // so do_switch_page() won't try to remap the layers of the defunct page
     do_switch_page(ui.pageno, TRUE, TRUE);
@@ -2418,6 +2418,8 @@ on_canvas_button_press_event           (GtkWidget       *widget,
   if (ui.toolno[mapping] == TOOL_HAND) {
     ui.cur_item_type = ITEM_HAND;
     get_pointer_coords((GdkEvent *)event, ui.hand_refpt);
+    ui.hand_refpt[0] += ui.cur_page->hoffset;
+    ui.hand_refpt[1] += ui.cur_page->voffset;
   } 
   else if (ui.toolno[mapping] == TOOL_PEN || ui.toolno[mapping] == TOOL_HIGHLIGHTER ||
         (ui.toolno[mapping] == TOOL_ERASER && ui.cur_brush->tool_options == TOOLOPT_ERASER_WHITEOUT)) {
@@ -2617,8 +2619,29 @@ on_optionsUseXInput_activate           (GtkMenuItem     *menuitem,
   reset_focus();
   ui.allow_xinput = ui.use_xinput =
     gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
-  gtk_widget_set_extension_events(GTK_WIDGET (canvas), 
+
+/* Important note: we'd like ONLY the canvas window itself to receive
+   XInput events, while its child window in the GDK hierarchy (also
+   associated to the canvas widget) receives the core events.
+   This way on_canvas_... will get both types of events -- otherwise,
+   the proximity detection code in GDK is broken and we'll lose core
+   events.
+   
+   Up to GTK+ 2.10, gtk_widget_set_extension_events() only sets
+   extension events for the widget's main window itself; in GTK+ 2.11
+   also traverses GDK child windows that belong to the widget
+   and sets their extension events too. We want to avoid that.
+   So we use gdk_input_set_extension_events() directly on the canvas.
+*/
+   
+/*  // this causes GTK+ 2.11 bugs
+    gtk_widget_set_extension_events(GTK_WIDGET (canvas), 
       ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+*/
+  gdk_input_set_extension_events(GTK_WIDGET(canvas)->window, 
+    GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK,
+    ui.use_xinput?GDK_EXTENSION_EVENTS_ALL:GDK_EXTENSION_EVENTS_NONE);
+
   update_mappings_menu();
 }
 
@@ -3311,3 +3334,58 @@ on_fontButton_font_set                 (GtkFontButton   *fontbutton,
   process_font_sel(str);
 }
 
+void
+on_optionsLeftHanded_activate          (GtkMenuItem     *menuitem,   
+                                        gpointer         user_data)
+{
+  end_text();
+  reset_focus();
+  ui.left_handed = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
+  gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW(GET_COMPONENT("scrolledwindowMain")),
+    ui.left_handed?GTK_CORNER_TOP_RIGHT:GTK_CORNER_TOP_LEFT);
+}
+
+void
+on_optionsShortenMenus_activate        (GtkMenuItem     *menuitem,  
+                                        gpointer         user_data)
+{
+  gchar *item, *nextptr;
+  GtkWidget *w;
+  
+  end_text();
+  reset_focus();
+  ui.shorten_menus = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
+  
+  /* go over the item list */
+  item = ui.shorten_menu_items;
+  while (*item==' ') item++;
+  while (*item) {
+    nextptr = strchr(item, ' ');
+    if (nextptr!=NULL) *nextptr = 0;
+    // hide or show the item
+    w = GET_COMPONENT(item);
+    if (w != NULL) {
+      if (ui.shorten_menus) gtk_widget_hide(w);
+      else gtk_widget_show(w);
+    }
+    // next item
+    if (nextptr==NULL) break;
+    *nextptr = ' ';
+    item = nextptr;
+    while (*item==' ') item++;
+  }
+  
+  // just in case someone tried to unhide stuff they shouldn't be seeing
+  hide_unimplemented();
+  // maybe we should also make sure the drawing area stays visible ?
+}
+
+void
+on_optionsAutoSavePrefs_activate       (GtkMenuItem     *menuitem,  
+                                        gpointer         user_data)
+{
+  end_text();
+  reset_focus();
+  ui.auto_save_prefs = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem));
+}
+
index eb7b58fba62d91da50ac2f113d7f107cf041a1d2..73593f90f9649b24c41eed90f7373458766c99b6 100644 (file)
@@ -606,5 +606,14 @@ on_fontButton_font_set                 (GtkFontButton   *fontbutton,
                                         gpointer         user_data);
 
 void
-on_toggletoolClicked                   (GtkToolButton   *toolbutton,
+on_optionsLeftHanded_activate          (GtkMenuItem     *menuitem,
                                         gpointer         user_data);
+
+void
+on_optionsShortenMenus_activate        (GtkMenuItem     *menuitem,
+                                        gpointer         user_data);
+
+void
+on_optionsAutoSavePrefs_activate       (GtkMenuItem     *menuitem,
+                                        gpointer         user_data);
+
index 2ac09fd9964966b59871bbb80c12e0a02ea88bce..97f3bcf0909e7b434a57853acbb5884d2730b618 100644 (file)
@@ -124,8 +124,10 @@ gboolean save_journal(const char *filename)
           }
           g_free(tmpfn);
         }
+        tmpstr = g_markup_escape_text(pg->bg->filename->s, -1);
         gzprintf(f, "domain=\"%s\" filename=\"%s\" ", 
-          file_domain_names[pg->bg->file_domain], pg->bg->filename->s);
+          file_domain_names[pg->bg->file_domain], tmpstr);
+        g_free(tmpstr);
       }
     }
     else if (pg->bg->type == BG_PDF) {
@@ -156,8 +158,10 @@ gboolean save_journal(const char *filename)
           }
           g_free(tmpfn);
         }
+        tmpstr = g_markup_escape_text(pg->bg->filename->s, -1);
         gzprintf(f, "domain=\"%s\" filename=\"%s\" ", 
-          file_domain_names[pg->bg->file_domain], pg->bg->filename->s);
+          file_domain_names[pg->bg->file_domain], tmpstr);
+        g_free(tmpstr);
       }
       gzprintf(f, "pageno=\"%d\" ", pg->bg->file_page_seq);
     }
@@ -180,8 +184,10 @@ gboolean save_journal(const char *filename)
           gzprintf(f, "\n</stroke>\n");
         }
         if (item->type == ITEM_TEXT) {
+          tmpstr = g_markup_escape_text(item->font_name, -1);
           gzprintf(f, "<text font=\"%s\" size=\"%.2f\" x=\"%.2f\" y=\"%.2f\" color=\"",
-            item->font_name, item->font_size, item->bbox.left, item->bbox.top);
+            tmpstr, item->font_size, item->bbox.left, item->bbox.top);
+          g_free(tmpstr);
           if (item->brush.color_no >= 0)
             gzputs(f, color_names[item->brush.color_no]);
           else
@@ -189,7 +195,6 @@ gboolean save_journal(const char *filename)
           tmpstr = g_markup_escape_text(item->text, -1);
           gzprintf(f, "\">%s</text>\n", tmpstr);
           g_free(tmpstr);
-          
         }
       }
       gzprintf(f, "</layer>\n");
@@ -1323,6 +1328,10 @@ void init_config_default(void)
   ui.view_continuous = TRUE;
   ui.allow_xinput = TRUE;
   ui.discard_corepointer = FALSE;
+  ui.left_handed = FALSE;
+  ui.shorten_menus = FALSE;
+  ui.shorten_menu_items = g_strdup(DEFAULT_SHORTEN_MENUS);
+  ui.auto_save_prefs = FALSE;
   ui.bg_apply_all_pages = FALSE;
   ui.use_erasertip = FALSE;
   ui.window_default_width = 720;
@@ -1471,9 +1480,21 @@ void save_config_to_file(void)
   update_keyval("general", "interface_fullscreen",
     " interface components in fullscreen mode, from top to bottom",
     verbose_vertical_order(ui.vertical_order[1]));
+  update_keyval("general", "interface_lefthanded",
+    " interface has left-handed scrollbar (true/false)",
+    g_strdup(ui.left_handed?"true":"false"));
+  update_keyval("general", "shorten_menus",
+    " hide some unwanted menu or toolbar items (true/false)",
+    g_strdup(ui.shorten_menus?"true":"false"));
+  update_keyval("general", "shorten_menu_items",
+    " interface items to hide (customize at your own risk!)\n see source file xo-interface.c for a list of item names",
+    g_strdup(ui.shorten_menu_items));
   update_keyval("general", "highlighter_opacity",
     " highlighter opacity (0 to 1, default 0.5)\n warning: opacity level is not saved in xoj files!",
     g_strdup_printf("%.2f", ui.hiliter_opacity));
+  update_keyval("general", "autosave_prefs",
+    " auto-save preferences on exit (true/false)",
+    g_strdup(ui.auto_save_prefs?"true":"false"));
 
   update_keyval("paper", "width",
     " the default page width, in points (1/72 in)",
@@ -1776,7 +1797,12 @@ void load_config_from_file(void)
   parse_keyval_string("general", "default_path", &ui.default_path);
   parse_keyval_vorderlist("general", "interface_order", ui.vertical_order[0]);
   parse_keyval_vorderlist("general", "interface_fullscreen", ui.vertical_order[1]);
+  parse_keyval_boolean("general", "interface_lefthanded", &ui.left_handed);
+  parse_keyval_boolean("general", "shorten_menus", &ui.shorten_menus);
+  if (parse_keyval_string("general", "shorten_menu_items", &str))
+    if (str!=NULL) { g_free(ui.shorten_menu_items); ui.shorten_menu_items = str; }
   parse_keyval_float("general", "highlighter_opacity", &ui.hiliter_opacity, 0., 1.);
+  parse_keyval_boolean("general", "autosave_prefs", &ui.auto_save_prefs);
   
   parse_keyval_float("paper", "width", &ui.default_page.width, 1., 5000.);
   parse_keyval_float("paper", "height", &ui.default_page.height, 1., 5000.);
index 7ff1a03fe07a5ab542f8e36a1bc0cc64da885276..0cc2e2e60960018124795d8deba6d8b5fc9707d2 100644 (file)
@@ -1,3 +1,6 @@
+#define DEFAULT_SHORTEN_MENUS \
+  "optionsAntialiasBG optionsProgressiveBG optionsLeftHanded"
+
 #define GS_CMDLINE \
   "gs -sDEVICE=bmp16m -r%f -q -sOutputFile=- " \
   "-dNOPAUSE -dBATCH -dEPSCrop -dTextAlphaBits=4 -dGraphicsAlphaBits=4 %s"
index 163118981ca18f72e0896c6fe486a4d5767b722d..b84a09a33309d36bc9a3258bf46700e9833a7ee4 100644 (file)
@@ -243,7 +243,10 @@ create_winMain (void)
   GtkWidget *optionsAntialiasBG;
   GtkWidget *optionsProgressiveBG;
   GtkWidget *optionsPrintRuling;
+  GtkWidget *optionsLeftHanded;
+  GtkWidget *optionsShortenMenus;
   GtkWidget *separator21;
+  GtkWidget *optionsAutoSavePrefs;
   GtkWidget *optionsSavePreferences;
   GtkWidget *menuHelp;
   GtkWidget *menuHelp_menu;
@@ -1354,11 +1357,23 @@ create_winMain (void)
   gtk_widget_show (optionsPrintRuling);
   gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsPrintRuling);
 
+  optionsLeftHanded = gtk_check_menu_item_new_with_mnemonic ("Left-Handed Scrollbar");
+  gtk_widget_show (optionsLeftHanded);
+  gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsLeftHanded);
+
+  optionsShortenMenus = gtk_check_menu_item_new_with_mnemonic ("Shorten _Menus");
+  gtk_widget_show (optionsShortenMenus);
+  gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsShortenMenus);
+
   separator21 = gtk_separator_menu_item_new ();
   gtk_widget_show (separator21);
   gtk_container_add (GTK_CONTAINER (menuOptions_menu), separator21);
   gtk_widget_set_sensitive (separator21, FALSE);
 
+  optionsAutoSavePrefs = gtk_check_menu_item_new_with_mnemonic ("A_uto-Save Preferences");
+  gtk_widget_show (optionsAutoSavePrefs);
+  gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsAutoSavePrefs);
+
   optionsSavePreferences = gtk_menu_item_new_with_mnemonic ("_Save Preferences");
   gtk_widget_show (optionsSavePreferences);
   gtk_container_add (GTK_CONTAINER (menuOptions_menu), optionsSavePreferences);
@@ -2289,6 +2304,15 @@ create_winMain (void)
   g_signal_connect ((gpointer) optionsPrintRuling, "activate",
                     G_CALLBACK (on_optionsPrintRuling_activate),
                     NULL);
+  g_signal_connect ((gpointer) optionsLeftHanded, "toggled",
+                    G_CALLBACK (on_optionsLeftHanded_activate),
+                    NULL);
+  g_signal_connect ((gpointer) optionsShortenMenus, "toggled",
+                    G_CALLBACK (on_optionsShortenMenus_activate),
+                    NULL);
+  g_signal_connect ((gpointer) optionsAutoSavePrefs, "toggled",
+                    G_CALLBACK (on_optionsAutoSavePrefs_activate),
+                    NULL);
   g_signal_connect ((gpointer) optionsSavePreferences, "activate",
                     G_CALLBACK (on_optionsSavePreferences_activate),
                     NULL);
@@ -2639,7 +2663,10 @@ create_winMain (void)
   GLADE_HOOKUP_OBJECT (winMain, optionsAntialiasBG, "optionsAntialiasBG");
   GLADE_HOOKUP_OBJECT (winMain, optionsProgressiveBG, "optionsProgressiveBG");
   GLADE_HOOKUP_OBJECT (winMain, optionsPrintRuling, "optionsPrintRuling");
+  GLADE_HOOKUP_OBJECT (winMain, optionsLeftHanded, "optionsLeftHanded");
+  GLADE_HOOKUP_OBJECT (winMain, optionsShortenMenus, "optionsShortenMenus");
   GLADE_HOOKUP_OBJECT (winMain, separator21, "separator21");
+  GLADE_HOOKUP_OBJECT (winMain, optionsAutoSavePrefs, "optionsAutoSavePrefs");
   GLADE_HOOKUP_OBJECT (winMain, optionsSavePreferences, "optionsSavePreferences");
   GLADE_HOOKUP_OBJECT (winMain, menuHelp, "menuHelp");
   GLADE_HOOKUP_OBJECT (winMain, menuHelp_menu, "menuHelp_menu");
index fe866da1a02ebfcf75a7f375ce409f593b08572d..7b170bbf3f7c13946cc882d804d6ebd8eb56c347 100644 (file)
@@ -984,8 +984,7 @@ void update_mappings_menu_linkings(void)
 void update_mappings_menu(void)
 {
   gtk_widget_set_sensitive(GET_COMPONENT("optionsButtonMappings"), ui.use_xinput);
-  gtk_widget_set_sensitive(GET_COMPONENT("optionsDiscardCoreEvents"), 
-    ui.use_xinput && (gtk_check_version(2, 11, 0)!=NULL));
+  gtk_widget_set_sensitive(GET_COMPONENT("optionsDiscardCoreEvents"), ui.use_xinput);
   gtk_check_menu_item_set_active(
     GTK_CHECK_MENU_ITEM(GET_COMPONENT("optionsButtonMappings")), ui.use_erasertip);
   gtk_check_menu_item_set_active(
@@ -1809,3 +1808,22 @@ gboolean is_event_within_textview(GdkEventButton *event)
   if (pt[1]<ui.cur_item->bbox.top || pt[1]>ui.cur_item->bbox.bottom) return FALSE;
   return TRUE;
 }
+
+void hide_unimplemented(void)
+{
+  gtk_widget_hide(GET_COMPONENT("filePrintOptions"));
+  gtk_widget_hide(GET_COMPONENT("journalFlatten"));  
+  gtk_widget_hide(GET_COMPONENT("papercolorOther")); 
+  gtk_widget_hide(GET_COMPONENT("toolsSelectRegion"));
+  gtk_widget_hide(GET_COMPONENT("buttonSelectRegion"));
+  gtk_widget_hide(GET_COMPONENT("button2SelectRegion"));
+  gtk_widget_hide(GET_COMPONENT("button3SelectRegion"));
+  gtk_widget_hide(GET_COMPONENT("colorOther"));
+  gtk_widget_hide(GET_COMPONENT("helpIndex")); 
+
+  /* config file only works with glib 2.6 */
+  if (glib_minor_version<6) {
+    gtk_widget_hide(GET_COMPONENT("optionsAutoSavePrefs"));
+    gtk_widget_hide(GET_COMPONENT("optionsSavePreferences"));
+  }
+}  
index e8f1d118f417cd6413ec4b5b705e74d1911cfc61..3680aa04dedf3c7a63b1613e633bfe7438c2450b 100644 (file)
@@ -88,6 +88,8 @@ void add_scroll_bindings(void);
 
 gboolean is_event_within_textview(GdkEventButton *event);
 
+void hide_unimplemented(void);
+
 // defines for paper rulings
 
 #define RULING_MARGIN_COLOR 0xff0080ff
index dd03604c03afeb77cff54d8b6e08997aca1a1df3..c81de377ed7dfd2edc6da78fe3d4e684f86d783e 100644 (file)
@@ -950,6 +950,8 @@ void do_hand(GdkEvent *event)
   int cx, cy;
   
   get_pointer_coords(event, pt);
+  pt[0] += ui.cur_page->hoffset;
+  pt[1] += ui.cur_page->voffset;
   gnome_canvas_get_scroll_offsets(canvas, &cx, &cy);
   ui.hand_scrollto_cx = cx - (pt[0]-ui.hand_refpt[0])*ui.zoom;
   ui.hand_scrollto_cy = cy - (pt[1]-ui.hand_refpt[1])*ui.zoom;
index 38bb95be8bdb4de3570c35e1987a5679c1b367e7..47cd018cd247b067f7d120dbd9b1e9fdce254fd7 100644 (file)
@@ -253,6 +253,10 @@ typedef struct UIData {
   gulong resize_signal_handler;
   gdouble hiliter_opacity;
   guint hiliter_alpha_mask;
+  gboolean left_handed; // left-handed mode?
+  gboolean auto_save_prefs; // auto-save preferences ?
+  gboolean shorten_menus; // shorten menus ?
+  gchar *shorten_menu_items; // which items to hide
 } UIData;
 
 #define BRUSH_LINKED 0
diff --git a/x-xoj.desktop b/x-xoj.desktop
new file mode 100644 (file)
index 0000000..56097f1
--- /dev/null
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-xoj
+Icon=xoj
+Patterns=*.xoj;*.XOJ;*.Xoj;
+
+Comment=Xournal note file
+Comment[fr]=Fichier Xournal
diff --git a/xournal.desktop b/xournal.desktop
new file mode 100644 (file)
index 0000000..4ff6c08
--- /dev/null
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+
+Name=Xournal
+Comment=Take handwritten notes
+Name[fr]=Xournal
+Comment[fr]=Prise de notes manuscrites
+
+Exec=xournal %f
+Terminal=false
+StartupNotify=true
+MimeType=application/x-xoj;application/pdf;
+Icon=xournal
+Categories=GNOME;GTK;Utility;TextEditor;
index 471cd10902aeff61c90865a532828994816ebf62..47f31a55a8437e7643460e33bc12d72602046f92 100644 (file)
                    </widget>
                  </child>
 
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="optionsLeftHanded">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Left-Handed Scrollbar</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="toggled" handler="on_optionsLeftHanded_activate" last_modification_time="Wed, 07 Dec 2005 22:54:39 GMT"/>
+                   </widget>
+                 </child>
+
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="optionsShortenMenus">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">Shorten _Menus</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="toggled" handler="on_optionsShortenMenus_activate" last_modification_time="Wed, 07 Dec 2005 22:54:39 GMT"/>
+                   </widget>
+                 </child>
+
                  <child>
                    <widget class="GtkSeparatorMenuItem" id="separator21">
                      <property name="visible">True</property>
                    </widget>
                  </child>
 
+                 <child>
+                   <widget class="GtkCheckMenuItem" id="optionsAutoSavePrefs">
+                     <property name="visible">True</property>
+                     <property name="label" translatable="yes">A_uto-Save Preferences</property>
+                     <property name="use_underline">True</property>
+                     <property name="active">False</property>
+                     <signal name="toggled" handler="on_optionsAutoSavePrefs_activate" last_modification_time="Wed, 07 Dec 2005 22:54:39 GMT"/>
+                   </widget>
+                 </child>
+
                  <child>
                    <widget class="GtkMenuItem" id="optionsSavePreferences">
                      <property name="visible">True</property>
diff --git a/xournal.xml b/xournal.xml
new file mode 100644 (file)
index 0000000..ebcebd1
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+       <mime-type type="application/x-xoj">
+               <comment>Xournal note file</comment>
+               <glob pattern="*.xoj"/>
+       </mime-type>
+</mime-info>