[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:12:34 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=a5c5f36
The following commit has been merged in the master branch:
commit a5c5f3642030909fb1ef61edfc11cad9ed5461a3
Author: Roman Nazarenko <me at jtalk.me>
Date: Mon Feb 25 17:56:05 2013 +0000
Add KDE global menu support
Added global menu support.
Menu is not appearing in main window, so it's tiny look is not broken.
I also moved actions for menu from MainWidget constructor to class private scope, so they can be used from any method.
REVIEW: 109142
BUG: 292396
FIXED-IN: 0.6.0
DIGEST:
---
main-widget.cpp | 186 +++++++++++++++++++++++++++++++++++++-------------------
main-widget.h | 9 +++
2 files changed, 133 insertions(+), 62 deletions(-)
diff --git a/main-widget.cpp b/main-widget.cpp
index a3ea666..39442de 100644
--- a/main-widget.cpp
+++ b/main-widget.cpp
@@ -56,6 +56,7 @@
#include <KNotification>
#include <KToolInvocation>
#include <KMenuBar>
+#include <KStandardAction>
#include "ui_main-widget.h"
#include "account-buttons-panel.h"
@@ -71,7 +72,13 @@ bool kde_tp_filter_contacts_by_publication_status(const Tp::ContactPtr &contact)
}
MainWidget::MainWidget(QWidget *parent)
- : KMainWindow(parent)
+ : KMainWindow(parent),
+ m_globalMenu(NULL),
+ m_settingsDialog(NULL),
+ m_joinChatRoom(NULL),
+ m_makeCall(NULL),
+ m_contactListTypeGroup(NULL),
+ m_blockedFilterGroup(NULL)
{
Tp::registerTypes();
@@ -115,6 +122,7 @@ MainWidget::MainWidget(QWidget *parent)
KSharedConfigPtr config = KGlobal::config();
KConfigGroup guiConfigGroup(config, "GUI");
+ setupActions(guiConfigGroup);
m_toolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
@@ -122,8 +130,8 @@ MainWidget::MainWidget(QWidget *parent)
m_toolBar->addAction(m_addContactAction);
- m_groupContactsAction = new KDualAction(i18n("Contacts are shown by accounts. Click to show them in groups."),
- i18n("Contacts are shown in groups. Click to show them in accounts."),
+ m_groupContactsAction = new KDualAction(i18n("Show contacts by groups"),
+ i18n("Show contacts by accounts"),
this);
m_groupContactsAction->setActiveIcon(KIcon("user-group-properties"));
m_groupContactsAction->setInactiveIcon(KIcon("user-group-properties"));
@@ -132,8 +140,8 @@ MainWidget::MainWidget(QWidget *parent)
m_toolBar->addAction(m_groupContactsAction);
- m_showOfflineAction = new KDualAction(i18n("Offline contacts are hidden. Click to show them."),
- i18n("Offline contacts are shown. Click to hide them."),
+ m_showOfflineAction = new KDualAction(i18n("Show offline contacts"),
+ i18n("Show offline contacts"),
this);
m_showOfflineAction->setActiveIcon(KIcon("meeting-attending-tentative"));
m_showOfflineAction->setInactiveIcon(KIcon("meeting-attending-tentative"));
@@ -143,8 +151,8 @@ MainWidget::MainWidget(QWidget *parent)
m_toolBar->addAction(m_showOfflineAction);
- m_sortByPresenceAction = new KDualAction(i18n("List is sorted by name. Click to sort by presence."),
- i18n("List is sorted by presence. Click to sort by name."),
+ m_sortByPresenceAction = new KDualAction(i18n("Sorted by name"),
+ i18n("Sorted by presence"),
this);
m_sortByPresenceAction->setActiveIcon(KIcon("sort-presence"));
m_sortByPresenceAction->setInactiveIcon(KIcon("sort-name"));
@@ -168,69 +176,19 @@ MainWidget::MainWidget(QWidget *parent)
settingsButton->setPopupMode(QToolButton::InstantPopup);
KMenu *settingsButtonMenu = new KMenu(settingsButton);
- settingsButtonMenu->addAction(i18n("Instant Messaging Settings..."), m_contactsListView, SLOT(showSettingsKCM()));
+ settingsButtonMenu->addAction(m_settingsDialog);
QActionGroup *delegateTypeGroup = new QActionGroup(this);
delegateTypeGroup->setExclusive(true);
KMenu *setDelegateTypeMenu = new KMenu(settingsButtonMenu);
setDelegateTypeMenu->setTitle(i18n("Contact List Type"));
- delegateTypeGroup->addAction(setDelegateTypeMenu->addAction(i18n("Use Full List"),
- m_contactsListView, SLOT(onSwitchToFullView())));
- delegateTypeGroup->actions().last()->setCheckable(true);
-
- if (guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("full")) {
- delegateTypeGroup->actions().last()->setChecked(true);
- }
-
- delegateTypeGroup->addAction(setDelegateTypeMenu->addAction(i18n("Use Normal List"),
- m_contactsListView, SLOT(onSwitchToCompactView())));
- delegateTypeGroup->actions().last()->setCheckable(true);
-
- if (guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("normal")
- || guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("compact")) { //needed for backwards compatibility
- delegateTypeGroup->actions().last()->setChecked(true);
- }
-
- delegateTypeGroup->addAction(setDelegateTypeMenu->addAction(i18n("Use Minimalistic List"),
- m_contactsListView, SLOT(onSwitchToMiniView())));
- delegateTypeGroup->actions().last()->setCheckable(true);
-
- if (guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("mini")) {
- delegateTypeGroup->actions().last()->setChecked(true);
- }
-
+ setDelegateTypeMenu->addActions(m_contactListTypeGroup->actions());
settingsButtonMenu->addMenu(setDelegateTypeMenu);
KMenu *setBlockedFilterMenu = new KMenu(settingsButtonMenu);
setBlockedFilterMenu->setTitle(i18n("Shown Contacts"));
-
- QActionGroup *blockedFilterGroup = new QActionGroup(this);
- blockedFilterGroup->setExclusive(true);
-
- QString shownContacts = guiConfigGroup.readEntry("shown_contacts", "unblocked");
-
- blockedFilterGroup->addAction(setBlockedFilterMenu->addAction(i18n("Show all contacts"),
- m_contactsListView, SLOT(onShowAllContacts())));
- blockedFilterGroup->actions().last()->setCheckable(true);
- if (shownContacts == QLatin1String("all")) {
- blockedFilterGroup->actions().last()->setChecked(true);
- }
-
- blockedFilterGroup->addAction(setBlockedFilterMenu->addAction(i18n("Show unblocked contacts"),
- m_contactsListView, SLOT(onShowUnblockedContacts())));
- blockedFilterGroup->actions().last()->setCheckable(true);
- if (shownContacts == QLatin1String("unblocked")) {
- blockedFilterGroup->actions().last()->setChecked(true);
- }
-
- blockedFilterGroup->addAction(setBlockedFilterMenu->addAction(i18n("Show blocked contacts"),
- m_contactsListView, SLOT(onShowBlockedContacts())));
- blockedFilterGroup->actions().last()->setCheckable(true);
- if (shownContacts == QLatin1String("blocked")) {
- blockedFilterGroup->actions().last()->setChecked(true);
- }
-
+ setBlockedFilterMenu->addActions(m_blockedFilterGroup->actions());
settingsButtonMenu->addMenu(setBlockedFilterMenu);
if (guiConfigGroup.readEntry("selected_presence_chooser", "global") == QLatin1String("global")) {
@@ -241,10 +199,10 @@ MainWidget::MainWidget(QWidget *parent)
// Restore window geometry
restoreGeometry(guiConfigGroup.readEntry("window_geometry", QByteArray()));
- settingsButtonMenu->addAction(i18n("Join Chat Room..."), this, SLOT(onJoinChatRoomRequested()));
+ settingsButtonMenu->addAction(m_joinChatRoom);
if (!KStandardDirs::findExe("ktp-dialout-ui").isEmpty()) {
- settingsButtonMenu->addAction(i18n("Make a Call..."), this, SLOT(onMakeCallRequested()));
+ settingsButtonMenu->addAction(m_makeCall);
}
settingsButtonMenu->addSeparator();
@@ -307,6 +265,8 @@ MainWidget::MainWidget(QWidget *parent)
m_contactsListView->toggleGroups(useGroups);
m_contactsListView->toggleOfflineContacts(showOffline);
m_contactsListView->toggleSortByPresence(sortByPresence);
+
+ setupGlobalMenu();
}
MainWidget::~MainWidget()
@@ -546,4 +506,106 @@ void MainWidget::toggleSearchWidget(bool show)
}
}
+void MainWidget::setupGlobalMenu()
+{
+ m_globalMenu = new KMenuBar(this);
+ m_globalMenu->setVisible(false);
+
+ KMenu *contacts = new KMenu(i18n("Contacts"), m_globalMenu);
+ contacts->addAction(m_addContactAction);
+ contacts->addAction(m_joinChatRoom);
+ if (!KStandardDirs::findExe("ktp-dialout-ui").isEmpty()) {
+ contacts->addAction(m_makeCall);
+ }
+ contacts->addAction(m_settingsDialog);
+ contacts->addSeparator();
+ contacts->addAction(KStandardAction::quit(qApp, SLOT(quit()), this));
+ m_globalMenu->addMenu(contacts);
+
+ KMenu *view = new KMenu(i18n("View"), m_globalMenu);
+ view->addAction(m_groupContactsAction);
+ view->addAction(m_showOfflineAction);
+ view->addAction(m_sortByPresenceAction);
+ view->addSeparator();
+ KMenu *view_contactListTypeMenu = new KMenu(i18n("Contact List Type"), view);
+ view_contactListTypeMenu->addActions(m_contactListTypeGroup->actions());
+ view->addMenu(view_contactListTypeMenu);
+ KMenu *view_blockedFilterMenu = new KMenu(i18n("Shown Contacts"), view);
+ view_blockedFilterMenu->addActions(m_blockedFilterGroup->actions());
+ view->addMenu(view_blockedFilterMenu);
+ m_globalMenu->addMenu(view);
+
+ m_globalMenu->addMenu(helpMenu());
+}
+
+void MainWidget::setupActions(const KConfigGroup& guiConfigGroup)
+{
+ m_settingsDialog = new KAction(i18n("Settings"), this);
+ m_settingsDialog->setIcon(KIcon("configure"));
+ connect(m_settingsDialog, SIGNAL(triggered()), m_contactsListView, SLOT(showSettingsKCM()));
+
+ m_joinChatRoom = new KAction(i18n("Join Chat Room..."), this);
+ connect(m_joinChatRoom, SIGNAL(triggered()), this, SLOT(onjoinChatRoomRequested()));
+
+ m_makeCall = new KAction(i18n("Make a Call..."), this);
+ connect(m_makeCall, SIGNAL(triggered()), this, SLOT(onmakeCallRequested()));
+
+ // Setup contact list appearance
+ m_contactListTypeGroup = new QActionGroup(this);
+ m_contactListTypeGroup->setExclusive(true);
+
+ m_contactListTypeGroup->addAction(i18n("Use Full List"));
+ connect(m_contactListTypeGroup->actions().last(), SIGNAL(triggered()), m_contactsListView, SLOT(onSwitchToFullView()));
+ m_contactListTypeGroup->actions().last()->setCheckable(true);
+
+ if (guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("full")) {
+ m_contactListTypeGroup->actions().last()->setChecked(true);
+ }
+
+ m_contactListTypeGroup->addAction(i18n("Use Normal List"));
+ connect(m_contactListTypeGroup->actions().last(), SIGNAL(triggered()), m_contactsListView, SLOT(onSwitchToCompactView()));
+ m_contactListTypeGroup->actions().last()->setCheckable(true);
+
+ if (guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("normal")
+ || guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("compact")) { //needed for backwards compatibility
+ m_contactListTypeGroup->actions().last()->setChecked(true);
+ }
+
+ m_contactListTypeGroup->addAction(i18n("Use Minimalistic List"));
+ connect(m_contactListTypeGroup->actions().last(), SIGNAL(triggered()), m_contactsListView, SLOT(onSwitchToMiniView()));
+ m_contactListTypeGroup->actions().last()->setCheckable(true);
+
+ if (guiConfigGroup.readEntry("selected_delegate", "normal") == QLatin1String("mini")) {
+ m_contactListTypeGroup->actions().last()->setChecked(true);
+ }
+
+ // Setup blocked contacts filtering
+ m_blockedFilterGroup = new QActionGroup(this);
+ m_blockedFilterGroup->setExclusive(true);
+
+ QString shownContacts = guiConfigGroup.readEntry("shown_contacts", "unblocked");
+
+ m_blockedFilterGroup->addAction(i18n("Show all contacts"));
+ connect(m_blockedFilterGroup->actions().last(), SIGNAL(triggered()), m_contactsListView, SLOT(onShowAllContacts()));
+ m_blockedFilterGroup->actions().last()->setCheckable(true);
+ if (shownContacts == QLatin1String("all")) {
+ m_blockedFilterGroup->actions().last()->setChecked(true);
+ }
+
+ m_blockedFilterGroup->addAction(i18n("Show unblocked contacts"));
+ connect(m_blockedFilterGroup->actions().last(), SIGNAL(triggered()), m_contactsListView, SLOT(onShowUnblockedContacts()));
+ m_blockedFilterGroup->actions().last()->setCheckable(true);
+ if (shownContacts == QLatin1String("unblocked")) {
+ m_blockedFilterGroup->actions().last()->setChecked(true);
+ }
+
+ m_blockedFilterGroup->addAction(i18n("Show blocked contacts"));
+ connect(m_blockedFilterGroup->actions().last(), SIGNAL(triggered()), m_contactsListView, SLOT(onShowBlockedContacts()));
+ m_blockedFilterGroup->actions().last()->setCheckable(true);
+ if (shownContacts == QLatin1String("blocked")) {
+ m_blockedFilterGroup->actions().last()->setChecked(true);
+ }
+
+}
+
#include "main-widget.moc"
diff --git a/main-widget.h b/main-widget.h
index d14a669..be7004d 100644
--- a/main-widget.h
+++ b/main-widget.h
@@ -91,6 +91,15 @@ private:
///Was moved to telepathy-kded-module
//void handleConnectionError(const Tp::AccountPtr &account); /** handle connection errors for given account. This method provides visual notification */
void closeEvent(QCloseEvent *e);
+ void setupGlobalMenu();
+ void setupActions(const KConfigGroup&);
+
+ KMenuBar *m_globalMenu;
+ KAction *m_settingsDialog;
+ KAction *m_joinChatRoom;
+ KAction *m_makeCall;
+ QActionGroup *m_contactListTypeGroup;
+ QActionGroup *m_blockedFilterGroup;
KMenu *m_accountMenu;
KSelectAction *m_setStatusAction;
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list