1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
\r
6 <meta name="generator" content="AsciiDoc 8.6.9" />
\r
7 <title>What’s New</title>
\r
8 <style type="text/css">
\r
10 background: #FFFFFF;
\r
12 font-family: Ubuntu,Arial,sans-serif;
\r
14 font-weight: lighter;
\r
15 margin: 1em 2em 2em 2em;
\r
21 margin: 0 0 0.267em 0;
\r
23 font-weight: normal;
\r
28 margin: 0 0 0.375em;
\r
30 font-weight: normal;
\r
35 margin: 0 0 0.522em;
\r
37 font-weight: normal;
\r
42 margin: 0 0 0.615em;
\r
44 font-weight: normal;
\r
55 font-weight: normal;
\r
57 letter-spacing: 0.1em;
\r
58 margin: 0 0 0.923em;
\r
59 text-transform: uppercase;
\r
79 text-decoration: none;
\r
83 text-decoration: underline;
\r
87 font-family: "Ubuntu Mono","Courier New",Courier,monospace;
\r
88 font-weight: normal;
\r
93 background: none repeat scroll 0 0 #e0e0e0;
\r
95 padding: 0.5em 0.5em;
\r
97 white-space: pre-wrap;
\r
98 word-wrap: break-word;
\r
108 font-size: 1.219em;
\r
109 margin: 0 0 0.615em;
\r
111 font-weight: normal;
\r
117 font-weight: lighter;
\r
122 <script type="text/javascript">
\r
124 var asciidoc = { // Namespace.
\r
126 /////////////////////////////////////////////////////////////////////
\r
127 // Table Of Contents generator
\r
128 /////////////////////////////////////////////////////////////////////
\r
130 /* Author: Mihai Bazon, September 2002
\r
131 * http://students.infoiasi.ro/~mishoo
\r
133 * Table Of Content generator
\r
136 * Feel free to use this script under the terms of the GNU General Public
\r
137 * License, as long as you do not remove or alter this notice.
\r
140 /* modified by Troy D. Hanson, September 2006. License: GPL */
\r
141 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
\r
143 // toclevels = 1..4.
\r
144 toc: function (toclevels) {
\r
146 function getText(el) {
\r
148 for (var i = el.firstChild; i != null; i = i.nextSibling) {
\r
149 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
\r
151 else if (i.firstChild != null)
\r
152 text += getText(i);
\r
157 function TocEntry(el, text, toclevel) {
\r
160 this.toclevel = toclevel;
\r
163 function tocEntries(el, toclevels) {
\r
164 var result = new Array;
\r
165 var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
\r
166 // Function that scans the DOM tree for header elements (the DOM2
\r
167 // nodeIterator API would be a better technique but not supported by all
\r
169 var iterate = function (el) {
\r
170 for (var i = el.firstChild; i != null; i = i.nextSibling) {
\r
171 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
\r
172 var mo = re.exec(i.tagName);
\r
173 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
\r
174 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
\r
184 var toc = document.getElementById("toc");
\r
189 // Delete existing TOC entries in case we're reloading the TOC.
\r
190 var tocEntriesToRemove = [];
\r
192 for (i = 0; i < toc.childNodes.length; i++) {
\r
193 var entry = toc.childNodes[i];
\r
194 if (entry.nodeName.toLowerCase() == 'div'
\r
195 && entry.getAttribute("class")
\r
196 && entry.getAttribute("class").match(/^toclevel/))
\r
197 tocEntriesToRemove.push(entry);
\r
199 for (i = 0; i < tocEntriesToRemove.length; i++) {
\r
200 toc.removeChild(tocEntriesToRemove[i]);
\r
203 // Rebuild TOC entries.
\r
204 var entries = tocEntries(document.getElementById("content"), toclevels);
\r
205 for (var i = 0; i < entries.length; ++i) {
\r
206 var entry = entries[i];
\r
207 if (entry.element.id == "")
\r
208 entry.element.id = "_toc_" + i;
\r
209 var a = document.createElement("a");
\r
210 a.href = "#" + entry.element.id;
\r
211 a.appendChild(document.createTextNode(entry.text));
\r
212 var div = document.createElement("div");
\r
213 div.appendChild(a);
\r
214 div.className = "toclevel" + entry.toclevel;
\r
215 toc.appendChild(div);
\r
217 if (entries.length == 0)
\r
218 toc.parentNode.removeChild(toc);
\r
222 /////////////////////////////////////////////////////////////////////
\r
223 // Footnotes generator
\r
224 /////////////////////////////////////////////////////////////////////
\r
226 /* Based on footnote generation code from:
\r
227 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
\r
230 footnotes: function () {
\r
231 // Delete existing footnote entries in case we're reloading the footnodes.
\r
233 var noteholder = document.getElementById("footnotes");
\r
237 var entriesToRemove = [];
\r
238 for (i = 0; i < noteholder.childNodes.length; i++) {
\r
239 var entry = noteholder.childNodes[i];
\r
240 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
\r
241 entriesToRemove.push(entry);
\r
243 for (i = 0; i < entriesToRemove.length; i++) {
\r
244 noteholder.removeChild(entriesToRemove[i]);
\r
247 // Rebuild footnote entries.
\r
248 var cont = document.getElementById("content");
\r
249 var spans = cont.getElementsByTagName("span");
\r
252 for (i=0; i<spans.length; i++) {
\r
253 if (spans[i].className == "footnote") {
\r
255 var note = spans[i].getAttribute("data-note");
\r
257 // Use [\s\S] in place of . so multi-line matches work.
\r
258 // Because JavaScript has no s (dotall) regex flag.
\r
259 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
\r
260 spans[i].innerHTML =
\r
261 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
\r
262 "' title='View footnote' class='footnote'>" + n + "</a>]";
\r
263 spans[i].setAttribute("data-note", note);
\r
265 noteholder.innerHTML +=
\r
266 "<div class='footnote' id='_footnote_" + n + "'>" +
\r
267 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
\r
268 n + "</a>. " + note + "</div>";
\r
269 var id =spans[i].getAttribute("id");
\r
270 if (id != null) refs["#"+id] = n;
\r
274 noteholder.parentNode.removeChild(noteholder);
\r
276 // Process footnoterefs.
\r
277 for (i=0; i<spans.length; i++) {
\r
278 if (spans[i].className == "footnoteref") {
\r
279 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
\r
280 href = href.match(/#.*/)[0]; // Because IE return full URL.
\r
282 spans[i].innerHTML =
\r
283 "[<a href='#_footnote_" + n +
\r
284 "' title='View footnote' class='footnote'>" + n + "</a>]";
\r
290 install: function(toclevels) {
\r
293 function reinstall() {
\r
294 asciidoc.footnotes();
\r
296 asciidoc.toc(toclevels);
\r
300 function reinstallAndRemoveTimer() {
\r
301 clearInterval(timerId);
\r
305 timerId = setInterval(reinstall, 500);
\r
306 if (document.addEventListener)
\r
307 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
\r
309 window.onload = reinstallAndRemoveTimer;
\r
313 asciidoc.install();
\r
317 <body class="article">
\r
319 <h1>What’s New</h1>
\r
322 <div class="sect1">
\r
323 <h2 id="_v0_0_8">v0.0.8</h2>
\r
324 <div class="sectionbody">
\r
325 <div class="ulist"><ul>
\r
328 fixed a critical gtk error when loading the glade file
\r
329 which can also cause a memory corruption.
\r
335 <div class="sect1">
\r
336 <h2 id="_v0_0_7">v0.0.7</h2>
\r
337 <div class="sectionbody">
\r
338 <div class="ulist"><ul>
\r
341 added support of taskwarrior 2.3.0.
\r
346 added combo box for project in the new task dialog.
\r
351 disable the removal of recurrent tasks which is freezing ptask
\r
352 because taskwarrior CLI is prompting a confirmation. That’s the
\r
353 consequence of the taskwarrior bug TW-638.
\r
358 display the tags of the selected task.
\r
364 <div class="sect1">
\r
365 <h2 id="_v0_0_6">v0.0.6</h2>
\r
366 <div class="sectionbody">
\r
367 <div class="ulist"><ul>
\r
370 added contextal menu item in the task tree: task done.
\r
375 added start/stop task.
\r
380 fixed coredump with taskwarrior 2.0.0 when there is not any tasks.
\r
386 <div class="sect1">
\r
387 <h2 id="_v0_0_5">v0.0.5</h2>
\r
388 <div class="sectionbody">
\r
389 <div class="ulist"><ul>
\r
392 keep focus on project after refresh.
\r
397 keep focus on task after refresh.
\r
402 added support of tasks with deleted status.
\r
407 added urgency column.
\r
412 implemented the cancel button of the task panel.
\r
422 restore position of vertical/horizontal spliters.
\r
427 added creation date, due, id, uuid, urgency, and start date in the
\r
433 popup menu to filter columns of the table of tasks.
\r
438 allow to change the directory containing the notes.
\r
443 fixed compilation with gtk+ 3.10 (ignore deprecation of GtkAction).
\r
449 <div class="sect1">
\r
450 <h2 id="_v0_0_4">v0.0.4</h2>
\r
451 <div class="sectionbody">
\r
452 <div class="ulist"><ul>
\r
455 fixed i18n support.
\r
460 added --version and --help options.
\r
470 popup error dialog when .taskrc does not exist.
\r
480 added taskwarrior version checking (supported version are 2.2.0 and 2.0.0).
\r
485 added support for taskwarrior 2.2.0 (avoid confirmation query).
\r
490 added window position and size restore.
\r
495 added tasks sort column/order restore.
\r
500 fixed error message displayed when a note does not exist.
\r
505 new task dialog allow to set description and priority.
\r
510 added project table to filter the list of tasks.
\r
515 added application icon.
\r
520 added remove task button.
\r
526 <div class="sect1">
\r
527 <h2 id="_v0_0_3">v0.0.3</h2>
\r
528 <div class="sectionbody">
\r
529 <div class="ulist"><ul>
\r
532 fixed window close to terminate the application.
\r
542 generated HTML version of README and NEWS files.
\r
547 added fr translation and i18n support.
\r
553 <div class="sect1">
\r
554 <h2 id="_v0_0_2">v0.0.2</h2>
\r
555 <div class="sectionbody">
\r
556 <div class="ulist"><ul>
\r
559 added refresh keyboard shortcut (ALT-r).
\r
564 added new task keyboard shortcut (ALT-n).
\r
569 renamed gtask to ptask.
\r
575 <div class="sect1">
\r
576 <h2 id="_v0_0_1">v0.0.1</h2>
\r
577 <div class="sectionbody">
\r
578 <div class="ulist"><ul>
\r
588 <div id="footnotes"><hr /></div>
\r
590 <div id="footer-text">
\r
591 Last updated 2014-10-09 18:45:30 CEST
\r