\NewEntry 0 GUI

\NewEntry 1 Widgets
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Widgets available in Kommander</span></p>
<ul type="disc"><li>Database widget (use hk_classes)</li>
<li>Improve script widget (how?)</li>
<li>ColorBox widget</li>
<li>Progress bar</li>
<li>KJanusWidget</li>
<li>QTimer widget</li>
<li>Switch from using Qt widget to their KDE equivalents?</li>
<li>TextBrowser (rich text viewer with link clicking support)</li>
<li>Menu</li>
<li>Popup menu</li>
<li>KHistoryCombo</li>
<li>Picture Viewer</li>
<li>Table</li>
<div></div></ul>
</body></html>

\NewEntry 1 Editor
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Layout of Edit Kommander Text dialog</span></p>
<ul type="disc"><li>use better editor (KWrite?)</li>
<li>better layout</li>
<li>add function browser with description</li>
<li>add local DCOP functions browser</li>
<li>replace list of widgets with tree of widgets</li>
<li>replace widget class with widget pixmap in combos</li>
<li>redesign layout</li>
<li>don't make window modal</li>
<li>cleanup Connections, not it is unusable, may be obsolete</li>
<li>find in scripts</li>
<li>list of non-empty scripts for current dialog</li>
<li>allow using custom Kommander dialog to generate code</li>
<li>add DCOP per widget display</li>
<li>DCOP editor (similar to Tag editor in Quanta)</li></ul>
</body></html>

\NewEntry 1 Usability
\Link knowit://Source code
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Various GUI-related features</span></p>
<ul type="disc"><li>clean up popup menus, remove disabled items</li>
<li>use KDE dialogs, not Qt ones if possible</li>
<li>some widget information on mouseover</li>
<li>review of event model</li>
<li>add more layout-handling commands (center selected widgets horizontally/vertically, fit to window width/height)</li>
<li>handle middle click</li>
<li>carefully check defaults, choose most useful ones</li>
<li>add wizards? (replace current New dialogs with Kommander-based ones?)</li>
<li>better undo</li>
<li>add WhatsThis for most items</li>
<li>detect function name/widget name clash</li>
<li>improve order of widget icons</li>
<li>switch to KMDI (arghhhh!)</li></ul>
</body></html>

\NewEntry 1 Run/debug
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Running/testing inside Editor</span></p>
<ul type="disc"><li>allow debugging</li>
<li>add Message/Log window, catching output in editor</li>
<li>save dialog in temporary file when running</li>
<li>allow only one running dialog at the time</li></ul>
</body></html>

\NewEntry 1 DCOP browser
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">DCOP browser (preliminary ideas)</span></p>
<ul type="disc"><li>DCOP browser for both local and external DCOP calls</li>
<li>easy-to-use application DCOP browser</li>
<li>use XML describing given application DCOP's</li>
<li>two flags for a call: hiden and important</li>
<li>three mode: important (only important calls), default (all except hidden), advanced (all calls)</li>
<li>use some pattern matching to allow marking whole subtrees or function sets</li>
<li>add purpose (for example all editor-related functions, all file-management-related functions)</li>
<li>merge trees for given window (f. e. Editor#2, File#2, Structure#2 etc.)</li>
<li>standalone application mode</li></ul>
</body></html>

\NewEntry 1 Other
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Other GUI-related issues</span></p>
<ul type="disc"><li>get rid of unreadable splash messages</li>
<li>use KSplash instead of local splash class</li>
<li>cleanup slots/signals/connections interface</li>
<li>find out why slots are shown only for current tab</li>
<li>add standard KDE About dialog</li></ul>
</body></html>

\NewEntry 0 Bugs
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Various bugs to be fixed</span></p>
<ul type="disc"><li>Charset is sometimes incorrectly converted from/to local charset</li>
<li>Wizard widget locks up editor - find out why?</li>
<li>SubDialog crashes now</li></ul>
</body></html>

\NewEntry 0 Help

\NewEntry 1 Documentation
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Kommander tutorials, documentation etc.</span></p>
<ul type="disc"><li>Create documentation</li>
<li>Create Kommander function reference</li>
<li>Hints?</li></ul>
</body></html>

\NewEntry 1 Examples
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Examples to be used with tutorial</span></p>
<ul type="disc"><li>add a way to comment *.kmdr file</li>
<li>create examples for tutorial</li>
<li>clean up examples: reomve obsolete or unclear ones, add some more instructive ones</li></ul>
</body></html>

\NewEntry 1 Scripts
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Kommander scripts that can be useful</span></p>
<ul type="disc"><li>improve script for Quick Start (Quanta): handle indentation with, quotation character and tag case</li>
<li>create script for Quick List (Quanta)</li>
<li>create scripts for common command-line programs to demonstrate power of Kommander (it would be nice if those could be documented somehow)</li>
<li>create scripts for HTML templates</li></ul>
<p></p>
<p></p>
</body></html>

\NewEntry 0 Language

\NewEntry 1 Syntax
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<li type="disc"><span style="font-weight:600">Syntax-related problems</span></li>
<ul type="disc"><li>better handling of lists</li>
<li>better handling of other structures (trees, arrays etc.)</li>
<li>add some way to define and use macros/aliases</li></ul>
<p></p>
<p></p>
</body></html>

\NewEntry 1 New functions
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">New functions that could be useful</span></p>
<ul type="disc"><li>add string-handling functions (lowercase, uppercase, capitalize, substring), perhaps in a way: @string(operation, string) - to avoid adding too many functions</li>
<li>allow better handling of empty strings (see Quick Start - too many empty lines are created)</li>
<li>@if (a, b, c)? - or is BASH enough?<br /><span style="font-style:italic">This will be solved by new parser.</span></li>
<li>add @include and @includelocal commands - to include external script or local (project script); that should make code more readable</li>
<li>add @call to call local script (no need for external @call, as it is equivalent to @exec<br /><span style="font-style:italic">Naming: use @execlocal for consistency?</span></li>
<li>add @messageBox as an interface to KMessageBox (for both queries and messages)<br /><span style="font-style:italic">Question: use strings or int for flags and results?</span></li>
<li>add @requireVersion(command, version)  that would detect version of program (presumably script language, like perl), compare it to given minimum and fail if it is not matched</li>
<li>add <span style="font-style:italic">i18n</span> to allow locale handling</li>
<li>add function for string conversion (@String.cvs2tab, @Stringcvs2eol ...)</li>
<li>add @ldcop for calling local DCOP functions</li></ul>
</body></html>

\NewEntry 1 Script languages
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Using script languages other than Bash</span></p>
<ul type="disc"><li>detect incorrect path at shebang, allow user to choose correct one and remeber that pair</li></ul>
<p></p>
</body></html>

\NewEntry 1 Aliases
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Aliases - easier access to Kommander features</span></p>
<ul type="disc"><li>add @String.&lt;function&gt;(&lt;args&gt;)  as alias to string-handling function</li>
<li>add @&lt;widgetName&gt;.&lt;function&gt;(&lt;args&gt;) as alias to dcop @dcopid KommanderIf  &lt;widgetName&gt; &lt;args&gt;</li>
<li>add aliases to various widgets properties, f. e. text, selectedText, state, items etc.; syntax: @&lt;widgetName&gt;.&lt;attribute&gt;</li></ul>
</body></html>

\NewEntry 1 Signals
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">New signals for existing widgets</span></p>
<ul type="disc"><li>add signals for D&amp;D<br /><span style="font-style:italic">Requires  dragContent and dragType, perhaps dragSource to be set.</span></li>
<li></li></ul>
</body></html>

\NewEntry 1 Parser
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Features of new parser</span></p>
<ul type="disc"><li>write it! ;-)</li>
<li>add syntax checking</li>
<li>add debugger</li>
<li>add step-by-step running</li>
<li>add code-completion</li>
<li>add syntax highlighting</li>
<li>add syntax hints</li></ul>
</body></html>

\NewEntry 0 Executor
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Executing Kommander scripts</span></p>
<ul type="disc"><li>detect and handle missing plugin widgets</li>
<li>cache @pid, @dcopid, @parentPid, perhaps calculate and cache @parentdcopid</li>
<li>handle multiple dialogs: they could be packaged in single *.tgz file, unpacked and executed internally</li></ul>
</body></html>

\CurrentEntry 0 Source code
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Kommander source code</span></p>
<ul type="disc"><li>add comments</li>
<li>resolve warnings</li>
<li>resolve FIXME</li>
<li>remove or accept commented pieces of code</li>
<li>rewrite some parts more clearly</li></ul>
</body></html>

\NewEntry 0 Last changes
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<p><span style="font-weight:600">Last changes in TODO file</span></p>
<ul type="disc"><li>remove done items</li></ul>
<p><span style="color:#0000ff">2004-05-28, 17:35</span></p>
<ul type="disc"><li>GUI/Widgets: Tree, History Combo, Picture Viewer, Table</li>
<li>GUI/Other added</li>
<li>Executor: handle multiple dialogs package</li>
<li>Language/New functions: string conversion</li>
<li>Language/Signals added</li></ul>
<p><span style="color:#0000ff">2004-05-14, 12:44</span></p>
<ul type="disc"><li>Bugs: added</li>
<li>Language/New functions, Executor: added i18n</li></ul>
<p><span style="color:#0000ff">2004-05-08, 23:00</span></p>
<ul type="disc"><li>Widgets: Menu and popup menu</li>
<li>added Language:Aliases</li>
<li>Syntax: remove @dcop, moved aliases to new note, macros</li>
<li>Editor: Connections</li>
<li>New functions: @requireVersion</li>
<li>Executor: detect loop, handle startup parameters, cache</li></ul>
<p></p>
</body></html>

\NewEntry 0 Done
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:10pt;font-family:Georgia">
<li type="disc"><span style="font-weight:600">ChangeLog of Kommander</span></li>
<li type="disc"><span style="font-style:italic">See ChangeLog file for details and dates</span></li>
<ul type="disc"><li>added @parentPid evaluated to parent process pid</li>
<li>added @pid evaluated to current process pid</li>
<li>added @dcopid evaluated to current process DCOP id</li>
<li>significantly improved Kommander Text editor usability</li>
<li>added <span style="font-style:italic">initialization</span> and <span style="font-style:italic">destroy</span> scripts for main dialog</li>
<li>global variables added (setGlobal and global DCOP calls)</li>
<li>added support for shebang (#!/bin/sh) for both ExecButton  script and @execBegin scripts</li>
<li>added command-line parameters (<span style="font-style:italic">kmdr-executor dialog.kmdr VAR=VALUE ARG1 ARG2...)</span></li>
<li>dialog setting are now stored with full path</li>
<li>completely rebuilt @dcop() parser: check number of arguments, handle various types etc.</li>
<li>support for @execBegin(&lt;program-name&gt;)</li>
<li>avoid infinite loop when trying to run @&lt;widget&gt; inside &lt;widget&gt;:&lt;state&gt;</li>
<li>handle other values for DCOP (not only <span style="font-style:italic">string</span> and <span style="font-style:italic">int</span>)</li>
<li>add option to pass shebang as argument of @execBegin, f. e. @execBegin(/usr/bin/perl)</li>
<li>add Run command to editor</li>
<li>added global and setGlobal specials</li>
<li>added warnings for missing specials</li>
<div></div></ul>
</body></html>

\NewEntry 0 About this file
<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:11pt;font-family:helvetica">
<p>This file should document both what should be done in Kommander and what was done.</p>
<p>All entries marked with a date without an author were made by Michal Rudolf</p>
<p>When adding something important, please enter it in ChangeLog or Done and mark it with current date (in yyyy-MM-dd, hh:mm format) and your name.</p>
</body></html>

