mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 02:42:51 +00:00
77 lines
2.7 KiB
C++
77 lines
2.7 KiB
C++
/* This file is part of the KDE libraries
|
|
Copyright (C) 2005 Joseph Wenninger <jowenn@kde.org>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License version 2 as published by the Free Software Foundation.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#include <kabc/addressee.h>
|
|
#include <kcmultidialog.h>
|
|
#include <kglobal.h>
|
|
#include <klocale.h>
|
|
#include <kmessagebox.h>
|
|
#include <kpimidentities/identity.h>
|
|
#include <kpimidentities/identitymanager.h>
|
|
|
|
#include <QWidget>
|
|
|
|
using namespace KPIMIdentities;
|
|
|
|
// extern "C" is needed here because this function must be located using
|
|
// QLibrary resolve() that only knows how to resolve C functions
|
|
// This function is used by kate/kwrite
|
|
extern "C" KDE_EXPORT QString ktexteditorkabcbridge( const QString &placeHolder, QWidget *widget, bool *ok )
|
|
{
|
|
KGlobal::locale()->insertCatalog( QLatin1String("ktexteditorkabcbridge_plugin") );
|
|
|
|
IdentityManager manager( true, widget );
|
|
Identity defaultIdentity = manager.defaultIdentity();
|
|
|
|
if ( defaultIdentity.fullName().isEmpty() && defaultIdentity.primaryEmailAddress().isEmpty() ) {
|
|
const int result = KMessageBox::questionYesNo( widget,
|
|
i18n( "The template needs information about you, but it looks as if you have not yet provided that information. Do you want to provide it now?" ),
|
|
i18n( "Missing personal information" ) );
|
|
|
|
if ( result == KMessageBox::No ) {
|
|
*ok = false;
|
|
return QString();
|
|
}
|
|
|
|
KCMultiDialog dlg( widget );
|
|
dlg.addModule( QLatin1String("kcm_useraccount.desktop") );
|
|
if ( !dlg.exec() ) {
|
|
*ok = false;
|
|
return QString();
|
|
}
|
|
}
|
|
|
|
defaultIdentity = manager.defaultIdentity();
|
|
|
|
if ( ok )
|
|
*ok = true;
|
|
|
|
KABC::Addressee contact;
|
|
contact.setNameFromString( defaultIdentity.fullName() );
|
|
|
|
if ( placeHolder == QLatin1String("firstname") )
|
|
return contact.givenName();
|
|
else if ( placeHolder == QLatin1String("lastname") )
|
|
return contact.familyName();
|
|
else if ( placeHolder == QLatin1String("fullname") )
|
|
return contact.assembledName();
|
|
else if ( placeHolder == QLatin1String("email") )
|
|
return defaultIdentity.primaryEmailAddress();
|
|
else
|
|
return QString();
|
|
}
|