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.
Task Difficulty Priority Notes Request ID
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.