[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