/usr/include/KF5/libkdepimakonadi/addresseelineedit.h is in libkf5libkdepim-dev 4:17.12.3-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | /*
This file is part of libkdepim.
Copyright (c) 2002 Helge Deller <deller@gmx.de>
Copyright (c) 2002 Lubos Lunak <llunak@suse.cz>
Copyright (c) 2001,2003 Carsten Pfeiffer <pfeiffer@kde.org>
Copyright (c) 2001 Waldo Bastian <bastian@kde.org>
Copyright (c) 2004 Daniel Molkentin <danimo@klaralvdalens-datakonsult.se>
Copyright (c) 2004 Karl-Heinz Zimmer <khz@klaralvdalens-datakonsult.se>
Copyright (c) 2017 Laurent Montel <montel@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 as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
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.
*/
#ifndef KDEPIM_ADDRESSEELINEEDIT_H
#define KDEPIM_ADDRESSEELINEEDIT_H
#include "kdepimakonadi_export.h"
#include <KLineEdit>
class QDropEvent;
class QEvent;
class QKeyEvent;
class QMenu;
class QMouseEvent;
class QObject;
class KJob;
class KConfig;
namespace Akonadi {
class Item;
}
namespace KContacts {
class Addressee;
class ContactGroup;
}
namespace KLDAP {
class LdapClientSearch;
}
namespace KPIM {
class AddresseeLineEditPrivate;
class KDEPIMAKONADI_EXPORT AddresseeLineEdit : public KLineEdit
{
Q_OBJECT
public:
/**
* Creates a new addressee line edit.
*
* @param parent The parent object.
* @param enableCompletion Whether autocompletion shall be enabled.
*/
explicit AddresseeLineEdit(QWidget *parent = nullptr, bool enableCompletion = true);
/**
* Destroys the addressee line edit.
*/
virtual ~AddresseeLineEdit();
/**
* Sets whether semicolons are allowed as separators.
*/
void allowSemicolonAsSeparator(bool allow);
/**
* Reimplemented for setting the @p font for line edit and completion box.
*/
void setFont(const QFont &font);
void setEnableBalooSearch(bool enable);
bool enableBalooSearch() const;
void setEnableAkonadiSearch(bool enable);
bool enableAkonadiSearch() const;
void setExpandIntern(bool);
bool expandIntern() const;
bool isCompletionEnabled() const;
/**
* Adds a new @p contact to the completion with a given
* @p weight
* @p source index
* @p append is added to completion string, but removed, when mail is selected.
*/
void addContact(const KContacts::Addressee &contact, int weight, int source = -1, QString append = QString());
/**
* Same as the above, but this time with contact groups.
*/
void addContactGroup(const KContacts::ContactGroup &group, int weight, int source = -1);
void addItem(const Akonadi::Item &item, int weight, int source = -1);
/**
* Adds the @p name of a completion source and its @p weight
* to the internal list of completion sources and returns its index,
* which can be used for insertion of items associated with that source.
*
* If the source already exists, the weight will be updated.
*/
int addCompletionSource(const QString &name, int weight);
void removeCompletionSource(const QString &source);
void emitTextCompleted();
void callUserCancelled(const QString &str);
void callSetCompletedText(const QString & /*text*/, bool /*marked*/);
void callSetCompletedText(const QString &text);
void callSetUserSelection(bool);
void updateBalooBlackList();
void updateCompletionOrder();
KLDAP::LdapClientSearch *ldapSearch() const;
void setShowRecentAddresses(bool b);
bool showRecentAddresses() const;
void setRecentAddressConfig(KConfig *config);
KConfig *recentAddressConfig() const;
void configureCompletion();
void setIcon(const QIcon &icon, const QString &tooltip = QString());
bool canDeleteLineEdit() const;
Q_SIGNALS:
void textCompleted();
void addAddress(const QString &address);
void iconClicked();
public Q_SLOTS:
/**
* Moves the cursor at the end of the line edit.
*/
void cursorAtEnd();
/**
* Sets whether autocompletion shall be enabled.
*/
void enableCompletion(bool enable);
/**
* Reimplemented for stripping whitespace after completion
* Danger: This is _not_ virtual in the base class!
*/
void setText(const QString &text) override;
void expandGroups();
void slotEditingFinished();
void slotGroupSearchResult(KJob *job);
protected:
/**
* Reimplemented for smart insertion of email addresses.
* Features:
* - Automatically adds ',' if necessary to separate email addresses
* - Correctly decodes mailto URLs
* - Recognizes email addresses which are protected against address
* harvesters, i.e. "name at kde dot org" and "name(at)kde.org"
*/
virtual void insert(const QString &);
/**
* Reimplemented for smart insertion of pasted email addresses.
*/
virtual void paste();
/**
* Reimplemented for smart insertion with middle mouse button.
*/
void mouseReleaseEvent(QMouseEvent *) override;
#ifndef QT_NO_DRAGANDDROP
/**
* Reimplemented for smart insertion of dragged email addresses.
*/
void dropEvent(QDropEvent *) override;
#endif
/**
* Reimplemented for internal reasons.
*/
void keyPressEvent(QKeyEvent *) override;
#ifndef QT_NO_CONTEXTMENU
/**
* Reimplemented for subclass access to menu
*/
virtual QMenu *createStandardContextMenu();
/**
* Reimplemented for internal reasons. API not affected.
*
* See QLineEdit::contextMenuEvent().
*/
void contextMenuEvent(QContextMenuEvent *) override;
#endif
void insertEmails(const QStringList &emails);
void loadContacts();
private:
void groupExpandResult(KJob *job);
bool eventFilter(QObject *, QEvent *) override;
AddresseeLineEditPrivate *const d;
};
}
#endif
|