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
334 fixed creash when creating task with a project
\r
335 containing a task with a tag.
\r
341 <div class="sect1">
\r
342 <h2 id="_v0_0_7">v0.0.7</h2>
\r
343 <div class="sectionbody">
\r
344 <div class="ulist"><ul>
\r
347 added support of taskwarrior 2.3.0.
\r
352 added combo box for project in the new task dialog.
\r
357 disable the removal of recurrent tasks which is freezing ptask
\r
358 because taskwarrior CLI is prompting a confirmation. That’s the
\r
359 consequence of the taskwarrior bug TW-638.
\r
364 display the tags of the selected task.
\r
370 <div class="sect1">
\r
371 <h2 id="_v0_0_6">v0.0.6</h2>
\r
372 <div class="sectionbody">
\r
373 <div class="ulist"><ul>
\r
376 added contextal menu item in the task tree: task done.
\r
381 added start/stop task.
\r
386 fixed coredump with taskwarrior 2.0.0 when there is not any tasks.
\r
392 <div class="sect1">
\r
393 <h2 id="_v0_0_5">v0.0.5</h2>
\r
394 <div class="sectionbody">
\r
395 <div class="ulist"><ul>
\r
398 keep focus on project after refresh.
\r
403 keep focus on task after refresh.
\r
408 added support of tasks with deleted status.
\r
413 added urgency column.
\r
418 implemented the cancel button of the task panel.
\r
428 restore position of vertical/horizontal spliters.
\r
433 added creation date, due, id, uuid, urgency, and start date in the
\r
439 popup menu to filter columns of the table of tasks.
\r
444 allow to change the directory containing the notes.
\r
449 fixed compilation with gtk+ 3.10 (ignore deprecation of GtkAction).
\r
455 <div class="sect1">
\r
456 <h2 id="_v0_0_4">v0.0.4</h2>
\r
457 <div class="sectionbody">
\r
458 <div class="ulist"><ul>
\r
461 fixed i18n support.
\r
466 added --version and --help options.
\r
476 popup error dialog when .taskrc does not exist.
\r
486 added taskwarrior version checking (supported version are 2.2.0 and 2.0.0).
\r
491 added support for taskwarrior 2.2.0 (avoid confirmation query).
\r
496 added window position and size restore.
\r
501 added tasks sort column/order restore.
\r
506 fixed error message displayed when a note does not exist.
\r
511 new task dialog allow to set description and priority.
\r
516 added project table to filter the list of tasks.
\r
521 added application icon.
\r
526 added remove task button.
\r
532 <div class="sect1">
\r
533 <h2 id="_v0_0_3">v0.0.3</h2>
\r
534 <div class="sectionbody">
\r
535 <div class="ulist"><ul>
\r
538 fixed window close to terminate the application.
\r
548 generated HTML version of README and NEWS files.
\r
553 added fr translation and i18n support.
\r
559 <div class="sect1">
\r
560 <h2 id="_v0_0_2">v0.0.2</h2>
\r
561 <div class="sectionbody">
\r
562 <div class="ulist"><ul>
\r
565 added refresh keyboard shortcut (ALT-r).
\r
570 added new task keyboard shortcut (ALT-n).
\r
575 renamed gtask to ptask.
\r
581 <div class="sect1">
\r
582 <h2 id="_v0_0_1">v0.0.1</h2>
\r
583 <div class="sectionbody">
\r
584 <div class="ulist"><ul>
\r
594 <div id="footnotes"><hr /></div>
\r
596 <div id="footer-text">
\r
597 Last updated 2014-10-11 10:54:55 CEST
\r