summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorMaxim Monastirsky <momonasmon@gmail.com>2015-07-17 10:12:06 +0300
committerSzymon Kłos <eszkadev@gmail.com>2015-07-24 12:28:46 +0200
commit24ad90870931b9aa4482469f0d03cb4fc1df9feb (patch)
tree0230a5e4655dd98877baf4f72fc8a8eb6f81aeb2 /framework
parent4963c4b5cf23e9bbc84ee4e3551de9d0100f6c92 (diff)
Don't show open remote entry in the recent doc menu
We use the same menu controller for both the Open toolbar button and the Recent Documents menu. While it's reasonable to put the open remote file command under the open button, it has nothing to do with recent documents, so it shouldn't appear there. Also don't add the "No Document" entry in case the open remote entry is visible. The whole point of the "No Document" entry is that we can't leave the menu empty, but if there is another visible entry, it's not needed. Change-Id: Ibefbdc6dc7d1d49f555d8ee23f67b47eba19b445 Signed-off-by: Szymon Kłos <eszkadev@gmail.com>
Diffstat (limited to 'framework')
-rw-r--r--framework/source/uielement/recentfilesmenucontroller.cxx62
1 files changed, 40 insertions, 22 deletions
diff --git a/framework/source/uielement/recentfilesmenucontroller.cxx b/framework/source/uielement/recentfilesmenucontroller.cxx
index a2c3432c77ca..61d2f0281b37 100644
--- a/framework/source/uielement/recentfilesmenucontroller.cxx
+++ b/framework/source/uielement/recentfilesmenucontroller.cxx
@@ -60,7 +60,8 @@ class RecentFilesMenuController : public svt::PopupMenuControllerBase
using svt::PopupMenuControllerBase::disposing;
public:
- RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext );
+ RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext,
+ const uno::Sequence< uno::Any >& args );
virtual ~RecentFilesMenuController();
// XServiceInfo
@@ -115,12 +116,25 @@ private:
std::vector< RecentFile > m_aRecentFilesItems;
bool m_bDisabled : 1;
+ bool m_bShowRemote;
};
-RecentFilesMenuController::RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext ) :
+RecentFilesMenuController::RecentFilesMenuController( const uno::Reference< uno::XComponentContext >& xContext,
+ const uno::Sequence< uno::Any >& args ) :
svt::PopupMenuControllerBase( xContext ),
- m_bDisabled( false )
+ m_bDisabled( false ),
+ m_bShowRemote( false )
{
+ css::beans::PropertyValue aPropValue;
+ for ( sal_Int32 i = 0; i < args.getLength(); ++i )
+ {
+ args[i] >>= aPropValue;
+ if ( aPropValue.Name == "ShowRemote" )
+ {
+ aPropValue.Value >>= m_bShowRemote;
+ break;
+ }
+ }
}
RecentFilesMenuController::~RecentFilesMenuController()
@@ -227,26 +241,30 @@ void RecentFilesMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >
FWK_RESSTR(STR_CLEAR_RECENT_FILES_HELP) );
// Open remote menu entry
- pVCLPopupMenu->InsertItem( sal_uInt16( nCount + 2 ),
- FWK_RESSTR(STR_OPEN_REMOTE) );
- pVCLPopupMenu->SetItemCommand( sal_uInt16( nCount + 2 ),
- OUString( CMD_OPEN_REMOTE ) );
+ if ( m_bShowRemote )
+ {
+ pVCLPopupMenu->InsertItem( sal_uInt16( nCount + 2 ),
+ FWK_RESSTR(STR_OPEN_REMOTE) );
+ pVCLPopupMenu->SetItemCommand( sal_uInt16( nCount + 2 ),
+ OUString( CMD_OPEN_REMOTE ) );
+ }
}
else
{
- // No recent documents => insert "no document" string
- pVCLPopupMenu->InsertItem( 1, FWK_RESSTR(STR_NODOCUMENT) );
- // Do not disable it, otherwise the Toolbar controller and MenuButton
- // will display SV_RESID_STRING_NOSELECTIONPOSSIBLE instead of STR_NODOCUMENT
- pVCLPopupMenu->SetItemBits( 1, pVCLPopupMenu->GetItemBits( 1 ) | MenuItemBits::NOSELECT );
-
- pVCLPopupMenu->InsertSeparator();
-
- // Open remote menu entry
- pVCLPopupMenu->InsertItem( sal_uInt16( 2 ),
- FWK_RESSTR(STR_OPEN_REMOTE) );
- pVCLPopupMenu->SetItemCommand( sal_uInt16( 2 ),
- OUString( CMD_OPEN_REMOTE ) );
+ if ( m_bShowRemote )
+ {
+ // Open remote menu entry
+ pVCLPopupMenu->InsertItem( 1, FWK_RESSTR(STR_OPEN_REMOTE) );
+ pVCLPopupMenu->SetItemCommand( 1, CMD_OPEN_REMOTE );
+ }
+ else
+ {
+ // No recent documents => insert "no document" string
+ pVCLPopupMenu->InsertItem( 1, FWK_RESSTR(STR_NODOCUMENT) );
+ // Do not disable it, otherwise the Toolbar controller and MenuButton
+ // will display SV_RESID_STRING_NOSELECTIONPOSSIBLE instead of STR_NODOCUMENT
+ pVCLPopupMenu->SetItemBits( 1, pVCLPopupMenu->GetItemBits( 1 ) | MenuItemBits::NOSELECT );
+ }
}
}
}
@@ -444,9 +462,9 @@ IMPL_STATIC_LINK( RecentFilesMenuController, ExecuteHdl_Impl, LoadRecentFile*, p
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_comp_framework_RecentFilesMenuController_get_implementation(
css::uno::XComponentContext *context,
- css::uno::Sequence<css::uno::Any> const &)
+ css::uno::Sequence<css::uno::Any> const &args)
{
- return cppu::acquire(new RecentFilesMenuController(context));
+ return cppu::acquire(new RecentFilesMenuController(context, args));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */