# HG changeset patch # User Michael Schloh von Bennewitz # Date 1227867668 -3600 # Node ID d64aaa7d146f18e20dc3c85a08a46046c105623a # Parent 27e940e8e5f3c8474ccc4428e2392df79510b18a Fork project trunk at version 0.7.7 to maintain for future usage. The original Cable & Wireless development team no longer exists. The OSSP CVS repository is unavailable (cvs co ossp-pkg/as fails), however http://cvs.ossp.org/dirview?d=ossp-pkg/as/as-gui is working. diff -r 27e940e8e5f3 -r d64aaa7d146f .hgignore --- a/.hgignore Thu Nov 27 14:21:10 2008 +0100 +++ b/.hgignore Fri Nov 28 11:21:08 2008 +0100 @@ -3,3 +3,18 @@ *.rej *.o *~ +Makefile +as_stub.h +as_stub.cpp +ac_config.h +ac_config.h.in +ac_config.h.in~ +configure +configure.lineno +config.log +config.status +as-gui +as-gui.1 +as-gui.conf.5 +shtool +autom4te.cache diff -r 27e940e8e5f3 -r d64aaa7d146f AUTHORS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AUTHORS Fri Nov 28 11:21:08 2008 +0100 @@ -0,0 +1,2 @@ +Michael Schloh von Bennewitz +michael@schloh.com diff -r 27e940e8e5f3 -r d64aaa7d146f ChangeLog --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ChangeLog Fri Nov 28 11:21:08 2008 +0100 @@ -0,0 +1,240 @@ +Geschichte des OSSP titraq in Vorwaerts Cronordnung + +040824 Corrected with-qt expression as already indicated by configure --help + Avoid forgotten save data loss by connecting QTable's valueChanged signal + Corrected in place edition logic to work with newer Qt library editCell() + Corrected overlapping highlights on row edge tab and return keypresses + Implemented return and enter keypress logic in class TiTable + +040820 Renamed validateData() to validateRow(), and reimplement validateData() + Replaced account and event file open error strings into constants file + Repaired flawed new and open file logic when the operation is cancelled + Improved data checking to avoid opening wrong account and event files + +040813 Corrected with-mico expression as already indicated by configure --help + Corrected with-esoap expression as already indicated by configure --help + +040812 Work around a selection bug (bad row highlights) in Qt? since 3.2.? + Upgraded build environment to GNU shtool 2.0.0 and GNU autoconf 2.59 + Changed URL for deployment and storage of release tarballs + +040528 More closely adhere to C++ standard (currently ISO 14882) by + removing all fundemental type variables of 'long long'. + +031120 Handle the time consuming bureaucracy of changing a company name. + +031118 More reliably detect X11 features like Xft and Xrender, and + integrate pkg-config aclocal M4 macro to call pkg-config from + within configure. Now OSSP as-gui requires Gnome pkg-config. + +030802 Added a check for sched_get_priority_min in librt to configure.in + +030428 Fixed a bug, causing a cancelled focus operation on rowadd + +030306 Wrote the as-events.5 manpage in POD format + Wrote the as-accounts.5 manpage in POD format + Bumped release to 0.7.0, due to completed documentation + +030305 Wrote the as-gui.1 manpage in POD format + Wrote the as-gui.conf.5 manpage in POD format + Made small formatting changes to documentation + Changed names of as_gui[.*].pod to as-gui[.*].pod + Documented conversion corrections from pod2html generated HTML + Implemented reading and browsing glue code to new help reference + Turned on all man and help file logic in install target of Makefile + Added datadir variable passing in buildconf to enable new help features + +030228 Fixed badly-sized accounts combobox + Changed CRC calculation to pad resulting string with '0' to 8 places + +030227 Implemented frame of a help contents HTML browser + Made adjustments to report panel layout + +030225 Smoothed layout of report panel + Added tab focus to all buttons in report panel + +030224 Fixed bug in report panel causing merging of separate account entries + Fixed bug in report panel giving false results from unsorted tables + Added alternative colours that look nicer on win32 OS + Implemented a Numdialog class for use in the report panel + Hooked in all arbitrary number inputs to report panel class + Removed button 'both' and corresponding methods from report panel + Added button 'print' and postscript printing logic to report panel + Completed implementation of number dialog and report panel classes + +030221 Created a cholour prefs page to include row shading + Reluctantly added coupling between TiTable and Preferences classes + Introduced colour shading preferences and controls in prefpanel + Completed colour preferences logic throughout rendering + Improved colour preferences group box and widget resizing + Fixed problem with false colours used in row shading + Added code to enable reverting to default shading colours + Created pixmap for colour revert button + Finished detail and total methods from report panel class + +030220 Implemented vast report generation improvements + Added three new preference values for use with reporting + Added exception handling to report generation class + Improved intuition of reporting by adding checkmarks to menus + Insert starting and ending report text in case a range is chosen + Improved button navigation of report panel dialog + Overloaded writeHeader() to be more useful to members + Added 'detailed listing' and 'signature line' to prefs panel + Changed ASCII strings in panel dialogs to unicode translations + +030219 Cleaned up the dataops class + Got report generation working finally + Fixed string text of Reportpanel class + Reluctantly added linkage from Reportpanel to both prefs and table + +030218 Added logic to save to a file the contents of the report display + +030217 Began coding new class ASTimeEdit to allow unnatural time values + Implemented class Reportpanel for locally generated weekly reports + Inserted new report generation into report menu and view toolbar + Added a report action, two report pixmaps, and an iconset + Made general fixes and improvements on class Prefpanel + +030214 Moved preference data application from panel items to own method + Added applyPrefs logic, and a new proxy method to handle applied signals + Reorganized file incusion in throughout to loosen source file coupling + Removed optional 'this' parameter from all calls to connect() + Ripped out more header includes from monolithic interface header + Added pixmap for prefs panel, and added it to menu and toolbar + Made call of prefs panel an instance of class QAction + Changed .bak file message text in class Prefpanel + Gave more sensible default RPC host names + +030213 Implemented multiple row spanning SOAP trasmissions + Modified CORBA and SOAP methods to use preferences host names + Added lock methods to class Panel to lock RPC transports on or off + Added logic to limit RPC according to compile time availability + Merged both IIOP and SOAP RPC transport actions into a single one + Revised RPC options and menu logic to pref panel and action changes + Modified class Panel accept operation to apply changes immediately + Activate file extension switch, and use preference value from panel + Remove default event file insert, and instead default to event directory + Fixed bug in class Simplefile, trying to save to non-open file + Save backup files based on existing logic and new user preferences + +030212 Finished preferences working logic in class Panel + +030211 Served rse request to make amount edit control widget match table one + Served rse request to align task widgets to the left, pending user pref + Improved prefs panel class by splitting remote host names out + Implemented thl idea, a sorted task name map + Began coding dynamic task placement + +030210 Implemented the prefs panel user interface piece, no working logic yet + +030208 Implemented Simplefile class with working backup method + +030207 Implemented preferences panel class prefpanel + +030206 Implemented embedding of escape characters into event data file + Begin treating quit op on an edited doc as a special case to avoid loss + Fixed tab completion bug in which table entry misses text after expansion + +030205 Add logic to save empty remark fields with surrounding double quotes + CORBA client transmission improvements, including multiple entry allowance + +030204 Minor change to prematurely accept event format version 0.6 + Fix constant bug to really prematurely accept event format version 0.6 + Added dynamically bound version text to all widget label titles + Implemented current (date|time) on '.', zero (date|time) on empty field + Hardcoded math logic to compute start '-' finish on '.' amount entry + Load logic now replaces period with fresh newly generated GUIDs + Tried to fix tarball rolling file name exceptions in devtool + Replaced __u format datatypes in Uuid class with U from master header + Completed the AS tuple in IDL, and transmit only CORBA duped strings + +030203 Better implement 'please add entries' announcement to beginning users + Improved edit control [en|dis]ablement condition, and remove pixmap + Deny pasting of empty clipboard data, and adding of zero rows + Backed out logic to recognize '-', '+', and '=' separator symbols + Implemented a quality string class with a CRC32 checksum method + Load logic now fills in '.' in CRC field with a fresh new CRC + More widget label renaming to AS Accounting System + +030131 Fix logic when calling saveFile, but returning in a dirty state + Fix some logical combinations of open and new doc save operations + Renamed some visible widget text from to AS Accounting System + +030130 Made day date section focus the default value + Remove hackful zero date value, replace with current date + Added aggregate class User, and prefer user data from environment + Fixed ignored prepared entry bug on new document operation + Implemented writing and testing of a data version symbol + Fixed missing double dirty data check on implicit saveAs ops + Fixed close document operation with bad caption and status message + Added exception handlers where none existed to close possible bugs + Improved condition of empty but open timesheets by disabling edit cntrls + Fixed open document but empty timesheet debug text spew bug + Fixed void clipboard pointer bug + +030129 Fixed the autoscroll before show bug, causing wrong data position + +030128 Added missing MIME icon entries for synciiop and syncsoap + Implemented initial file loading by shell argument + +030127 Changed date and time from ISO format to AS specific + Added logic to dim and undim icons on (non)empty documents + Improved intuitiveness of a newDoc operation by appending a default row + Implemented automatic file backups using a very primitive algorhythm + Fixed subtle unintentional split else codeblock in slot saveAs + Added automatic appending of AS event file extension to new docs + Added '-' and '=' as arbitrary data token separators between times + +030124 Added CRC and basic revision management logic + Removed sort on load to allow easier file diffs + Allow only reasonable fields to transmit to server + Improved invalid data signaling in both Titable and ctrls + Made account and event file and directory handling generic + +030123 Added logic to make IIOP and SOAP connections optional + Fixed potentially disastrous bug with current file overwrite + Fixed broken Linux build problem with -R linker arguments + Improved RPC data transmission by selecting current row + Made pasted rows receive new GUIDs to avoid duplicates + +030122 Added IIOP and SOAP connection operations + Added menu items for remote reporting over IIOP or SOAP + Fixed inconvenient edit control update bug + Added UUID class, able to generate DCE standard UUIDs + Added UUID generation ability to add entry operations + +021220 Added missing task tooltip and whatsthis info + Fixed loadData problem actually in updEdit() + Fixed sorting, and added sort direction handling + Fixed selection and highlight of current row + +021219 Added full close document and disable handling + Added new dimmed icons for showing disabled state + Fixed status edit control pixmap redraw + Fixed remaining edit pixmap on old data + Fixed get/set empy Rowdata for cut/copy/paste ops + Fixed member filename corruption and data loss problem + Optimized addRow and pasteRow graphic drawing + Added better file name handling by accessors + Streamlined widget enablement logic in slots + Corrected remaining build configuration issues + +021218 Reduced dependency to STL + Changed release name from asgui to as-gui + Finished differential shading algorythm + Row and selection handling fixes + Corrected pixmap refreshes + +021217 Added differential row shading + Improved focus handling in edit mode + Add file extension filter to file op dialogs + Resolve save problems to symbolic link + +021216 Added protection against existing file overwriting. + Added column sort on click with full row swapping. + Added persistent sorting to user preferences. + Added view refresh and new view menu items. + Added dynamic account list loading. + Improved dirty flag tracking. + +021108 Projekt Erzeugung diff -r 27e940e8e5f3 -r d64aaa7d146f Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.in Fri Nov 28 11:21:08 2008 +0100 @@ -0,0 +1,230 @@ +## +## OSSP asgui - Accounting system graphical user interface +## Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/) +## Copyright (c) 2002-2004 Ralf S. Engelschall +## Copyright (c) 2002-2004 Michael Schloh von Bennewitz +## Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH +## +## This file is part of OSSP asgui, an accounting system graphical user +## interface which can be found at http://www.ossp.org/pkg/tool/asgui/. +## +## Permission to use, copy, modify, and distribute this software for +## any purpose with or without fee is hereby granted, provided that +## the above copyright notice and this permission notice appear in all +## copies. +## +## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +## SUCH DAMAGE. +## +## Makefile.in: Autoconf Makefile template +## + +@SET_MAKE@ + +DESTDIR = +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +sbindir = @sbindir@ +libdir = @libdir@ +datadir = @datadir@ +includedir = @includedir@ +mandir = @mandir@ + +CC = @CC@ +CXX = @CXX@ +CFLAGS = @CFLAGS@ @DEFS@ +CXXFLAGS = @CXXFLAGS@ @DEFS@ +#CFLAGS = @CFLAGS@ @DEFS@ -Wl,-Bstatic +#CXXFLAGS = @CXXFLAGS@ @DEFS@ -Wl,-Bstatic +CPPFLAGS = @CPPFLAGS@ +CXXCPP = @CXXCPP@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ + +# CORBA-specific variables +CORBABASE = @CORBABASE@ +IDL = $(CORBABASE)/bin/idl + +# Qt-specific variables +QTCFLAGS = @QT_CFLAGS@ +QTLIBS = @QT_LIBS@ +QTBASE = @QTBASE@ +UIC = @UIC@ +MOC = @MOC@ + +RM = rm -f +STRIP = strip +CHMOD = chmod +RMDIR = rmdir +SHTOOL = ./shtool +POD2MAN = pod2man +TRUE = true + +PROG_NAME = as-gui +TARGET_PROGS = as-gui +TARGET_MANS = as-gui.1 as-gui.conf.5 + +SRCS = as_main.cpp as_gui.cpp as_assist.cpp as_slot.cpp as_dataop.cpp as_except.cpp as_generic.cpp as_amount.cpp as_table.cpp as_panel.cpp as_reportpanel.cpp as_helpanel.cpp as_numdial.cpp as_sfile.cpp as_pref.cpp as_user.cpp as_rand.cpp as_crc.cpp as_uuid.cpp as_version.cpp + +OBJS = as_main.o as_gui.o as_assist.o as_slot.o as_dataop.o as_except.o as_generic.o as_amount.o as_table.o as_panel.o as_sfile.o as_pref.o as_reportpanel.o as_helpanel.o as_numdial.o as_user.o as_rand.o as_crc.o as_uuid.o as_version.o + +GRAFX = gfx/ossplogo.xpm + +# IDL compiler generated +IDL_SRC = as_stub.idl +IDL_OUT = as_stub.cpp as_stub.h +IDL_OBJ = as_stub.o + +# Qt meta object compiler (MOC) generated +MOC_OUT = moc_as_gui.cpp moc_as_table.cpp moc_as_panel.cpp moc_as_reportpanel.cpp moc_as_helpanel.cpp moc_as_numdial.cpp +MOC_OBJ = moc_as_gui.o moc_as_table.o moc_as_panel.o moc_as_reportpanel.o moc_as_helpanel.o moc_as_numdial.o + +.SUFFIXES: +.SUFFIXES: .c .cc .cpp .cxx .o +.c.o: + $(CXX) -c $(CPPFLAGS) $(QTCFLAGS) $(CXXFLAGS) $< + +.cc.o: + $(CXX) -c $(CPPFLAGS) $(QTCFLAGS) $(CXXFLAGS) $< + +.cpp.o: + $(CXX) -c $(CPPFLAGS) $(QTCFLAGS) $(CXXFLAGS) $< + +.cxx.o: + $(CXX) -c $(CPPFLAGS) $(QTCFLAGS) $(CXXFLAGS) $< + +all: Makefile $(TARGET_PROGS) + +# Build the program conditionally including +# RPC stubs and skeleton objects +ifdef CORBABASE +$(PROG_NAME): $(OBJS) $(IDL_OBJ) $(MOC_OBJ) + $(CXX) $(LDFLAGS) -o $@ $+ $(QTLIBS) $(LIBS) +else +$(PROG_NAME): $(OBJS) $(MOC_OBJ) + $(CXX) $(LDFLAGS) -o $@ $+ $(QTLIBS) $(LIBS) +endif + +moc_%.cpp: %.h + $(MOC) $< -o $@ + +# Use the Trolltech uic to compile headers +# and implementation from ui XML +#%.h: %.ui +# uic $< -o $@ +#%.cpp: %.ui +# uic -impl $*.h $< -o $@ + +# Run the IDL compiler over IDL source +# but avoid a make deps spaghetti nest +ifdef CORBABASE +$(SRCS):$(IDL_OUT) +$(IDL_OUT): $(IDL_SRC) + $(IDL) --c++-suffix=cpp $< +endif + +# Special treatment for help panel class, which needs the $datadir variable +as_helpanel.o: as_helpanel.cpp + $(CXX) -c -DTITRAQ_DOCDIR=\"$(datadir)\" $(CPPFLAGS) $(QTCFLAGS) $(CXXFLAGS) $< + +doc: as-gui.1 as-gui.conf.5 as-events.5 as-accounts.5 + +as-gui.1: as-gui.pod + VS=`$(SHTOOL) version -lc -dshort as_version.cpp`; \ + VL=`$(SHTOOL) version -lc -dlong as_version.cpp`; \ + D=`$(SHTOOL) version -lc -dlong as_version.cpp | sed -e 's;.*(;;' -e 's;).*;;'`; \ + $(POD2MAN) --quotes=none \ + --section=1 --center="AS Accounting System" \ + --release="$$D" --date="as-gui $$VS" as-gui.pod | \ + sed -e "s;ASGUI_VERSION_STR;$$VL;" >as-gui.1 + +as-gui.conf.5: as-gui.conf.pod + VS=`$(SHTOOL) version -lc -dshort as_version.cpp`; \ + VL=`$(SHTOOL) version -lc -dlong as_version.cpp`; \ + D=`$(SHTOOL) version -lc -dlong as_version.cpp | sed -e 's;.*(;;' -e 's;).*;;'`; \ + $(POD2MAN) --quotes=none \ + --section=5 --center="AS Preferences File" \ + --release="$$D" --date="as-gui $$VS" as-gui.conf.pod | \ + sed -e "s;ASGUI_VERSION_STR;$$VL;" >as-gui.conf.5 + +as-events.5: as-events.pod + VS=`$(SHTOOL) version -lc -dshort as_version.cpp`; \ + VL=`$(SHTOOL) version -lc -dlong as_version.cpp`; \ + D=`$(SHTOOL) version -lc -dlong as_version.cpp | sed -e 's;.*(;;' -e 's;).*;;'`; \ + $(POD2MAN) --quotes=none \ + --section=5 --center="AS Events File" \ + --release="$$D" --date="as-gui $$VS" as-events.pod | \ + sed -e "s;ASGUI_VERSION_STR;$$VL;" >as-events.5 + +as-accounts.5: as-accounts.pod + VS=`$(SHTOOL) version -lc -dshort as_version.cpp`; \ + VL=`$(SHTOOL) version -lc -dlong as_version.cpp`; \ + D=`$(SHTOOL) version -lc -dlong as_version.cpp | sed -e 's;.*(;;' -e 's;).*;;'`; \ + $(POD2MAN) --quotes=none \ + --section=5 --center="AS Accounts File" \ + --release="$$D" --date="as-gui $$VS" as-accounts.pod | \ + sed -e "s;ASGUI_VERSION_STR;$$VL;" >as-accounts.5 + +install: all + $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(prefix) + $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir) + $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(mandir)/man1 + $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(mandir)/man5 + $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(datadir) + $(SHTOOL) install -c -s -m 755 as-gui $(DESTDIR)$(bindir)/as-gui + $(SHTOOL) install -c -m 644 as-gui.1 $(DESTDIR)$(mandir)/man1/as-gui.1 + $(SHTOOL) install -c -m 644 as-gui.conf.5 $(DESTDIR)$(mandir)/man5/as-gui.conf.5 + $(SHTOOL) install -c -m 644 as-events.5 $(DESTDIR)$(mandir)/man5/as-events.5 + $(SHTOOL) install -c -m 644 as-accounts.5 $(DESTDIR)$(mandir)/man5/as-accounts.5 + $(SHTOOL) install -c -m 644 as-gui.html $(DESTDIR)$(datadir)/as-gui.html + +uninstall: + $(RM) $(DESTDIR)$(datadir)/as-gui.html + $(RM) $(DESTDIR)$(mandir)/man5/as-accounts.5 + $(RM) $(DESTDIR)$(mandir)/man5/as-events.5 + $(RM) $(DESTDIR)$(mandir)/man5/as-gui.conf.5 + $(RM) $(DESTDIR)$(mandir)/man1/as-gui.1 + $(RM) $(DESTDIR)$(bindir)/as-gui + $(RMDIR) $(DESTDIR)$(datadir) >/dev/null 2>&1 || $(TRUE) + $(RMDIR) $(DESTDIR)$(mandir)/man5 >/dev/null 2>&1 || $(TRUE) + $(RMDIR) $(DESTDIR)$(mandir)/man1 >/dev/null 2>&1 || $(TRUE) + $(RMDIR) $(DESTDIR)$(mandir) >/dev/null 2>&1 || $(TRUE) + $(RMDIR) $(DESTDIR)$(bindir) >/dev/null 2>&1 || $(TRUE) + $(RMDIR) $(DESTDIR)$(prefix) >/dev/null 2>&1 || $(TRUE) + +clean: + $(RM) $(TARGET_PROGS) $(OBJS) $(IDL_OBJ) $(MOC_OBJ) +ifdef CORBABASE + $(RM) $(IDL_OBJ) +endif + $(RM) as_gui_pcre.tab *.core + +distclean: clean + $(RM) config.log config.status config.cache # Generated by ./configure + $(RM) Makefile ac_config.h # Generated by ./configure +ifdef CORBABASE + $(RM) $(IDL_OUT) # Generated by $(IDL) +endif + $(RM) $(MOC_OUT) # Generated by $(MOC) + +realclean: distclean + $(RM) configure ac_config.h.in* # Generated by Autoconf + $(RM) configure.lineno # Generated by Autoconf + $(RM) shtool # Generated by Devtool + +check: test +test: as-gui + ./as_gui_test.sh + +.PHONY: doc install uninstall clean distclean realclean check test diff -r 27e940e8e5f3 -r d64aaa7d146f README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Fri Nov 28 11:21:08 2008 +0100 @@ -0,0 +1,49 @@ + ___ ___ ___ _ __ __ _ ___ __ _ _ _(_) + / _ \/ __/ __| '_ \ / _` / __|/ _` | | | | | + | (_) \__ \__ \ |_) | | (_| \__ \ (_| | |_| | | + \___/|___/___/ .__/ \__,_|___/\__, |\__,_|_| + |_| |___/ + + OSSP asgui -- Accounting system graphical user interface + Version 0.7.7 (24-Aug-2004) + + ABSTRACT + + Intended to serve as both a virtual punch card and time tracker, + OSSP asgui is the graphical user interface for the family of OSSP + accounting system tools. + + COPYRIGHT AND LICENSE + + Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/) + Copyright (c) 2002-2004 Ralf S. Engelschall + Copyright (c) 2002-2004 Michael Schloh von Bennewitz + Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH + + This file is part of OSSP asgui, an accounting system interface which + can be found at http://www.ossp.org/pkg/tool/asgui/. + + Permission to use, copy, modify, and distribute this software for + any purpose with or without fee is hereby granted, provided that + the above copyright notice and this permission notice appear in all + copies. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + HOME AND DOCUMENTATION + + The documentation and latest release can be found on + + o http://www.ossp.org/pkg/tool/asgui/ + o ftp://ftp.ossp.org/pkg/tool/asgui/ diff -r 27e940e8e5f3 -r d64aaa7d146f TODO --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TODO Fri Nov 28 11:21:08 2008 +0100 @@ -0,0 +1,250 @@ + *************************************** + * * + * 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 +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 +Verify that unviewable rows are not redrawn cerr << "Rownum" << nRow << endl; +Also, use bool QTable::isRowHidden (int nRow) const +Don't raise the question 'Save before quitting' when no contents were changed + +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 as_panel +Opendoc, schau amount unten Knopf (ist dimmed) +Reporting only works if event data is sorted by date +Press Return then Tab many times to see invalid selections +Does not enter edit mode for a cell when double click +Some versions (as.de.cw.net:/v/as-old/sw), double click to + edit a cell, add two characters, click X to close without + leaving the cell. It should ask to save doc, but doesn't. + +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 +Better file validation, instead of just single line validateData op +Freetext field, for copyright or some announcement (this data isn't + accurate enough for billing purposes). Field can be optionally + shown above main table, but always dimmed to avoid accidental edit. +Check for account list updates (checkbox), to allow a local user to + query a CORBA or SOAP server for a new account list via accessors: + U32 Account::getCrc(void) + Acctlist Account::getData(void) +Reimplement void QTable::swapRows, so that rows can be moved easily +Update edit controls only after return from TiTable::createEditor() + +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 +----------- +