[prev in list] [next in list] [prev in thread] [next in thread]
List: kopete-devel
Subject: [Kopete-devel] KopeteView and KMMF changes
From: Michel Hermier <michel.hermier () wanadoo ! fr>
Date: 2003-07-10 11:08:57
[Download RAW message or body]
Hi,
Here is a patch against the implementation of the KopeteView behaviour
handling.
The messages for activating and destroying the views as been moved to KMMF.
This avoid to make some *_cast in the plugins, and make the KMMF handling the
whole KopeteView life cycle.
I commented the signals virtual entries in the KopeteView as this is a design
mistake. (Signals should not be accessible from the outside of the class).
But it should be left there for KopeteView devloppers.
I don't used the connect(obj,SIGNAL(),obj,SIGNAL()) trick to allow some
getActiveView user to implement it in the new code. This would allow to
remore the current getActiveView "ugly workaround".
Comments are welcome!
["kopeteview.diff" (text/x-diff)]
Index: libkopete/kopetemessagemanagerfactory.cpp
===================================================================
RCS file: /home/kde/kdenonbeta/kopete/libkopete/kopetemessagemanagerfactory.cpp,v
retrieving revision 1.54
diff -u -3 -p -B -w -r1.54 kopetemessagemanagerfactory.cpp
--- libkopete/kopetemessagemanagerfactory.cpp 30 Jun 2003 09:29:48 -0000 1.54
+++ libkopete/kopetemessagemanagerfactory.cpp 10 Jul 2003 11:00:54 -0000
@@ -18,6 +18,8 @@
#include "kopetemessagemanagerfactory.h"
#include <kapplication.h>
+
+#include "ui/kopeteview.h"
#include "kopetecontact.h"
@@ -155,10 +157,33 @@ KopeteView * KopeteMessageManagerFactory
kdDebug(14010) << k_funcinfo << "View not successfuly created" << endl;
return 0L;
}
+
+ QObject *viewObject = dynamic_cast<QObject *>(newView);
+ if(viewObject)
+ {
+ connect(viewObject, SIGNAL(activated(KopeteView *)),
+ this, SLOT(slotActivatedView(KopeteView *)));
+ connect(viewObject, SIGNAL(closing(KopeteView *)),
+ this, SLOT(slotClosingView(KopeteView *)));
+ }
+ else
+ {
+ kdWarning(14010) << "Failed to cast view to QObject *" << endl;
+ }
+
emit viewCreated( newView ) ;
return newView;
}
+void KopeteMessageManagerFactory::slotActivatedView(KopeteView *view)
+{
+ emit activatedView(view);
+}
+
+void KopeteMessageManagerFactory::slotClosingView(KopeteView *view)
+{
+ emit closingView(view);
+}
#include "kopetemessagemanagerfactory.moc"
Index: libkopete/kopetemessagemanagerfactory.h
===================================================================
RCS file: /home/kde/kdenonbeta/kopete/libkopete/kopetemessagemanagerfactory.h,v
retrieving revision 1.33
diff -u -3 -p -B -w -r1.33 kopetemessagemanagerfactory.h
--- libkopete/kopetemessagemanagerfactory.h 4 Jul 2003 13:08:58 -0000 1.33
+++ libkopete/kopetemessagemanagerfactory.h 10 Jul 2003 11:00:55 -0000
@@ -134,6 +134,17 @@ signals:
* A new view has been created
*/
void viewCreated( KopeteView * );
+
+ /**
+ * A view as been activated(manually only?).
+ */
+ void activatedView( KopeteView *view );
+
+ /*
+ * A view is about to close.
+ */
+ void closingView( KopeteView *view );
+
/**
* a new KMM has been created
*/
@@ -153,6 +164,10 @@ signals:
* obsolete temporary method used by the spellchecking plugin (ugly workaround)
*/
void getActiveView(KopeteView*& ); public: void activeView(KopeteView*&v) { emit getActiveView(v); }
+
+private slots:
+ void slotActivatedView(KopeteView *view);
+ void slotClosingView(KopeteView *view);
private:
KopeteMessageManagerFactory( QObject* parent = 0, const char* name = 0 );
Index: libkopete/ui/kopeteview.h
===================================================================
RCS file: /home/kde/kdenonbeta/kopete/libkopete/ui/kopeteview.h,v
retrieving revision 1.7
diff -u -3 -p -B -w -r1.7 kopeteview.h
--- libkopete/ui/kopeteview.h 3 Jul 2003 11:19:58 -0000 1.7
+++ libkopete/ui/kopeteview.h 10 Jul 2003 11:00:55 -0000
@@ -133,17 +133,17 @@ class KopeteView
* The window remains open until the KopeteMessageManager::messageSentSuccessfully()
* signal is emitted
*/
- virtual void messageSent( KopeteMessage & ) = 0;
+// virtual void messageSent( KopeteMessage & ) = 0;
/**
* SIGNAL Emitted when the view is closing.
*/
- virtual void closing( KopeteView * ) = 0;
+// virtual void closing( KopeteView * ) = 0;
/**
* SIGNAL Emitted when the view is activated ( raised by the user )
*/
- virtual void activated( KopeteView * ) = 0;
+// virtual void activated( KopeteView * ) = 0;
protected:
_______________________________________________
Kopete-devel mailing list
Kopete-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/kopete-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic