[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9
Maximiliano Curia
maxy at moszumanska.debian.org
Mon May 9 09:05:23 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=02cccfa
The following commit has been merged in the master branch:
commit 02cccfa5141b107787a2f5f95065b1aa1f6c2560
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
Date: Mon Jul 30 09:51:29 2012 +0200
Import class ContactGridDialog
---
KTp/Widgets/CMakeLists.txt | 2 +
KTp/Widgets/contact-grid-dialog.cpp | 134 +++++++++++++++++++++
...{add-contact-dialog.h => contact-grid-dialog.h} | 53 ++++----
3 files changed, 165 insertions(+), 24 deletions(-)
diff --git a/KTp/Widgets/CMakeLists.txt b/KTp/Widgets/CMakeLists.txt
index fe92b52..0dcf7c1 100644
--- a/KTp/Widgets/CMakeLists.txt
+++ b/KTp/Widgets/CMakeLists.txt
@@ -4,11 +4,13 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}
set (ktp_widgets_private_SRCS
contact-grid-widget.cpp
+ contact-grid-dialog.cpp
add-contact-dialog.cpp
)
set (ktp_widgets_private_HDRS
contact-grid-widget.h
+ contact-grid-dialog.h
add-contact-dialog.h
)
diff --git a/KTp/Widgets/contact-grid-dialog.cpp b/KTp/Widgets/contact-grid-dialog.cpp
new file mode 100644
index 0000000..3780bd0
--- /dev/null
+++ b/KTp/Widgets/contact-grid-dialog.cpp
@@ -0,0 +1,134 @@
+/*
+ * Contact Chooser Dialog
+ *
+ * Copyright (C) 2011 David Edmundson <kde at davidedmundson.co.uk>
+ * Copyright (C) 2012 Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
+ *
+ * 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 St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+#include "contact-grid-dialog.h"
+
+#include <KDE/KLineEdit>
+#include <KDE/KPushButton>
+#include <KDE/KLocalizedString>
+#include <KDE/KDebug>
+
+#include <TelepathyQt/AccountManager>
+#include <TelepathyQt/AccountFactory>
+#include <TelepathyQt/PendingReady>
+
+#include <KTp/debug.h>
+#include <KTp/Models/accounts-model.h>
+#include <KTp/Models/accounts-filter-model.h>
+#include <KTp/Widgets/contact-grid-widget.h>
+#include <telepathy-qt4/TelepathyQt/PendingChannelRequest>
+
+
+
+ContactGridDialog::ContactGridDialog(QWidget *parent) :
+ KDialog(parent),
+ m_accountsModel(0),
+ m_contact(0)
+{
+ resize(500,450);
+
+ Tp::AccountFactoryPtr accountFactory = Tp::AccountFactory::create(QDBusConnection::sessionBus(),
+ Tp::Features() << Tp::Account::FeatureCore
+ << Tp::Account::FeatureAvatar
+ << Tp::Account::FeatureProtocolInfo
+ << Tp::Account::FeatureProfile);
+
+ Tp::ConnectionFactoryPtr connectionFactory = Tp::ConnectionFactory::create(QDBusConnection::sessionBus(),
+ Tp::Features() << Tp::Connection::FeatureCore
+ << Tp::Connection::FeatureRosterGroups
+ << Tp::Connection::FeatureRoster
+ << Tp::Connection::FeatureSelfContact);
+
+ Tp::ContactFactoryPtr contactFactory = Tp::ContactFactory::create(Tp::Features() << Tp::Contact::FeatureAlias
+ << Tp::Contact::FeatureAvatarData
+ << Tp::Contact::FeatureSimplePresence
+ << Tp::Contact::FeatureCapabilities);
+
+ Tp::ChannelFactoryPtr channelFactory = Tp::ChannelFactory::create(QDBusConnection::sessionBus());
+
+ m_accountManager = Tp::AccountManager::create(QDBusConnection::sessionBus(),
+ accountFactory,
+ connectionFactory,
+ channelFactory,
+ contactFactory);
+
+ m_accountsModel = new AccountsModel(this);
+ connect(m_accountManager->becomeReady(), SIGNAL(finished(Tp::PendingOperation*)), SLOT(onAccountManagerReady()));
+
+
+ m_contactGridWidget = new KTp::ContactGridWidget(m_accountsModel, this);
+ m_contactGridWidget->contactFilterLineEdit()->setClickMessage(i18n("Search in Contacts..."));
+ m_contactGridWidget->filter()->setPresenceTypeFilterFlags(AccountsFilterModel::ShowOnlyConnected);
+// m_contactGridWidget->filter()->setCapabilityFilterFlags(AccountsFilterModel::FilterBySSHContactCapability);
+ setMainWidget(m_contactGridWidget);
+
+ connect(m_contactGridWidget,
+ SIGNAL(selectionChanged(Tp::AccountPtr,Tp::ContactPtr)),
+ SLOT(onChanged()));
+
+ button(KDialog::Ok)->setDisabled(true);
+
+ connect(this, SIGNAL(okClicked()), SLOT(onOkClicked()));
+ connect(this, SIGNAL(rejected()), SLOT(close()));
+}
+
+Tp::AccountPtr ContactGridDialog::account()
+{
+ return m_account;
+}
+
+Tp::ContactPtr ContactGridDialog::contact()
+{
+ return m_contact;
+}
+
+void ContactGridDialog::onAccountManagerReady()
+{
+ kDebug() << "Account manager is ready";
+ m_accountsModel->setAccountManager(m_accountManager);
+}
+
+void ContactGridDialog::onOkClicked()
+{
+ // don't do anytghing if no contact has been selected
+ if (!m_contactGridWidget->hasSelection()) {
+ // show message box?
+ return;
+ }
+
+ m_contact = m_contactGridWidget->selectedContact();
+ m_account = m_contactGridWidget->selectedAccount();
+
+ if (m_account.isNull()) {
+ kWarning() << "Account is NULL";
+ } else if (m_contact.isNull()) {
+ kWarning() << "Contact is NULL";
+ } else {
+ kDebug() << "Account is: " << m_account->displayName();
+ kDebug() << "Contact is: " << m_contact->alias();
+ }
+}
+
+void ContactGridDialog::onChanged()
+{
+ button(KDialog::Ok)->setEnabled(m_contactGridWidget->hasSelection());
+}
diff --git a/KTp/Widgets/add-contact-dialog.h b/KTp/Widgets/contact-grid-dialog.h
similarity index 53%
copy from KTp/Widgets/add-contact-dialog.h
copy to KTp/Widgets/contact-grid-dialog.h
index a32633b..2c26fb9 100644
--- a/KTp/Widgets/add-contact-dialog.h
+++ b/KTp/Widgets/contact-grid-dialog.h
@@ -1,8 +1,8 @@
/*
- * Add contact dialog
+ * Contact Chooser Dialog
*
* Copyright (C) 2011 David Edmundson <kde at davidedmundson.co.uk>
- * Copyright (C) 2012 George Kiagiadakis <kiagiadakis.george at gmail.com>
+ * Copyright (C) 2012 Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,45 +19,50 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef ADDCONTACTDIALOG_H
-#define ADDCONTACTDIALOG_H
-#include <KDialog>
+#ifndef CONTACT_GRID_DIALOG_H
+#define CONTACT_GRID_DIALOG_H
+#include <KDialog>
#include <TelepathyQt/Types>
-
-#include <KTp/ktp-export.h>
+#include <TelepathyQt/AccountManager>
+#include <TelepathyQt/Account>
+#include <TelepathyQt/Contact>
namespace Tp {
- class PendingOperation;
+class PendingOperation;
+}
+
+namespace KTp {
+class ContactGridWidget;
}
+
class AccountsModel;
+class QTcpSocket;
-namespace KTp
-{
-class KTP_EXPORT AddContactDialog : public KDialog
+class ContactGridDialog : public KDialog
{
Q_OBJECT
+ Q_DISABLE_COPY(ContactGridDialog)
public:
- explicit AddContactDialog(AccountsModel* accountModel, QWidget *parent = 0);
- virtual ~AddContactDialog();
+ ContactGridDialog(QWidget *parent);
- virtual void accept();
-
-protected:
- virtual void closeEvent(QCloseEvent *e);
+ Tp::AccountPtr account();
+ Tp::ContactPtr contact();
private Q_SLOTS:
- KTP_NO_EXPORT void _k_onContactsForIdentifiersFinished(Tp::PendingOperation *op);
- KTP_NO_EXPORT void _k_onRequestPresenceSubscriptionFinished(Tp::PendingOperation *op);
+ void onAccountManagerReady();
+ void onOkClicked();
+ void onChanged();
private:
- KTP_NO_EXPORT void setInProgress(bool inProgress);
+ Tp::AccountManagerPtr m_accountManager;
+ AccountsModel *m_accountsModel;
+ KTp::ContactGridWidget *m_contactGridWidget;
+ Tp::AccountPtr m_account;
+ Tp::ContactPtr m_contact;
- struct Private;
- Private * const d;
};
-}
-#endif // ADDCONTACTDIALOG_H
+#endif // CONTACT_GRID_DIALOG_H
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list