From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- comm/mailnews/base/src/nsMsgThreadedDBView.h | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 comm/mailnews/base/src/nsMsgThreadedDBView.h (limited to 'comm/mailnews/base/src/nsMsgThreadedDBView.h') diff --git a/comm/mailnews/base/src/nsMsgThreadedDBView.h b/comm/mailnews/base/src/nsMsgThreadedDBView.h new file mode 100644 index 0000000000..a33c98a3bf --- /dev/null +++ b/comm/mailnews/base/src/nsMsgThreadedDBView.h @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef _nsMsgThreadedDBView_H_ +#define _nsMsgThreadedDBView_H_ + +#include "mozilla/Attributes.h" +#include "nsMsgGroupView.h" + +class nsMsgThreadedDBView : public nsMsgGroupView { + public: + nsMsgThreadedDBView(); + virtual ~nsMsgThreadedDBView(); + + NS_IMETHOD Open(nsIMsgFolder* folder, nsMsgViewSortTypeValue sortType, + nsMsgViewSortOrderValue sortOrder, + nsMsgViewFlagsTypeValue viewFlags, int32_t* pCount) override; + NS_IMETHOD CloneDBView(nsIMessenger* aMessengerInstance, + nsIMsgWindow* aMsgWindow, + nsIMsgDBViewCommandUpdater* aCommandUpdater, + nsIMsgDBView** _retval) override; + NS_IMETHOD Close() override; + NS_IMETHOD Sort(nsMsgViewSortTypeValue sortType, + nsMsgViewSortOrderValue sortOrder) override; + NS_IMETHOD GetViewType(nsMsgViewTypeValue* aViewType) override; + NS_IMETHOD OnParentChanged(nsMsgKey aKeyChanged, nsMsgKey oldParent, + nsMsgKey newParent, + nsIDBChangeListener* aInstigator) override; + + protected: + virtual const char* GetViewName(void) override { return "ThreadedDBView"; } + nsresult InitThreadedView(int32_t& count); + virtual nsresult OnNewHeader(nsIMsgDBHdr* newHdr, nsMsgKey aParentKey, + bool ensureListed) override; + virtual nsresult AddMsgToThreadNotInView(nsIMsgThread* threadHdr, + nsIMsgDBHdr* msgHdr, + bool ensureListed); + nsresult InitSort(nsMsgViewSortTypeValue sortType, + nsMsgViewSortOrderValue sortOrder); + virtual nsresult SortThreads(nsMsgViewSortTypeValue sortType, + nsMsgViewSortOrderValue sortOrder); + virtual void OnExtraFlagChanged(nsMsgViewIndex index, + uint32_t extraFlag) override; + virtual void OnHeaderAddedOrDeleted() override; + void ClearPrevIdArray(); + virtual nsresult RemoveByIndex(nsMsgViewIndex index) override; + nsMsgViewIndex GetInsertInfoForNewHdr(nsIMsgDBHdr* newHdr, + nsMsgViewIndex threadIndex, + int32_t targetLevel); + void MoveThreadAt(nsMsgViewIndex threadIndex); + + // these are used to save off the previous view so that bopping back and forth + // between two views is quick (e.g., threaded and flat sorted by date). + bool m_havePrevView; + nsTArray m_prevKeys; // this is used for caching non-threaded view. + nsTArray m_prevFlags; + nsTArray m_prevLevels; +}; + +#endif -- cgit v1.2.3