[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