diff options
author | Marius Gedminas <marius@gedmin.as> | 2018-11-06 18:07:31 +0200 |
---|---|---|
committer | Marius Gedminas <marius@gedmin.as> | 2018-11-06 18:07:31 +0200 |
commit | 52078ac3eab8fa0e7adbd9799759770afa69302e (patch) | |
tree | f535a432130e12d3fe5179598649dc75f819b584 | |
parent | 3d9856f440ef19cdc45ca46a1f6fc6fa28e29483 (diff) |
New upstream version 0.11.2upstream/0.11.2
-rw-r--r-- | CHANGES.rst | 15 | ||||
-rw-r--r-- | MANIFEST.in | 10 | ||||
-rw-r--r-- | Makefile | 19 | ||||
-rw-r--r-- | PKG-INFO | 48 | ||||
-rw-r--r-- | docs/index.rst | 13 | ||||
-rw-r--r-- | flatpak/org.gtimelog.GTimeLog.json | 43 | ||||
-rw-r--r-- | flatpak/org.gtimelog.GTimeLog.yaml | 40 | ||||
-rw-r--r-- | release.mk | 8 | ||||
-rwxr-xr-x | setup.py | 1 | ||||
-rw-r--r-- | src/gtimelog.egg-info/PKG-INFO | 48 | ||||
-rw-r--r-- | src/gtimelog.egg-info/SOURCES.txt | 7 | ||||
-rw-r--r-- | src/gtimelog/__init__.py | 2 | ||||
-rw-r--r-- | src/gtimelog/about.ui | 2 | ||||
-rw-r--r-- | src/gtimelog/help/C/figures/gtimelog.png | bin | 7527 -> 0 bytes | |||
-rw-r--r-- | src/gtimelog/help/C/index.page | 24 | ||||
-rw-r--r-- | src/gtimelog/help/C/legal.xml | 8 | ||||
-rw-r--r-- | src/gtimelog/help/C/shortcuts.page | 195 | ||||
-rw-r--r-- | src/gtimelog/main.py | 66 | ||||
-rw-r--r-- | src/gtimelog/menus.ui | 20 | ||||
-rw-r--r-- | src/gtimelog/po/POTFILES.in | 13 | ||||
-rw-r--r-- | src/gtimelog/po/en.po | 127 | ||||
-rw-r--r-- | src/gtimelog/po/gtimelog.pot | 127 | ||||
-rw-r--r-- | src/gtimelog/po/lt.po | 140 | ||||
-rw-r--r-- | src/gtimelog/shortcuts.ui | 252 |
24 files changed, 831 insertions, 397 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index e9526e8..ed48770 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,21 @@ Changelog --------- +0.11.2 (2018-11-03) +~~~~~~~~~~~~~~~~~~~ + +- Window menu now includes items previously shown only in the app menu: + Preferences, About (GH: #126). + +- Keyboard shortcuts window (press Ctrl+Shift+?). + +- Dropped the help page (there was only one and it was only listing keyboard + shortucts, and it was also incomplete and had no translations). + +- Bugfix: if timelog.txt was a symlink, changes to the symlink target would + not get noticed automatically (GH: #128). + + 0.11.1 (2018-07-18) ~~~~~~~~~~~~~~~~~~~ diff --git a/MANIFEST.in b/MANIFEST.in index b759c7f..7dd0135 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,6 @@ include COPYING include *.rst *.txt -include Makefile +include Makefile *.mk include gtimelog include gtimelog.desktop include gtimelog.desktop.in @@ -16,13 +16,7 @@ include benchmark.py recursive-include src *.png *.ui *.xml *.css *.rst gschemas.compiled recursive-include docs *.png *.rst *.css Makefile recursive-include scripts *.py *.rst -recursive-include src/gtimelog/help *.page *.xml *.png recursive-include src/gtimelog/po *.po *.pot *.in +recursive-include flatpak *.yaml prune docs/build - -# added by check_manifest.py -include *.mk - -# added by check_manifest.py -recursive-include flatpak *.json @@ -52,6 +52,25 @@ update-translations: cd $(po_dir) && intltool-update -g gtimelog -p for po in $(po_files); do msgmerge -U $$po $(po_dir)/gtimelog.pot; done +.PHONY: mo-files +mo-files: $(mo_files) + +.PHONY: flatpak +flatpak: + # you may need to install the platform and sdk before this will work + # flatpak install flathub org.gnome.Platform//3.30 org.gnome.Sdk//3.30 + flatpak-builder --force-clean build/flatpak flatpak/org.gtimelog.GTimeLog.yaml + # to run it do + # flatpak-builder --run build/flatpak flatpak/org.gtimelog.GTimeLog.yaml gtimelog + +.PHONY: flatpak-install +flatpak-install: + # you may need to install the platform and sdk before this will work + # flatpak install flathub org.gnome.Platform//3.30 org.gnome.Sdk//3.30 + flatpak-builder --force-clean build/flatpak flatpak/org.gtimelog.GTimeLog.yaml --install --user + # to run it do + # flatpak run org.gtimelog.GTimeLog + %-gtk3.10.ui: %.ui sed -e 's/margin_start/margin_left/' \ -e 's/margin_end/margin_right/' \ @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: gtimelog -Version: 0.11.1 +Version: 0.11.2 Summary: A Gtk+ time tracking application Home-page: https://gtimelog.org/ Author: Marius Gedminas @@ -110,6 +110,21 @@ Description: GTimeLog Changelog --------- + 0.11.2 (2018-11-03) + ~~~~~~~~~~~~~~~~~~~ + + - Window menu now includes items previously shown only in the app menu: + Preferences, About (GH: #126). + + - Keyboard shortcuts window (press Ctrl+Shift+?). + + - Dropped the help page (there was only one and it was only listing keyboard + shortucts, and it was also incomplete and had no translations). + + - Bugfix: if timelog.txt was a symlink, changes to the symlink target would + not get noticed automatically (GH: #128). + + 0.11.1 (2018-07-18) ~~~~~~~~~~~~~~~~~~~ @@ -174,36 +189,6 @@ Description: GTimeLog to 0 to hide the estimate). - 0.10.0 (2015-09-29) - ~~~~~~~~~~~~~~~~~~~ - - * Use Tango colors in the main text buffer (GH: #13). - - * Allow tagging entries (GH: #19) - - - The syntax is ``category: text -- tag1 tag2`` - - Per-tag summaries show up in reports - - * Use GtkApplication instead of own DBus server for enforcing single-instance. - - - Drop --replace, --ignore-dbus command-line options because of this. - - Require glib and gio to be version 2.40 or newer for sane - GtkApplication-based command line parsing - (check with ``pkg-config --modversion glib-2.0 gio-2.0``). - - * Remove obsolete code: - - - Drop support for Python 2.6 (PyGObject dropped support for it long ago). - - Drop PyGtk/Gtk+ 2 support code (it didn't work since 0.9.1 anyway). - - Drop EggTrayIcon support (it was for Gtk+ 2 only anyway). - - Drop the --prefer-pygtk command-line option. - - * Disable tray icon by default for new users (existing gtimelogrc files will be - untouched). - - * Improve tray icon selection logic for best contrast (GH: #29). - - Older versions ~~~~~~~~~~~~~~ @@ -211,6 +196,7 @@ Description: GTimeLog .. _full changelog: https://github.com/gtimelog/gtimelog/blob/master/CHANGES.rst +Keywords: time log logging timesheets gnome gtk Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Environment :: X11 Applications :: GTK diff --git a/docs/index.rst b/docs/index.rst index dfc885e..d281420 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -68,6 +68,14 @@ Tags must be separated from the rest of the entry by " -- ", i.e., double-dash surrounded by spaces. Tags will *not* be shown in the main UI pane. +Back-dating Entries +=================== + +If you forget to enter an activity, you can enter it after the fact by +prefixing it with a full time ("09:30 morning meeting") or a two digit minute-offset +("-10 morning meeting"). Note that the new activity must still be after +the last entered event, or things will become confusing! + Tasks pane ========== @@ -126,11 +134,6 @@ which is outside the scope of this document.) Correcting mistakes =================== -If you forget to enter an activity, you can enter it after the fact by -prefixing it with a full time ("09:30 morning meeting") or a minute-offset -("-10 morning meeting"). Note that the new activity must still be after -the last entered event, or things will become confusing! - If you make a mistake and type in the wrong activity name, don't worry. GTimeLog stores the time log in a simple plain text file. You can edit it by choosing Edit log from the menu (or pressing Ctrl-E). diff --git a/flatpak/org.gtimelog.GTimeLog.json b/flatpak/org.gtimelog.GTimeLog.json deleted file mode 100644 index 07d8fba..0000000 --- a/flatpak/org.gtimelog.GTimeLog.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "id": "org.gtimelog.GTimeLog", - "runtime": "org.gnome.Platform", - "runtime-version": "3.26", - "sdk": "org.gnome.Sdk", - "command": "gtimelog", - "tags": ["nightly"], - "modules": [ - { - "name": "gtimelog", - "sources": [ - { - "type": "git", - "url": "https://github.com/gtimelog/gtimelog.git" - } - ], - "no-make-install": true, - "buildsystem": "simple", - "build-commands": [ - "sed -i -e '/install_requires=..PyGObject/d' setup.py", - "python3 setup.py -q install --prefix=/app", - "install -D -m 644 gtimelog.desktop /app/share/applications/gtimelog.desktop", - "install -D -m 644 src/gtimelog/gtimelog-large.png /app/share/icons/hicolor/256x256/apps/gtimelog.png" - ] - } - ], - "finish-args": [ - /* X11 + XShm access */ - "--share=ipc", "--socket=x11", - /* Wayland access */ - "--socket=wayland", - "--socket=session-bus", - /* dconf */ - "--filesystem=xdg-run/dconf", - "--filesystem=~/.config/dconf:ro", - "--talk-name=ca.desrt.dconf", - "--env=DCONF_USER_CONFIG_DIR=.config/dconf" - ], - "rename-desktop-file": "gtimelog.desktop", - "rename-appdata-file": "gtimelog.appdata.xml", - "rename-icon": "gtimelog", - "desktop-file-name-prefix": "(Nightly) " -} diff --git a/flatpak/org.gtimelog.GTimeLog.yaml b/flatpak/org.gtimelog.GTimeLog.yaml new file mode 100644 index 0000000..71420a3 --- /dev/null +++ b/flatpak/org.gtimelog.GTimeLog.yaml @@ -0,0 +1,40 @@ +--- +app-id: org.gtimelog.GTimeLog +runtime: org.gnome.Platform +runtime-version: "3.30" +sdk: org.gnome.Sdk +command: gtimelog +tags: + - nightly +modules: + - name: gtimelog + sources: + - type: git + url: https://github.com/gtimelog/gtimelog.git + no-make-install: true + buildsystem: simple + build-commands: + - make mo-files + - pip3 install --prefix=/app --no-deps . + - install -D -m 644 gtimelog.desktop /app/share/applications/gtimelog.desktop + - install -D -m 644 src/gtimelog/gtimelog-large.png /app/share/icons/hicolor/256x256/apps/gtimelog.png +finish-args: + # X11 + XShm access + - --share=ipc + - --socket=x11 + # Wayland access + - --socket=wayland + - --socket=session-bus + # dconf access + - --filesystem=xdg-run/dconf + - --filesystem=~/.config/dconf:ro + - --talk-name=ca.desrt.dconf + - --env=DCONF_USER_CONFIG_DIR=.config/dconf + # network access (for eventual outgoing SMTP) + - --share=network + # filesystem access to legacy data directory + - --filesystem=~/.gtimelog +rename-appdata-file: gtimelog.appdata.xml +rename-desktop-file: gtimelog.desktop +rename-icon: gtimelog +desktop-file-name-suffix: ' (Nightly)' @@ -1,4 +1,4 @@ -# Makefile.rules version 1.1 (2017-12-20) +# Makefile.rules version 1.2.1 (2018-11-03) # # Helpful Makefile rules for releasing Python packages. # https://github.com/mgedmin/python-project-skel @@ -11,7 +11,7 @@ CHANGELOG_FORMAT ?= $(changelog_ver) ($(changelog_date)) # These should be fine PYTHON ?= python -PYPI_PUBLISH ?= rm -rf dist && $(PYTHON) setup.py -q sdist bdist_wheel && twine upload dist/* +PYPI_PUBLISH ?= rm -rf dist && $(PYTHON) setup.py -q sdist bdist_wheel && twine check dist/* && twine upload dist/* # These should be fine, as long as you use Git VCS_GET_LATEST ?= git pull @@ -54,7 +54,7 @@ distcheck-sdist: $(VCS_EXPORT) && \ cd tmp && \ tar -xzf ../dist/$$pkg_and_version.tar.gz && \ - diff -ur $$pkg_and_version tree -x PKG-INFO -x setup.cfg -x '*.egg-info' && \ + diff -ur $$pkg_and_version tree -x PKG-INFO -x setup.cfg -x '*.egg-info' -I'^#' && \ cd $$pkg_and_version && \ make dist check && \ cd .. && \ @@ -64,7 +64,7 @@ distcheck-sdist: cd ../two/ && \ tar -xzf ../$$pkg_and_version/dist/$$pkg_and_version.tar.gz && \ cd .. && \ - diff -ur one two -x SOURCES.txt && \ + diff -ur one two -x SOURCES.txt -I'^#:' && \ cd .. && \ rm -rf tmp && \ echo "sdist seems to be ok" @@ -55,6 +55,7 @@ setup( description=short_description, long_description=long_description, license='GPL', + keywords='time log logging timesheets gnome gtk', classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: X11 Applications :: GTK', diff --git a/src/gtimelog.egg-info/PKG-INFO b/src/gtimelog.egg-info/PKG-INFO index 46bf757..1e3d7ef 100644 --- a/src/gtimelog.egg-info/PKG-INFO +++ b/src/gtimelog.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: gtimelog -Version: 0.11.1 +Version: 0.11.2 Summary: A Gtk+ time tracking application Home-page: https://gtimelog.org/ Author: Marius Gedminas @@ -110,6 +110,21 @@ Description: GTimeLog Changelog --------- + 0.11.2 (2018-11-03) + ~~~~~~~~~~~~~~~~~~~ + + - Window menu now includes items previously shown only in the app menu: + Preferences, About (GH: #126). + + - Keyboard shortcuts window (press Ctrl+Shift+?). + + - Dropped the help page (there was only one and it was only listing keyboard + shortucts, and it was also incomplete and had no translations). + + - Bugfix: if timelog.txt was a symlink, changes to the symlink target would + not get noticed automatically (GH: #128). + + 0.11.1 (2018-07-18) ~~~~~~~~~~~~~~~~~~~ @@ -174,36 +189,6 @@ Description: GTimeLog to 0 to hide the estimate). - 0.10.0 (2015-09-29) - ~~~~~~~~~~~~~~~~~~~ - - * Use Tango colors in the main text buffer (GH: #13). - - * Allow tagging entries (GH: #19) - - - The syntax is ``category: text -- tag1 tag2`` - - Per-tag summaries show up in reports - - * Use GtkApplication instead of own DBus server for enforcing single-instance. - - - Drop --replace, --ignore-dbus command-line options because of this. - - Require glib and gio to be version 2.40 or newer for sane - GtkApplication-based command line parsing - (check with ``pkg-config --modversion glib-2.0 gio-2.0``). - - * Remove obsolete code: - - - Drop support for Python 2.6 (PyGObject dropped support for it long ago). - - Drop PyGtk/Gtk+ 2 support code (it didn't work since 0.9.1 anyway). - - Drop EggTrayIcon support (it was for Gtk+ 2 only anyway). - - Drop the --prefer-pygtk command-line option. - - * Disable tray icon by default for new users (existing gtimelogrc files will be - untouched). - - * Improve tray icon selection logic for best contrast (GH: #29). - - Older versions ~~~~~~~~~~~~~~ @@ -211,6 +196,7 @@ Description: GTimeLog .. _full changelog: https://github.com/gtimelog/gtimelog/blob/master/CHANGES.rst +Keywords: time log logging timesheets gnome gtk Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Environment :: X11 Applications :: GTK diff --git a/src/gtimelog.egg-info/SOURCES.txt b/src/gtimelog.egg-info/SOURCES.txt index 672a96b..88399bb 100644 --- a/src/gtimelog.egg-info/SOURCES.txt +++ b/src/gtimelog.egg-info/SOURCES.txt @@ -30,7 +30,7 @@ docs/gtimelog.png docs/index.rst docs/mg.css docs/website.rst -flatpak/org.gtimelog.GTimeLog.json +flatpak/org.gtimelog.GTimeLog.yaml scripts/README.rst scripts/difftime.py scripts/export-my-calendar.py @@ -51,6 +51,7 @@ src/gtimelog/menus.ui src/gtimelog/preferences-gtk3.10.ui src/gtimelog/preferences.ui src/gtimelog/settings.py +src/gtimelog/shortcuts.ui src/gtimelog/timelog.py src/gtimelog.egg-info/PKG-INFO src/gtimelog.egg-info/SOURCES.txt @@ -61,10 +62,6 @@ src/gtimelog.egg-info/requires.txt src/gtimelog.egg-info/top_level.txt src/gtimelog/data/gschemas.compiled src/gtimelog/data/org.gtimelog.gschema.xml -src/gtimelog/help/C/index.page -src/gtimelog/help/C/legal.xml -src/gtimelog/help/C/shortcuts.page -src/gtimelog/help/C/figures/gtimelog.png src/gtimelog/po/POTFILES.in src/gtimelog/po/en.po src/gtimelog/po/gtimelog.pot diff --git a/src/gtimelog/__init__.py b/src/gtimelog/__init__.py index 1132dd2..803fb23 100644 --- a/src/gtimelog/__init__.py +++ b/src/gtimelog/__init__.py @@ -1,3 +1,3 @@ # The gtimelog package. -__version__ = '0.11.1' +__version__ = '0.11.2' diff --git a/src/gtimelog/about.ui b/src/gtimelog/about.ui index 4f8a07e..4d4b2d9 100644 --- a/src/gtimelog/about.ui +++ b/src/gtimelog/about.ui @@ -7,7 +7,7 @@ <property name="modal">True</property> <property name="program_name" translatable="yes">Time Log</property> <property name="version">(placeholder)</property> - <property name="copyright" translatable="yes">Copyright © 2004–2017 Marius Gedminas and contributors.</property> + <property name="copyright" translatable="yes">Copyright © 2004–2018 Marius Gedminas and contributors.</property> <property name="comments" translatable="yes">A time tracking application</property> <property name="website">https://gtimelog.org/</property> <property name="authors">Marius Gedminas diff --git a/src/gtimelog/help/C/figures/gtimelog.png b/src/gtimelog/help/C/figures/gtimelog.png Binary files differdeleted file mode 100644 index b59b1fa..0000000 --- a/src/gtimelog/help/C/figures/gtimelog.png +++ /dev/null diff --git a/src/gtimelog/help/C/index.page b/src/gtimelog/help/C/index.page deleted file mode 100644 index 79a524d..0000000 --- a/src/gtimelog/help/C/index.page +++ /dev/null @@ -1,24 +0,0 @@ -<page xmlns="http://projectmallard.org/1.0/" - xmlns:its="http://www.w3.org/2005/11/its" - type="guide" id="index"> - - <info> - <title type="link">Time Log</title> - <title type="text">Time Log</title> - <revision pkgversion="0.10" date="2015-09-09" status="review"/> - - <credit type="author"> - <name>Marius Gedminas</name> - <email its:translate="no">marius@gedmin.as</email> - <years>2015</years> - </credit> - <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/> - </info> - - <title> - <media type="image" mime="image/png" src="figures/gtimelog.png" - its:translate="no"/> - Time Log - </title> - -</page> diff --git a/src/gtimelog/help/C/legal.xml b/src/gtimelog/help/C/legal.xml deleted file mode 100644 index 93a15e0..0000000 --- a/src/gtimelog/help/C/legal.xml +++ /dev/null @@ -1,8 +0,0 @@ -<license xmlns="http://projectmallard.org/1.0/" - href="https://creativecommons.org/licenses/by-sa/3.0/"> - - <p>This work is licensed under a - <link href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons - Attribution-ShareAlike 3.0 Unported License</link>.</p> - -</license> diff --git a/src/gtimelog/help/C/shortcuts.page b/src/gtimelog/help/C/shortcuts.page deleted file mode 100644 index 2c79071..0000000 --- a/src/gtimelog/help/C/shortcuts.page +++ /dev/null @@ -1,195 +0,0 @@ -<page xmlns="http://projectmallard.org/1.0/" - xmlns:ui="http://projectmallard.org/ui/1.0" - xmlns:its="http://www.w3.org/2005/11/its" - type="task" - id="shortcuts"> - - <info> - <link type="guide" xref="index" group="#first"/> - <revision pkgversion="0.10" date="2015-09-09" status="review"/> - - <credit type="author"> - <name>Marius Gedminas</name> - <email its:translate="no">marius@gedmin.as</email> - <years>2015</years> - </credit> - - <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/> - - <desc>Keyboard shortcuts.</desc> - </info> - - <title>Keyboard Shortcuts</title> - - <section id="time-navigation-shortcuts"> - <title>Time navigation shortcuts</title> - - <table rules="rows" frame="top bottom" ui:expanded="true"> - <thead> - <tr> - <td><p>Action</p></td> - <td><p>Keyboard Shortcut</p></td> - </tr> - </thead> - <tbody> - <tr> - <td><p>Go back in time</p></td> - <td><p><keyseq><key>Alt</key><key>Left</key></keyseq></p></td> - </tr> - <tr> - <td><p>Go forward in time</p></td> - <td><p><keyseq><key>Alt</key><key>Right</key></keyseq></p></td> - </tr> - <tr> - <td><p>Go back to today</p></td> - <td><p><keyseq><key>Alt</key><key>Home</key></keyseq></p></td> - </tr> - </tbody> - </table> - </section> - - <section id="detail-level-shortcuts"> - <title>Detail level shortcuts</title> - - <table rules="rows" frame="top bottom" ui:expanded="true"> - <thead> - <tr> - <td><p>Action</p></td> - <td><p>Keyboard Shortcut</p></td> - </tr> - </thead> - <tbody> - <tr> - <td><p>View chronological task list</p></td> - <td><p><keyseq><key>Alt</key><key>1</key></keyseq></p></td> - </tr> - <tr> - <td><p>View time spent on each task</p></td> - <td><p><keyseq><key>Alt</key><key>2</key></keyseq></p></td> - </tr> - <tr> - <td><p>View time spent on each task category</p></td> - <td><p><keyseq><key>Alt</key><key>3</key></keyseq></p></td> - </tr> - </tbody> - </table> - </section> - - <section id="time-range-shortcuts"> - <title>Time range shortcuts</title> - - <table rules="rows" frame="top bottom" ui:expanded="true"> - <thead> - <tr> - <td><p>Action</p></td> - <td><p>Keyboard Shortcut</p></td> - </tr> - </thead> - <tbody> - <tr> - <td><p>View one day</p></td> - <td><p><keyseq><key>Alt</key><key>4</key></keyseq></p></td> - </tr> - <tr> - <td><p>View one week</p></td> - <td><p><keyseq><key>Alt</key><key>5</key></keyseq></p></td> - </tr> - <tr> - <td><p>View one month</p></td> - <td><p><keyseq><key>Alt</key><key>6</key></keyseq></p></td> - </tr> - </tbody> - </table> - </section> - - <section id="menu-shortcuts"> - <title>Menu shortcuts</title> - - <table rules="rows" frame="top bottom" ui:expanded="true"> - <thead> - <tr> - <td><p>Action</p></td> - <td><p>Keyboard Shortcut</p></td> - </tr> - </thead> - <tbody> - <tr> - <td><p>Show/hide task pane</p></td> - <td><p><keyseq><key>F9</key></keyseq></p></td> - </tr> - <tr> - <td><p>Open action menu</p></td> - <td><p><keyseq><key>F10</key></keyseq></p></td> - </tr> - </tbody> - </table> - </section> - - <section id="action-shortcuts"> - <title>Action shortcuts</title> - - <table rules="rows" frame="top bottom" ui:expanded="true"> - <thead> - <tr> - <td><p>Action</p></td> - <td><p>Keyboard Shortcut</p></td> - </tr> - </thead> - <tbody> - <tr> - <td><p>Edit task log</p></td> - <td><p><keyseq><key>Ctrl</key><key>E</key></keyseq></p></td> - </tr> - <tr> - <td><p>Edit task list</p></td> - <td><p><keyseq><key>Ctrl</key><key>T</key></keyseq></p></td> - </tr> - <tr> - <td><p>Help</p></td> - <td><p><keyseq><key>F1</key></keyseq></p></td> - </tr> - <tr> - <td><p>Preferences</p></td> - <td><p><keyseq><key>Ctrl</key><key>P</key></keyseq></p></td> - </tr> - <tr> - <td><p>Quit</p></td> - <td><p><keyseq><key>Ctrl</key><key>Q</key></keyseq></p></td> - </tr> - </tbody> - </table> - </section> - - <section id="report-shortcuts"> - <title>Report shortcuts</title> - - <p>You can continue to use <link - xref="shortcuts#time-navigation-shortcuts">time navigation</link> and - <link xref="shortcuts#time-range-shortcuts">time range</link> - shortcuts while in report mode.</p> - - <table rules="rows" frame="top bottom" ui:expanded="true"> - <thead> - <tr> - <td><p>Action</p></td> - <td><p>Keyboard Shortcut</p></td> - </tr> - </thead> - <tbody> - <tr> - <td><p>Switch to report mode</p></td> - <td><p><keyseq><key>Ctrl</key><key>D</key></keyseq></p></td> - </tr> - <tr> - <td><p>Send report via email</p></td> - <td><p><keyseq><key>Ctrl</key><key>Enter</key></keyseq></p></td> - </tr> - <tr> - <td><p>Return to task entry mode</p></td> - <td><p><keyseq><key>Esc</key></keyseq></p></td> - </tr> - </tbody> - </table> - </section> - -</page> diff --git a/src/gtimelog/main.py b/src/gtimelog/main.py index f1b5072..4a57f30 100644 --- a/src/gtimelog/main.py +++ b/src/gtimelog/main.py @@ -95,10 +95,6 @@ else: mark_time("gtimelog imports done") -# When the app is properly installed, use HELP_URI = 'help:gtimelog' -HELP_URI = '' -HELP_DIR = os.path.abspath(os.path.join(HERE, 'help')) - UI_DIR = HERE if (Gtk.MAJOR_VERSION, Gtk.MINOR_VERSION) < (3, 12): @@ -109,6 +105,7 @@ else: PREFERENCES_UI_FILE = os.path.join(UI_DIR, 'preferences.ui') ABOUT_DIALOG_UI_FILE = os.path.join(UI_DIR, 'about.ui') +SHORTCUTS_UI_FILE = os.path.join(UI_DIR, 'shortcuts.ui') MENUS_UI_FILE = os.path.join(UI_DIR, 'menus.ui') CSS_FILE = os.path.join(UI_DIR, 'gtimelog.css') LOCALE_DIR = os.path.join(UI_DIR, 'locale') @@ -324,8 +321,18 @@ class Application(Gtk.Application): class Actions(object): + actions = [ + 'preferences', + 'shortcuts', + 'about', + 'quit', + 'edit-log', + 'edit-tasks', + 'refresh-tasks', + ] + def __init__(self, app): - for action_name in ['preferences', 'help', 'about', 'quit', 'edit-log', 'edit-tasks', 'refresh-tasks']: + for action_name in self.actions: action = Gio.SimpleAction.new(action_name, None) action.connect('activate', getattr(app, 'on_' + action_name.replace('-', '_'))) app.add_action(action) @@ -396,9 +403,10 @@ class Application(Gtk.Application): screen, css, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) mark_time("CSS loaded") - builder = Gtk.Builder.new_from_file(MENUS_UI_FILE) - self.set_app_menu(builder.get_object('app_menu')) - mark_time("menus loaded") + if Gtk.Settings.get_default().get_property('gtk-shell-shows-app-menu'): + builder = Gtk.Builder.new_from_file(MENUS_UI_FILE) + self.set_app_menu(builder.get_object('app_menu')) + mark_time("menus loaded") self.actions = self.Actions(self) @@ -419,7 +427,7 @@ class Application(Gtk.Application): self.set_accels_for_action("win.go-home", ["<Alt>Home"]) self.set_accels_for_action("app.edit-log", ["<Primary>E"]) self.set_accels_for_action("app.edit-tasks", ["<Primary>T"]) - self.set_accels_for_action("app.help", ["F1"]) + self.set_accels_for_action("app.shortcuts", ["<Primary>question"]) self.set_accels_for_action("app.preferences", ["<Primary>P"]) self.set_accels_for_action("app.quit", ["<Primary>Q"]) self.set_accels_for_action("win.report", ["<Primary>D"]) @@ -468,13 +476,11 @@ class Application(Gtk.Application): if not os.path.exists(filename): open(filename, 'a').close() - def on_help(self, action, parameter): - if HELP_URI: - uri = HELP_URI - else: - filename = os.path.join(HELP_DIR, 'C', 'index.page') - uri = 'ghelp:' + GLib.filename_to_uri(filename, None).partition(':')[-1] - Gtk.show_uri(None, uri, Gdk.CURRENT_TIME) + def on_shortcuts(self, action, parameter): + builder = Gtk.Builder.new_from_file(SHORTCUTS_UI_FILE) + shortcuts_window = builder.get_object('shortcuts_window') + shortcuts_window.set_transient_for(self.get_active_window()) + shortcuts_window.show_all() def get_contributors(self): contributors = [] @@ -500,11 +506,16 @@ class Application(Gtk.Application): preferences.connect("response", lambda *args: preferences.destroy()) preferences.run() + def are_there_any_modals(self): + # Fix for https://github.com/gtimelog/gtimelog/issues/127 + return any(window.get_modal() + for window in Gtk.Window.list_toplevels()) + def do_activate(self): mark_time("in app activate") window = self.get_active_window() if window is not None: - if not window.is_active(): + if not window.is_active() and not self.are_there_any_modals(): # If I don't hide the window before calling present(), GNOME # Shell (on Wayland) ignores the presentation request: # https://bugzilla.gnome.org/show_bug.cgi?id=756202 and @@ -992,6 +1003,10 @@ class Window(Gtk.ApplicationWindow): if self.editing_remote_tasks: self.download_tasks() self.editing_remote_tasks = False + # In case inotify magic fails, let's allow the user to refresh by + # switching focus. + self.check_reload() + self.check_reload_tasks() def virtual_midnight_changed(self, *args): if self.timelog: @@ -1038,14 +1053,23 @@ class Window(Gtk.ApplicationWindow): return (self.props.window.get_state() & MAXIMIZED_IN_ANY_WAY) != 0 def watch_file(self, filename, callback): + log.debug('adding watch on %s', filename) gf = Gio.File.new_for_path(filename) gfm = gf.monitor_file(Gio.FileMonitorFlags.NONE, None) gfm.connect('changed', callback) - self._watches[filename] = gfm # keep a reference so it doesn't get garbage collected + self._watches[filename] = (gfm, None) # keep a reference so it doesn't get garbage collected + if os.path.islink(filename): + realpath = os.path.join(os.path.dirname(filename), os.readlink(filename)) + log.debug('%s is a symlink, adding a watch on %s', filename, realpath) + self._watches[filename] = (gfm, realpath) + if realpath not in self._watches: # protect against infinite loops + self.watch_file(realpath, callback) def unwatch_file(self, filename): - if filename in self._watches: - del self._watches[filename] + # watch_file(a_symlink, callback) creates multiple watches, so be sure to unwatch them all + while filename in self._watches: + log.debug('removing watch on %s', filename) + filename = self._watches.pop(filename)[1] def get_last_time(self): if self.timelog is None: @@ -1296,12 +1320,14 @@ class Window(Gtk.ApplicationWindow): # systems/OSes don't ever send it, react to other events after a # short delay, so we wouldn't have to reload the file more than # once. + log.debug('watch on %s reports %s', file.get_path(), event_type.value_nick.upper()) if event_type == Gio.FileMonitorEvent.CHANGES_DONE_HINT: self.check_reload() else: GLib.timeout_add_seconds(1, self.check_reload) def on_tasks_file_changed(self, monitor, file, other_file, event_type): + log.debug('watch on %s reports %s', file.get_path(), event_type.value_nick.upper()) if event_type == Gio.FileMonitorEvent.CHANGES_DONE_HINT: self.check_reload_tasks() else: diff --git a/src/gtimelog/menus.ui b/src/gtimelog/menus.ui index 109cbc9..a96b117 100644 --- a/src/gtimelog/menus.ui +++ b/src/gtimelog/menus.ui @@ -5,11 +5,9 @@ <attribute name="label" translatable="yes">Preferences</attribute> <attribute name="action">app.preferences</attribute> </item> - </section> - <section> <item> - <attribute name="label" translatable="yes">Help</attribute> - <attribute name="action">app.help</attribute> + <attribute name="label" translatable="yes">Keyboard Shortcuts</attribute> + <attribute name="action">app.shortcuts</attribute> </item> <item> <attribute name="label" translatable="yes">About</attribute> @@ -43,6 +41,20 @@ <attribute name="action">win.report</attribute> </item> </section> + <section> + <item> + <attribute name="label" translatable="yes">Preferences</attribute> + <attribute name="action">app.preferences</attribute> + </item> + <item> + <attribute name="label" translatable="yes">Keyboard Shortcuts</attribute> + <attribute name="action">app.shortcuts</attribute> + </item> + <item> + <attribute name="label" translatable="yes">About Time Log</attribute> + <attribute name="action">app.about</attribute> + </item> + </section> </menu> <menu id="view_menu"> <section> diff --git a/src/gtimelog/po/POTFILES.in b/src/gtimelog/po/POTFILES.in index 3bd58be..cb95138 100644 --- a/src/gtimelog/po/POTFILES.in +++ b/src/gtimelog/po/POTFILES.in @@ -1,7 +1,8 @@ [encoding: UTF-8] -gtimelog.desktop.in -src/gtimelog/main.py -[type: gettext/glade]src/gtimelog/about.ui -[type: gettext/glade]src/gtimelog/gtimelog.ui -[type: gettext/glade]src/gtimelog/preferences.ui -[type: gettext/glade]src/gtimelog/menus.ui +../../gtimelog.desktop.in +main.py +[type: gettext/glade]about.ui +[type: gettext/glade]gtimelog.ui +[type: gettext/glade]preferences.ui +[type: gettext/glade]menus.ui +[type: gettext/glade]shortcuts.ui diff --git a/src/gtimelog/po/en.po b/src/gtimelog/po/en.po index fac9711..b7fc322 100644 --- a/src/gtimelog/po/en.po +++ b/src/gtimelog/po/en.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gtimelog 0.10.dev0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-07 20:45+0300\n" +"POT-Creation-Date: 2018-11-02 18:07+0200\n" "PO-Revision-Date: 2015-09-04 10:53+0300\n" "Last-Translator: Marius Gedminas <marius@gedmin.as>\n" "Language-Team: <marius@gedmin.as>\n" @@ -28,6 +28,12 @@ msgstr "" msgid "{0} h {1} min" msgstr "" +#, python-format +msgid "" +"Authentication is required for \"%s\"\n" +"You need a username and a password to access %s" +msgstr "" + msgid "Show version number and exit" msgstr "" @@ -210,7 +216,7 @@ msgstr "" msgid "Unable to configure translations: no locale.bindtextdomain()" msgstr "" -msgid "Copyright © 2004–2017 Marius Gedminas and contributors." +msgid "Copyright © 2004–2018 Marius Gedminas and contributors." msgstr "" msgid "A time tracking application" @@ -285,7 +291,7 @@ msgstr "" msgid "Nickname used in the Subject line" msgstr "" -msgid "Help" +msgid "Keyboard Shortcuts" msgstr "" msgid "About" @@ -306,6 +312,9 @@ msgstr "" msgid "Report..." msgstr "" +msgid "About Time Log" +msgstr "" + msgid "Detail level" msgstr "" @@ -332,3 +341,115 @@ msgstr "" msgid "Filter" msgstr "" + +msgctxt "shortcuts window" +msgid "Entry" +msgstr "" + +msgctxt "shortcut window" +msgid "Detail level" +msgstr "" + +msgctxt "shortcut window" +msgid "Full chronological list" +msgstr "" + +msgctxt "shortcut window" +msgid "Group by description" +msgstr "" + +msgctxt "shortcut window" +msgid "Group by category" +msgstr "" + +msgctxt "shortcut window" +msgid "Time range" +msgstr "" + +msgctxt "shortcut window" +msgid "Day view" +msgstr "" + +msgctxt "shortcut window" +msgid "Week view" +msgstr "" + +msgctxt "shortcut window" +msgid "Month view" +msgstr "" + +msgctxt "shortcut window" +msgid "Time navigation" +msgstr "" + +msgctxt "shortcut window" +msgid "Go back in time" +msgstr "" + +msgctxt "shortcut window" +msgid "Go forward in time" +msgstr "" + +msgctxt "shortcut window" +msgid "Go back to today" +msgstr "" + +msgctxt "shortcut window" +msgid "General" +msgstr "" + +msgctxt "shortcut window" +msgid "Menu" +msgstr "" + +msgctxt "shortcut window" +msgid "Keyboard shortcuts" +msgstr "" + +msgctxt "shortcut window" +msgid "Toggle search bar" +msgstr "" + +msgctxt "shortcut window" +msgid "Edit task log" +msgstr "" + +msgctxt "shortcut window" +msgid "Preferences" +msgstr "" + +msgctxt "shortcut window" +msgid "Quit" +msgstr "" + +msgctxt "shortcut window" +msgid "Task pane" +msgstr "" + +msgctxt "shortcut window" +msgid "Toggle task pane" +msgstr "" + +msgctxt "shortcut window" +msgid "Edit task list" +msgstr "" + +msgctxt "shortcuts window" +msgid "Reports" +msgstr "" + +msgctxt "shortcut window" +msgid "Reporting" +msgstr "" + +msgctxt "shortcut window" +msgid "Switch to report mode" +msgstr "" + +msgctxt "shortcut window" +msgid "Send report via email" +msgstr "" + +msgctxt "shortcut window" +msgid "Return to task entry mode" +msgstr "" diff --git a/src/gtimelog/po/gtimelog.pot b/src/gtimelog/po/gtimelog.pot index 450d325..9140dee 100644 --- a/src/gtimelog/po/gtimelog.pot +++ b/src/gtimelog/po/gtimelog.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-07 20:46+0300\n" +"POT-Creation-Date: 2018-11-02 18:07+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -27,6 +27,12 @@ msgstr "" msgid "{0} h {1} min" msgstr "" +#, python-format +msgid "" +"Authentication is required for \"%s\"\n" +"You need a username and a password to access %s" +msgstr "" + msgid "Show version number and exit" msgstr "" @@ -209,7 +215,7 @@ msgstr "" msgid "Unable to configure translations: no locale.bindtextdomain()" msgstr "" -msgid "Copyright © 2004–2017 Marius Gedminas and contributors." +msgid "Copyright © 2004–2018 Marius Gedminas and contributors." msgstr "" msgid "A time tracking application" @@ -284,7 +290,7 @@ msgstr "" msgid "Nickname used in the Subject line" msgstr "" -msgid "Help" +msgid "Keyboard Shortcuts" msgstr "" msgid "About" @@ -305,6 +311,9 @@ msgstr "" msgid "Report..." msgstr "" +msgid "About Time Log" +msgstr "" + msgid "Detail level" msgstr "" @@ -331,3 +340,115 @@ msgstr "" msgid "Filter" msgstr "" + +msgctxt "shortcuts window" +msgid "Entry" +msgstr "" + +msgctxt "shortcut window" +msgid "Detail level" +msgstr "" + +msgctxt "shortcut window" +msgid "Full chronological list" +msgstr "" + +msgctxt "shortcut window" +msgid "Group by description" +msgstr "" + +msgctxt "shortcut window" +msgid "Group by category" +msgstr "" + +msgctxt "shortcut window" +msgid "Time range" +msgstr "" + +msgctxt "shortcut window" +msgid "Day view" +msgstr "" + +msgctxt "shortcut window" +msgid "Week view" +msgstr "" + +msgctxt "shortcut window" +msgid "Month view" +msgstr "" + +msgctxt "shortcut window" +msgid "Time navigation" +msgstr "" + +msgctxt "shortcut window" +msgid "Go back in time" +msgstr "" + +msgctxt "shortcut window" +msgid "Go forward in time" +msgstr "" + +msgctxt "shortcut window" +msgid "Go back to today" +msgstr "" + +msgctxt "shortcut window" +msgid "General" +msgstr "" + +msgctxt "shortcut window" +msgid "Menu" +msgstr "" + +msgctxt "shortcut window" +msgid "Keyboard shortcuts" +msgstr "" + +msgctxt "shortcut window" +msgid "Toggle search bar" +msgstr "" + +msgctxt "shortcut window" +msgid "Edit task log" +msgstr "" + +msgctxt "shortcut window" +msgid "Preferences" +msgstr "" + +msgctxt "shortcut window" +msgid "Quit" +msgstr "" + +msgctxt "shortcut window" +msgid "Task pane" +msgstr "" + +msgctxt "shortcut window" +msgid "Toggle task pane" +msgstr "" + +msgctxt "shortcut window" +msgid "Edit task list" +msgstr "" + +msgctxt "shortcuts window" +msgid "Reports" +msgstr "" + +msgctxt "shortcut window" +msgid "Reporting" +msgstr "" + +msgctxt "shortcut window" +msgid "Switch to report mode" +msgstr "" + +msgctxt "shortcut window" +msgid "Send report via email" +msgstr "" + +msgctxt "shortcut window" +msgid "Return to task entry mode" +msgstr "" diff --git a/src/gtimelog/po/lt.po b/src/gtimelog/po/lt.po index 523f091..a9219dd 100644 --- a/src/gtimelog/po/lt.po +++ b/src/gtimelog/po/lt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gtimelog 0.10.dev0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-07 20:45+0300\n" +"POT-Creation-Date: 2018-11-02 18:07+0200\n" "PO-Revision-Date: 2015-09-04 10:53+0300\n" "Last-Translator: Marius Gedminas <marius@gedmin.as>\n" "Language-Team: <marius@gedmin.as>\n" @@ -29,6 +29,14 @@ msgstr "Sekti kasdieninus darbus" msgid "{0} h {1} min" msgstr "{0} val {1} min" +#, python-format +msgid "" +"Authentication is required for \"%s\"\n" +"You need a username and a password to access %s" +msgstr "" +"Reikia prisijungti prie \"%s\"\n" +"Reikia naudotojo vardo ir slaptažodžio, kad pasiektumėte %s" + msgid "Show version number and exit" msgstr "Rodyti programos versiją ir išeiti" @@ -215,8 +223,8 @@ msgstr "Uždaryti" msgid "Unable to configure translations: no locale.bindtextdomain()" msgstr "Nepavyko įjungti vertimų: nėra locale.bindtextdomain()" -msgid "Copyright © 2004–2017 Marius Gedminas and contributors." -msgstr "Autorinės teisės © 2004–2017 Marius Gedminas ir kiti." +msgid "Copyright © 2004–2018 Marius Gedminas and contributors." +msgstr "Autorinės teisės © 2004–2018 Marius Gedminas ir kiti." msgid "A time tracking application" msgstr "Programa darbo laiko sekimui" @@ -290,8 +298,8 @@ msgstr "Kam" msgid "Nickname used in the Subject line" msgstr "Trumpas vardas temos laukeliui" -msgid "Help" -msgstr "Žinynas" +msgid "Keyboard Shortcuts" +msgstr "Trumpiniai" msgid "About" msgstr "Apie" @@ -311,6 +319,9 @@ msgstr "Atnaujinti užduotis" msgid "Report..." msgstr "Ataskaita..." +msgid "About Time Log" +msgstr "Apie Laiko žurnalą" + msgid "Detail level" msgstr "Detalumas" @@ -338,6 +349,125 @@ msgstr "Mėnuo" msgid "Filter" msgstr "Filtruoti" +msgctxt "shortcuts window" +msgid "Entry" +msgstr "Įvedimas" + +msgctxt "shortcut window" +msgid "Detail level" +msgstr "Detalumas" + +msgctxt "shortcut window" +msgid "Full chronological list" +msgstr "Chronologinis" + +msgctxt "shortcut window" +msgid "Group by description" +msgstr "Grupuoti pagal pavadinimą" + +msgctxt "shortcut window" +msgid "Group by category" +msgstr "Grupuoti pagal kategoriją" + +msgctxt "shortcut window" +msgid "Time range" +msgstr "Laiko intervalas" + +msgctxt "shortcut window" +msgid "Day view" +msgstr "Diena" + +msgctxt "shortcut window" +msgid "Week view" +msgstr "Savaitė" + +msgctxt "shortcut window" +msgid "Month view" +msgstr "Mėnuo" + +msgctxt "shortcut window" +msgid "Time navigation" +msgstr "Navigacija" + +msgctxt "shortcut window" +msgid "Go back in time" +msgstr "Eiti atgal laike" + +msgctxt "shortcut window" +msgid "Go forward in time" +msgstr "Eiti pirmyn laike" + +msgctxt "shortcut window" +msgid "Go back to today" +msgstr "Grįžti į šiandieną" + +msgctxt "shortcut window" +msgid "General" +msgstr "Bendri" + +msgctxt "shortcut window" +msgid "Menu" +msgstr "Meniu" + +msgctxt "shortcut window" +msgid "Keyboard shortcuts" +msgstr "Trumpiniai" + +msgctxt "shortcut window" +msgid "Toggle search bar" +msgstr "Rodyti/slėpti paieškos lauką" + +msgctxt "shortcut window" +msgid "Edit task log" +msgstr "Taisyti žurnalą" + +msgctxt "shortcut window" +msgid "Preferences" +msgstr "Nustatymai" + +msgctxt "shortcut window" +msgid "Quit" +msgstr "Užverti programą" + +msgctxt "shortcut window" +msgid "Task pane" +msgstr "Užduočių skiltis" + +msgctxt "shortcut window" +msgid "Toggle task pane" +msgstr "Rodyti/slėpti užduočių skiltį" + +msgctxt "shortcut window" +msgid "Edit task list" +msgstr "Tvarkyti užduotis" + +msgctxt "shortcuts window" +msgid "Reports" +msgstr "Ataskaitos" + +msgctxt "shortcut window" +msgid "Reporting" +msgstr "Ataskaitos" + +msgctxt "shortcut window" +msgid "Switch to report mode" +msgstr "Ataskaitų režimas" + +msgctxt "shortcut window" +msgid "Send report via email" +msgstr "Siųsti el. paštu" + +msgctxt "shortcut window" +msgid "Return to task entry mode" +msgstr "Grįžti į įvedimo režimą" + +#~ msgid "Help" +#~ msgstr "Žinynas" + +#~ msgctxt "shortcut window" +#~ msgid "Help" +#~ msgstr "Žinynas" + #~ msgid "Total for {0}: {1}" #~ msgstr "Iš viso {0}: {1}" diff --git a/src/gtimelog/shortcuts.ui b/src/gtimelog/shortcuts.ui new file mode 100644 index 0000000..6512ee7 --- /dev/null +++ b/src/gtimelog/shortcuts.ui @@ -0,0 +1,252 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.17 --> + + <object class="GtkShortcutsWindow" id="shortcuts_window"> + <property name="modal">True</property> + <child> + <object class="GtkShortcutsSection"> + <property name="visible">True</property> + <property name="section-name">entry</property> + <property name="title" translatable="yes" context="shortcuts window">Entry</property> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Detail level</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>1</property> + <property name="title" translatable="yes" context="shortcut window">Full chronological list</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>2</property> + <property name="title" translatable="yes" context="shortcut window">Group by description</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>3</property> + <property name="title" translatable="yes" context="shortcut window">Group by category</property> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Time range</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>4</property> + <property name="title" translatable="yes" context="shortcut window">Day view</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>5</property> + <property name="title" translatable="yes" context="shortcut window">Week view</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>6</property> + <property name="title" translatable="yes" context="shortcut window">Month view</property> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Time navigation</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>Left</property> + <property name="title" translatable="yes" context="shortcut window">Go back in time</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>Right</property> + <property name="title" translatable="yes" context="shortcut window">Go forward in time</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>Home</property> + <property name="title" translatable="yes" context="shortcut window">Go back to today</property> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">General</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator">F10</property> + <property name="title" translatable="yes" context="shortcut window">Menu</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>question</property> + <property name="title" translatable="yes" context="shortcut window">Keyboard shortcuts</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>F</property> + <property name="title" translatable="yes" context="shortcut window">Toggle search bar</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>E</property> + <property name="title" translatable="yes" context="shortcut window">Edit task log</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>P</property> + <property name="title" translatable="yes" context="shortcut window">Preferences</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>Q</property> + <property name="title" translatable="yes" context="shortcut window">Quit</property> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Task pane</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator">F9</property> + <property name="title" translatable="yes" context="shortcut window">Toggle task pane</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>T</property> + <property name="title" translatable="yes" context="shortcut window">Edit task list</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsSection"> + <property name="visible">True</property> + <property name="section-name">report</property> + <property name="title" translatable="yes" context="shortcuts window">Reports</property> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Time range</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>4</property> + <property name="title" translatable="yes" context="shortcut window">Day view</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>5</property> + <property name="title" translatable="yes" context="shortcut window">Week view</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>6</property> + <property name="title" translatable="yes" context="shortcut window">Month view</property> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Time navigation</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>Left</property> + <property name="title" translatable="yes" context="shortcut window">Go back in time</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>Right</property> + <property name="title" translatable="yes" context="shortcut window">Go forward in time</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><alt>Home</property> + <property name="title" translatable="yes" context="shortcut window">Go back to today</property> + </object> + </child> + </object> + </child> + <child> + <object class="GtkShortcutsGroup"> + <property name="visible">True</property> + <property name="title" translatable="yes" context="shortcut window">Reporting</property> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>D</property> + <property name="title" translatable="yes" context="shortcut window">Switch to report mode</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator"><primary>Return</property> + <property name="title" translatable="yes" context="shortcut window">Send report via email</property> + </object> + </child> + <child> + <object class="GtkShortcutsShortcut"> + <property name="visible">True</property> + <property name="accelerator">Escape</property> + <property name="title" translatable="yes" context="shortcut window">Return to task entry mode</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> +</interface> |