tdf#101302: Add option to clear unavailable files in menu/start center

This patch adresses tdf#101302. It essentially adds a menu item to clear
unavailable files from the menu and start center. Previously, they were
visible as recent documents in the menu and start center, and caused
error when selected.

Change-Id: I55ee9f663b24c343a90817c438aff11d9230061c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120480
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
This commit is contained in:
oguzbalkaya
2022-08-31 13:23:53 +02:00
committed by Hossein
parent 575081690b
commit 2839b604af
4 changed files with 25 additions and 0 deletions
+2
View File
@@ -80,6 +80,8 @@ public:
// received on load of recently used file
void DispatchedLoadRecentUsedFile();
void clearUnavailableFiles();
private:
virtual bool MouseButtonDown( const MouseEvent& rMEvt ) override;
+13
View File
@@ -18,6 +18,7 @@
*/
#include <sal/log.hxx>
#include <comphelper/DirectoryHelper.hxx>
#include <recentdocsview.hxx>
#include <sfx2/sfxresid.hxx>
#include <unotools/historyoptions.hxx>
@@ -173,6 +174,18 @@ void RecentDocsView::Reload()
Invalidate();
}
void RecentDocsView::clearUnavailableFiles(){
std::vector< SvtHistoryOptions::HistoryItem > aHistoryList = SvtHistoryOptions::GetList( EHistoryType::PickList );
for ( size_t i = 0; i < aHistoryList.size(); i++ )
{
const SvtHistoryOptions::HistoryItem& rPickListEntry = aHistoryList[i];
if ( !comphelper::DirectoryHelper::fileExists(rPickListEntry.sURL) ){
SvtHistoryOptions::DeleteItem(EHistoryType::PickList,rPickListEntry.sURL);
}
}
Reload();
}
bool RecentDocsView::MouseButtonDown( const MouseEvent& rMEvt )
{
if (rMEvt.IsLeft())
+3
View File
@@ -603,6 +603,9 @@ IMPL_LINK (BackingWindow, MenuSelectHdl, const OString&, rId, void)
mxAllRecentThumbnails->Reload();
return;
}
else if(rId == "clear_unavailable"){
mxAllRecentThumbnails->clearUnavailableFiles();
}
else if (!rId.isEmpty())
{
initializeLocalView();
+7
View File
@@ -17,6 +17,13 @@
<property name="label" translatable="yes" context="startcenter|clear_all">Clear Recent Documents</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="clear_unavailable">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes" context="startcenter|clear_unavailable">Clear Unavailable Files</property>
</object>
</child>
</object>
<object class="GtkImage" id="database_all_image">
<property name="visible">True</property>