Drop kpeoplehelper and use new role from KPeople

Depends on https://phabricator.kde.org/D22425
This commit is contained in:
Jonah Brüchert 2019-07-13 08:27:51 +02:00 committed by Bhushan Shah
parent f75fed80f3
commit 07735e696b
8 changed files with 4 additions and 207 deletions

View file

@ -5,4 +5,3 @@ install(FILES package/metadata.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} RENAM
include_directories(${TELEPATHY_QT5_INCLUDE_DIR}) include_directories(${TELEPATHY_QT5_INCLUDE_DIR})
add_subdirectory(src) add_subdirectory(src)
add_subdirectory(plugin)

View file

@ -23,14 +23,13 @@ import QtQuick.Layouts 1.1
import org.kde.kirigami 2.7 as Kirigami import org.kde.kirigami 2.7 as Kirigami
import org.kde.people 1.0 as KPeople import org.kde.people 1.0 as KPeople
import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.private.kpeoplehelper 1.0
Item { Item {
Controls.Label { Controls.Label {
anchors.centerIn: parent anchors.centerIn: parent
text: i18n("No contacts") text: i18n("No contacts")
visible: contactsModel.count == 0 visible: contactsModel.count === 0
} }
ColumnLayout { ColumnLayout {
@ -46,7 +45,7 @@ Item {
Kirigami.Action { Kirigami.Action {
icon.name: "edit-clear" icon.name: "edit-clear"
onTriggered: searchField.text = "" onTriggered: searchField.text = ""
visible: searchField.text != "" visible: searchField.text !== ""
} }
] ]
} }
@ -68,7 +67,7 @@ Item {
clip: true clip: true
model: PlasmaCore.SortFilterModel { model: PlasmaCore.SortFilterModel {
sourceModel: KPeople.PersonsSortFilterProxyModel { sourceModel: KPeople.PersonsSortFilterProxyModel {
sourceModel: KPeopleHelper { sourceModel: KPeople.PersonsModel {
id: contactsModel id: contactsModel
} }
requiredProperties: "phoneNumber" requiredProperties: "phoneNumber"
@ -139,7 +138,7 @@ Item {
text: model.phoneNumber text: model.phoneNumber
elide: Text.ElideRight elide: Text.ElideRight
visible: dataLabel.text != nickLabel.text visible: dataLabel.text !== nickLabel.text
} }
} }
} }

View file

@ -1,14 +0,0 @@
set(kpeoplehelper_SRCS
kpeoplehelper.cpp
kpeoplehelperplugin.cpp
)
add_library(kpeoplehelperplugin SHARED ${kpeoplehelper_SRCS})
target_link_libraries(kpeoplehelperplugin Qt5::Core
Qt5::Qml
KF5::People
KF5::PeopleBackend)
install(TARGETS kpeoplehelperplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/private/kpeoplehelper)
install(FILES qmldir DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/private/kpeoplehelper)

View file

@ -1,60 +0,0 @@
/*
Copyright (C) 2015 Martin Klapetek <mklapetek@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "kpeoplehelper.h"
#include <KPeople/PersonsModel>
#include <KPeopleBackend/AbstractContact>
#include <QAbstractItemModel>
#include <QDebug>
KPeopleHelper::KPeopleHelper(QObject *parent)
: QIdentityProxyModel(parent)
{
m_model = new KPeople::PersonsModel(this);
setSourceModel(m_model);
}
KPeopleHelper::~KPeopleHelper()
{
delete m_model;
}
QVariant KPeopleHelper::data(const QModelIndex &index, int role) const
{
if (!m_model) {
return QVariant();
}
if (role == KPeopleHelper::PhoneNumberRole) {
return m_model->contactCustomProperty(index, KPeople::AbstractContact::PhoneNumberProperty);
}
return m_model->data(index, role);
}
QHash<int, QByteArray> KPeopleHelper::roleNames() const
{
QHash<int, QByteArray> roles = QAbstractItemModel::roleNames();
roles.insert(PersonUriRole, "personUri");
roles.insert(PersonVCardRole, "personVCard");
roles.insert(ContactsVCardRole, "contactsVCard");
roles.insert(PhoneNumberRole, "phoneNumber");
return roles;
}

View file

@ -1,60 +0,0 @@
/*
Copyright (C) 2015 Martin Klapetek <mklapetek@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef KPEOPLEHELPER_H
#define KPEOPLEHELPER_H
#include <QObject>
#include <QIdentityProxyModel>
namespace KPeople {
class PersonsModel;
}
class QAbstractItemModel;
class KPeopleHelper : public QIdentityProxyModel
{
Q_OBJECT
public:
enum Role {
FormattedNameRole = Qt::DisplayRole,//QString best name for this person
PhotoRole = Qt::DecorationRole, //QPixmap best photo for this person
PersonUriRole = Qt::UserRole, //QString ID of this person
PersonVCardRole, //AbstractContact::Ptr
ContactsVCardRole, //AbstractContact::List (FIXME or map?)
GroupsRole, ///groups QStringList
PhoneNumberRole, //QString
UserRole = Qt::UserRole + 0x1000 ///< in case it's needed to extend, use this one to start from
};
Q_ENUMS(Role)
KPeopleHelper(QObject *parent = nullptr);
~KPeopleHelper() override;
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
private:
KPeople::PersonsModel *m_model;
};
#endif // KPEOPLEHELPER_H

View file

@ -1,29 +0,0 @@
/*
Copyright (C) 2015 Martin Klapetek <mklapetek@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "kpeoplehelperplugin.h"
#include "kpeoplehelper.h"
#include <QtQml>
void KPeopleHelperPlugin::registerTypes(const char *uri)
{
Q_ASSERT(uri == QLatin1String("org.kde.plasma.private.kpeoplehelper"));
qmlRegisterType<KPeopleHelper>(uri, 1, 0, "KPeopleHelper");
}

View file

@ -1,36 +0,0 @@
/*
Copyright (C) 2015 Martin Klapetek <mklapetek@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef KPEOPLEHELPERPLUGIN_H
#define KPEOPLEHELPERPLUGIN_H
#include <QQmlExtensionPlugin>
class QQmlEngine;
class KPeopleHelperPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
public:
void registerTypes(const char *uri) override;
};
#endif // KPEOPLEHELPERPLUGIN_H

View file

@ -1,2 +0,0 @@
module org.kde.plasma.private.kpeoplehelper
plugin kpeoplehelperplugin