GSoC Proposal: Live news feed from financial newspapers
stimming at tuhh.de
Thu Mar 31 04:07:56 EDT 2011
Zitat von Ajay Thomas <ajaythomas.inc at gmail.com>:
> I didn't quite get the difference between Menu only Plugins and Content
> Plugins, the difference in functionality between the two. I looked into
> gnc-plugin-bi_import.c source code under plugins but it still didn't answer
> my doubt.
I don't think there is any difference. Also, the "bi_import" code is
rather new and probably not so good as an example - I would recommend
looking at the src/import-export/aqbanking/ code as an example because
it has received multiple developers' iterations of code cleanup and
improvements. (Incidentally, I also know that code much better, so I
can answer questions there much better as well.) I don't think there
is anything like a "content plugin".
There is a chance of some name confusion, because there is the
"gnome-utils/gnc-plugin-page.h" object but this doesn't necessarily
have to be tied to a "plugin". The correct naming is used for
"gnome-utils/gnc-plugin.h" - that object is a GObject-derived class
which represents one loadable module, with init and fini functions,
that will usually add some GtkAction menu items to the gnucash menus,
but additionally it could add some hooks at engine/gnc-hooks.h or
event handlers at libqof/qof/qofevent.h for specific events.
Then there is gnome-utils/gnc-plugin-page.h. This is meant for a
plugin that not only has some GtkActions, but additionally it will
want to display data in a tab window inside the gnucash main window.
If the plugin wants to implement such a tab window on its own, from my
understanding the gnc-plugin-page.h supplies a useful framework to
manage all the dynamic menu items that are specific to that tab
window. The plugins can use such a gnc-plugin-page.h but they don't
> I am currently going through the src/optional/gtkmm. I also looked into the
> gnucash report renderer using webkit (src/html/gnc-html-webkit.c) and I have
> a small doubt regarding implementation of my proposal using webkit. Will it
all about some code that generates a HTML page with embedded
from the gnucash installation path. This means your Internet-related
ideas about a live feed could be implemented by writing a
then writing some very short gnucash plugin code that just opens a
webkit window, loads your HTML page (from somewhere of gnucash's
is embedded in that HTML page.
This is just one implementation option. Other options exist as well.
> Last, I would like to know, if I have to come to a conclusion about which
> technology I am going to use before the application deadline (April 8). I
> feel there won't be enough time by then to actually come to a conclusion
> about the implementation to be used. I intend to study thoroughly and
> develop some test plugins using both gtk widgets and webkit window before I
> can actually come to a conclusion.
This is completely fine. After all, trying more than one technology is
already an important part of the project on its own, so it can be done
during the summer and not before the application. I'm just explaining
the availability of different options so that you have that in mind
during the project. For now, it is fine to do some more experiments
with one of the technologies, then explain your already observed
advantages and disadvantages in your application. If your application
is accepted, you can continue with your initially chosen technology,
but for each disadvantage, you have the option to either live with it
or to decide to try a different technology in case that disadvantage
is grave enough. I mean, it is a good situation for you! You have your
goal in mind, and you are not stuck to one single technology to reach
that goal but instead you already know there are multiple different
ways to reach that goal. If there were only one technology available,
and after half of the project you found out some unsurmountable
difficulties, you would be stuck - but due to the availability of
various options, you already know you will have back up technologies
available. There are other projects or goals where this is not the
case, so this situation should be more comfortable for you.
More information about the gnucash-devel