
FreshBooks Plasmoid
Source (link to git-repo or to original if based on someone elses unmodified work):
The plasmoid can communicate with FreshBooks Plasmoid Monitor (http://www.kde-look.org/content/show.php?content=115880) via DBus. FreshBooks Plasmoid Monitor is a tiny monitor for FreshBooks Plasmoid to be placed in a plasma panel.
All contributions (bug fixing, features, artwork, translations etc.) are very much welcome. Contact details can be found in the plasmoid package.
Functionality:
* Listing FreshBooks projects and tasks connected with the projects.
* Simple time counting.
* Time can be input manually in various formats: 0.000, mm:ss, hh:mm:ss.
* Logging time (with notes) to FreshBooks.
* Customizable background.
* Global keyboard shortcut for starting/pausing the counter.
* Token stored in KWallet.
* DBus interface
* Communicates with FreshBooks Plasmoid Monitor
Depends on plasma-scriptengine-python.
Uses freshbooks.py by Matt Culbreth (http://mattculbreth.com).
2010-03-09 - Version 0.4.1
* Fixed regression related to KWallet interface and KDE 4.3
2010-02-17 - Version 0.4
* Now compatible with KDE 4.4
2009-11-25 - Version 0.3.1
Bugs:
* Fixed the bug causing errors when logging time without refreshing.
2009-11-25 - Version 0.3
Features:
* Hours edit accepts time in different formats: 0.000, 00:00, 00:00:00
* The projects and tasks are now saved, therefore refreshing is not required on startup.
Bugs:
* Changed 'Reset' to 'Clear'
* Now it is possible to modify the counter's state by editing the hours.
* Now countingStopped DBus signal is sent when time is logged (updates button status in Monitor)
2009-11-22 - Version 0.2
Features:
* Added configuration options enabling/disabling automatic refresh on startup and setting the delay
* DBus interface for monitoring and controlling the plasmoid
* Compatible with the FreshBooks Plasmoid Monitor
Bugs:
* Notes are now cleared when resetting or logging
* Added missing i18n()
* Fixed the problem with saving size of the plasmoid
2009-11-20 - Version 0.1
* Initial version
Ratings & Comments
11 Comments
Hi! I tried your widget, set my account and token, but the project and task options are empty. I've tried to reinstall the widget, but nothing to change. I see this when run plasmoidviewer freshbooks-plasmoid: Quote:
: plasmoidviewer freshbooks-plasmoid
plasmoidviewer(19977)/plasma main: setting FormFactor to "planar"
plasmoidviewer(19977)/plasma main: setting Location to "floating"
plasmoidviewer(19977)/plasma main: setting containment to "null"
plasmoidviewer(19977)/plasma main: setting auth policy
plasmoidviewer(19977)/libplasma Plasma::Corona::Corona: !!{} STARTUP TIME 23156706 Corona ctor start
plasmoidviewer(19977)/plasma main: just load applet
plasmoidviewer(19977)/plasma FullView::addApplet: adding applet "freshbooks-plasmoid" in "null"
plasmoidviewer(19977)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-szantogabor/ksycoca4"
plasmoidviewer(19977)/kdecore (services) KServiceFactory::findServiceByDesktopPath: "" not found
plasmoidviewer(19977)/libplasma Plasma::AppletPrivate::init: Check your constructor! You probably want to be passing in a Service::Ptr or a QVariantList with a valid storageid as arg[0].
plasmoidviewer(19977)/libplasma Plasma::PluginLoader::loadApplet: we have a script using the "python" API
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::KPythonPluginFactory: KPythonPluginFactory::KPythonPluginFactory()
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::initialize: Initializing Python interpreter.
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::initialize: Succesfully initialized Python interpreter.
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: KPythonPluginFactory::create iface: Plasma::AppletScript
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: keyword to be used for finding the plugin code: "plasma_scriptengine_python/pyappletscript.py"
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: Path to plugin code is: "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py"
plasmoidviewer(19977)/python (plugin) KPythonPluginFactory::create: Returning result qobject
plasmoidviewer(19977)/libplasma Plasma::AppletPrivate::setupScriptSupport: setting up script support, package is in "/home/szantogabor/.kde/share/apps/plasma/plasmoids/freshbooks-plasmoid/" which is a "Plasmoid" package , main script is "/home/szantogabor/.kde/share/apps/plasma/plasmoids/freshbooks-plasmoid/contents/code/main.py"
Installing icons...
Done!
plasmoidviewer(19977)/kdeui (Wallet) KWallet::Wallet::openWallet: Pass a valid window to KWallet::Wallet::openWallet().
plasmoidviewer(19977)/plasma FullView::addApplet: connecting ----------------
Using wallet.
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setCompositionMode: Painter not active
QPainter::end: Painter not active, aborted
plasmoidviewer(19977)/kdeui (Wallet) KWallet::Wallet::openWallet: Pass a valid window to KWallet::Wallet::openWallet().
I'm using the latest kubuntu, the KDE version is 4.7.2
Could you help me, what i miss?
I have just tried in Kubuntu 11.10 and KDE 4.7.2 and it worked without problems. Also the messages you pasted do not indicate any error. I don't really have any idea here, sorry.
OK, I removed that folder you were talking about and re-installed. All's good now. Thanks :)
After "installing" and adding the widget to the Plasmoid Desktop, the widget tells me: ========== This object could not be created for the following reason: Could not locate the freshbooks-plasmoid package for the FreshBooks Plasmoid widget. ========== I do have the required plasma-scriptengine-python package installed. This works on my desktop, but not on my new laptop (on which I put the latest Kubuntu). Many thanks for your help!
Looks like some installation problem. Which KDE version are you using? Could you check if you have the package installed in .kde/share/apps/plasma/plasmoids? What happens if you run "plasmoidviewer freshbooks-plasmoid"?
Hi. First of all thanks for this. I was tired of using the web interface. Any idea why it freezes plasma while it's refreshing the projects? It takes about 2 minutes to refresh too. I'm on KDE 4.4.1, Kubuntu 9.10 64 bit.
Yes, I am aware of both problems. The first problem can be fixed. Currently, the refreshing runs in the main thread which blocks the whole plasma for some time. Will fix that as soon as I find some time (of course, patches are welcome!). Unfortunately, the second problem is difficult to solve. Simply the Freshbooks API is very inefficient and requires multiple queries to be sent to the server.
Non-related question - your profile says You are from Stockholm, yet the screens prove the system the screenshots were taken from was in Polish. How's that possible? ;)
Well, it's that difficult to spot a Pole in Stockholm these days :)
Looks interesting, though I already track my time through an ERP system. Would be nice with something similar but connected to for instance KTimeTracker.
I'm not using KTimeTracker myself, but the code could serve as an example for someone willing to implement that functionality.