ExMan 0.4.5 released!

The new release of ExMan – 0.4.5 – is┬ápacked with shiny new features. Source code, RPMs and DEB for Ubuntu can be found at the sf.net project page.

ExMan with formula

Features added in this release are:

  • Support for Formula: I’ve been looking for a simple expression evaluator which could do the purpose. I looked into KOffice source code et al, and they were all complex because they were supposed to handle such complex things. I had a pretty old expression tree evaluator C++ class which I had written when I was in college, but it was literally building a tree of expression and then evaluates it. So I had this option if I couldn’t find anything simpler and cleaner. Thanks to the dvisvgm program which is also part of the LaTeX source code, found a simple expression evaluator implemented as a Recursive Descent Parser (which I guess is the most suitable one for arithmetic expressions), and the credit goes to my friend Deepak Lukose for pointing me to dvisvgm.
    Note: The grammar rules of a recursive descent parser is pretty simple and straight forward, and it is appropriate for the expression evaluation.
    expr: [+|-] term {+|- term}
    term: prim {*|/ prim}
    prim: [ident|number|(expr)]
  • Status Bar: Well, it took me a while to get this incorporated, because the main window of ExMan is not a QMainWindow class, but a QWidget. And there’s no option to drag and drop a QStatusBar in QtCreator. So, just edit the exmanwindow.ui file to add the tag <widget name=”statusBar”/> inside the ExManWindow QWidget. This will make the status bar to appear in the ui design section of QtCreator, and then it can be arranged appropriately.
  • What’s Next? I couldn’t find a way to make the QFrame to adjust its size automatically when the parent QWidget is resized, even though the sizePolicy is set to {Preferred, Preferred}.

ExMan release 0.3

I have been hindered by some reasons for sometime and couldn’t give much attention to many projects, let alone writing blog posts. Good news is that I resumed working on them again, and have been fixing bugs and adding new features to ExMan.

ExMan is now tagged with version 0.3 which includes the following bug fixes and enhancements:

  • ExMan is now available as source tar ball, RPM, and DEB for Ubuntu. Ubuntu packages were requested by many, so tonight I went ahead and downloaded Ubuntu 9.10, installed it in VirtualBox on Fedora 12, then installed the qt-dev-tools packages and built ExMan, learned creating DEB packaging in an hour (it was much simpler compared to learning how to prepare RPMs), and created .deb for Ubuntu.
  • Drag-n-Drop capability: You have added an entry, now you just drag-n-drop it down, ExMan will automatically create a new row. If you dropped it into an existing row, the contents of the dragged columns are copied.
  • Drag and Drop to create a new entry

    Drag an existing row and drop into empty area

    Dropped into empty cell

    Dropping into empty area created a new row

    Drag and Drop contents

    Drag and Drop contents into existing entry copies them

  • Cut-Copy-Paste: Now you can do those fancy ‘cut-copy-paste’ with familiar keystrokes – Ctrl+X, Ctrl+C and Ctrl+V. [This was the toughest to implement, as QTableWidget or QTableWidgetItem do not implement them by default]
  • Proper Unicode storage support: Write entries in your native language. ExMan will store them and display them back properly now. There was a bug which prevents Unicode characters not being displayed back properly, which is fixed now.
  • ExMan used to crash while deleting some rows with the Delete (“X“) button. Fixed in this version.
  • There was a bug which didn’t modify the amount when it changed multiple times. Fixed in this version.

Go ahead and try it. If you find any bug, or want to add a cool new feature, do let me know. For developers, the git repository is available at git://exman.git.sourceforge.net/gitroot/exman/exman