[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-pim
Subject: [Kde-pim] [PATCH] KPIM::Part for better integration
From: Tobias Koenig <tokoe () kde ! org>
Date: 2004-07-26 21:22:11
Message-ID: 20040726212211.GA8465 () ghostdog ! localnet
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/mixed)]
Hi,
during bug fixing we found some problems with interaction between the
components of Kontact and the framework. For this reason I implemented a
KPIM::Part which inherits from KParts::ReadOnlyPart and should be used
by all PIM applications which want to be used inside Kontact.
The attached patch adds this new class and ports all available Kontact
components to it (just ignore the small changes in KAddressBook...)
Ok for commit?
Ciao,
Tobias
--=20
Separate politics from religion and economy!
["pimpart.patch" (text/plain)]
? kpilot/conduits/JPilotPluginProxy/Makefile
? kpilot/conduits/JPilotPluginProxy/Makefile.in
? kpilot/conduits/JPilotPluginProxy/JPilotAPI/Makefile
? kpilot/conduits/JPilotPluginProxy/JPilotAPI/Makefile.in
? kpilot/conduits/docconduit/docconduitSettings.cpp
? kpilot/conduits/docconduit/kpalmdocSettings.cpp
? kpilot/conduits/expense/Makefile
? kpilot/conduits/expense/Makefile.in
? kpilot/conduits/expense/expenseConduit.cpp
? kpilot/conduits/expense/expenseConduit.h
? kpilot/conduits/knotes/knotesconduitSettings.cpp
? kpilot/conduits/malconduit/malconduitSettings.cpp
? kpilot/conduits/popmail/popmailSettings.cpp
? kpilot/conduits/sysinfoconduit/sysinfoSettings.cpp
? kpilot/conduits/timeconduit/timeConduitSettings.cpp
? kpilot/kpilot/kpilotConfigDialog_backup.cpp
? kpilot/kpilot/kpilotConfigDialog_viewers.cpp
? kpilot/kpilot/kpilotConfigWizard_address.cpp
? kpilot/kpilot/kpilotConfigWizard_notes.cpp
? kpilot/kpilot/kpilotConfigWizard_vcal.cpp
? kpilot/kpilot/kpilotSettings.cpp
? kpilot/lib/kpilotlibSettings.cpp
Index: kontact/interfaces/core.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/interfaces/core.cpp,v
retrieving revision 1.17
diff -p -u -b -r1.17 core.cpp
--- kontact/interfaces/core.cpp 14 Jun 2004 10:43:22 -0000 1.17
+++ kontact/interfaces/core.cpp 26 Jul 2004 21:15:59 -0000
@@ -43,11 +43,11 @@ Core::~Core()
{
}
-KParts::ReadOnlyPart *Core::createPart( const char *libname )
+KPIM::Part *Core::createPart( const char *libname )
{
kdDebug(5601) << "Core::createPart(): " << libname << endl;
- QMap<QCString,KParts::ReadOnlyPart *>::ConstIterator it;
+ QMap<QCString,KPIM::Part *>::ConstIterator it;
it = mParts.find( libname );
if ( it != mParts.end() ) return it.data();
@@ -59,9 +59,10 @@ KParts::ReadOnlyPart *Core::createPart(
createPartInstanceFromLibrary<KParts::ReadOnlyPart>
( libname, this, 0, this, "kontact", QStringList(), &error );
- if ( part ) {
- mParts.insert( libname, part );
- QObject::connect( part, SIGNAL( destroyed( QObject * ) ),
+ KPIM::Part *pimPart = dynamic_cast<KPIM::Part*>( part );
+ if ( pimPart ) {
+ mParts.insert( libname, pimPart );
+ QObject::connect( pimPart, SIGNAL( destroyed( QObject * ) ),
SLOT( slotPartDestroyed( QObject * ) ) );
} else {
if ( error == KParts::ComponentFactory::ErrNoLibrary ) {
@@ -72,15 +73,15 @@ KParts::ReadOnlyPart *Core::createPart(
}
}
- return part;
+ return pimPart;
}
void Core::slotPartDestroyed( QObject * obj )
{
// the part was deleted, we need to remove it from the part map to not return
// a dangling pointer in createPart
- QMap<QCString, KParts::ReadOnlyPart*>::Iterator end = mParts.end();
- QMap<QCString, KParts::ReadOnlyPart*>::Iterator it = mParts.begin();
+ QMap<QCString, KPIM::Part*>::Iterator end = mParts.end();
+ QMap<QCString, KPIM::Part*>::Iterator it = mParts.begin();
for ( ; it != end; ++it ) {
if ( it.data() == obj ) {
mParts.remove( it );
Index: kontact/interfaces/core.h
===================================================================
RCS file: /home/kde/kdepim/kontact/interfaces/core.h,v
retrieving revision 1.21
diff -p -u -b -r1.21 core.h
--- kontact/interfaces/core.h 6 Jan 2004 12:09:42 -0000 1.21
+++ kontact/interfaces/core.h 26 Jul 2004 21:16:00 -0000
@@ -26,7 +26,7 @@
#include <qdatetime.h>
#include <kparts/mainwindow.h>
-#include <kparts/part.h>
+#include <libkdepim/part.h>
class KAction;
@@ -64,13 +64,13 @@ class Core : public KParts::MainWindow
/**
@internal (for Plugin)
*/
- KParts::ReadOnlyPart *createPart( const char *libname );
+ KPIM::Part *createPart( const char *libname );
/**
@internal (for Plugin)
Tell kontact that a part was loaded
*/
- virtual void partLoaded( Plugin* plugin, KParts::Part * part ) = 0;
+ virtual void partLoaded( Plugin* plugin, KPIM::Part * part ) = 0;
signals:
/**
@@ -86,7 +86,7 @@ class Core : public KParts::MainWindow
void checkNewDay();
private:
- QMap<QCString,KParts::ReadOnlyPart *> mParts;
+ QMap<QCString,KPIM::Part *> mParts;
QDate mLastDate;
class Private;
Index: kontact/interfaces/plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/interfaces/plugin.cpp,v
retrieving revision 1.34
diff -p -u -b -r1.34 plugin.cpp
--- kontact/interfaces/plugin.cpp 1 Jul 2004 13:02:00 -0000 1.34
+++ kontact/interfaces/plugin.cpp 26 Jul 2004 21:16:00 -0000
@@ -46,7 +46,7 @@ class Plugin::Private
QString icon;
QString executableName;
QCString partLibraryName;
- KParts::Part *part;
+ KPIM::Part *part;
};
@@ -114,7 +114,7 @@ void Plugin::setPartLibraryName( const Q
d->partLibraryName = libName;
}
-KParts::Part *Plugin::loadPart()
+KPIM::Part *Plugin::loadPart()
{
return core()->createPart( d->partLibraryName );
}
@@ -135,7 +135,7 @@ const KAboutData *Plugin::aboutData()
}
}
-KParts::Part *Plugin::part()
+KPIM::Part *Plugin::part()
{
if ( !d->part ) {
d->part = createPart();
Index: kontact/interfaces/plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/interfaces/plugin.h,v
retrieving revision 1.39
diff -p -u -b -r1.39 plugin.h
--- kontact/interfaces/plugin.h 1 Jul 2004 10:44:21 -0000 1.39
+++ kontact/interfaces/plugin.h 26 Jul 2004 21:16:00 -0000
@@ -34,7 +34,7 @@ class DCOPObject;
class KAboutData;
class KAction;
class QWidget;
-namespace KParts { class Part; }
+namespace KPIM { class Part; }
/**
Increase this version number whenever you make a change
@@ -146,7 +146,7 @@ class Plugin : public QObject, virtual p
sure that you always get the same pointer as long as the part has not been
deleted.
*/
- KParts::Part *part();
+ KPIM::Part *part();
/**
Reimplement this method and return the a path relative to "data" to the tips file.
@@ -234,9 +234,9 @@ class Plugin : public QObject, virtual p
Reimplement and return the part here. Reimplementing createPart() is
mandatory!
*/
- virtual KParts::Part *createPart() = 0;
+ virtual KPIM::Part *createPart() = 0;
- KParts::Part *loadPart();
+ KPIM::Part *loadPart();
virtual void virtual_hook( int id, void* data );
Index: kontact/pics/splash.png
===================================================================
RCS file: /home/kde/kdepim/kontact/pics/splash.png,v
retrieving revision 1.5
diff -p -u -b -r1.5 splash.png
Binary files /tmp/cvs.X2foqT and splash.png differ
Index: kontact/plugins/kaddressbook/kaddressbook_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kaddressbook/kaddressbook_plugin.cpp,v
retrieving revision 1.40
diff -p -u -b -r1.40 kaddressbook_plugin.cpp
--- kontact/plugins/kaddressbook/kaddressbook_plugin.cpp 19 Jul 2004 20:23:03 -0000 1.40
+++ kontact/plugins/kaddressbook/kaddressbook_plugin.cpp 26 Jul 2004 21:16:04 -0000
@@ -68,9 +68,9 @@ KAddressbookPlugin::~KAddressbookPlugin(
{
}
-KParts::Part* KAddressbookPlugin::createPart()
+KPIM::Part* KAddressbookPlugin::createPart()
{
- KParts::Part * part = loadPart();
+ KPIM::Part * part = loadPart();
if ( !part ) return 0;
// Create the stub that allows us to talk to the part
Index: kontact/plugins/kaddressbook/kaddressbook_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kaddressbook/kaddressbook_plugin.h,v
retrieving revision 1.25
diff -p -u -b -r1.25 kaddressbook_plugin.h
--- kontact/plugins/kaddressbook/kaddressbook_plugin.h 17 May 2004 01:50:01 -0000 1.25
+++ kontact/plugins/kaddressbook/kaddressbook_plugin.h 26 Jul 2004 21:16:04 -0000
@@ -64,7 +64,7 @@ class KAddressbookPlugin : public Kontac
KAddressBookIface_stub *interface();
protected:
- KParts::Part *createPart();
+ KPIM::Part *createPart();
private slots:
void slotNewContact();
Index: kontact/plugins/kitchensync/kitchensync_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kitchensync/kitchensync_plugin.cpp,v
retrieving revision 1.3
diff -p -u -b -r1.3 kitchensync_plugin.cpp
--- kontact/plugins/kitchensync/kitchensync_plugin.cpp 24 Sep 2003 12:15:37 -0000 1.3
+++ kontact/plugins/kitchensync/kitchensync_plugin.cpp 26 Jul 2004 21:16:05 -0000
@@ -52,7 +52,7 @@ KitchenSyncPlugin::~KitchenSyncPlugin()
{
}
-KParts::Part* KitchenSyncPlugin::createPart()
+KPIM::Part* KitchenSyncPlugin::createPart()
{
return loadPart();
}
Index: kontact/plugins/kitchensync/kitchensync_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kitchensync/kitchensync_plugin.h,v
retrieving revision 1.4
diff -p -u -b -r1.4 kitchensync_plugin.h
--- kontact/plugins/kitchensync/kitchensync_plugin.h 24 Sep 2003 12:15:37 -0000 1.4
+++ kontact/plugins/kitchensync/kitchensync_plugin.h 26 Jul 2004 21:16:05 -0000
@@ -45,7 +45,7 @@ class KitchenSyncPlugin : public Kontact
virtual QStringList configModules() const;
protected:
- KParts::Part *createPart();
+ KPIM::Part *createPart();
};
#endif
Index: kontact/plugins/kmail/Makefile.am
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kmail/Makefile.am,v
retrieving revision 1.12
diff -p -u -b -r1.12 Makefile.am
--- kontact/plugins/kmail/Makefile.am 13 Feb 2004 12:05:36 -0000 1.12
+++ kontact/plugins/kmail/Makefile.am 26 Jul 2004 21:16:05 -0000
@@ -1,4 +1,5 @@
-INCLUDES = -I$(top_srcdir)/kontact/interfaces -I$(top_srcdir)/kmail -I$(top_srcdir)/kmail -I$(top_srcdir) $(all_includes)
+INCLUDES = -I$(top_srcdir)/kontact/interfaces -I$(top_srcdir)/kmail -I$(top_srcdir)/libkdepim \
+ -I$(top_srcdir) $(all_includes)
kde_module_LTLIBRARIES = libkontact_kmailplugin.la kcm_kmailsummary.la
Index: kontact/plugins/kmail/kmail_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kmail/kmail_plugin.cpp,v
retrieving revision 1.36
diff -p -u -b -r1.36 kmail_plugin.cpp
--- kontact/plugins/kmail/kmail_plugin.cpp 19 Jul 2004 20:23:03 -0000 1.36
+++ kontact/plugins/kmail/kmail_plugin.cpp 26 Jul 2004 21:16:05 -0000
@@ -37,6 +37,9 @@
#include <libkcal/icaldrag.h>
#include <libkcal/calendarlocal.h>
+#include <kmail/kmail_part.h>
+#include <kmail/kmkernel.h>
+
#include "core.h"
#include "summarywidget.h"
@@ -97,6 +100,11 @@ void KMailPlugin::slotNewMail()
openComposer( KURL() );
}
+void KMailPlugin::raise()
+{
+ core()->selectPlugin( this );
+}
+
KMailPlugin::~KMailPlugin()
{
}
@@ -117,12 +125,15 @@ QString KMailPlugin::tipFile() const
return file;
}
-KParts::Part* KMailPlugin::createPart()
+KPIM::Part* KMailPlugin::createPart()
{
- KParts::Part *part = loadPart();
+ KPIM::Part *part = loadPart();
if ( !part ) return 0;
+ connect( part, SIGNAL( raise() ), SLOT( raise() ) );
+
mStub = new KMailIface_stub( dcopClient(), "kmail", "KMailIface" );
+
return part;
}
Index: kontact/plugins/kmail/kmail_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kmail/kmail_plugin.h,v
retrieving revision 1.21
diff -p -u -b -r1.21 kmail_plugin.h
--- kontact/plugins/kmail/kmail_plugin.h 1 Jul 2004 10:44:21 -0000 1.21
+++ kontact/plugins/kmail/kmail_plugin.h 26 Jul 2004 21:16:05 -0000
@@ -59,7 +59,7 @@ class KMailPlugin : public Kontact::Plug
virtual QStringList invisibleToolbarActions() const;
virtual bool queryClose() const;
protected:
- virtual KParts::Part* createPart();
+ virtual KPIM::Part* createPart();
void openComposer( const KURL& );
bool canDecodeDrag( QMimeSource * );
void processDropEvent( QDropEvent * );
@@ -67,6 +67,7 @@ class KMailPlugin : public Kontact::Plug
protected slots:
void slotNewMail();
+ void raise();
private:
KMailIface_stub *mStub;
Index: kontact/plugins/knode/knode_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/knode/knode_plugin.cpp,v
retrieving revision 1.11
diff -p -u -b -r1.11 knode_plugin.cpp
--- kontact/plugins/knode/knode_plugin.cpp 19 Jul 2004 20:23:03 -0000 1.11
+++ kontact/plugins/knode/knode_plugin.cpp 26 Jul 2004 21:16:05 -0000
@@ -82,9 +82,9 @@ void KNodePlugin::slotPostArticle()
mStub->postArticle();
}
-KParts::Part* KNodePlugin::createPart()
+KPIM::Part* KNodePlugin::createPart()
{
- KParts::Part *part = loadPart();
+ KPIM::Part *part = loadPart();
if ( !part ) return 0;
mStub = new KNodeIface_stub( dcopClient(), "knode", "KNodeIface" );
Index: kontact/plugins/knode/knode_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/knode/knode_plugin.h,v
retrieving revision 1.8
diff -p -u -b -r1.8 knode_plugin.h
--- kontact/plugins/knode/knode_plugin.h 6 Jan 2004 12:09:42 -0000 1.8
+++ kontact/plugins/knode/knode_plugin.h 26 Jul 2004 21:16:06 -0000
@@ -53,7 +53,7 @@ class KNodePlugin : public Kontact::Plug
virtual QStringList invisibleToolbarActions() const;
protected:
- virtual KParts::Part* createPart();
+ virtual KPIM::Part* createPart();
protected slots:
void slotPostArticle();
Index: kontact/plugins/knotes/knotes_part.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/knotes/knotes_part.cpp,v
retrieving revision 1.31
diff -p -u -b -r1.31 knotes_part.cpp
--- kontact/plugins/knotes/knotes_part.cpp 25 Jul 2004 09:00:36 -0000 1.31
+++ kontact/plugins/knotes/knotes_part.cpp 26 Jul 2004 21:16:06 -0000
@@ -96,7 +96,7 @@ class NoteEditDialog : public KDialogBas
};
KNotesPart::KNotesPart( QObject *parent, const char *name )
- : KParts::ReadOnlyPart( parent, name ),
+ : KPIM::Part( parent, name ),
mTicket( 0 ), mPopupMenu( 0 )
{
setInstance( new KInstance( "knotes" ) );
Index: kontact/plugins/knotes/knotes_part.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/knotes/knotes_part.h,v
retrieving revision 1.14
diff -p -u -b -r1.14 knotes_part.h
--- kontact/plugins/knotes/knotes_part.h 18 Jan 2004 01:24:20 -0000 1.14
+++ kontact/plugins/knotes/knotes_part.h 26 Jul 2004 21:16:06 -0000
@@ -23,9 +23,9 @@
#include <qmap.h>
#include <qpixmap.h>
-#include <kparts/part.h>
#include <libkcal/resourcelocal.h>
#include <libkcal/calendarresources.h>
+#include <libkdepim/part.h>
typedef QMap<QString, QString> NotesMap;
@@ -35,7 +35,7 @@ class KListView;
class QListViewItem;
class QPoint;
-class KNotesPart : public KParts::ReadOnlyPart
+class KNotesPart : public KPIM::Part
{
Q_OBJECT
Index: kontact/plugins/knotes/knotes_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/knotes/knotes_plugin.cpp,v
retrieving revision 1.22
diff -p -u -b -r1.22 knotes_plugin.cpp
--- kontact/plugins/knotes/knotes_plugin.cpp 19 Jul 2004 20:23:03 -0000 1.22
+++ kontact/plugins/knotes/knotes_plugin.cpp 26 Jul 2004 21:16:07 -0000
@@ -50,7 +50,7 @@ KNotesPlugin::~KNotesPlugin()
{
}
-KParts::Part* KNotesPlugin::createPart()
+KPIM::Part* KNotesPlugin::createPart()
{
return new KNotesPart( this, "notes" );
}
Index: kontact/plugins/knotes/knotes_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/knotes/knotes_plugin.h,v
retrieving revision 1.14
diff -p -u -b -r1.14 knotes_plugin.h
--- kontact/plugins/knotes/knotes_plugin.h 24 Sep 2003 12:15:37 -0000 1.14
+++ kontact/plugins/knotes/knotes_plugin.h 26 Jul 2004 21:16:07 -0000
@@ -40,7 +40,7 @@ class KNotesPlugin : public Kontact::Plu
const KAboutData *aboutData();
protected:
- KParts::Part* createPart();
+ KPIM::Part* createPart();
private slots:
void slotNewNote();
Index: kontact/plugins/korganizer/korganizerplugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/korganizer/korganizerplugin.cpp,v
retrieving revision 1.19
diff -p -u -b -r1.19 korganizerplugin.cpp
--- kontact/plugins/korganizer/korganizerplugin.cpp 25 Jul 2004 22:51:54 -0000 1.19
+++ kontact/plugins/korganizer/korganizerplugin.cpp 26 Jul 2004 21:16:07 -0000
@@ -73,9 +73,9 @@ Kontact::Summary *KOrganizerPlugin::crea
return new SummaryWidget( this, parent );
}
-KParts::Part *KOrganizerPlugin::createPart()
+KPIM::Part *KOrganizerPlugin::createPart()
{
- KParts::Part *part = loadPart();
+ KPIM::Part *part = loadPart();
if ( !part )
return 0;
Index: kontact/plugins/korganizer/korganizerplugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/korganizer/korganizerplugin.h,v
retrieving revision 1.8
diff -p -u -b -r1.8 korganizerplugin.h
--- kontact/plugins/korganizer/korganizerplugin.h 4 Jan 2004 23:57:11 -0000 1.8
+++ kontact/plugins/korganizer/korganizerplugin.h 26 Jul 2004 21:16:07 -0000
@@ -56,7 +56,7 @@ class KOrganizerPlugin : public Kontact:
KCalendarIface_stub *interface();
protected:
- KParts::Part *createPart();
+ KPIM::Part *createPart();
private slots:
void slotNewEvent();
Index: kontact/plugins/korganizer/todoplugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/korganizer/todoplugin.cpp,v
retrieving revision 1.18
diff -p -u -b -r1.18 todoplugin.cpp
--- kontact/plugins/korganizer/todoplugin.cpp 25 Jul 2004 22:51:54 -0000 1.18
+++ kontact/plugins/korganizer/todoplugin.cpp 26 Jul 2004 21:16:07 -0000
@@ -72,9 +72,9 @@ Kontact::Summary *TodoPlugin::createSumm
return new TodoSummaryWidget( this, parent );
}
-KParts::Part *TodoPlugin::createPart()
+KPIM::Part *TodoPlugin::createPart()
{
- KParts::Part *part = loadPart();
+ KPIM::Part *part = loadPart();
if ( !part )
return 0;
Index: kontact/plugins/korganizer/todoplugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/korganizer/todoplugin.h,v
retrieving revision 1.7
diff -p -u -b -r1.7 todoplugin.h
--- kontact/plugins/korganizer/todoplugin.h 4 Jan 2004 23:57:11 -0000 1.7
+++ kontact/plugins/korganizer/todoplugin.h 26 Jul 2004 21:16:08 -0000
@@ -53,7 +53,7 @@ class TodoPlugin : public Kontact::Plugi
KCalendarIface_stub *interface();
protected:
- KParts::Part *createPart();
+ KPIM::Part *createPart();
private slots:
void slotNewTodo();
Index: kontact/plugins/kpilot/kpilot_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kpilot/kpilot_plugin.h,v
retrieving revision 1.2
diff -p -u -b -r1.2 kpilot_plugin.h
--- kontact/plugins/kpilot/kpilot_plugin.h 18 Jan 2004 01:24:21 -0000 1.2
+++ kontact/plugins/kpilot/kpilot_plugin.h 26 Jul 2004 21:16:08 -0000
@@ -41,7 +41,7 @@ class KPilotPlugin : public Kontact::Plu
const KAboutData *aboutData();
protected:
- virtual KParts::Part *createPart() { return 0; }
+ virtual KPIM::Part *createPart() { return 0; }
private:
KAboutData *mAboutData;
};
Index: kontact/plugins/newsticker/newsticker_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/newsticker/newsticker_plugin.h,v
retrieving revision 1.5
diff -p -u -b -r1.5 newsticker_plugin.h
--- kontact/plugins/newsticker/newsticker_plugin.h 20 Jul 2004 13:01:59 -0000 1.5
+++ kontact/plugins/newsticker/newsticker_plugin.h 26 Jul 2004 21:16:08 -0000
@@ -35,7 +35,7 @@ class NewsTickerPlugin : public Kontact:
virtual bool showInSideBar() const { return false; }
protected:
- virtual KParts::Part* createPart() { return 0L; }
+ virtual KPIM::Part* createPart() { return 0L; }
};
#endif
Index: kontact/plugins/summary/summaryview_part.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/summary/summaryview_part.cpp,v
retrieving revision 1.37
diff -p -u -b -r1.37 summaryview_part.cpp
--- kontact/plugins/summary/summaryview_part.cpp 14 Jun 2004 21:31:35 -0000 1.37
+++ kontact/plugins/summary/summaryview_part.cpp 26 Jul 2004 21:16:09 -0000
@@ -64,7 +64,7 @@ namespace Kontact
SummaryViewPart::SummaryViewPart( Kontact::Core *core, const char*,
const KAboutData *aboutData,
QObject *parent, const char *name )
- : KParts::ReadOnlyPart( parent, name ),
+ : KPIM::Part( parent, name ),
mCore( core ), mFrame( 0 ), mConfigAction( 0 )
{
mStatusExt = new KParts::StatusBarExtension( this );
Index: kontact/plugins/summary/summaryview_part.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/summary/summaryview_part.h,v
retrieving revision 1.19
diff -p -u -b -r1.19 summaryview_part.h
--- kontact/plugins/summary/summaryview_part.h 14 Jun 2004 21:31:35 -0000 1.19
+++ kontact/plugins/summary/summaryview_part.h 26 Jul 2004 21:16:09 -0000
@@ -25,7 +25,7 @@
#define SUMMARYVIEW_PART_H
#include <qdatetime.h>
-#include <kparts/part.h>
+#include <libkdepim/part.h>
#include "core.h"
@@ -47,7 +47,7 @@ class QGridLayout;
class KAction;
class KCMultiDialog;
-class SummaryViewPart : public KParts::ReadOnlyPart
+class SummaryViewPart : public KPIM::Part
{
Q_OBJECT
Index: kontact/plugins/summary/summaryview_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/summary/summaryview_plugin.cpp,v
retrieving revision 1.15
diff -p -u -b -r1.15 summaryview_plugin.cpp
--- kontact/plugins/summary/summaryview_plugin.cpp 2 Jan 2004 16:50:23 -0000 1.15
+++ kontact/plugins/summary/summaryview_plugin.cpp 26 Jul 2004 21:16:09 -0000
@@ -41,7 +41,7 @@ SummaryView::~SummaryView()
{
}
-KParts::Part *SummaryView::createPart()
+KPIM::Part *SummaryView::createPart()
{
return new SummaryViewPart( core(), "summarypartframe", aboutData(),
this, "summarypart" );
Index: kontact/plugins/summary/summaryview_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/summary/summaryview_plugin.h,v
retrieving revision 1.8
diff -p -u -b -r1.8 summaryview_plugin.h
--- kontact/plugins/summary/summaryview_plugin.h 24 Sep 2003 12:15:38 -0000 1.8
+++ kontact/plugins/summary/summaryview_plugin.h 26 Jul 2004 21:16:09 -0000
@@ -40,7 +40,7 @@ class SummaryView : public Kontact::Plug
const KAboutData *aboutData();
protected:
- virtual KParts::Part* createPart();
+ virtual KPIM::Part* createPart();
private:
KAboutData *mAboutData;
Index: kontact/plugins/test/test_part.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/test/test_part.cpp,v
retrieving revision 1.7
diff -p -u -b -r1.7 test_part.cpp
--- kontact/plugins/test/test_part.cpp 11 Jan 2004 13:34:02 -0000 1.7
+++ kontact/plugins/test/test_part.cpp 26 Jul 2004 21:16:09 -0000
@@ -42,7 +42,7 @@
TestPart::TestPart(QObject *parent, const char *name) // ## parentWidget
- : KParts::ReadOnlyPart(parent, name)
+ : KPIM::Part(parent, name)
{
setInstance( new KInstance("testpart") ); // ## memleak
m_edit = new QTextEdit;
Index: kontact/plugins/test/test_part.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/test/test_part.h,v
retrieving revision 1.4
diff -p -u -b -r1.4 test_part.h
--- kontact/plugins/test/test_part.h 11 Jan 2004 13:34:02 -0000 1.4
+++ kontact/plugins/test/test_part.h 26 Jul 2004 21:16:10 -0000
@@ -26,11 +26,12 @@
-#include <kparts/part.h>
+#include <libkdepim/part.h>
+
class QTextEdit;
class KAddressBookIface_stub;
-class TestPart : public KParts::ReadOnlyPart
+class TestPart : public KPIM::Part
{
Q_OBJECT
Index: kontact/plugins/weather/weather_plugin.h
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/weather/weather_plugin.h,v
retrieving revision 1.8
diff -p -u -b -r1.8 weather_plugin.h
--- kontact/plugins/weather/weather_plugin.h 24 Sep 2003 12:15:38 -0000 1.8
+++ kontact/plugins/weather/weather_plugin.h 26 Jul 2004 21:16:10 -0000
@@ -38,7 +38,7 @@ class WeatherPlugin : public Kontact::Pl
const KAboutData *aboutData();
protected:
- virtual KParts::Part *createPart() { return 0; }
+ virtual KPIM::Part *createPart() { return 0; }
private:
KAboutData *mAboutData;
};
Index: kontact/src/iconsidepane.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/src/iconsidepane.cpp,v
retrieving revision 1.14
diff -p -u -b -r1.14 iconsidepane.cpp
--- kontact/src/iconsidepane.cpp 13 Mar 2004 14:47:47 -0000 1.14
+++ kontact/src/iconsidepane.cpp 26 Jul 2004 21:16:10 -0000
@@ -89,31 +89,41 @@ void EntryItem::paint( QPainter *p )
int w = box->viewport()->width();
int y = 2;
+ if ( isCurrent() || isSelected() ) {
+ p->setPen( QColor( 115, 113, 115 ) );
+ p->setBrush( QColor( 131, 129, 131 ) );
+ p->drawRoundRect( 2, 0, w - 2, height( box ) );
+
+ p->setClipRect( 2, 0, w - 4, height( box ) - 2, QPainter::CoordPainter );
+ p->setPen( QColor( 90, 89, 90 ) );
+ p->drawRoundRect( 2, 0, w, height( box ) );
+ p->setPen( QColor( 115, 113, 115 ) );
+ p->drawRoundRect( 3, 1, w, height( box ) );
+ p->setClipping( false );
+ }
+
if ( !mPixmap.isNull() ) {
int x = ( w - mPixmap.width() ) / 2;
p->drawPixmap( x, y, mPixmap );
}
- QColor save;
- if ( isCurrent() || isSelected() ) {
- save = p->pen().color();
- p->setPen(listBox()->colorGroup().brightText());
- }
-
if ( !text().isEmpty() ) {
QFontMetrics fm = p->fontMetrics();
y += mPixmap.height() + fm.height() - fm.descent();
int x = ( w - fm.width( text() ) ) / 2;
+
+ if ( isCurrent() || isSelected() )
+ p->setPen(listBox()->colorGroup().shadow());
+ else
+ p->setPen( QColor( 115, 113, 115 ) );
+ p->drawText( x + 1, y + 1, text() );
+
+ if ( isCurrent() || isSelected() )
+ p->setPen(listBox()->colorGroup().brightText());
+ else
+ p->setPen(Qt::black);
p->drawText( x, y, text() );
}
- // draw sunken
- if ( isCurrent() || isSelected() ) {
- p->setPen(save);
- QColorGroup group = box->colorGroup();
- group.setColor( QColorGroup::Dark, Qt::black );
- qDrawShadePanel( p, 1, 0, w - 2, height( box ),
- group, true, 1, 0 );
- }
}
Navigator::Navigator( SidePaneBase *parent, const char *name)
Index: kontact/src/mainwindow.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/src/mainwindow.cpp,v
retrieving revision 1.119
diff -p -u -b -r1.119 mainwindow.cpp
--- kontact/src/mainwindow.cpp 24 Jul 2004 12:05:33 -0000 1.119
+++ kontact/src/mainwindow.cpp 26 Jul 2004 21:16:12 -0000
@@ -419,7 +419,7 @@ void MainWindow::addPlugin( Kontact::Plu
insertChildClient( plugin );
}
-void MainWindow::partLoaded( Kontact::Plugin * /*plugin*/, KParts::Part *part )
+void MainWindow::partLoaded( Kontact::Plugin * /*plugin*/, KPIM::Part *part )
{
if ( part->widget() )
mStack->addWidget( part->widget(), 0 );
Index: kontact/src/mainwindow.h
===================================================================
RCS file: /home/kde/kdepim/kontact/src/mainwindow.h,v
retrieving revision 1.50
diff -p -u -b -r1.50 mainwindow.h
--- kontact/src/mainwindow.h 21 Jul 2004 14:37:41 -0000 1.50
+++ kontact/src/mainwindow.h 26 Jul 2004 21:16:12 -0000
@@ -112,7 +112,7 @@ class MainWindow : public Kontact::Core,
void unloadPlugins();
bool removePlugin( const KPluginInfo * );
void addPlugin( Kontact::Plugin *plugin );
- void partLoaded( Kontact::Plugin *plugin, KParts::Part *part );
+ void partLoaded( Kontact::Plugin *plugin, KPIM::Part *part );
void setupActions();
void initHeaderWidget( QVBox *vBox );
void showTip( bool );
Index: kaddressbook/Makefile.am
===================================================================
RCS file: /home/kde/kdepim/kaddressbook/Makefile.am,v
retrieving revision 1.140
diff -p -u -b -r1.140 Makefile.am
--- kaddressbook/Makefile.am 15 Jun 2004 10:07:25 -0000 1.140
+++ kaddressbook/Makefile.am 26 Jul 2004 21:16:12 -0000
@@ -12,7 +12,7 @@ INCLUDES= -I$(top_srcdir)/kaddressbook/i
bin_PROGRAMS = kaddressbook
-kaddressbook_SOURCES = main.cpp
+kaddressbook_SOURCES = main.cpp kaddressbookmain.cpp
kaddressbook_LDFLAGS = $(all_libraries) $(KDE_RPATH)
kaddressbook_LDADD = libkaddressbook.la
@@ -34,7 +34,7 @@ libkaddressbook_la_SOURCES = addresseeco
addviewdialog.cpp emaileditwidget.cpp extensionmanager.cpp \
filter.cpp filtereditdialog.cpp filterselectionwidget.cpp geowidget.cpp \
imagewidget.cpp incsearchwidget.cpp jumpbuttonbar.cpp kabcore.cpp kablock.cpp \
- kaddressbookiface.skel kaddressbookmain.cpp kaddressbookservice.cpp \
+ kaddressbookiface.skel kaddressbookservice.cpp \
kaddressbookview.cpp keywidget.cpp ldapsearchdialog.cpp nameeditdialog.cpp \
phoneeditwidget.cpp secrecywidget.cpp soundwidget.cpp \
viewconfigurefieldspage.cpp viewconfigurefilterpage.cpp \
@@ -58,7 +58,7 @@ noinst_HEADERS = \
addviewdialog.h emaileditwidget.h extensionmanager.h filter.h \
filtereditdialog.h filterselectionwidget.h geowidget.h imagewidget.h \
incsearchwidget.h jumpbuttonbar.h kablock.h kabprefs.h kaddressbook_part.h \
- kaddressbookmain.h kaddressbookservice.h kaddressbookview.h keywidget.h \
+ kaddressbookservice.h kaddressbookview.h keywidget.h \
ldapsearchdialog.h nameeditdialog.h phoneeditwidget.h secrecywidget.h \
soundwidget.h typecombo.h undo.h undocmds.h viewconfigurefieldspage.h \
viewconfigurefilterpage.h viewconfigurewidget.h viewmanager.h xxportmanager.h \
Index: kaddressbook/extensionmanager.cpp
===================================================================
RCS file: /home/kde/kdepim/kaddressbook/extensionmanager.cpp,v
retrieving revision 1.12
diff -p -u -b -r1.12 extensionmanager.cpp
--- kaddressbook/extensionmanager.cpp 21 Feb 2004 18:25:57 -0000 1.12
+++ kaddressbook/extensionmanager.cpp 26 Jul 2004 21:16:13 -0000
@@ -109,15 +109,13 @@ void ExtensionManager::createExtensionWi
{
// clear extension widget list
mExtensionWidgetList.setAutoDelete( true );
- QPtrListIterator<KAB::ExtensionWidget> wdgIt( mExtensionWidgetList );
- KAB::ExtensionWidget *wdg = 0;
- while ( ( wdg = wdgIt.current() ) != 0 )
- mExtensionWidgetList.remove( wdg );
-
+ mExtensionWidgetList.clear();
mExtensionWidgetList.setAutoDelete( false );
QStringList extensionNames( i18n( "None" ) );
+ KAB::ExtensionWidget *wdg = 0;
+
// add addressee editor as default
if ( KABPrefs::instance()->mEditorType == KABPrefs::SimpleEditor ) {
wdg = new SimpleAddresseeEditor( mCore, true, this );
Index: kaddressbook/kaddressbook_part.cpp
===================================================================
RCS file: /home/kde/kdepim/kaddressbook/kaddressbook_part.cpp,v
retrieving revision 1.42
diff -p -u -b -r1.42 kaddressbook_part.cpp
--- kaddressbook/kaddressbook_part.cpp 7 Mar 2004 20:38:41 -0000 1.42
+++ kaddressbook/kaddressbook_part.cpp 26 Jul 2004 21:16:13 -0000
@@ -44,7 +44,7 @@ K_EXPORT_COMPONENT_FACTORY( libkaddressb
KAddressbookPart::KAddressbookPart( QWidget *parentWidget, const char *widgetName,
QObject *parent, const char *name,
const QStringList & )
- : DCOPObject( "KAddressBookIface" ), KParts::ReadOnlyPart( parent, name )
+ : DCOPObject( "KAddressBookIface" ), KPIM::Part( parent, name )
{
kdDebug(5720) << "KAddressbookPart()" << endl;
kdDebug(5720) << " InstanceName: " << kapp->instanceName() << endl;
Index: kaddressbook/kaddressbook_part.h
===================================================================
RCS file: /home/kde/kdepim/kaddressbook/kaddressbook_part.h,v
retrieving revision 1.14
diff -p -u -b -r1.14 kaddressbook_part.h
--- kaddressbook/kaddressbook_part.h 5 Jan 2004 13:09:31 -0000 1.14
+++ kaddressbook/kaddressbook_part.h 26 Jul 2004 21:16:13 -0000
@@ -26,6 +26,7 @@
#include <kparts/browserextension.h>
#include <kparts/event.h>
#include <kparts/factory.h>
+#include <libkdepim/part.h>
#include "kaddressbookiface.h"
@@ -35,7 +36,7 @@ class KInstance;
class KABCore;
-class KAddressbookPart: public KParts::ReadOnlyPart, virtual public KAddressBookIface
+class KAddressbookPart: public KPIM::Part, virtual public KAddressBookIface
{
Q_OBJECT
Index: kitchensync/kitchensync/lib/kitchensync_part.cpp
===================================================================
RCS file: /home/kde/kdepim/kitchensync/kitchensync/lib/kitchensync_part.cpp,v
retrieving revision 1.5
diff -p -u -b -r1.5 kitchensync_part.cpp
--- kitchensync/kitchensync/lib/kitchensync_part.cpp 26 Mar 2004 15:29:06 -0000 1.5
+++ kitchensync/kitchensync/lib/kitchensync_part.cpp 26 Jul 2004 21:16:15 -0000
@@ -48,7 +48,7 @@ K_EXPORT_COMPONENT_FACTORY( libkitchensy
KitchenSyncPart::KitchenSyncPart( QWidget *parentWidget, const char *,
QObject *parent, const char *name,
const QStringList & )
- : KParts::ReadOnlyPart( parent, name )
+ : KPIM::Part( parent, name )
{
QString pname( name );
Index: kitchensync/kitchensync/lib/kitchensync_part.h
===================================================================
RCS file: /home/kde/kdepim/kitchensync/kitchensync/lib/kitchensync_part.h,v
retrieving revision 1.2
diff -p -u -b -r1.2 kitchensync_part.h
--- kitchensync/kitchensync/lib/kitchensync_part.h 27 Aug 2003 14:46:50 -0000 1.2
+++ kitchensync/kitchensync/lib/kitchensync_part.h 26 Jul 2004 21:16:16 -0000
@@ -28,6 +28,7 @@
#include <kurl.h>
#include <kparts/factory.h>
+#include <libkdepim/part.h>
class KInstance;
class KAboutData;
@@ -39,7 +40,7 @@ class ActionManager;
}
-class KitchenSyncPart: public KParts::ReadOnlyPart
+class KitchenSyncPart: public KPIM::Part
{
Q_OBJECT
public:
Index: kmail/kmail_part.cpp
===================================================================
RCS file: /home/kde/kdepim/kmail/kmail_part.cpp,v
retrieving revision 1.55
diff -p -u -b -r1.55 kmail_part.cpp
--- kmail/kmail_part.cpp 27 Jun 2004 19:20:43 -0000 1.55
+++ kmail/kmail_part.cpp 26 Jul 2004 21:16:18 -0000
@@ -59,7 +59,7 @@ K_EXPORT_COMPONENT_FACTORY( libkmailpart
KMailPart::KMailPart(QWidget *parentWidget, const char *widgetName,
QObject *parent, const char *name, const QStringList &) :
- DCOPObject("KMailIface"), KParts::ReadOnlyPart(parent, name),
+ DCOPObject("KMailIface"), KPIM::Part(parent, name),
mParentWidget( parentWidget )
{
kdDebug(5006) << "KMailPart()" << endl;
@@ -95,6 +95,8 @@ KMailPart::KMailPart(QWidget *parentWidg
kmsetSignalHandler(kmsignalHandler);
kapp->dcopClient()->resume(); // Ok. We are ready for DCOP requests.
+ connect( kmailKernel, SIGNAL( showMailCalled() ), SIGNAL( raise() ) );
+
// create a canvas to insert our widget
QWidget *canvas = new QWidget(parentWidget, widgetName);
canvas->setFocusPolicy(QWidget::ClickFocus);
@@ -238,6 +240,7 @@ QWidget* KMailPart::parentWidget() const
return mParentWidget;
}
+
KMailBrowserExtension::KMailBrowserExtension(KMailPart *parent) :
KParts::BrowserExtension(parent, "KMailBrowserExtension")
{
Index: kmail/kmail_part.h
===================================================================
RCS file: /home/kde/kdepim/kmail/kmail_part.h,v
retrieving revision 1.15
diff -p -u -b -r1.15 kmail_part.h
--- kmail/kmail_part.h 1 Jun 2004 22:48:51 -0000 1.15
+++ kmail/kmail_part.h 26 Jul 2004 21:16:18 -0000
@@ -32,6 +32,8 @@
#include <kparts/statusbarextension.h>
#include <kparts/factory.h>
#include <kparts/event.h>
+#include <libkdepim/part.h>
+
#include <qwidget.h>
class KInstance;
@@ -47,7 +49,7 @@ class KMFolderTreeItem;
class ActionManager;
-class KMailPart: public KParts::ReadOnlyPart, virtual public KMailPartIface
+class KMailPart: public KPIM::Part, virtual public KMailPartIface
{
Q_OBJECT
public:
Index: kmail/kmkernel.cpp
===================================================================
RCS file: /home/kde/kdepim/kmail/kmkernel.cpp,v
retrieving revision 1.298
diff -p -u -b -r1.298 kmkernel.cpp
--- kmail/kmkernel.cpp 9 Jul 2004 20:30:44 -0000 1.298
+++ kmail/kmkernel.cpp 26 Jul 2004 21:16:22 -0000
@@ -684,6 +684,8 @@ DCOPRef KMKernel::getFolder( const QStri
bool KMKernel::showMail( Q_UINT32 serialNumber, QString /* messageId */ )
{
+ emit showMailCalled();
+
KMMainWidget *mainWidget = 0;
if (KMainWindow::memberList) {
KMainWindow *win = 0;
Index: kmail/kmkernel.h
===================================================================
RCS file: /home/kde/kdepim/kmail/kmkernel.h,v
retrieving revision 1.116
diff -p -u -b -r1.116 kmkernel.h
--- kmail/kmkernel.h 19 Jun 2004 20:41:05 -0000 1.116
+++ kmail/kmkernel.h 26 Jul 2004 21:16:23 -0000
@@ -297,6 +297,7 @@ protected slots:
signals:
void configChanged();
+ void showMailCalled();
private:
void openReader( bool onlyCheck );
Index: knode/knode_part.cpp
===================================================================
RCS file: /home/kde/kdepim/knode/knode_part.cpp,v
retrieving revision 1.12
diff -p -u -b -r1.12 knode_part.cpp
--- knode/knode_part.cpp 25 Jul 2004 14:11:16 -0000 1.12
+++ knode/knode_part.cpp 26 Jul 2004 21:16:25 -0000
@@ -48,7 +48,7 @@ K_EXPORT_COMPONENT_FACTORY( libknodepart
KNodePart::KNodePart(QWidget *parentWidget, const char *widgetName,
QObject *parent, const char *name, const QStringList &)
- : KParts::ReadOnlyPart(parent, name),
+ : KPIM::Part(parent, name),
mParentWidget( parentWidget )
{
kdDebug(5003) << "KNodePart()" << endl;
Index: knode/knode_part.h
===================================================================
RCS file: /home/kde/kdepim/knode/knode_part.h,v
retrieving revision 1.2
diff -p -u -b -r1.2 knode_part.h
--- knode/knode_part.h 5 Aug 2003 17:06:06 -0000 1.2
+++ knode/knode_part.h 26 Jul 2004 21:16:25 -0000
@@ -27,9 +27,10 @@
#include <kdeversion.h>
#include <kparts/browserextension.h>
-
#include <kparts/factory.h>
#include <kparts/event.h>
+#include <libkdepim/part.h>
+
#include <qwidget.h>
class KInstance;
@@ -38,7 +39,7 @@ class KAboutData;
class ActionManager;
class KNMainWidget;
-class KNodePart: public KParts::ReadOnlyPart
+class KNodePart: public KPIM::Part
{
Q_OBJECT
public:
Index: korganizer/korganizer_part.cpp
===================================================================
RCS file: /home/kde/kdepim/korganizer/korganizer_part.cpp,v
retrieving revision 1.59
diff -p -u -b -r1.59 korganizer_part.cpp
--- korganizer/korganizer_part.cpp 8 Jul 2004 13:13:01 -0000 1.59
+++ korganizer/korganizer_part.cpp 26 Jul 2004 21:16:26 -0000
@@ -72,7 +72,7 @@ K_EXPORT_COMPONENT_FACTORY( libkorganize
KOrganizerPart::KOrganizerPart( QWidget *parentWidget, const char *widgetName,
QObject *parent, const char *name,
const QStringList & ) :
- KParts::ReadOnlyPart(parent, name)
+ KPIM::Part(parent, name)
{
KOCore::self()->setXMLGUIClient( this );
Index: korganizer/korganizer_part.h
===================================================================
RCS file: /home/kde/kdepim/korganizer/korganizer_part.h,v
retrieving revision 1.26
diff -p -u -b -r1.26 korganizer_part.h
--- korganizer/korganizer_part.h 9 Jun 2004 08:48:15 -0000 1.26
+++ korganizer/korganizer_part.h 26 Jul 2004 21:16:26 -0000
@@ -26,10 +26,9 @@
#include <kurl.h>
#include <kparts/browserextension.h>
-//#include <kparts/statusbarextension.h>
-//#include <kparts/factory.h>
+#include <libkdepim/part.h>
+
#include <korganizer/mainwindow.h>
-//#include <korganizer/calendarviewbase.h>
class KInstance;
@@ -53,7 +52,7 @@ namespace KOrg {
class CalendarViewBase;
}
-class KOrganizerPart: public KParts::ReadOnlyPart,
+class KOrganizerPart: public KPIM::Part,
public KOrg::MainWindow
{
Q_OBJECT
["signature.asc" (application/pgp-signature)]
_______________________________________________
kde-pim mailing list
kde-pim@mail.kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic