Aaron J. Seigo wrote: > On Thursday 25 September 2008, Stephen Kelly wrote: >> The idea would be that the plasmoid would display either all of your >> kjots notes, or only a particular kjots book, or notes tagged with a >> particular > > cool! > > (i actually maintined kjots in kde3 and gave it its current > tree-on-the-left- content-on-the-right interface with things like full > book overview, etc .. Jaison took it further with the start of rich text > editting and the initial kde4 port .. so cool to see this app continue on! > it got its start in kde1 .. yes *ONE*.. =)
Yep, 11 years: http://websvn.kde.org/?view=rev&revision=155 That's probably before 1.0. > >> Syncronization: >> KJots has been a KUniqueApplication since before I started working on it. >> This is presumably so that two running KJots instances can not have out >> of sync edits to the same page. > > yes, that's correct. > >> However if pages can be edited in a plasmoid, >> that would be possible. I *think* that if I write an akonadi resource for >> kjots, akonadi would keep all views on the data up to date ( >> http://thread.gmane.org/gmane.comp.kde.devel.pim/22743). If someone else >> is more familiar with this kind of thing and whether akonadi is needed at >> all, please let me know. > > that'd be a question for the pimsters.. i *think* the answer is "yes, > that's correct" but they'd know better than me =) Seems to be it exactly. I asked about the case where you have two plasmoids displaying the same page for edit, and you drag text from one to the other. <steveire> Does akonadi take care of a case where I have two plasmoids displaying the same page for edit, and I drag text from one to the other? <till> steveire: if you use the models in both plasmoids, yes, but I guess the data bakcends for the plasmoid need to handle it too > >> Using existing code: >> There is already a KJotsComponent which is a QWidget contains all the >> functionality in kjots. It is used by the standalone application and by >> the kpart which gets loaded in kontact. I think I read that plasma can >> use QWidgets directly because of QGraphicsView(?). Does that mean that I >> can simply put that widget into a plasmoid and I'll be finished? > > yes, that's about it; i'd recommend using a Plasm::PopupApplet, so when it > is in the panel you'll get a button to click on that will show the content > in a popup. I tried putting the KJotsComponent into a plasmoid. I got it to compile, but I didn't get it to work. I just get a black box when I try to load it with plasmoidviewer. It might just be that that component is not suitable to be used in this way. I could possibly use the plasma widgets if that's the case. I've attached my attempt in case I've done anything obviously wrong. Cheers, Steve.
Index: kjots-plasmoid.h =================================================================== --- kjots-plasmoid.h (revision 0) +++ kjots-plasmoid.h (revision 0) @@ -0,0 +1,33 @@ +// Here we avoid loading the header multiple times +#ifndef KJOTSPLASMOID_H +#define KJOTSPLASMOID_H +// We need the Plasma Applet headers +#include <KIcon> + +#include <Plasma/PopupApplet> +#include <Plasma/Svg> + + +class KJotsComponent; + + +// Define our plasma Applet +class KJotsPlasmoid : public Plasma::PopupApplet +{ +Q_OBJECT +public: + // Basic Create/Destroy + KJotsPlasmoid(QObject *parent, const QVariantList &args); + virtual ~KJotsPlasmoid(); + + virtual QWidget *widget(); + +private: + KJotsComponent *c; + QWidget *w; +}; + +// This is the command that links your applet to the .desktop file +K_EXPORT_PLASMA_APPLET(kjots, KJotsPlasmoid) + +#endif Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 861669) +++ CMakeLists.txt (working copy) @@ -64,3 +64,49 @@ install( FILES kjotspartui.rc DESTINATION ${DATA_INSTALL_DIR}/kjots) install(TARGETS kjotspart DESTINATION ${PLUGIN_INSTALL_DIR} ) + + +######################################################################### +# Plasmoid SECTION +######################################################################### + +find_package(Plasma REQUIRED) + +add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) +include_directories( + ${CMAKE_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${KDE4_INCLUDES} + ) + +# We add our source code here +set(kjots_plasmoid_SRCS + kjots-plasmoid.cpp + kjotsentry.cpp + kjotsedit.cpp + kjotsbookmarks.cpp + bookshelf.cpp + kjotscomponent.cpp + kjotsreplacenextdialog.cpp + kjotsbrowser.cpp + kjotslinkdialog.cpp + flatcollectionproxymodel.cpp + kjotsbookshelfentryvalidator.cpp + KJotsSettings.cpp + ) + +# Now make sure all files get to the right place +kde4_add_plugin(plasma_applet_kjots ${kjots_plasmoid_SRCS}) +target_link_libraries(plasma_applet_kjots + ${PLASMA_LIBS} + ${KDE4_KDEUI_LIBS} + ${KDE4_KIO_LIBS} + ) + +install(TARGETS plasma_applet_kjots + DESTINATION ${PLUGIN_INSTALL_DIR}) + +install(FILES kjots-plasmoid.desktop + DESTINATION ${SERVICES_INSTALL_DIR}) + + Index: kjots-plasmoid.cpp =================================================================== --- kjots-plasmoid.cpp (revision 0) +++ kjots-plasmoid.cpp (revision 0) @@ -0,0 +1,34 @@ + +#include "kjots-plasmoid.h" + +#include <KActionCollection> + +#include "kjotscomponent.h" + + +KJotsPlasmoid::KJotsPlasmoid(QObject *parent, const QVariantList &args) + : Plasma::PopupApplet(parent, args), c(0) +{ +// setPopupIcon("kjots"); +} + + +KJotsPlasmoid::~KJotsPlasmoid() +{ + delete c; +} + + +QWidget *KJotsPlasmoid::widget() +{ + + if (!c) + { + KActionCollection *actionCollection = new KActionCollection(this); + c = new KJotsComponent(new QWidget(), actionCollection); + c->setMinimumSize( 280, 280 ); + } + return c; +} + +#include "kjots-plasmoid.moc" Index: kjots-plasmoid.desktop =================================================================== --- kjots-plasmoid.desktop (revision 0) +++ kjots-plasmoid.desktop (revision 0) @@ -0,0 +1,17 @@ +[Desktop Entry] +Name=KJots plasmoid +Comment=KJots plasmoid +Type=Service +Icon=kjots + +X-KDE-ServiceTypes=Plasma/Applet +X-KDE-Library=plasma_applet_kjots +X-KDE-PluginInfo-Author=Stephen Kelly [EMAIL PROTECTED] +X-KDE-PluginInfo-Name=kjots-plasmoid +X-KDE-PluginInfo-Version=0.1 +X-KDE-PluginInfo-Website=http://pim.kde.org/kjots +X-KDE-PluginInfo-Category=PIM +X-KDE-PluginInfo-Depends= +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-EnabledByDefault=true
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel