PortaBase TODO List
This is a list of not-yet-implemented PortaBase features compiled from the SourceForge feature request tracker and forum, emails sent to me directly, suggestions made by people in person, and stuff I thought of myself. The SourceForge tracker doesn't really lend itself to handling these the way I think about them, so I created a simple PortaBase file to keep track of them; the table below was created by exporting to HTML from that file.
Some notes on "Priority" levels:
- Priority 1 - These are the things I'd like to have done for the next release, due to some combination of importance and ease of implementation.
- Priority 2 - These are things I want to do soon, but probably won't be done in time for the next release; these will probably be added one or two releases later.
- Priority 3 - I definitely want to do these, but probably won't have time to do them for a while.
- Priority 4 - I'll probably do these at some point, but I have no idea when.
- Priority 5 - These would be nice to have, but might not be worth the time to implement...I'm keeping track of them in case I feel like doing them at some point or they become more important later.
Some notes on "Difficulty":
- "Easy" - I'm pretty sure I can get this done within 3 hours of work, probably less.
- "Moderate" - More likely to take a day or two, or I'm not completely sure how much work is involved.
- "Hard" - Either this will take several days, or I need to look into it a lot more before I can feel comfortable that I'm doing it correctly.
|Use filters in other filters||Hard||1||12|
|Logical "or" in filters||Hard||1||Use a tree widget similar to the calculation editor||12|
|Undo button||Hard||1||At minimum, this would undo the last (or last few) add, edit, or delete in the data viewer. This would be pretty hard to keep track of...||31|
|Record-level syncing||Hard||1||Ability to merge changes in two separately edited versions of the same original file. Would require some changes in the way things are handled internally.|
|Logical "not" in filters||Hard||1||Use a tree widget similar to the calculation editor||39|
|SQLite port||Hard||1||Switch from Metakit to SQLite as the database engine and file format. Simplifies imlementing several of the features in the backlog and ports to new smartphone platforms, and makes the files compatible with an assortment of other programs and utilities. Preserving some current PortaBase features will take a little work, as they don't work quite the same way (encryption, dropping a column, etc.)|
|Add GIF image support||Moderate||1||GIF is finally no longer patent encumbered|
|PortableApps version for Windows||Moderate||1||http://portableapps.com/|
|Summary statistic broken down by enum options||Moderate||1||I want this one for use in my financial transactions database. To be used like "show the sum of all transactions for each account in the To Account enum field". An optional pie chart or bar chart could complement it nicely once charting support is added.|
|Support for deprecated enum options||Moderate||1||Ability to flag enum options as "deprecated". A deprecated option can still be used in the database, but is generally no longer used for new rows. As such, it doesn't appear in the main list of enum options; a single "Deprecated Options" entry at the end launches a dialog from which they can still be selected.|
|Integer column "no separators" option||Moderate||1||An option when defining an integer column to not add locale-appropriate separator characters for its values. Used, for example, in a year column where you don't want values to appear like "2,012".|
|"Add Another" button in row editor||Easy||1|
|Row viewer initial view selection||Easy||1||Add a new preference specifying whether the row viewer should open initially using the current data viewer view or the "All columns" view|
|Option to suppress empty fields in row viewer||Easy||1||62|
|More informative "No results" message||Easy||1||The phrase "No results" is unnecessarily terse even on a small smartphone screen. Replace it with something a little more informative that offers a suggestion to apply another filter.|
|Data viewer text color preference||Easy||1||Since you can already specify the row background colors, this makes sense also.|
|Option to preserve aspect ratio when adding image to database||Easy||1||Add a checkbox to the image import dialog which tells it to automatically update the other dimension when you change one such that the original aspect ratio is preserved. Can be done manually now, but this is usually what's wanted so making it easier would be useful.|
|Live preview updates during image import||Easy||1||Update the displayed image as soon as a rotation is applied or a dimension edit widget loses focus. Get rid of the refresh button, as it would then be redundant.|
|Remove image size limit||Easy||1||Remove artificial restriction on size of stored images (800x600). This limit was needed on the Zaurus, but modern mobile devices can generally handle larger image sizes.|
|Simpler CSV import||Hard||2||Add a dialog which makes it possible to create a new PortaBase file holding the contents of a CSV file (instead of needing to define the format before importing).|
|Parse special chars in import option||Moderate||2||Add the option in CSV (and maybe XML) import/export to translate specified character sequences, e.g. ￥n for newline or \" for a double quote.|
|Hyperlink column type||Moderate||2||Clicking it in the data viewer or row viewer would open it in a browser window.||32|
|"Today" and "Now" constants in conditions and calculations||Moderate||2|
|Encrypted file timeout option||Moderate||2||Add preferences for whether or not to close an encrypted file after a while of inactivity, how long to wait, and whether or not to save before closing. Should also close the file before suspending.|
|Custom CSV special characters||Moderate||2||Add the ability to specify for CSV import and export what characters (or strings) to use as field delimiters, record delimiters, and field enclosures. Also for export, specify whether to always use enclosures or only when necessary.|
|Progress bar for import/export||Moderate||2|
|Option to filter CSV export columns||Moderate||2||Add a checkbox or such to allow filtering exported columns by current view; default to current behavior of exporting all.|
|Fix Chinese help search||Moderate||2||Sphinx needs a suitable Chinese text parser. Already looked into this a little, have asked a Chinese-speaking friend to help with it.|
|Option to add enum options during CSV import||Moderate||2||20|
|Display higher resolution icons on Retina display Macs||Moderate||2||This is high priority since I'm using such a Mac, but Qt doesn't support it yet (only text for now). That's being worked on, hopefully it'll get implemented soon.|
|Row viewer label color configuration||Easy||2||Blue is hard to see on some themed backgrounds; add a preference to choose a custom color|
|Fix layout shifts in column editor and condition editor||Easy||2|
|Set wait cursor during import/export operations, etc.||Easy||2||Use QApplication::setOverrideCursor(waitCursor), restoreOverrideCursor()?
|Support data copy into spreadsheets||Easy||2||Tabs and newlines, see Qt bok p.81|
|Separate row viewer font||Easy||2||50|
|Option to include column names in CSV export||Easy||2||67|
|Support for charting||Hard||3||Possibly use something like Dojo Charts in a web view? Last I looked, there weren't any particularly good open source charting libraries for Qt.||34|
|Multiple file tabs||Hard||3||15|
|Rich text or HTML data type||Hard||3||HTML display in the row viewer and note viewer wouldn't be too bad, but the row viewer needs to be revised somewhat first (can't show all as one HTML page anymore)|
|JSON import/export||Hard||3||An alternative to the PortaBase XML format, easier for some tools and languages to process||37|
|quick "starts with" filter by typing first letters||Moderate||3|
|Search combobox in row viewer||Moderate||3||Shortcut for an "any text column contains"
search, restricted to the current filter. Last
~5 search strings stored in the combo box.
|Separate menu font||Moderate||3||Allow the user to pick a different font for the menus, for example using unifont (16 point) for data while using 10-point Helvetica for the menus.|
|Next/previous buttons in row editor||Moderate||3|
|Column reset dialog||Moderate||3||Reset all the value of a column in the filtered rows to a specified value|
|Add PictureFlow option for image browsing||Moderate||3||See PictureFlow from qt-apps.org|
|Automate calculations in row editor||Moderate||3||A little tricky because the other fields haven't passed validation yet||45|
|Prefix, suffix options for numeric fields||Moderate||3||Sometimes it's useful to show the same prefix or suffix string for every entry in a numeric column: a currency symbol, percent sign, measurement unit, etc.|
|Recently opened file button options||Moderate||3||Options for the number of them to show and the additional information to display on each (file size and date last opened).|
|Allow rotating, resizing images after they're in the database||Moderate||3||Resizing to a larger size of course wouldn't improve the image quality; even if the original was larger than what was stored in the database, that data is no longer available for reference.|
|Option to include enum columns in "any text column" filter conditions||Moderate||3||Option to treat enums as if they were just another text field for the purpose of such conditions, takes the form of a checkbox in the condition editor dialog.|
|Row view printing||Moderate||3||Add a print button to the row viewer. It would launch a dialog asking whether to print just the currently displayed row or all rows matching the current filter (in the current sorting order). In either case, the current view settings would be applied. The output would mimic the appearance of the row viewer, with separator lines between database rows|
|Phone number field||Moderate||3||The main point is to be able to click to launch in a smartphone's dialer. For all other purposes (including validation), basically a text field.|
|Take photo directly into image field||Moderate||3||Mainly useful once some new smartphone ports are finished. Use the device camera to take a photo directly into an image field.|
|Thumbnail view of images in a column||Moderate||3||Add a menu option to launch a grid of thumbnails for the images in a specified column. Clicking on one would launch it in the image viewer and allow navigation from there.|
|Option to change enums from data viewer||Easy||3||69|
|File column type||Hard||4||Gracefully handle if moved or deleted
Launch by hold-click
|Timeline view for date columns||Hard||4||Select a date column whose values are to be shown on a timeline of events, and the column to be used as the event label. Clicking on an event would launch the row viewer for it.|
|Make year display optional||Moderate||4|
|Select last row when exiting row viewer||Moderate||4|
If you have ideas that aren't listed here, please mention them via the request tracker, email, or the forum. (Keep in mind that I'm going to update this at most once per week, so recent requests probably won't be included.) If you feel strongly that one of these items should be higher priority than I've listed it as, please let me know why.