QHacc FAQ
This is the QHacc Frequently Asked Questions section of the manual. It is
been updated for QHacc v2.1, and should stay reasonably up-to-date. If
you find anything in the questions and answers that is vague or just
plain-old wrong, please write to ryan@ostrich-emulators.com. If you have
a question you do not see in this list, please write to the same address
to have it added.
Questions:
- I just started QHacc, what do I need to do now?
- Is there an easier way to enter a lot of old
transactions?
- Why does the account viewer get all funky during
resizing?
- How do I graph more than one account at a time?
- How do I upgrade from version X to version Y?
- What happened to --enable-debug?
- How can I translate QHacc / How do I make my
language work?
- What's with the qm files instead of po files?
- How do I run QHacc on Windows?
- Can QHacc read my Gnofin datafile?
- What about Quicken's .qif files?
Answers:
Q I just started QHacc, what do I need to do now?
A Unlike some accounting programs, QHacc does not automatically
start with a ready-made setup. If you just unpacked QHacc, a complete
and operational setup is available in the qhacc/contrib/easysetup
directory. The easiest way to get started is to copy this directory
somewhere, say /home/ryan/.qhacc, and start QHacc with the -f
option. The steps are simple:
- cp -r qhacc/contrib/easysetup /home/ryan/.qhacc
- qhacc -f /home/ryan/.qhacc
Obviously, you should really try to use your own login name instead of
mine.
If you don't like using the -f option, you can alternately set a
QHACC_HOME environment variable in your shell. If you use any of the
bourne-like shells, then type
export QHACC_HOME=/home/ryan/.qhacc
If you're a csh person, the command might look something like
setenv QHACC_HOME /home/ryan/.qhacc
Q Is there an easier way to enter a lot of old transactions?
A There isn't any way around entering old
transactions. However, QHacc has many useful features for speeding the
process. First, change your preferences to use "Auto-Complete on" all
or new transactions. With this option, QHacc will try to use data from
already-entered transactions on the new transactions. After typing in
the payee, QHacc will supply the sum, memo, and double-entry account
field automatically. If there is some ambiguity for a payee, you can go
to the sum field and press the up and down arrows for other payments
from that payee. Another useful feature is to hilight the last
transaction entered, and use the "i" key instead of hitting the spacebar
over "<new>" button to create a new transactions. This makes the
transaction editor use the date from the already-entered transaction
as the date for the new transaction. Hitting the spacebar uses the
current date, which is probably annoying if you're trying to enter old
transactions.
Q Why does the account viewer get all funky during resizing?
A This question originally pertained to an older version of QHacc
that didn't work well with opaque, or "show contents of window during
resizing" resizing. The solution was to make QHacc quit trying to
work. More recent versions resize windows much more gracefully, but the
column headers are still a problem. The solution here is to simply
resize a column header, and the remaining headers will resize
correctly. I used to think I'd get to this bug eventually, but now I
fear this is a bug that will never be fixed.
Q How do I graph more than one account at a time?
A You can graph more than one account at a time by holding down
the control key and selecting another account, or by holding the shift
key and selecting a whole range of accounts.
Q How do I upgrade from version X to version Y?
A Usually, different versions of QHacc remain backward
compatible. Unfortunately things do change occasionally, and datafiles
can become incompatible between versions. Upgrading is (hopefully)
painless. The first step is to make a backup of all your
datafiles. Then, restore any archived transactions you may
have created, and run the appropriate upgrade script.
Upgrade scripts work from one revision to the next, but they do
not work for more than one revision. That is, if the data format
changes from version 1 to version 2 and from version 2 to version 3, the
upgrade script provided in version 3 assumes the datafiles are in the
format of version 2. Luckily, all upgrade scripts are provided in the
download tarball, so upgrading even several revisions should be possible.
Q What happened to --enable-debug?
A QHacc used to have an --enable-debug option to configure. That
option was removed in version 2.0. The reason is that debugging
information is now controlled at runtime instead of compile-time, and
that control is much more fine-grained than the --enable-debug
provided. There are currently 6 levels of debugging/error handling
information:
0: no debugging nor errors
1: fatal errors only
2: errors that affect operation
3: errors requiring default values to be used
4: major debugging information
5: minor debugging information
6: for the curiosity cat
To make the output a little more customizable, errors are printed to
standard error while debugging information is printed to standard out.
--enable-debug also used to enable compilation with the -g option to
gcc. That option made the compiler include debug information in the
executable. The same behaviour can be obtained directly through make by
using: make CXXFLAGS="-O2 -g"
Q How can I translate QHacc / How do I make my language work?
A QHacc has the beginnings of internationalization (i18n) support
included. As with most aspects of QHacc, I don't know how it's
"supposed" to be done, so I'm feeling my way along. However, Qt has some
excellent support for i18n. (By the way--just because I only recently
found out--internationalization is called i18n because there are 18
letters between the i and n in
internationalization. I still don't know why localization is
called l10n, though.) In any event, creating a translation for QHacc is
rather easy if you have the Qt tools. You'll need lupdate and linguist
(or lrelease), all of which are available for free in the Qt sources.
First, you need to start with a .ts file. This can be created using the
lupdate.info file included with the sources in the src directory. Edit
that file to include your i18n code. (i.e., qhacc_de_DE for German;
qhacc_en_US for American English.) Then, run lupdate on lupdate.info to
create the ts file. If you have trouble, contact me, and I'll be happy
to make the ts file for you. If you followed the example, running
lupdate should create a qhacc_de_DE.ts file.
The ts file is a simple XML script that contains the needed translations
and their translated texts. You can edit it by hand, though Qt provides
a tool called linguist that significanly enhances the experience. When
you are done with the translation, call lrelease to make a .qm file. If
you used linguist, there is an option to create a release from the open
ts file. This qm file contains your translation QHacc. So how do you use
it?
Using the qm file is a bit clunky at this time, though it does
work. To use the qm file, just set your LANG and QHACC_LANGDIR
variables. The LANG variable should be whatever your international code
is, and QHACC_LANGDIR is where the qm file is. To continue our example,
a German user would set LANG=de_DE, and QHACC_LANGDIR to
/usr/local/qhacc/share, assuming that is where they put the qm
file. Restart QHacc, and it should be in your
language. (Localization--things like decimal point and currency
symbol--is slightly different from internationalization. Right now,
QHacc's support for l10n is limited to the options in the preferences
dialog. There is no automatic l10n support.) By default, QHacc will
install the available qm files into /usr/local/qhacc/share.
QHacc is currently only available in English, as that is the only
language I can reasonably speak. I am working on a Spanish translation
as well, but it may take some time. If you are interested in translating
QHacc, I would love to hear from you. If you're a bit worried about the
work, it is VERY easy to make a translation.
Q What's with the qm files instead of po files?
A Qt's native translation file is a .qm file. GNU uses .po files,
but that requires the gettext package. One of the goals of QHacc has
always been to require the fewest possible number of dependencies. Even
though nearly every system around has gettext, I decided to stick with
Qt, since I'm reasonably certain if you can install QHacc, you have Qt
on your system.
Q How do I run QHacc on Windows?
A QHacc can run on Windows, but not natively. It requires the
cygwin-qt dlls to properly compile, and the cygwin dll to run. The
packages are available at
cygwin.kde.org and
cygwin.com. Cygwin has a graphical
installer which is very easy to use. Just make sure you download the
XFree86 system as well, or QHacc won't be able to open. QHacc's
configuration script can recognize a Windows install and operate
accordingly.
Q Can QHacc read my Gnofin datafile?
A Not exactly. QHacc is distributed with a script called
convert_gnofin084_to_qhacc22.sh in the /contrib directory. This script
attempts to convert Gnofin's datafile to QHacc-readable
files. There are some caveats to its use:
- Your Gnofin datafile must have compression disabled.
- If your account name is the same as one of Gnofin's categories,
the import will probably bomb. The solution is to rename your account
to something unique. Once you start QHacc on the converted files, you
can rename the account to whatever you like.
- "Linked Transactions" are poorly handled. The best idea so far is
to strip them out of your Gnofin datafile before running the
conversion script. (try grep -v linked_account <datafile>)
- Nested categories in Gnofin do not become nested accounts in
QHacc. Luckily, there aren't many of these, so manually renaming them
shouldn't pose too much of a problem.
Also, since the current version of QHacc no longer uses the 2.2 file
structure, you will need to run an upgrade script to use the
newly-created datafiles with QHacc. If there is a demand, more scripts
can be created to handle the conversion.
Q What about Quicken's .qif files?
A Currently, there is no process for converting Quicken's .qif
files to QHacc datafiles. The file format is pretty well documented, but
it seems that not even Quicken creates valid .qifs all the time. In
fact, Intuit, Quicken's maker, is apparently discourages using .qifs for
all but the most rudimentary backups. However, should the demand
increase (heck, exist!) for a conversion is possible.