From e142b0db9bf7d04a2a4d88fc7a43e14555665955 Mon Sep 17 00:00:00 2001 From: "putterman%netscape.com" Date: Tue, 20 Apr 1999 01:11:11 +0000 Subject: [PATCH] Split datasources into message and folder datasources and moved them to base. --- mailnews/base/build/makefile.win | 1 + mailnews/base/build/nsMsgBaseCID.h | 16 ++++++ mailnews/base/build/nsMsgFactory.cpp | 52 ++++++++++++++++++- mailnews/base/src/MANIFEST | 2 + mailnews/base/src/Makefile.in | 4 ++ mailnews/base/src/makefile.win | 7 +++ mailnews/base/src/nsMsgAppCore.cpp | 2 +- mailnews/local/build/nsMsgLocalCID.h | 8 --- mailnews/local/build/nsMsgLocalFactory.cpp | 43 ++++----------- mailnews/local/public/MANIFEST | 1 - mailnews/local/public/Makefile.in | 1 - mailnews/local/public/makefile.win | 1 - mailnews/local/src/Makefile.in | 2 - mailnews/local/src/makefile.win | 2 - mailnews/local/src/nsLocalMailFolder.cpp | 2 +- .../ui/messenger/resources/folderPane.xul | 2 +- mailnews/ui/messenger/resources/mailshell.xul | 4 +- .../ui/messenger/resources/threadPane.xul | 2 +- 18 files changed, 96 insertions(+), 56 deletions(-) diff --git a/mailnews/base/build/makefile.win b/mailnews/base/build/makefile.win index 33bb47d68afe..b1b7c0d7a959 100644 --- a/mailnews/base/build/makefile.win +++ b/mailnews/base/build/makefile.win @@ -104,6 +104,7 @@ LINCS=$(LINCS) -I, \ -I$(PUBLIC)\netlib \ -I$(PUBLIC)\dom \ -I$(PUBLIC)\appcores \ + -I$(PUBLIC)\mime \ $(NULL) #//------------------------------------------------------------------------ diff --git a/mailnews/base/build/nsMsgBaseCID.h b/mailnews/base/build/nsMsgBaseCID.h index a7b93a1e6062..10758c595d3c 100644 --- a/mailnews/base/build/nsMsgBaseCID.h +++ b/mailnews/base/build/nsMsgBaseCID.h @@ -33,6 +33,22 @@ 0xa8f54ee0, 0xd292, 0x11d2, \ {0xb7, 0xf6, 0x00, 0x80, 0x5f, 0x05, 0xff, 0xa5}} +#define NS_MAILNEWSFOLDERDATASOURCE_CID \ +{ /* 2B8ED4A4-F684-11d2-8A5D-0060B0FC04D2 */ \ + 0x2b8ed4a4, \ + 0xf684, \ + 0x11d2, \ + {0x8a, 0x5d, 0x0, 0x60, 0xb0, 0xfc, 0x4, 0xd2} \ +} + +#define NS_MAILNEWSMESSAGEDATASOURCE_CID \ +{ /* 2B8ED4A5-F684-11d2-8A5D-0060B0FC04D2 */ \ + 0x2b8ed4a5, \ + 0xf684, \ + 0x11d2, \ + {0x8a, 0x5d, 0x0, 0x60, 0xb0, 0xfc, 0x4, 0xd2} \ +} + #define NS_MESSAGEVIEWDATASOURCE_CID \ { /* 14495573-E945-11d2-8A52-0060B0FC04D2 */ \ 0x14495573, 0xe945, 0x11d2, \ diff --git a/mailnews/base/build/nsMsgFactory.cpp b/mailnews/base/build/nsMsgFactory.cpp index 19c75e1c9218..0ee4a1727924 100644 --- a/mailnews/base/build/nsMsgFactory.cpp +++ b/mailnews/base/build/nsMsgFactory.cpp @@ -43,6 +43,8 @@ #include "nsMsgAccountManager.h" #include "nsMsgIdentity.h" #include "nsMessageViewDataSource.h" +#include "nsMsgFolderDataSource.h" +#include "nsMsgMessageDataSource.h" static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); @@ -58,6 +60,8 @@ static NS_DEFINE_CID(kCMsgFolderEventCID, NS_MSGFOLDEREVENT_CID); static NS_DEFINE_CID(kCMsgAppCoreCID, NS_MSGAPPCORE_CID); static NS_DEFINE_CID(kCMsgGroupRecordCID, NS_MSGGROUPRECORD_CID); +static NS_DEFINE_CID(kMailNewsFolderDataSourceCID, NS_MAILNEWSFOLDERDATASOURCE_CID); +static NS_DEFINE_CID(kMailNewsMessageDataSourceCID, NS_MAILNEWSMESSAGEDATASOURCE_CID); static NS_DEFINE_CID(kCMessageViewDataSourceCID, NS_MESSAGEVIEWDATASOURCE_CID); static NS_DEFINE_CID(kCMsgAccountManagerCID, NS_MSGACCOUNTMANAGER_CID); @@ -208,8 +212,34 @@ nsMsgFactory::CreateInstance(nsISupports *aOuter, nsMsgIdentity* identity = new nsMsgIdentity(); return identity->QueryInterface(aIID, aResult); } - - else if (mClassID.Equals(kCMessageViewDataSourceCID)) + else if (mClassID.Equals(kMailNewsFolderDataSourceCID)) + { + nsresult rv; + nsMsgFolderDataSource * folderDataSource = new nsMsgFolderDataSource(); + if (folderDataSource) + rv = folderDataSource->QueryInterface(aIID, aResult); + else + rv = NS_ERROR_OUT_OF_MEMORY; + + if (NS_FAILED(rv) && folderDataSource) + delete folderDataSource; + return rv; + } + else if (mClassID.Equals(kMailNewsMessageDataSourceCID)) + { + nsresult rv; + nsMsgMessageDataSource * messageDataSource = new nsMsgMessageDataSource(); + if (messageDataSource) + rv = messageDataSource->QueryInterface(aIID, aResult); + else + rv = NS_ERROR_OUT_OF_MEMORY; + + if (NS_FAILED(rv) && messageDataSource) + delete messageDataSource; + + return rv; + } + else if (mClassID.Equals(kCMessageViewDataSourceCID)) { nsMessageViewDataSource * msgView = new nsMessageViewDataSource(); if (msgView) @@ -342,6 +372,20 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path) PR_TRUE, PR_TRUE); if (NS_FAILED(rv)) goto done; + // register our RDF datasources: + rv = compMgr->RegisterComponent(kMailNewsFolderDataSourceCID, + "Mail/News Folder Data Source", + NS_RDF_DATASOURCE_PROGID_PREFIX "mailnewsfolders", + path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) goto done; + + // register our RDF datasources: + rv = compMgr->RegisterComponent(kMailNewsMessageDataSourceCID, + "Mail/News Message Data Source", + NS_RDF_DATASOURCE_PROGID_PREFIX "mailnewsmessages", + path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) goto done; + rv = compMgr->RegisterComponent(kCMessageViewDataSourceCID, "Mail/News Message View Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "mail-messageview", @@ -385,6 +429,10 @@ NSUnregisterSelf(nsISupports* aServMgr, const char* path) if (NS_FAILED(rv)) goto done; rv = compMgr->UnregisterComponent(kCMsgMailSessionCID, path); if(NS_FAILED(rv)) goto done; + rv = compMgr->UnregisterComponent(kMailNewsFolderDataSourceCID, path); + if (NS_FAILED(rv)) goto done; + rv = compMgr->UnregisterComponent(kMailNewsMessageDataSourceCID, path); + if (NS_FAILED(rv)) goto done; rv = compMgr->UnregisterComponent(kCMessageViewDataSourceCID, path); if(NS_FAILED(rv)) goto done; diff --git a/mailnews/base/src/MANIFEST b/mailnews/base/src/MANIFEST index 4f0fa918c867..777a98c2b1d0 100644 --- a/mailnews/base/src/MANIFEST +++ b/mailnews/base/src/MANIFEST @@ -21,6 +21,8 @@ nsMsgKeyArray.h nsUrlListenerManager.h nsMsgMailSession.h nsMsgAppCore.h +nsMsgFolderDataSource.h +nsMsgMessageDataSource.h nsMessageViewDataSource.h nsMsgAccount.h nsMsgAccountManager.h diff --git a/mailnews/base/src/Makefile.in b/mailnews/base/src/Makefile.in index bae0e6e84971..56afffeb8dbe 100644 --- a/mailnews/base/src/Makefile.in +++ b/mailnews/base/src/Makefile.in @@ -33,6 +33,8 @@ EXPORTS = \ nsMsgAppCore.h \ nsMsgAccountManager.h \ nsMsgAccount.h \ + nsMsgFolderDataSource.h \ + nsMsgMessageDataSource.h \ nsMessageViewDataSource.h \ $(NULL) @@ -50,6 +52,8 @@ CPPSRCS = \ nsMsgAccountManager.cpp \ nsMsgAccount.cpp \ nsCopyMessageStreamListener.cpp \ + nsMsgFolderDataSource.cpp \ + nsMsgMessageDataSource.cpp \ nsMessageViewDataSource.cpp \ $(NULL) diff --git a/mailnews/base/src/makefile.win b/mailnews/base/src/makefile.win index 27513cf705d4..7f241e898b63 100644 --- a/mailnews/base/src/makefile.win +++ b/mailnews/base/src/makefile.win @@ -40,6 +40,8 @@ CPPSRCS= \ nsMessageViewDataSource.cpp \ nsMsgAccountManager.cpp \ nsMsgAccount.cpp \ + nsMsgFolderDataSource.cpp \ + nsMsgMessageDataSource.cpp \ $(NULL) @@ -58,6 +60,8 @@ CPP_OBJS= \ .\$(OBJDIR)\nsMessageViewDataSource.obj \ .\$(OBJDIR)\nsMsgAccountManager.obj \ .\$(OBJDIR)\nsMsgAccount.obj \ + .\$(OBJDIR)\nsMsgFolderDataSource.obj \ + .\$(OBJDIR)\nsMsgMessageDataSource.obj \ $(NULL) @@ -67,6 +71,8 @@ EXPORTS= \ nsUrlListenerManager.h \ nsMsgMailSession.h \ nsMsgAppCore.h \ + nsMsgFolderDataSource.h \ + nsMsgMessageDataSource.h \ nsMessageViewDataSource.h \ nsMsgAccount.h \ nsMsgAccountManager.h \ @@ -84,6 +90,7 @@ LINCS= \ -I$(PUBLIC)\dom \ -I$(PUBLIC)\appcores \ -I$(PUBLIC)\security \ + -I$(PUBLIC)\mime \ $(NULL) LCFLAGS = \ diff --git a/mailnews/base/src/nsMsgAppCore.cpp b/mailnews/base/src/nsMsgAppCore.cpp index 22d219edff6c..d0aff88fe888 100644 --- a/mailnews/base/src/nsMsgAppCore.cpp +++ b/mailnews/base/src/nsMsgAppCore.cpp @@ -187,7 +187,7 @@ static nsresult AddView(nsIRDFCompositeDataSource *database, nsIMessageView **me if(NS_SUCCEEDED(rv)) { rv = gRDFService->GetDataSource("rdf:mail-messageview", &view); - rv = NS_SUCCEEDED(rv) && gRDFService->GetDataSource("rdf:mailnews", &datasource); + rv = NS_SUCCEEDED(rv) && gRDFService->GetDataSource("rdf:mailnewsfolders", &datasource); nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService); } diff --git a/mailnews/local/build/nsMsgLocalCID.h b/mailnews/local/build/nsMsgLocalCID.h index c7307c35488d..0a769ca99402 100644 --- a/mailnews/local/build/nsMsgLocalCID.h +++ b/mailnews/local/build/nsMsgLocalCID.h @@ -23,14 +23,6 @@ #include "nsIFactory.h" #include "nsIComponentManager.h" -#define NS_MAILNEWSDATASOURCE_CID \ -{ /* ddd9d2b2-cd67-11d2-8cca-0060b0fc14a3 */ \ - 0xddd9d2b2, \ - 0xcd67, \ - 0x11d2, \ - {0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \ -} - #define NS_MAILNEWSRESOURCE_CID \ { /* e490d22c-cd67-11d2-8cca-0060b0fc14a3 */ \ 0xe490d22c, \ diff --git a/mailnews/local/build/nsMsgLocalFactory.cpp b/mailnews/local/build/nsMsgLocalFactory.cpp index 98367a0886c8..1221482e5773 100644 --- a/mailnews/local/build/nsMsgLocalFactory.cpp +++ b/mailnews/local/build/nsMsgLocalFactory.cpp @@ -26,7 +26,6 @@ // include files for components this factory creates... #include "nsMailboxUrl.h" #include "nsPop3URL.h" -#include "nsMSGFolderDataSource.h" #include "nsMailboxService.h" #include "nsLocalMailFolder.h" #include "nsParseMailbox.h" @@ -38,8 +37,7 @@ static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); static NS_DEFINE_CID(kMailboxUrlCID, NS_MAILBOXURL_CID); static NS_DEFINE_CID(kMailboxParserCID, NS_MAILBOXPARSER_CID); static NS_DEFINE_CID(kMailboxServiceCID, NS_MAILBOXSERVICE_CID); -static NS_DEFINE_CID(kMailNewsDatasourceCID, NS_MAILNEWSDATASOURCE_CID); -static NS_DEFINE_CID(kMailNewsResourceCID, NS_MAILNEWSRESOURCE_CID); +static NS_DEFINE_CID(kMailNewsLocalResourceCID, NS_MAILNEWSRESOURCE_CID); static NS_DEFINE_CID(kPop3ServiceCID, NS_POP3SERVICE_CID); static NS_DEFINE_CID(kPop3UrlCID, NS_POP3URL_CID); static NS_DEFINE_CID(kPop3IncomingServerCID, NS_POP3INCOMINGSERVER_CID); @@ -175,27 +173,16 @@ nsresult nsMsgLocalFactory::CreateInstance(nsISupports *aOuter, const nsIID &aII if (NS_FAILED(rv) && popService) delete popService; } - else if (mClassID.Equals(kMailNewsDatasourceCID)) + else if (mClassID.Equals(kMailNewsLocalResourceCID)) { - nsMSGFolderDataSource * folderDataSource = new nsMSGFolderDataSource(); - if (folderDataSource) - rv = folderDataSource->QueryInterface(aIID, aResult); + nsMsgLocalMailFolder * localFolder = new nsMsgLocalMailFolder(); + if (localFolder) + rv = localFolder->QueryInterface(aIID, aResult); else rv = NS_ERROR_OUT_OF_MEMORY; - if (NS_FAILED(rv) && folderDataSource) - delete folderDataSource; - } - else if (mClassID.Equals(kMailNewsResourceCID)) - { - nsMsgLocalMailFolder * localDataSource = new nsMsgLocalMailFolder(); - if (localDataSource) - rv = localDataSource->QueryInterface(aIID, aResult); - else - rv = NS_ERROR_OUT_OF_MEMORY; - - if (NS_FAILED(rv) && localDataSource) - delete localDataSource; + if (NS_FAILED(rv) && localFolder) + delete localFolder; } else if (mClassID.Equals(kPop3IncomingServerCID)) rv = NS_NewPop3IncomingServer(nsISupports::GetIID(), aResult); @@ -275,16 +262,9 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path) path, PR_TRUE, PR_TRUE); if (NS_FAILED(rv)) goto done; - // register our RDF datasources: - rv = compMgr->RegisterComponent(kMailNewsDatasourceCID, - "Mail/News Data Source", - NS_RDF_DATASOURCE_PROGID_PREFIX "mailnews", - path, PR_TRUE, PR_TRUE); - if (NS_FAILED(rv)) goto done; - // register our RDF resource factories: - rv = compMgr->RegisterComponent(kMailNewsResourceCID, - "Mail/News Resource Factory", + rv = compMgr->RegisterComponent(kMailNewsLocalResourceCID, + "Mail/News Local Resource Factory", NS_RDF_RESOURCE_FACTORY_PROGID_PREFIX "mailbox", path, PR_TRUE, PR_TRUE); if (NS_FAILED(rv)) goto done; @@ -330,10 +310,7 @@ NSUnregisterSelf(nsISupports* aServMgr, const char* path) rv = compMgr->UnregisterFactory(kMailboxParserCID, path); if (NS_FAILED(rv)) goto done; - rv = compMgr->UnregisterComponent(kMailNewsDatasourceCID, path); - if (NS_FAILED(rv)) goto done; - - rv = compMgr->UnregisterComponent(kMailNewsResourceCID, path); + rv = compMgr->UnregisterComponent(kMailNewsLocalResourceCID, path); if (NS_FAILED(rv)) goto done; rv = compMgr->UnregisterComponent(kPop3IncomingServerCID, path); diff --git a/mailnews/local/public/MANIFEST b/mailnews/local/public/MANIFEST index 430c23e1dd75..413d046b14cc 100644 --- a/mailnews/local/public/MANIFEST +++ b/mailnews/local/public/MANIFEST @@ -16,7 +16,6 @@ # This is a list of local files which get copied to the mozilla:dist:mailnews directory # -nsIRDFMSGFolderDataSource.h nsIPop3Sink.h nsIPop3URL.h nsIMailboxUrl.h diff --git a/mailnews/local/public/Makefile.in b/mailnews/local/public/Makefile.in index 989d4b11153c..72c6a04e44e7 100644 --- a/mailnews/local/public/Makefile.in +++ b/mailnews/local/public/Makefile.in @@ -23,7 +23,6 @@ srcdir = @srcdir@ include $(DEPTH)/config/autoconf.mk EXPORTS= \ - nsIRDFMSGFolderDataSource.h \ nsIPop3Sink.h \ nsIPop3URL.h \ nsIMailboxUrl.h \ diff --git a/mailnews/local/public/makefile.win b/mailnews/local/public/makefile.win index 103a175e9e80..9cf24f4175b3 100644 --- a/mailnews/local/public/makefile.win +++ b/mailnews/local/public/makefile.win @@ -19,7 +19,6 @@ DEPTH=..\..\.. IGNORE_MANIFEST=1 EXPORTS = \ - nsIRDFMSGFolderDataSource.h \ nsIPop3Sink.h \ nsIPop3URL.h \ nsIMailboxUrl.h \ diff --git a/mailnews/local/src/Makefile.in b/mailnews/local/src/Makefile.in index 1f7c3890cc17..f6a9a3ba1130 100644 --- a/mailnews/local/src/Makefile.in +++ b/mailnews/local/src/Makefile.in @@ -25,7 +25,6 @@ MODULE=localmailbase LIBRARY_NAME=localmailbase_s CPPSRCS = \ - nsMSGFolderDataSource.cpp \ nsPop3Protocol.cpp \ nsPop3URL.cpp \ nsPop3Sink.cpp \ @@ -47,7 +46,6 @@ EXPORTS= \ nsMailboxProtocol.h \ nsMailboxService.h \ nsPop3Service.h \ - nsMSGFolderDataSource.h \ nsLocalMailFolder.h \ nsPop3IncomingServer.h \ $(NULL) diff --git a/mailnews/local/src/makefile.win b/mailnews/local/src/makefile.win index 8a6d2c8a4634..b6a9cfd73965 100644 --- a/mailnews/local/src/makefile.win +++ b/mailnews/local/src/makefile.win @@ -29,7 +29,6 @@ REQUIRES=xpcom nspr rdf DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN CPPSRCS= \ - nsMSGFolderDataSource.cpp \ nsPop3Protocol.cpp \ nsPop3URL.cpp \ nsPop3Sink.cpp \ @@ -43,7 +42,6 @@ CPPSRCS= \ $(NULL) CPP_OBJS= \ - .\$(OBJDIR)\nsMSGFolderDataSource.obj \ .\$(OBJDIR)\nsPop3Protocol.obj \ .\$(OBJDIR)\nsPop3URL.obj \ .\$(OBJDIR)\nsPop3Sink.obj \ diff --git a/mailnews/local/src/nsLocalMailFolder.cpp b/mailnews/local/src/nsLocalMailFolder.cpp index 8687c7acf705..df238c1de499 100644 --- a/mailnews/local/src/nsLocalMailFolder.cpp +++ b/mailnews/local/src/nsLocalMailFolder.cpp @@ -65,7 +65,7 @@ nsMsgLocalMailFolder::nsMsgLocalMailFolder(void) (nsISupports**) &rdfService); if(NS_SUCCEEDED(rv)) { - if(NS_SUCCEEDED(rv = rdfService->GetDataSource("rdf:mailnews", &datasource))) + if(NS_SUCCEEDED(rv = rdfService->GetDataSource("rdf:mailnewsfolders", &datasource))) { nsIFolderListener *folderListener; if(NS_SUCCEEDED(datasource->QueryInterface(nsIFolderListener::GetIID(), (void**)&folderListener))) diff --git a/mailnews/ui/messenger/resources/folderPane.xul b/mailnews/ui/messenger/resources/folderPane.xul index acb270b42767..7188cca8f9ac 100644 --- a/mailnews/ui/messenger/resources/folderPane.xul +++ b/mailnews/ui/messenger/resources/folderPane.xul @@ -16,7 +16,7 @@ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> - + diff --git a/mailnews/ui/messenger/resources/mailshell.xul b/mailnews/ui/messenger/resources/mailshell.xul index c05bf2c9bfb4..696506b50703 100644 --- a/mailnews/ui/messenger/resources/mailshell.xul +++ b/mailnews/ui/messenger/resources/mailshell.xul @@ -359,10 +359,10 @@ - - diff --git a/mailnews/ui/messenger/resources/threadPane.xul b/mailnews/ui/messenger/resources/threadPane.xul index ea6980f9d7cc..77809b1775d4 100644 --- a/mailnews/ui/messenger/resources/threadPane.xul +++ b/mailnews/ui/messenger/resources/threadPane.xul @@ -15,7 +15,7 @@ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> - +