*************************************** * * * 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 After Ctrl-O and closing window, Ctrl Keys ignored 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() Unconditioanlly show splash screen while loadData() runs 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 -----------