[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:11:23 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=660f4c1
The following commit has been merged in the master branch:
commit 660f4c1f3426415fcc8988d13ac3041d01fd3c95
Author: Dan Vrátil <dvratil at redhat.com>
Date: Tue Oct 2 23:49:12 2012 +0200
Add 'Open Log Viewer...' action to contact context menu
REVIEW: 106688
---
CMakeLists.txt | 4 ++
cmake/modules/FindGIO.cmake | 71 ++++++++++++++++++++++++++++
cmake/modules/FindGObject.cmake | 75 ++++++++++++++++++++++++++++++
cmake/modules/FindQtGLib.cmake | 46 ++++++++++++++++++
cmake/modules/FindTelepathyGlib.cmake | 54 +++++++++++++++++++++
cmake/modules/FindTelepathyLogger.cmake | 53 +++++++++++++++++++++
cmake/modules/FindTelepathyLoggerQt4.cmake | 49 +++++++++++++++++++
context-menu.cpp | 41 +++++++++++++++-
context-menu.h | 4 ++
9 files changed, 395 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7cb36cf..b89e0c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,15 +10,18 @@ set(KDE_MIN_VERSION "4.4.75")
find_package (KDE4 4.4.75 REQUIRED)
find_package (TelepathyQt4 0.9.3 REQUIRED)
find_package (KTp REQUIRED)
+find_package (TelepathyLoggerQt4 REQUIRED)
include (KDE4Defaults)
include (MacroLibrary)
add_definitions (${KDE4_DEFINITIONS}
+ ${TELEPATHY_LOGGER_QT4_DEFINITIONS}
)
include_directories (${KDE4_INCLUDES}
${TELEPATHY_QT4_INCLUDE_DIR}
+ ${TELEPATHY_LOGGER_QT4_INCLUDE_DIRS}
${KTP_INCLUDE_DIR}
)
@@ -69,6 +72,7 @@ target_link_libraries (ktp-contactlist
${KDE4_KDEUI_LIBS}
${KDE4_KIO_LIBS}
${KDE4_KCMUTILS_LIBS}
+ ${TELEPATHY_LOGGER_QT4_LIBRARIES}
)
# Install:
diff --git a/cmake/modules/FindGIO.cmake b/cmake/modules/FindGIO.cmake
new file mode 100644
index 0000000..4c570b7
--- /dev/null
+++ b/cmake/modules/FindGIO.cmake
@@ -0,0 +1,71 @@
+# - Try to find the GIO libraries
+# Once done this will define
+#
+# GIO_FOUND - system has GIO
+# GIO_INCLUDE_DIR - the GIO include directory
+# GIO_LIBRARIES - GIO library
+#
+# Copyright (c) 2010 Dario Freddi <drf at kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+if(GIO_INCLUDE_DIR AND GIO_LIBRARIES)
+ # Already in cache, be silent
+ set(GIO_FIND_QUIETLY TRUE)
+endif(GIO_INCLUDE_DIR AND GIO_LIBRARIES)
+
+if (NOT WIN32)
+ include(UsePkgConfig)
+ pkgconfig(gio-2.0 _LibGIOIncDir _LibGIOLinkDir _LibGIOLinkFlags _LibGIOCflags)
+endif(NOT WIN32)
+
+MESSAGE(STATUS "gio include dir: ${_LibGIOIncDir}")
+
+# first try without default paths to respect PKG_CONFIG_PATH
+
+find_path(GIO_MAIN_INCLUDE_DIR glib.h
+ PATH_SUFFIXES glib-2.0
+ PATHS ${_LibGIOIncDir}
+ NO_DEFAULT_PATH)
+
+find_path(GIO_MAIN_INCLUDE_DIR glib.h
+ PATH_SUFFIXES glib-2.0
+ PATHS ${_LibGIOIncDir} )
+
+MESSAGE(STATUS "found gio main include dir: ${GIO_MAIN_INCLUDE_DIR}")
+
+# search the glibconfig.h include dir under the same root where the library is found
+find_library(GIO_LIBRARIES
+ NAMES gio-2.0
+ PATHS ${_LibGIOLinkDir}
+ NO_DEFAULT_PATH)
+
+find_library(GIO_LIBRARIES
+ NAMES gio-2.0
+ PATHS ${_LibGIOLinkDir})
+
+
+get_filename_component(GIOLibDir "${GIO_LIBRARIES}" PATH)
+
+find_path(GIO_INTERNAL_INCLUDE_DIR glibconfig.h
+ PATH_SUFFIXES glib-2.0/include
+ PATHS ${_LibGIOIncDir} "${GIOLibDir}" ${CMAKE_SYSTEM_LIBRARY_PATH}
+ NO_DEFAULT_PATH)
+
+find_path(GIO_INTERNAL_INCLUDE_DIR glibconfig.h
+ PATH_SUFFIXES glib-2.0/include
+ PATHS ${_LibGIOIncDir} "${GIOLibDir}" ${CMAKE_SYSTEM_LIBRARY_PATH})
+
+set(GIO_INCLUDE_DIR "${GIO_MAIN_INCLUDE_DIR}")
+
+# not sure if this include dir is optional or required
+# for now it is optional
+if(GIO_INTERNAL_INCLUDE_DIR)
+ set(GIO_INCLUDE_DIR ${GIO_INCLUDE_DIR} "${GIO_INTERNAL_INCLUDE_DIR}")
+endif(GIO_INTERNAL_INCLUDE_DIR)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(GIO DEFAULT_MSG GIO_LIBRARIES GIO_MAIN_INCLUDE_DIR)
+
+mark_as_advanced(GIO_INCLUDE_DIR GIO_LIBRARIES)
diff --git a/cmake/modules/FindGObject.cmake b/cmake/modules/FindGObject.cmake
new file mode 100644
index 0000000..1507b43
--- /dev/null
+++ b/cmake/modules/FindGObject.cmake
@@ -0,0 +1,75 @@
+# - Try to find GObject
+# Once done this will define
+#
+# GOBJECT_FOUND - system has GObject
+# GOBJECT_INCLUDE_DIR - the GObject include directory
+# GOBJECT_LIBRARIES - the libraries needed to use GObject
+# GOBJECT_DEFINITIONS - Compiler switches required for using GObject
+
+# Copyright (c) 2008 Helio Chissini de Castro, <helio at kde.org>
+# (c)2006, Tim Beaulen <tbscope at gmail.com>
+
+
+IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+ # in cache already
+ SET(GObject_FIND_QUIETLY TRUE)
+ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+ SET(GObject_FIND_QUIETLY FALSE)
+ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+
+IF (NOT WIN32)
+ FIND_PACKAGE(PkgConfig REQUIRED)
+ # use pkg-config to get the directories and then use these values
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+ PKG_CHECK_MODULES(PKG_GOBJECT2 REQUIRED gobject-2.0)
+ SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS})
+ENDIF (NOT WIN32)
+
+FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h
+ PATHS
+ ${PKG_GOBJECT2_INCLUDE_DIRS}
+ /usr/include/glib-2.0/
+ PATH_SUFFIXES glib-2.0
+ )
+
+FIND_LIBRARY(_GObjectLibs NAMES gobject-2.0
+ PATHS
+ ${PKG_GOBJECT2_LIBRARY_DIRS}
+ )
+FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0
+ PATHS
+ ${PKG_GOBJECT2_LIBRARY_DIRS}
+ )
+FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0
+ PATHS
+ ${PKG_GOBJECT2_LIBRARY_DIRS}
+ )
+FIND_LIBRARY(_GLibs NAMES glib-2.0
+ PATHS
+ ${PKG_GOBJECT2_LIBRARY_DIRS}
+ )
+
+IF (WIN32)
+SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs})
+ELSE (WIN32)
+SET (GOBJECT_LIBRARIES ${PKG_GOBJECT2_LIBRARIES})
+ENDIF (WIN32)
+
+IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+ SET(GOBJECT_FOUND TRUE)
+ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+ SET(GOBJECT_FOUND FALSE)
+ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES)
+
+IF (GOBJECT_FOUND)
+ IF (NOT GObject_FIND_QUIETLY)
+ MESSAGE(STATUS "Found GObject libraries: ${GOBJECT_LIBRARIES}")
+ MESSAGE(STATUS "Found GObject includes : ${GOBJECT_INCLUDE_DIR}")
+ ENDIF (NOT GObject_FIND_QUIETLY)
+ELSE (GOBJECT_FOUND)
+ IF (GObject_FIND_REQUIRED)
+ MESSAGE(STATUS "Could NOT find GObject")
+ ENDIF(GObject_FIND_REQUIRED)
+ENDIF (GOBJECT_FOUND)
+
+MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES)
diff --git a/cmake/modules/FindQtGLib.cmake b/cmake/modules/FindQtGLib.cmake
new file mode 100644
index 0000000..0713164
--- /dev/null
+++ b/cmake/modules/FindQtGLib.cmake
@@ -0,0 +1,46 @@
+# - Try to find QtGLib
+# Once done this will define
+#
+# QTGLIB_FOUND - system has QtGLib
+# QTGLIB_INCLUDE_DIR - the QtGLib include directory
+# QTGLIB_LIBRARIES - the libraries needed to use QtGLib
+# QTGLIB_DEFINITIONS - Compiler switches required for using QtGLib
+
+# Copyright (c) 2011 Collabora Ltd <http://www.collabora.co.uk>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+
+if (QTGLIB_INCLUDE_DIR AND QTGLIB_LIBRARIES)
+ # in cache already
+ set(QtGLib_FIND_QUIETLY TRUE)
+else (QTGLIB_INCLUDE_DIR AND QTGLIB_LIBRARIES)
+ set(QtGLib_FIND_QUIETLY FALSE)
+endif (QTGLIB_INCLUDE_DIR AND QTGLIB_LIBRARIES)
+
+if (NOT WIN32)
+ # use pkg-config to get the directories and then use these values
+ # in the find_path() and find_library() calls
+ find_package(PkgConfig)
+ if (QTGLIB_MIN_VERSION)
+ PKG_CHECK_MODULES(PC_QTGLIB QtGLib-2.0>=${QTGLIB_MIN_VERSION})
+ else (QTGLIB_MIN_VERSION)
+ PKG_CHECK_MODULES(PC_QTGLIB QtGLib-2.0)
+ endif (QTGLIB_MIN_VERSION)
+ set(QTGLIB_DEFINITIONS ${PC_QTGLIB_CFLAGS_OTHER})
+endif (NOT WIN32)
+
+find_path(QTGLIB_INCLUDE_DIR
+ NAMES QGlib/Object
+ PATHS ${PC_QTGLIB_INCLUDEDIR} ${PC_QTGLIB_INCLUDE_DIRS}
+ PATH_SUFFIXES QtGStreamer
+ )
+
+find_library(QTGLIB_LIBRARIES
+ NAMES QtGLib-2.0
+ PATHS ${PC_QTGLIB_LIBDIR} ${PC_QTGLIB_LIBRARY_DIRS}
+ )
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(QtGLib-2.0 DEFAULT_MSG QTGLIB_LIBRARIES QTGLIB_INCLUDE_DIR)
+
+mark_as_advanced(QTGLIB_INCLUDE_DIR QTGLIB_LIBRARIES)
diff --git a/cmake/modules/FindTelepathyGlib.cmake b/cmake/modules/FindTelepathyGlib.cmake
new file mode 100644
index 0000000..8728dab
--- /dev/null
+++ b/cmake/modules/FindTelepathyGlib.cmake
@@ -0,0 +1,54 @@
+# - Try to find Telepathy-Glib
+# Once done this will define
+#
+# TELEPATHY_GLIB_FOUND - system has Telepathy-Glib
+# TELEPATHY_GLIB_INCLUDE_DIR - the Telepathy-Glib include directory
+# TELEPATHY_GLIB_LIBRARIES - the libraries needed to use Telepathy-Glib
+# TELEPATHY_GLIB_DEFINITIONS - Compiler switches required for using Telepathy-Glib
+
+# Copyright (c) 2010, Dario Freddi <dario.freddi at collabora.co.uk>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+
+if (TELEPATHY_GLIB_INCLUDE_DIR AND TELEPATHY_GLIB_LIBRARIES)
+ # in cache already
+ set(TELEPATHYGLIB_FIND_QUIETLY TRUE)
+else (TELEPATHY_GLIB_INCLUDE_DIR AND TELEPATHY_GLIB_LIBRARIES)
+ set(TELEPATHYGLIB_FIND_QUIETLY FALSE)
+endif (TELEPATHY_GLIB_INCLUDE_DIR AND TELEPATHY_GLIB_LIBRARIES)
+
+if (NOT WIN32)
+ # use pkg-config to get the directories and then use these values
+ # in the find_path() and find_library() calls
+ find_package(PkgConfig)
+ if (TELEPATHY_GLIB_MIN_VERSION)
+ PKG_CHECK_MODULES(PC_TELEPATHY_GLIB telepathy-glib>=${TELEPATHY_GLIB_MIN_VERSION})
+ else (TELEPATHY_GLIB_MIN_VERSION)
+ PKG_CHECK_MODULES(PC_TELEPATHY_GLIB telepathy-glib)
+ endif (TELEPATHY_GLIB_MIN_VERSION)
+ set(TELEPATHY_GLIB_DEFINITIONS ${PC_TELEPATHY_GLIB_CFLAGS_OTHER})
+endif (NOT WIN32)
+
+if (TELEPATHY_GLIB_MIN_VERSION AND PKG_CONFIG_FOUND AND NOT PC_TELEPATHY_GLIB_FOUND)
+ message(STATUS "Telepathy-glib not found or its version is < ${TELEPATHY_GLIB_MIN_VERSION}")
+else (TELEPATHY_GLIB_MIN_VERSION AND PKG_CONFIG_FOUND AND NOT PC_TELEPATHY_GLIB_FOUND)
+ find_path(TELEPATHY_GLIB_INCLUDE_DIR telepathy-glib/client.h
+ PATHS
+ ${PC_TELEPATHY_GLIB_INCLUDEDIR}
+ ${PC_TELEPATHY_GLIB_INCLUDE_DIRS}
+ PATH_SUFFIXES telepathy-1.0
+ )
+
+ find_library(TELEPATHY_GLIB_LIBRARIES NAMES telepathy-glib
+ PATHS
+ ${PC_TELEPATHY_GLIB_LIBDIR}
+ ${PC_TELEPATHY_GLIB_LIBRARY_DIRS}
+ )
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(TelepathyGlib DEFAULT_MSG TELEPATHY_GLIB_LIBRARIES
+ TELEPATHY_GLIB_INCLUDE_DIR)
+
+ mark_as_advanced(TELEPATHY_GLIB_INCLUDE_DIR TELEPATHY_GLIB_LIBRARIES)
+
+endif (TELEPATHY_GLIB_MIN_VERSION AND PKG_CONFIG_FOUND AND NOT PC_TELEPATHY_GLIB_FOUND)
diff --git a/cmake/modules/FindTelepathyLogger.cmake b/cmake/modules/FindTelepathyLogger.cmake
new file mode 100644
index 0000000..19de2e3
--- /dev/null
+++ b/cmake/modules/FindTelepathyLogger.cmake
@@ -0,0 +1,53 @@
+# - Try to find Telepathy-Logger
+# Once done this will define
+#
+# TELEPATHY_LOGGER_FOUND - system has Telepathy-Logger
+# TELEPATHY_LOGGER_INCLUDE_DIR - the Telepathy-Logger include directory
+# TELEPATHY_LOGGER_LIBRARIES - the libraries needed to use Telepathy-Logger
+# TELEPATHY_LOGGER_DEFINITIONS - Compiler switches required for using Telepathy-Logger
+
+# Copyright (c) 2011 Collabora Ltd <http://www.collabora.co.uk>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+
+if (TELEPATHY_LOGGER_INCLUDE_DIR AND TELEPATHY_LOGGER_LIBRARIES)
+ # in cache already
+ set(TELEPATHYLOGGER_FIND_QUIETLY TRUE)
+else (TELEPATHY_LOGGER_INCLUDE_DIR AND TELEPATHY_LOGGER_LIBRARIES)
+ set(TELEPATHYLOGGER_FIND_QUIETLY FALSE)
+endif (TELEPATHY_LOGGER_INCLUDE_DIR AND TELEPATHY_LOGGER_LIBRARIES)
+
+if (NOT WIN32)
+ # use pkg-config to get the directories and then use these values
+ # in the find_path() and find_library() calls
+ find_package(PkgConfig)
+ if (TELEPATHY_LOGGER_MIN_VERSION)
+ PKG_CHECK_MODULES(PC_TELEPATHY_LOGGER telepathy-logger-0.2>=${TELEPATHY_LOGGER_MIN_VERSION})
+ else (TELEPATHY_LOGGER_MIN_VERSION)
+ PKG_CHECK_MODULES(PC_TELEPATHY_LOGGER telepathy-logger-0.2)
+ endif (TELEPATHY_LOGGER_MIN_VERSION)
+ set(TELEPATHY_LOGGER_DEFINITIONS ${PC_TELEPATHY_LOGGER_CFLAGS_OTHER})
+endif (NOT WIN32)
+
+if (TELEPATHY_LOGGER_MIN_VERSION AND PKG_CONFIG_FOUND AND NOT PC_TELEPATHY_LOGGER_FOUND)
+ message(STATUS "Telepathy-logger not found or its version is < ${TELEPATHY_LOGGER_MIN_VERSION}")
+else (TELEPATHY_LOGGER_MIN_VERSION AND PKG_CONFIG_FOUND AND NOT PC_TELEPATHY_LOGGER_FOUND)
+ find_path(TELEPATHY_LOGGER_INCLUDE_DIR telepathy-logger/log-manager.h
+ PATHS
+ ${PC_TELEPATHY_LOGGER_INCLUDEDIR}
+ ${PC_TELEPATHY_LOGGER_INCLUDE_DIRS}
+ )
+
+ find_library(TELEPATHY_LOGGER_LIBRARIES NAMES telepathy-logger
+ PATHS
+ ${PC_TELEPATHY_LOGGER_LIBDIR}
+ ${PC_TELEPATHY_LOGGER_LIBRARY_DIRS}
+ )
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(TelepathyLogger DEFAULT_MSG TELEPATHY_LOGGER_LIBRARIES
+ TELEPATHY_LOGGER_INCLUDE_DIR)
+
+ mark_as_advanced(TELEPATHY_LOGGER_INCLUDE_DIR TELEPATHY_LOGGER_LIBRARIES)
+
+endif (TELEPATHY_LOGGER_MIN_VERSION AND PKG_CONFIG_FOUND AND NOT PC_TELEPATHY_LOGGER_FOUND)
diff --git a/cmake/modules/FindTelepathyLoggerQt4.cmake b/cmake/modules/FindTelepathyLoggerQt4.cmake
new file mode 100644
index 0000000..858a1d7
--- /dev/null
+++ b/cmake/modules/FindTelepathyLoggerQt4.cmake
@@ -0,0 +1,49 @@
+# - Try to find TelepathyLoggerQt4
+# Once done this will define
+# TELEPATHY_LOGGER_QT4_FOUND - System has TelepathyLoggerQt4
+# TELEPATHY_LOGGER_QT4_INCLUDE_DIRS - The TelepathyLoggerQt4 include directories
+# TELEPATHY_LOGGER_QT4_LIBRARIES - The libraries needed to use TelepathyLoggerQt4
+# TELEPATHY_LOGGER_QT4_DEFINITIONS - Compiler switches required for using TelepathyLoggerQt4
+
+# Copyright (c) 2010 Dominik Schmidt <kde at dominik-schmidt.de>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+set(TELEPATHY_LOGGER_QT4_DEFINITIONS "-fexceptions")
+
+find_path(TELEPATHY_LOGGER_QT4_INCLUDE_DIR telepathy-logger-0.2/TelepathyLoggerQt4/init.h)
+
+find_library(TELEPATHY_LOGGER_QT4_LIBRARY NAMES libtelepathy-logger-qt4 telepathy-logger-qt4)
+
+set(TELEPATHY_LOGGER_QT4_LIBRARIES ${TELEPATHY_LOGGER_QT4_LIBRARY} )
+set(TELEPATHY_LOGGER_QT4_INCLUDE_DIRS ${TELEPATHY_LOGGER_QT4_INCLUDE_DIR} ${TELEPATHY_LOGGER_QT4_INCLUDE_DIR}/telepathy-logger-0.2 )
+
+find_package(TelepathyLogger)
+find_package(TelepathyGlib)
+find_package(GObject)
+find_package(GIO)
+find_package(GLIB2)
+find_package(QtGLib)
+
+list(APPEND TELEPATHY_LOGGER_QT4_LIBRARIES
+ ${TELEPATHY_LOGGER_LIBRARIES}
+ ${TELEPATHY_GLIB_LIBRARIES}
+ ${GLIB2_LIBRARIES}
+ ${GOBJECT_LIBRARIES}
+ ${QTGLIB_LIBRARIES}
+ ${GIO_LIBRARIES}
+)
+
+list(APPEND TELEPATHY_LOGGER_QT4_INCLUDE_DIRS
+ ${GLIB2_INCLUDE_DIR}
+ ${QTGLIB_INCLUDE_DIR}
+)
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(TELEPATHY_LOGGER_QT4 DEFAULT_MSG
+ TELEPATHY_LOGGER_QT4_LIBRARY TELEPATHY_LOGGER_QT4_INCLUDE_DIR)
+
+mark_as_advanced(TELEPATHY_LOGGER_QT4_INCLUDE_DIRS TELEPATHY_LOGGER_QT4_LIBRARY )
diff --git a/context-menu.cpp b/context-menu.cpp
index 4d30c78..fa19283 100644
--- a/context-menu.cpp
+++ b/context-menu.cpp
@@ -38,6 +38,10 @@
#include <TelepathyQt/ContactManager>
+#include <TelepathyLoggerQt4/Entity>
+#include <TelepathyLoggerQt4/LogManager>
+#include <TelepathyLoggerQt4/Init>
+
#include "dialogs/remove-contact-dialog.h"
#include "dialogs/contact-info.h"
@@ -48,6 +52,9 @@ ContextMenu::ContextMenu(ContactListWidget *mainWidget)
: QObject(mainWidget)
{
m_mainWidget = mainWidget;
+
+ Tpl::init();
+ m_logManager = Tpl::LogManager::instance();
}
@@ -59,6 +66,7 @@ ContextMenu::~ContextMenu()
void ContextMenu::setAccountManager(const Tp::AccountManagerPtr &accountManager)
{
m_accountManager = accountManager;
+ m_logManager->setAccountManagerPtr(accountManager);
}
KMenu* ContextMenu::contactContextMenu(const QModelIndex &index)
@@ -147,6 +155,17 @@ KMenu* ContextMenu::contactContextMenu(const QModelIndex &index)
action->setEnabled(true);
}
+ action = menu->addAction(i18n("Open Log Viewer..."));
+ action->setIcon(KIcon("documentation"));
+ action->setDisabled(true);
+ connect(action, SIGNAL(triggered(bool)),
+ SLOT(onOpenLogViewerTriggered()));
+
+ Tpl::EntityPtr entity = Tpl::Entity::create(contact, Tpl::EntityTypeContact);
+ if (m_logManager->exists(account, entity, Tpl::EventTypeMaskText)) {
+ action->setEnabled(true);
+ }
+
menu->addSeparator();
action = menu->addAction(KIcon("dialog-information"), i18n("Configure Notifications ..."));
action->setEnabled(true);
@@ -218,7 +237,7 @@ KMenu* ContextMenu::contactContextMenu(const QModelIndex &index)
menu->addSeparator();
-
+
if (contact->manager()->canRequestPresenceSubscription()) {
if (contact->subscriptionState() != Tp::Contact::PresenceStateYes) {
action = menu->addAction(i18n("Re-request Contact Authorization"));
@@ -233,7 +252,7 @@ KMenu* ContextMenu::contactContextMenu(const QModelIndex &index)
}
action = menu->addSeparator(); //prevent two seperators in a row
-
+
if (contact->isBlocked()) {
action = menu->addAction(i18n("Unblock Contact"));
connect(action, SIGNAL(triggered(bool)), SLOT(onUnblockContactTriggered()));
@@ -391,6 +410,24 @@ void ContextMenu::onStartDesktopSharingTriggered()
}
}
+void ContextMenu::onOpenLogViewerTriggered()
+{
+ if (!m_currentIndex.isValid()) {
+ kDebug() << "Invalid index provided.";
+ return;
+ }
+
+ ContactModelItem *item = m_currentIndex.data(AccountsModel::ItemRole).value<ContactModelItem*>();
+ Q_ASSERT(item);
+
+ Tp::ContactPtr contact = item->contact();
+ Tp::AccountPtr account = m_mainWidget->d_ptr->model->accountForContactItem(item);
+
+ /* Use "--" so that KCmdLineArgs does not parse UIDs starting with "-" as arguments */
+ KToolInvocation::kdeinitExec(QLatin1String("ktp-log-viewer"),
+ QStringList() << QLatin1String("--") << account->uniqueIdentifier() << contact->id());
+}
+
void ContextMenu::onUnblockContactTriggered()
{
ContactModelItem *item = m_currentIndex.data(AccountsModel::ItemRole).value<ContactModelItem*>();
diff --git a/context-menu.h b/context-menu.h
index 77a1111..55d20bd 100644
--- a/context-menu.h
+++ b/context-menu.h
@@ -26,6 +26,8 @@
#include <TelepathyQt/Types>
+#include <TelepathyLoggerQt4/LogManager>
+
#include "contact-list-widget.h"
class AccountsModel;
@@ -52,6 +54,7 @@ private Q_SLOTS:
void onStartVideoChatTriggered();
void onStartFileTransferTriggered();
void onStartDesktopSharingTriggered();
+ void onOpenLogViewerTriggered();
void onUnblockContactTriggered();
void onRemoveContactFromGroupTriggered();
void onCreateNewGroupTriggered();
@@ -68,6 +71,7 @@ private:
ContactListWidget *m_mainWidget;
QModelIndex m_currentIndex;
Tp::AccountManagerPtr m_accountManager;
+ Tpl::LogManagerPtr m_logManager;
};
#endif // CONTEXT_MENU_H
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list