[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdenetwork/kopete/plugins/otr
From:       Michael Zanetti <michael_zanetti () gmx ! net>
Date:       2009-10-09 18:35:07
Message-ID: 1255113307.721969.28443.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1033221 by mzanetti:

Add notification on incoming authentication challenge if view is not active
BUG: 204600



 M  +25 -0     authenticationwizard.cpp  
 M  +1 -0      authenticationwizard.h  
 M  +2 -2      otrlchatinterface.cpp  


--- trunk/KDE/kdenetwork/kopete/plugins/otr/authenticationwizard.cpp \
#1033220:1033221 @@ -27,9 +27,12 @@
 #include <kdebug.h>
 #include <klocale.h>
 #include <kopetecontact.h>
+#include <knotification.h>
+#include <kiconloader.h>
 
 #include <QGroupBox>
 #include <QProgressBar>
+#include <kopeteview.h>
 
 QList<AuthenticationWizard*> wizardList;
 
@@ -66,6 +69,17 @@
 	updateInfoBox();
 
 	show();
+	
+	if ( !session->view()->mainWidget() || \
!session->view()->mainWidget()->isActiveWindow() ) { +		KNotification \
*notification = new KNotification( "kopete_info_event", \
KNotification::CloseWhenWidgetActivated | KNotification::CloseOnTimeout ); \
+		notification->setText( i18n( "Incoming authentication request from %1", \
OtrlChatInterface::self()->formatContact( \
session->members().first()->contactId() ) ) ); +		notification->setPixmap( \
SmallIcon( "kopete" ) ); +		notification->setWidget( this );
+		notification->setActions( QStringList() << i18n( "View" ) << i18n( \
"Ignore" ) ); +		connect( notification, SIGNAL( activated( unsigned int ) \
), SLOT( notificationActivated( unsigned int ) ) ); \
+		notification->sendEvent(); +	}
+	
 }
 
 
@@ -343,6 +357,17 @@
 	}
 }
 
+void AuthenticationWizard::notificationActivated( unsigned int id){
+	kDebug(14318) << "notificationActivated. ButtonId" << id;
+	if( id == 1 ){
+		// raise the view to bring the chatwindow + authwizard to current \
desktop and on top +		session->view()->raise( true );
+		// now grab focus and keyboard again to the auth-wizard
+		setFocus(Qt::ActiveWindowFocusReason);
+		leAnswer->grabKeyboard();
+	}
+}
+
 WaitPage::WaitPage(const QString &text){
 	canContinue = false;
 	setTitle(i18nc("@title","Authenticating contact..."));
--- trunk/KDE/kdenetwork/kopete/plugins/otr/authenticationwizard.h \
#1033220:1033221 @@ -90,6 +90,7 @@
 private slots:
 	void cancelVerification();
 	void updateInfoBox();
+	void notificationActivated( unsigned int );
 };
 
 
--- trunk/KDE/kdenetwork/kopete/plugins/otr/otrlchatinterface.cpp \
#1033220:1033221 @@ -413,7 +413,7 @@
 				abortSMP( context, chatSession );
 			} else {
 				kDebug(14318) << "Update SMP state: 1Q";
-				new AuthenticationWizard( chatSession->view()->mainWidget(), context, \
chatSession, false, QString((char*)tlvs->data) ); +				new \
AuthenticationWizard( chatSession->view(true)->mainWidget(), context, \
chatSession, false, QString((char*)tlvs->data) );  }
 		}
 
@@ -424,7 +424,7 @@
 				abortSMP( context, chatSession );
 			} else {
 				kDebug(14318) << "Update SMP state: 1 ";
-				new AuthenticationWizard( chatSession->view()->mainWidget(), context, \
chatSession, false ); +				new AuthenticationWizard( \
chatSession->view(true)->mainWidget(), context, chatSession, false );  }
 		}
 		tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP2);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic