Projects/Skrooge: Difference between revisions

    From KDE TechBase
    (Fixed links after moving from userbase)
    mNo edit summary
    Line 21: Line 21:
    ==== Latest Release  ====
    ==== Latest Release  ====


    You can download the [http://websvn.kde.org/*checkout*/tags/skrooge/0.5.3/skrooge-0.5.3.tar.bz2 archive file] containing the source code, and extract its content using your favorite extraction tool, such as [http://userbase.kde.org/ark].  
    You can download the [http://websvn.kde.org/*checkout*/tags/skrooge/0.5.3/skrooge-0.5.3.tar.bz2 archive file] containing the source code, and extract its content using your favorite extraction tool, such as [http://userbase.kde.org/ark Ark].  


    ==== Development Version  ====
    ==== Development Version  ====
    Line 45: Line 45:
    === Build & Install  ===
    === Build & Install  ===


    Place yourself in the directory containing the source code, and create a directory named "build" (This is useful to segregate built files from the source code). Open a [http://userbase.kde.org/konsole] in this directory, and run the following commands (as a normal user) :  
    Place yourself in the directory containing the source code, and create a directory named "build" (This is useful to segregate built files from the source code). Open a [http://userbase.kde.org/konsole Konsole] in this directory, and run the following commands (as a normal user) :  


    <code>
    <code>
    Line 69: Line 69:
    </code>  
    </code>  


    <br>


    == Debugging  ==
    == Debugging  ==

    Revision as of 20:33, 19 November 2009


    Skrooge


    Skrooge is a personal finances manager for KDE4, aiming at being simple and intuitive. It allows you to keep track of your expenses and incomes, categorize them, and build reports of them.

    Skrooge is a part of KDE Extragear, in the Office module

    This page is dedicated to developpers or advanced users who wish to have a deeper understanding of Skrooge.

    Compiling

    Before we start, please consider using a precompiled package for your distro. You should only be compiling yourself if there is no package yet for your distro, or if you want the latest version, directly from the developpers.

    Get the Sources

    First, you will need to get the Skrooge source code. There are two ways to do this.

    Latest Release

    You can download the archive file containing the source code, and extract its content using your favorite extraction tool, such as Ark.

    Development Version

    Like all KDE applications, the source code is stored in KDE's Subversion system, in the extragear/office folder. Please refer to the Subversion Tutorial for KDE. You will need an SVN account to get it from there. svn co svn://anonsvn.kde.org/home/kde/trunk/extragear/office/skrooge

    Dependencies

    To be able to compile and run Skrooge, you will need some additional components

    KDE4 Headers

    Skrooge being a KDE4 application, it depends on many things in the KDE headers. You can get them from your distribution's packages (name usually contains KDE4+devel, KDE4+headers), or directly from KDE repositories.

    QCA

    Qt Cryptographic Architecture. Get it from your distribution packages.

    libofx

    A library to handle import for OFX files. Get it from your distribution packages.

    Build & Install

    Place yourself in the directory containing the source code, and create a directory named "build" (This is useful to segregate built files from the source code). Open a Konsole in this directory, and run the following commands (as a normal user) :

    mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` make

    (please note the backquotes in the cmake command, they are important...)

    Then, with root privileges :

    make install

    Uninstall

    Tried Skrooge but didn't like it ? Sorry to hear this... You can uninstall it by running this command in the aforementionned "build" directory, with root privileges :

    make uninstall


    Debugging

    Trace activation

    To activate traces, you need to export an environment variable in your console:

    export SKGTRACE=XX
    

    XX is the level of traces you want. It should be an integer between 0 and 20. The higher the number, the higher the quantity of information you get. 10 is good compromise.

    Then, start Skrooge from this console. This will display a lot of information in your terminal, giving you hints as to what could be going wrong if you face issues.

    Profiling

    To activate the basic profiling mechanism included in Skrooge, you need to export an environment variable in your console:

    export SKGTRACEPERFO=1 
    

    Once Skrooge is started from this console, you can find two new commands:

    • Restart profiling (CTRL+Pause) to initialize the profiling
    • Open profiling (ALT+Pause) to open the result of the profiling

    Profiling results look like this:

    method , nb call , millisecondes , average , min , max , own time , average own time 
    SKGMainPanel::setNewTabContent-addTab , 1 , 38.26897848 , 38.26897848 , 38.26897848 , 38.26897848 , 25.6370585 , 25.6370585
    SKGObjectModelBase::refresh , 2 , 8.741794825 , 4.370897412 , 0.9698964357 , 7.771898389 , 8.147958875 , 4.073979437 
    SKGMainPanel::setNewTabContent , 1 , 49.36599612 , 49.36599612 , 49.36599612 , 49.36599612 , 3.772916079 , 3.772916079 
    SKGOperationBoardWidget::SKGOperationBoardWidget , 1 , 3.179117203 , 3.179117203 , 3.179117203 , 3.179117203 , 2.963078141 , 2.963078141 
    SKGMainPanel::onOpenContext , 1 , 50.43999612 , 50.43999612 , 50.43999612 , 50.43999612 , 1.074000001 , 1.074000001
    ...
    

    Remark: If SKGTRACE is set then you will be able to find the execution time of each methods in traces.

    To profile only sql instructions, you can export an environment variable in your console:

    export SKGTRACESQL=XX  
    

    Only sql order with an execution time greater then XX ms will be displayed in console.

    In the console, you will get something like:

    executeSqliteOrder : SELECT t_name, t_TYPENLS, f_CURRENTAMOUNT, t_close from v_account_display WHERE (t_type='C' OR t_type='D' OR t_type='I' OR t_type='O') ORDER BY t_TYPENLS, t_name TIME='441 ms'
    
    

    Interactive mode