On Sonntag, 15. April 2018 23:48:02 CEST Kevin Krammer wrote:
> On Mittwoch, 21. März 2018 16:47:50 CEST Matthieu Hazon wrote:
> > Hi Kevin,
> >
> > Thank you for the links. I forgot to mention that we target GNU/Linux
> > and Windows at least so I fear these libs w
Neither would gain anything by depending on the desktop product.
It is way more likely that they are simply Qt addon libraries like most of the
other frameworks created by KDE.
Cheers,
Kevin
> Anyway, I'll keep an eye on this :)
>
> Best regards,
> Matthieu
>
> Le 20.03
[1] https://cgit.kde.org/kimap.git/
[2] https://cgit.kde.org/kimap2.git/
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
://code.qt.io/cgit/qt/qtpim.git/tree/
I would be surprised if the KF5 based branch of kdepimlibs didn't contain a
Qt5 based version of libkabc, probably renamed better fitting a contacts
framework.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, deve
On Saturday, 2015-10-10, 12:35:12, Pali Rohár wrote:
> On Saturday 10 October 2015 10:32:02 Kevin Krammer wrote:
> > On Thursday, 2015-10-08, 16:17:47, Thomas Lübking wrote:
> > > On Donnerstag, 8. Oktober 2015 10:10:41 CEST, Pali Rohár wrote:
> > > > Do not know.
the vcard directory,
then accessing the data usnig the KContacts framework [1] should be quite
easy.
Cheers,
Kevin
[1] Basically the Qt5 port KF5 version of KABC, without the resource API.
A bit like what kcalcore is to kcal
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user supp
On Tuesday, 2015-03-24, 16:15:31, Thomas Lübking wrote:
> On Dienstag, 24. März 2015 12:35:18 CEST, Kevin Krammer wrote:
> >>> http://trojita.flaska.net/welcome.html
> >>
> >> That's because KDE's localization infrastructure doesn't support this
because KDE's localization infrastructure doesn't support this use
> case, as far as I know. Patches welcome; it shouldn't be that hard to do
> it, considering that they were able to add support for AppData XML.
Hmm, both Konqueror and KMail load localized HTML content on startup.
Cheer
more details than just the address.
But indeed, a single model for all recipients and type being one of the data
fields (separate column or special item role) sounds even better.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signatur
... CONSTANT)
public Q_SLOTS:
void send();
void sendLater();
void saveAsDraft();
};
In simple QtQuick that would then be used similar to this:
Composer {
id: composer
subject: subjectInput.text
body: bodyInput.text
}
TexInput {
id: subjectInput
}
TextArea {
id: bodyInput
> > thoughts on adding one?
>
> No, Trojita doesn't have a spell checker yet. I think we would like
> to have one but nobody has done the work yet. Of course, patches
> are welcome.
For the Qt5 version it might be worthwhile to consider the Sonnet framework
http://www.inqlude.o
2014/K1105/Saturday/Mailpile.webm
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
orrectly).
It is also possible to close and comment on a bugzilla entry (using the BUG
keyword) and to send the commit log+hash to emails using the CCMAIL keyword.
See
http://techbase.kde.org/Policies/Commit_Policy#Special_keywords_in_GIT_and_SVN_log_messages
I think there is a commit templ
milar. (kdepimlibs/kmime)
Very likely one of the candidates of an early KDE PIM Frameworks 5 :)
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
ut ObjectTreeParser if you think otherwise ;)
Cheers,
Kevin
[1] the MIIME tree parser needs to be designed in a way that it allows
asynchronous completion of parts, because decryption might incur user
interaction (typing passphrase), keyserver communication, etc.
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
On Monday, 2013-09-09, Pali Rohár wrote:
> On Monday 09 September 2013 20:52:37 Kevin Krammer wrote:
> > On Monday, 2013-09-09, Pali Rohár wrote:
> > > On Monday 09 September 2013 20:26:27 Thomas Lübking wrote:
> > > > On Montag, 9. September 2013 12:55:
uild
> tree, (without installing) if you do not want to include "./" or
> "./plugins/"? Solution to start trojita with $ENV is not good.
Wouldn't an env variable make this very easy? E.g. something like
SOME_ENV_VAR=$(pwd)/plugins ./trojita
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
to libtrojitapluginsprivate.so)
>
> Pali, Thomas, Caspar, Kevin -- which of these do you prefer? I believe that
> 3) actually provides fastest compile times during regular development (i.e.
> the lest to rebuild upon an isolated change), which is somewhat of a one of
> the metri
.
Cheers,
Kevin
[1] our "new year" sprint is usually mostly about planning, etc
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
t; Individual options can be usefull for user who do not know full
> mailto: syntax and want to start writing new mail from terminal.
Composing a mailto URI can also be delegated to xdg-email
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
n
Detection result should allow selection of any of the valid plugins, but
should list the "most appropriate" first or preselected.
Cheers,
Kevin
[1] Qt classes that are job like, e.g. QNetworkReply, also have only one
result signal (QNetworkReply::finished()). In case of QNetworkMa
On Monday, 2013-08-12, Pali Rohár wrote:
> On Thursday 08 August 2013 11:48:00 Kevin Krammer wrote:
> > On Thursday, 2013-08-08, Pali Rohár wrote:
> > > On Tuesday 06 August 2013 15:29:55 Jan Kundrát wrote:
> > > > Hi Pali,
> > > > there's so
On Saturday, 2013-08-10, Pali Rohár wrote:
> On Friday 09 August 2013 10:03:10 Kevin Krammer wrote:
> > Hmm, speaking of which: separate meta data could also help in the above
> > case of plugin getting uninstalled between sessions.
> > The program could always cache metad
like a safe thing, even if it was
> called during stop() (is it?).
Just as a reference on how KDE handles this:
the equivalent to stop() would be KJob::kill(), which can be told whether to
stay quiet (not emit result signal) or not.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-uti
: separate meta data could also help in the above case
of plugin getting uninstalled between sessions.
The program could always cache metadata of the use plugin user-locally, having
it accessible even when the plugin itself got uninstalled.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils dev
atusReports, e.g. a couple of
screenshots?
Like Trojita in Kontact or Trojita and KAddressBook side-by-side, Trojita
showing the completion data of contacts in addressbook, etc.
And I think some students blog about their progress in the form of "guest
entries" on their mentor's blo
ateActions(), first calls the
base implementation and then puts the actions into the action collection
At some point it might be worth to consider a refactoring such that the
Trojita main UI is a widget and both TrojitaPart and MainWindow use it.
Cheers,
Kevin
--
Kevin Krammer, KDE developer
On Thursday, 2013-08-08, Pali Rohár wrote:
> On Thursday 08 August 2013 09:38:16 Kevin Krammer wrote:
> > On Thursday, 2013-08-08, Pali Rohár wrote:
> > > KResourceAddressbook sounds good. Current name is
> > > "KDE Addressbook (traditional)". Do you wa
On Thursday, 2013-08-08, Pali Rohár wrote:
> On Tuesday 30 July 2013 23:23:13 Kevin Krammer wrote:
> > On Tuesday, 2013-07-30, Thomas Lübking wrote:
> > > +const KABC::Addressee::List &list = job->contacts();
> > > Since KABC is claimed deprecated,
hat is the
> correct thing to do?
KDE uses $LIBDIR (or maybe something that can be configured but falls back to
$LIBDIR), e.g. most of my KDE plugins here are under /usr/lib/kde4
(see also output of kde4-config --path module or kde4-config --path qtplugins)
Cheers,
Kevin
--
Kevin Kramme
result signal (like KJob does).
I guess it is mostly a matter of style and I am biased there due to long
exposure to KJob based APIs :)
> - WITH_KDE cannot supported with Qt5.
Not yet :)
But yeah, that will be a while :)
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
E default. Kevin?
Hmm. I guess the class could indeed be called KABCAddressbook or
KResourceAddressbook. But since those are framework names the user visible
string should probably be something like "Legacy KDE Addressbook".
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
quot; the contacts for whatever reason, thus Nepomuk not knowing about
them.
Instead of searching you could try loading the contacts yourself and checking
their data. Similar to what your other plugin does but of course more
efficient (can stop loading when it has enough matches, only needs to retrieve
partial contact data, etc).
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
ut could also be a combobox or a menubar or
> whatever representing a hook to the action.
I think the action would either be a KToolBarPopupAction or a KActionMenu.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description
action matters, it is always a KAction which is
a QAction which can have an icon set.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
u can very likely kiss it bye-bye
> > short term.
>
> Access to KDE addressbook can be done via KABC or via Akonadi
> API. So for KDE we need KABC or Akonadi plugin.
Well, Trojita does't need a KABC plugin unless it targets very old versions of
KDE.
Cheers,
Kevin
--
Kevin Kr
eck the code but my guess is that it gets the name from
KComponentData which every KDE application or part has in some way or the
other.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
called by invokeMethod/singleshot timer is
IMHO an implementation detail.
The virtual also makes it very obvious that this is a customization point, the
pure virtualness even enforces having to think about doing something plugin
specifiic in there.
Cheers,
Kevin
--
Kevin Krammer, KDE develop
uot;KDE integration" meant "on contemporary KDE versions".
If the repository ends up with a legacy KDE plugin and a current KDE plugin
then sure, why not, as long as both are working as expected :)
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user suppo
ause of its name ;-)
Ah, that is not a problem, it is not a user facing technology anyway. while
the name had crept into UI texts now and then, this is being worked on and
should be fixed sometime soon :)
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support
On Wednesday, 2013-07-10, Pali Rohár wrote:
> On Monday 08 July 2013 19:56:54 Kevin Krammer wrote:
> > If you want to display the plugin that has become unavailable
> > you could additionally store the name, no?
> >
> > The main problem with using the identifier as a
On Monday, 2013-07-08, Pali Rohár wrote:
> On Monday 08 July 2013 16:37:31 Kevin Krammer wrote:
> > On Monday, 2013-07-08, Pali Rohár wrote:
> > > On Thursday 04 July 2013 18:38:40 Kevin Krammer wrote:
> > > > Hi,
> > > >
> > > > I had a look
On Monday, 2013-07-08, Pali Rohár wrote:
> On Thursday 04 July 2013 18:38:40 Kevin Krammer wrote:
> > Hi,
> >
> > I had a look at the current state of the integration clone.
> >
> > TrojitaPluginJob.h
> >
> > - autoDelete() and isRunning() should be
On Monday, 2013-07-08, Pali Rohár wrote:
> On Saturday 29 June 2013 16:02:59 Kevin Krammer wrote:
> > - AbookAddressbook has lots of public API that is not in
> > AddressbookInterface (e.g. model).
>
> It is needed in AddressbookInterface (somewhere for Trojita)?
een processed, you call headerText() and
htmlizeAddresses() looks into the hash instead of running jobs.
When setText() has been called, you can clear the hash.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This
igger the actual job code.
This way start() will always return before any result is delivered, making
their behavior more like the ones really asynchronous jobs will have.
- Never ever delete an object in a slot called by the object's signals. Always
use deleteLater()
- AbookAddressbook h
method that emits signal and schedules deletion.
Obviously modelled after KJob, but without the I/O related things like
progress.
It is of course also possible to copy that "base" code into multiple base
classes that do not share a common ancestor :)
Cheers,
Kevin
--
Kevin Krammer, KDE
abstract class can't be instantiated directly
anyway.
I looked at a couple of abstract Qt classes (e.g. QAbstractItemModel) and they
seem to use a public constructor.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Des
oc code:
> http://quickgit.kde.org/?p=clones/trojita/pali/trojita.git
I would still recommend to do at least the completion task in form of a job.
- allows to stop/cancel completion (user cleared or increased input)
- allows to signal errors
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-u
need it?
I guess that the idea is that each plugin has to create its own job
implementation anyway, i.e. Password job is never instantiated directly.
But it should probably not be inline.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
never ever write, e.g. addressbook file on a read-only optical drive?
> /**
> * @short Return true if contact exists in addressbook
> **/
> virtual bool contactExist(const QString &email) const = 0;
That looks like something that shouldn't be synchronous.
Cheers,
K
very handy as you don't have to store the job as member
nor have to resort to QObject::sender() to get to it.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
the better approach then trying to catch
everything in the initial design.
I.e. initial design should focus on things that are obviously problematic,
like synchronous/asynchronous.
Of course, by that measurement even a job interface is already a second
iteration, but I do consider that an obv
On Thursday, 2013-06-20, Pali Rohár wrote:
> * @short Return true if this plugin is valid and can be used (e.g this
> addressbook is installed and usable) **/
> virtual bool isValid() = 0;
Under what conditions would this return false?
Cheers,
Kevin
--
Kevin Krammer, KDE
ltiple accounts could be in flight at any
> given time.
Such a request context can easily be achieved by a "job" interface.
Just saying, I am not getting any money for selling job style interfaces ;-)
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user supp
c method (but private does indeed not make sense)
because it is the easiest way to share between plugin implementations in order
to ensure consistent output.
Of course a helper class or namespace would work as well.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
On Thursday, 2013-06-20, Jan Kundrát wrote:
> On Wednesday, 19 June 2013 12:15:30 CEST, Kevin Krammer wrote:
> > One thing that might be interesting, depending on how the rest
> > of the code in
> > Trojita dealing with that interface looks like, is a "job"
>
ows the
operation to be cancelled, etc.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
virtual void openEditContactWindow(const QString
> &mail = QString(), const QString &name = QString()) const = 0;
In case these two are intended to be slots I would discard the const.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
On Monday, 2013-06-17, Jan Kundrát wrote:
> On Monday, 17 June 2013 13:59:24 CEST, Kevin Krammer wrote:
> > I am pretty sure that either goes through
> > KToolInvocation::invokeMailer() or,
> > if the applicaiton directly assembles mails itself, through kdepimlibs
> &g
quot; to other desktop and want
> to always use same password storage).
No idea, sorry.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
n the case of a mailto URI most likely through KRun, but I think that will
end up in KToolInvocation eventually.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
e doing it the right way.
For email programs I care about using my addressbook. Mostly for lookup of
course, but ideally now and then also for adding.
I guess nice to have is shortcuts and icons, the latter again mostly covered
by QIcon::fromTheme() with icons from resources as fallback.
Cheers
On Sunday, 2013-06-16, Pali Rohár wrote:
> On Sunday 16 June 2013 13:56:05 Kevin Krammer wrote:
> > On Sunday, 2013-06-16, Pali Rohár wrote:
> > > it is a bit hard to reorder some parts. KDE code needs
> > > ipc/dbus, working and implemented plugin interface, maybe
&
On Sunday, 2013-06-16, Thomas Lübking wrote:
> On Sonntag, 16. Juni 2013 10:03:32 CEST, Kevin Krammer wrote:
> > KMail has a global setting to enable this but does not check it by
> > default. By default it displays an option inline at the top of each mail
> > which
new kpart plugin for kdepim which render trojita GUI into Kontact
> * create new build target for plugin, use existing trojita GUI classes and
> include window/widgets to kpart plugin
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
tion inline at the top of each mail which contains
external references.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
On Friday, 2013-06-14, Thomas Lübking wrote:
> On Freitag, 14. Juni 2013 21:41:14 CEST, Kevin Krammer wrote:
> > As far as I know there are only two contact data services: Evolution Data
> > Server (EDS) and Akonadi.
>
> Data service is not excatly the same as "add
; but perhaps it's wrong (it would certainly be a bit weird if the
> > user suddenly "loses" her addresbook when switching from KDE to
> > something else, for example).
>
> That's the crap part about a hundred little addresbooks in Linux :-(
As far as I
vent loop and could end up in the same place again.
One of the most painful maintenance burdens in old KDE code is to get rid of
those nested event loops. Anyone having the chance to stay asynchronous from
the get-go is highly encouraged to do so :)
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
as well, potentially making it transparent when the
switch happens.
The Secret Service API is, IIRC, already provided by GNOME's secure storage
service gnome-keyring.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.a
with Kevin's mail later in this thread where he is strongly in
> favor of async interfaces -- these are harder to write, but provide huge
> benefits.
Especially when creating plugins for APIs that are asynchronous themselves,
e.g. any network protocol based addressbook like LDAP
p later on to allow multiple instance to be
queried.
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
signature.asc
Description: This is a digitally signed message part.
e KDE plugin which implement kaddressbook and kwallet support
Instead of supporting KWallet specifically it might be worth to consider using
Qt Keychain for password storage abstraction
https://github.com/frankosterfeld/qtkeychain#readme
Cheers,
Kevin
--
Kevin Krammer, KDE developer, xdg-utils d
On Friday, 2013-06-07, Pali Rohár wrote:
> On Thursday 06 June 2013 10:42:26 Kevin Krammer wrote:
> Ok, it is possible to use current Trojita qmake build system for
> new target which needs KDE libraries?
Sure, KDE libraries are just like any other Qt library.
qmake is notorisouly bad a
ct.
A good example is KAddressBook, which has both a KPart for Kontact integration
as well a stand-alone main window application version.
Both use the same MainWidget class for the actual content.
> > Have you already contacted kde-...@kde.org on this topic and to
> > explore
76 matches
Mail list logo