[SCM] ktp-text-ui packaging branch, master, updated. debian/15.12.1-1-1918-gdf4b0ec
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:24:38 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-text-ui.git;a=commitdiff;h=0b98980
The following commit has been merged in the master branch:
commit 0b9898013d18bc4c742c0dbdb89c6aee9c2948b3
Author: Ahmed I. Khalil <ahmedibrahimkhali at gmail.com>
Date: Fri May 2 16:37:33 2014 +0200
Don't disable input box when disconnected.
Instead show a KMessageWidget that will tell the user that the account is offline.
REVIEW: 117809
BUG: 320385
---
lib/chat-widget.cpp | 48 +++++++++++++++++++++++++++++++++++++++---------
lib/chat-widget.h | 3 ++-
lib/chat-widget.ui | 16 ++++++++++++++++
3 files changed, 57 insertions(+), 10 deletions(-)
diff --git a/lib/chat-widget.cpp b/lib/chat-widget.cpp
index d186cc7..bc876c7 100644
--- a/lib/chat-widget.cpp
+++ b/lib/chat-widget.cpp
@@ -44,6 +44,7 @@
#include <KMimeType>
#include <KTemporaryFile>
#include <KFileDialog>
+#include <KMessageWidget>
#include <TelepathyQt/Account>
#include <TelepathyQt/Message>
@@ -78,6 +79,7 @@ public:
fileResourceTransferMenu(0),
fileTransferMenuAction(0),
shareImageMenuAction(0),
+ messageWidgetSwitchOnlineAction(0),
logsLoaded(false),
exchangedMessagesCount(0)
{
@@ -101,6 +103,7 @@ public:
QAction *fileTransferMenuAction;
QAction *shareImageMenuAction;
QString fileToTransferPath;
+ QAction *messageWidgetSwitchOnlineAction;
ScrollbackManager *logManager;
QTimer *pausedStateTimer;
bool logsLoaded;
@@ -189,6 +192,15 @@ ChatWidget::ChatWidget(const Tp::TextChannelPtr & channel, const Tp::AccountPtr
d->ui.sendMessageBox->setContactModel(d->contactModel);
}
+ d->ui.messageWidget->setText(i18n("Your message cannot be sent because the account %1 is offline. Please try again when the account is connected again.", d->account->displayName()));
+ d->ui.messageWidget->setMessageType(KMessageWidget::Warning);
+ d->ui.messageWidget->setCloseButtonVisible(true);
+ // Hide for the first time
+ d->ui.messageWidget->hide();
+ d->messageWidgetSwitchOnlineAction = new QAction(i18n("Connect %1", d->account->displayName()), d->ui.messageWidget);
+ connect(d->messageWidgetSwitchOnlineAction, SIGNAL(triggered(bool)), d->ui.messageWidget, SLOT(animatedHide()));
+ connect(d->messageWidgetSwitchOnlineAction, SIGNAL(triggered(bool)), this, SLOT(onMessageWidgetSwitchOnlineActionTriggered()));
+
QSortFilterProxyModel *sortModel = new QSortFilterProxyModel(this);
sortModel->setSourceModel(d->contactModel);
sortModel->setSortRole(Qt::DisplayRole);
@@ -326,7 +338,6 @@ ChatSearchBar *ChatWidget::chatSearchBar() const
void ChatWidget::setChatEnabled(bool enable)
{
d->ui.contactsView->setEnabled(enable);
- d->ui.sendMessageBox->setEnabled(enable);
Q_EMIT iconChanged(icon());
}
@@ -775,15 +786,25 @@ void ChatWidget::sendMessage()
message = KTp::MessageProcessor::instance()->processOutgoingMessage(
message, d->account, d->channel).text();
- if (d->channel->supportsMessageType(Tp::ChannelTextMessageTypeAction) && message.startsWith(QLatin1String("/me "))) {
- //remove "/me " from the start of the message
- message.remove(0,4);
+ if (d->channel->isValid()) {
+ if (d->channel->supportsMessageType(Tp::ChannelTextMessageTypeAction) && message.startsWith(QLatin1String("/me "))) {
+ //remove "/me " from the start of the message
+ message.remove(0,4);
- d->channel->send(message, Tp::ChannelTextMessageTypeAction);
- } else {
- d->channel->send(message);
- }
- d->ui.sendMessageBox->clear();
+ d->channel->send(message, Tp::ChannelTextMessageTypeAction);
+ } else {
+ d->channel->send(message);
+ }
+ d->ui.sendMessageBox->clear();
+ } else {
+ d->ui.messageWidget->removeAction(d->messageWidgetSwitchOnlineAction);
+ if (d->account->requestedPresence().type() == Tp::ConnectionPresenceTypeOffline) {
+ d->ui.messageWidget->addAction(d->messageWidgetSwitchOnlineAction);
+ }
+
+ d->ui.messageWidget->animatedShow();
+
+ }
}
}
@@ -1195,6 +1216,10 @@ void ChatWidget::currentPresenceChanged(const Tp::Presence &presence)
if (presence == Tp::Presence::offline()) {
d->ui.chatArea->addStatusMessage(i18n("You are now offline"), d->yourName);
iconChanged(icon());
+ } else {
+ if (d->ui.messageWidget && d->ui.messageWidget->isVisible()) {
+ d->ui.messageWidget->animatedHide();
+ }
}
}
@@ -1237,6 +1262,11 @@ void ChatWidget::onFileTransferMenuActionTriggered()
}
}
+void ChatWidget::onMessageWidgetSwitchOnlineActionTriggered()
+{
+ d->account->setRequestedPresence(Tp::Presence::available());
+}
+
void ChatWidget::onShareImageMenuActionTriggered()
{
if (!d->fileToTransferPath.isEmpty()) {
diff --git a/lib/chat-widget.h b/lib/chat-widget.h
index 028ece4..14a35f6 100644
--- a/lib/chat-widget.h
+++ b/lib/chat-widget.h
@@ -204,9 +204,10 @@ private Q_SLOTS:
void onContactsViewContextMenuRequested(const QPoint &point);
void onFileTransferMenuActionTriggered();
- void onShareImageMenuActionTriggered();
+ void onMessageWidgetSwitchOnlineActionTriggered();
void onOpenContactChatWindowClicked();
void onShowContactDetailsClicked();
+ void onShareImageMenuActionTriggered();
void onShareProviderFinishedSuccess(ShareProvider *provider, const QString &imageUrl);
void onShareProviderFinishedFailure(ShareProvider *provider, const QString &errorMessage);
void onSendFileClicked();
diff --git a/lib/chat-widget.ui b/lib/chat-widget.ui
index 0985f9c..a891cbc 100644
--- a/lib/chat-widget.ui
+++ b/lib/chat-widget.ui
@@ -15,6 +15,16 @@
<number>0</number>
</property>
<item>
+ <widget class="KMessageWidget" name="messageWidget">
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QSplitter" name="splitter">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
@@ -91,6 +101,12 @@
<header location="global">chat-search-bar.h</header>
<container>1</container>
</customwidget>
+ <customwidget>
+ <class>KMessageWidget</class>
+ <extends>QFrame</extends>
+ <header>kmessagewidget.h</header>
+ <container>1</container>
+ </customwidget>
</customwidgets>
<resources/>
<connections/>
--
ktp-text-ui packaging
More information about the pkg-kde-commits
mailing list