*** /dev/null Sat Nov 23 06:00:48 2024
--- - Sat Nov 23 06:00:48 2024
***************
*** 0 ****
--- 1,451 ----
+ ***************************************
+ * *
+ * TODO: OSSP titraq Specification *
+ * *
+ ***************************************
+
+ Must do
+ -------
+ Q_CHECK_PTR
+ public/private
+ Ensure rethrows from second loadData on upwards
+ Report errors in all slot code
+ Rework error handling in prefs
+ Generally maintain Preference class
+ Implement missing interface methods
+ Review destruction of all members, compare with setupPrefs
+ Some menus are defined QPopupMenu in header, some in code
+ Memory optimization needed in tidataops
+ Check all identifiers for undeutig unique scope
+ Remove magic numbers from cpp files to titconst like TITRAQ_INDEXREMARK
+ Some signals implemented in Titraqform really belong in satellite classes
+ Write M4 macro for detecting cuserid, and prefer it in ac_assist
+ configure soll ueberpruefen ob libqt[-mt] threads braucht,
+ dann wenn so, soll den LIBS -pthread hardgecodet haben
+ Read config location from optional --confgen autoconf location
+ IDs in as_const.h much better choosing, so they make sense
+ Be consistent with szQString vs QString var names
+ After every result write a status bar message
+ On multiple selection, no text should appear in edit ctrls
+ Make consistent setEdition(), setDirty() default parameters
+ Use namespace 'AS' or unique identifier 'AS' for all classnames
+ Unify class mycl = class(), class mycl(), class *pMycl, auto_ptr<class *>
+ Win32 code in User class is only half written, and incomplete homedir
+ Verify routine consistently scans all fields on load and new entries
+ Remove all exception raises from slot code
+ New doc, new entry, change text in table, close... No verify save!
+ Might not need classes Amount and Tableitem at all
+ Mach mal mit den 'autobackup' und 'fextension' Optionen von prefs
+ Check for outdated config file version
+ Make status bar message, qWarning, qDebug, and Popup messages consistent
+ For which purposes do messages go in each category?
+ Label methods and parameters throughout as const ... const, use &
+ Yank out all #include from headers, replace with class ...; protos
+ Check for empty amount field in getWeektotals before Hashtasks[Convstring] +=
+ Accountlistbox is sorted both in assist and dataops with maps
+
+ Bugs (? = unverified)
+ ---------------------
+ Overidden paintCell() might not work when called asynchronously?
+ Sometimes a click on add or delete toolbar button is ignored?
+ When multiple new rows are added sometimes wrong row shading?
+ When sorting rows, sometimes a false extra highlight appears
+ Disabled actions still show enabled icons in menu popups
+ Pressing escape on task data cells does not exit edit mode
+ On win32, all or some file reads and writes probably need IO_Translate?
+ Method saveData(stream) must write to a new file, otherwise writes data pattern
+ CRCs are being generated before parsing of "" is finished?
+ Double click on column separator is broken again
+ Zeitabzug moeglicherweise falsch wenn 23:00-01:00=?
+ Statustext soll nicht neben Pixmaps erscheinen
+ Loesch mal alle Text vom Task Editctrl, dann drueck mal Obentaste
+ Memory leak in vector<QRadioButton> as_panel
+ Opendoc, schau amount unten Knopf (ist dimmed)
+ Reporting only works if event data is sorted by date
+
+ Nice to have
+ ------------
+ Implement drag and drop selected row swapping
+ Implement an unlimited and generic undo and redo buffer class
+ Support pasting into as_gui from other app (like vim)
+ Add optional automatic file personal data file backup
+ Make edit control window optional through preferences
+ Add customizable column ordering by click and drag
+ Soll mehr intuitive, mit sekondaer/dritte Keycolumn
+ CRC und Rev sollen nicht in gleiche Methode berechnet
+ No need to have upd slots for non-changeable upd controls
+ Before openDoc, closeEvent should be used instead of new code
+ Align CRC field data to left edge of table items
+ Make Simplefile class non-Qt specific
+ Read and write karm format files with file extension detection
+ Offer general option 'Use vim keymap'
+ Text revisions
+ Title case, sentence case, or lower case
+ Past tense, third person, style, usage...
+ Make consistent when version is shown in titlebar of all dialogs
+ Runtime help system should not depend on installtime documentation
+ App should start even if no accounts file is found
+ Fully vimize all input widgets by subclassing them (w - back word)
+ Reload accountlist on startup, but reload during 'Open Doc' as well
+
+ Screwey user notes ;-)
+ ----------------------
+ cs: 'd' should not delete at once but flag the record as deleted. Use '$' to sync (similar to mutt)
+ cs: first 'TAB' should complete (if possible), second 'TAB' should open selection box (similar to bash)
+ cs: line numberscould be referenced when entering accounts ala bash history ('!4' = record #4)
+ mlelstv: 24:00 muss als Valideintrag im Finishfeld erlaubt
+ thl: / should enable the user to search for something
+ thl: using = should force a recalculation for a time field
+ thl: using ~ should round a time field to the next quarter (configurable)
+
+ Architectural
+ -------------
+ Decouple form, preferences, and RPC classes
+ Remove common class behaviours (quitApp, close...) to abstract classes
+
+ Win32
+ -----
+ Rework username, homedir, and confdaten (hive) logic
+
+ Preferences
+ -----------
+ <option name wert> Hintergrund Functionalitaet
+ <aspect name wert> Sichtliche Functionalitaet
+ <session name wert> Automatisch gespeicherte
+ <rule name expr cond> Amount = Finish - Start (mussen alle da z.B.)
+ <alias name wert> Nutzbar lange Taskzeilen zu abstrahieren
+ <macro name = 'Reuse'>
+ Selectiere aktuelle und 3 vorherige Reihen
+ Copy
+ Geh zu letzte Reihe
+ Paste
+ </macro name = 'Reuse'>
+ <macro name = 'Append'>
+ Geh zu letzte Reihe
+ Zufug Reihe
+ </macro name = 'Append'>
+
+ Code snippits
+ -------------
+ // Portable processes
+ QProcess *Proc;
+ Proc = new QProcess;
+ Proc->setArguments("/usr/local/bin/nada");
+ bool ok = Proc->start();
+
+ > Does anyone know how to set the WhatsThis text for a QPushButton?.
+ >
+ > Met vriendelijke groet
+ Use the static QWhatsThis::add()
+
+ Document
+ --------
+ Use doxygen for C++ interface documentation.
+
+ Project plan
+ ------------
+ Prototype
+ Release v0.8 Milestone 1, Alpha
+ Release v0.9 Milestone 2, Beta
+ Release v1.0 Milestone 3,
+ Release v1.2 Milestone 4,
+
+ Requirements
+ ------------
+
+ Deliverables
+ ------------
+ Binaries
+ titraq Verwendung
+
+ Designdocs
+ titraq_design.ps Systemdiagramme
+
+ Manpage
+ titraq.1 Hauptinfo
+ titraq.conf.5 Beschreibung des Configdatei
+
+ Geliefert
+ titraq.conf Ausgekommentet Beispieldatei
+
+ Pseudocode
+ ----------
+ initialize
+ parse command line
+ parse titraq.conf file
+ load titraq.dat file
+ show control window
+ wait for quit
+ save titraq.dat file
+ finish
+
+ Test case
+ ---------
+ Pre:
+ tar zxvf titraq-0.9.tar
+ cd titraq-0.9
+ ./configure
+ make
+ su
+ make install
+
+ Assume:
+ OS has Qt 3.0.6 or newer multithreaded library
+
+ Begin:
+ $ titraq
+
+ Output:
+ Post:
+ Procedure:
+
+ --- as-gui.html.orig Wed Mar 5 20:48:10 2003
+ +++ as-gui.html Wed Mar 5 20:47:58 2003
+ @@ -10,8 +10,8 @@
+ <p><a name="__index__"></a></p>
+ <!-- INDEX BEGIN -->
+
+ +<h1><a name="top">AS-GUI</a></h1>
+ <ul>
+ -
+ <li><a href="#name">NAME</a></li>
+ <li><a href="#version">VERSION</a></li>
+ <li><a href="#synopsis">SYNOPSIS</a></li>
+ @@ -28,21 +28,18 @@
+ </ul>
+ <!-- INDEX END -->
+
+ -<hr />
+ -<p>
+ -</p>
+ -<hr />
+ -<h1><a name="name">NAME</a></h1>
+ +<hr /><hr />
+ +<h2><a name="name">NAME</a></h2>
+ <p><strong>as-gui</strong> - accounting system graphical client</p>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="version">VERSION</a></h1>
+ -<p>as-gui ASGUI_VERSION_STR</p>
+ +<h2><a name="version">VERSION</a></h2>
+ +<p>as-gui 0.6.23 (05-Mar-2003)</p>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="synopsis">SYNOPSIS</a></h1>
+ +<h2><a name="synopsis">SYNOPSIS</a></h2>
+ <p><strong>as-gui</strong>
+ [<em>X11_options</em>]
+ [<em>Qt_options</em>]
+ @@ -50,7 +47,7 @@
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="description">DESCRIPTION</a></h1>
+ +<h2><a name="description">DESCRIPTION</a></h2>
+ <p>The <strong>as-gui</strong> application tracks the time a person spends on a number of
+ predefined tasks. This is the graphical client to the <strong>Accounting System</strong>
+ server (<strong>AS</strong>). Although the two can interact through means of interprocess
+ @@ -65,7 +62,7 @@
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="x11_options">X11 OPTIONS</a></h1>
+ +<h2><a name="x11_options">X11 OPTIONS</a></h2>
+ <p>The following <em>X11 options</em> are passed directly to the X11 subsystem, and
+ allow for the typical customization of a X11 application.</p>
+ <dl>
+ @@ -74,57 +71,57 @@
+ <dd>
+ Sets the X display (host:server.screen). The default value is $DISPLAY.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dgeometry_geometry"><strong>-geometry geometry</strong></a></strong><br />
+ </dt>
+ <dd>
+ Sets the client geometry (width x height + xoffset + yoffset) of the main widget.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dfn_font%2c_%2dfont_font"><strong>-fn font</strong>, <strong>-font font</strong></a></strong><br />
+ </dt>
+ <dd>
+ Defines the application font. The font should be specified using a X logical
+ font description.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dbg_color%2c_%2dbackground_color"><strong>-bg color</strong>, <strong>-background color</strong></a></strong><br />
+ </dt>
+ <dd>
+ Sets the default background color and an application palette (light and dark
+ shades are calculated).
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dfg_color%2c_%2dforeground_color"><strong>-fg color</strong>, <strong>-foreground color</strong></a></strong><br />
+ </dt>
+ <dd>
+ Sets the default foreground color.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dbtn_color%2c_%2dbutton_color"><strong>-btn color</strong>, <strong>-button color</strong></a></strong><br />
+ </dt>
+ <dd>
+ Sets the default button color.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dname_name"><strong>-name name</strong></a></strong><br />
+ </dt>
+ <dd>
+ Sets the application name.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dtitle_title"><strong>-title title</strong></a></strong><br />
+ </dt>
+ <dd>
+ Sets the application title (caption).
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dvisual_truecolor"><strong>-visual TrueColor</strong></a></strong><br />
+ </dt>
+ <dd>
+ Forces the application to use a TrueColor visual on an 8-bit display.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dncols_count"><strong>-ncols count</strong></a></strong><br />
+ </dt>
+ <dd>
+ @@ -134,17 +131,17 @@
+ green, and 6 of blue). For other values, a cube approximately proportional to
+ a 2x3x1 cube is used.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dcmap"><strong>-cmap</strong></a></strong><br />
+ </dt>
+ <dd>
+ Causes the application to install a private color map on an 8-bit display.
+ </dd>
+ -<p></p></dl>
+ +<br></dl>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="qt_options">Qt OPTIONS</a></h1>
+ +<h2><a name="qt_options">Qt OPTIONS</a></h2>
+ <p>The following <em>Qt options</em> are used when rendering the graphics of the Qt
+ widget library. They are not compatible with other X11 or Win32 applications,
+ unless they were first linked with the Qt widget library.</p>
+ @@ -156,59 +153,59 @@
+ platinum. If you compiled Qt with additional styles or have additional styles
+ as plugins these will be available to the -style command line option.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dsession_session"><strong>-session session</strong></a></strong><br />
+ </dt>
+ <dd>
+ Restores the application from an earlier session.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_%2dwidgetcount"><strong>-widgetcount</strong></a></strong><br />
+ </dt>
+ <dd>
+ Prints debug message at the end about number of widgets left undestroyed and
+ maximum number of widgets existed at the same time.
+ </dd>
+ -<p></p></dl>
+ +<br></dl>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="environment">ENVIRONMENT</a></h1>
+ +<h2><a name="environment">ENVIRONMENT</a></h2>
+ <p><code>USER</code> The user name to use when accounting.</p>
+ <p><code>HOME</code> The full path of the user's home directory.</p>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="return_values">RETURN VALUES</a></h1>
+ +<h2><a name="return_values">RETURN VALUES</a></h2>
+ <p><code>0</code> The application exited sucessfully.</p>
+ <p><code>>0 or <0</code> At least one error ocurred.</p>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="examples">EXAMPLES</a></h1>
+ +<h2><a name="examples">EXAMPLES</a></h2>
+ <p>Try out some of these examples to customize <strong>as-gui</strong> from the command
+ line. Remember that options can be mixed.</p>
+ -<p>Initially editing the document 'figo.as':</p>
+ -<p>$ as-gui figo.as</p>
+ -<p>Showing lovely blue shades in most widgets:</p>
+ -<p>$ as-gui -bg lightblue -fg darkblue</p>
+ -<p>Starting with a title bar that reads 'Yours here':</p>
+ -<p>$ as-gui -title 'Yours here'</p>
+ -<p>Displaying graphics output on the host borchert:</p>
+ -<p>$ as-gui -display borchert:0.0</p>
+ -<p>A slim window slightly left of the top right corner:</p>
+ -<p>$ as-gui -geometry 761x347-120+0</p>
+ +<p>Initially editing the document 'figo.as':
+ +<br> $ as-gui figo.as</p>
+ +<p>Showing lovely blue shades in most widgets:
+ +<br> $ as-gui -bg lightblue -fg darkblue</p>
+ +<p>Starting with a title bar that reads 'Yours here':
+ +<br> $ as-gui -title 'Yours here'</p>
+ +<p>Displaying graphics output on the host borchert:
+ +<br> $ as-gui -display borchert:0.0</p>
+ +<p>A slim window slightly left of the top right corner:
+ +<br> $ as-gui -geometry 761x347-120+0</p>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="files">FILES</a></h1>
+ +<h2><a name="files">FILES</a></h2>
+ <dl>
+ <dt><strong><a name="item_%7e%2f%2eas%2dgui">~/.as-gui</a></strong><br />
+ </dt>
+ <dd>
+ User preferences file.
+ </dd>
+ -<p></p>
+ +<br>
+ <dt><strong><a name="item_as%2dgui%2ehtml">as-gui.html</a></strong><br />
+ </dt>
+ <dd>
+ @@ -218,7 +215,7 @@
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="bugs">BUGS</a></h1>
+ +<h2><a name="bugs">BUGS</a></h2>
+ <p>Sometimes a click on a widget (like a toolbar button) is seemingly ignored.</p>
+ <p>Consistent row shading is not always maintained. This means that the sharp
+ colour difference between one row and the next may not correctly follow the
+ @@ -232,14 +229,15 @@
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="see_also">SEE ALSO</a></h1>
+ +<h2><a name="see_also">SEE ALSO</a></h2>
+ +<p>as-gui(1)</p>
+ <p>as-gui.conf(5)</p>
+ <p>
+ </p>
+ <hr />
+ -<h1><a name="author">AUTHOR</a></h1>
+ +<h2><a name="author">AUTHOR</a></h2>
+ <p>Michael Schloh von Bennewitz
+ -(<a href="mailto:michael@schloh.com">michael@schloh.com</a>)</p>
+ +<br>michael@schloh.com</p>
+
+ </body>
|