summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZolnai Tamás <tamas.zolnai@collabora.com>2014-01-23 13:34:48 +0100
committerZolnai Tamás <tamas.zolnai@collabora.com>2014-01-25 06:47:05 +0100
commit9808306875fff4b97db6acb1182a153c874f15c5 (patch)
tree1f9e482cccd147f24c8afefd066b7c8f12c1a4fd
parent1511047198ce36bcc910732bf8dfc5d40550b927 (diff)
Related fdo#65826: Set StartCenter's min width to display one column of docs
If there is document to display. Otherwise set minimum to the width of greating background text. Updating minimum size is needed only when the list is cleared. Change-Id: Ic089571fd21d5ab9ded0f4cde7e1aa72fd508d32
-rw-r--r--include/sfx2/recentdocsview.hxx2
-rw-r--r--include/sfx2/thumbnailview.hxx2
-rw-r--r--sfx2/source/control/recentdocsview.cxx35
-rw-r--r--sfx2/source/dialog/backingcomp.cxx12
-rw-r--r--sfx2/source/dialog/backingwindow.cxx1
5 files changed, 43 insertions, 9 deletions
diff --git a/include/sfx2/recentdocsview.hxx b/include/sfx2/recentdocsview.hxx
index 63a067d7a0e2..1706935a5ac8 100644
--- a/include/sfx2/recentdocsview.hxx
+++ b/include/sfx2/recentdocsview.hxx
@@ -56,6 +56,8 @@ public:
int mnFileTypes;
+ virtual void Clear();
+
DECL_STATIC_LINK( RecentDocsView, ExecuteHdl_Impl, LoadRecentFile* );
protected:
diff --git a/include/sfx2/thumbnailview.hxx b/include/sfx2/thumbnailview.hxx
index 3ee7a45bf067..139a838da2f3 100644
--- a/include/sfx2/thumbnailview.hxx
+++ b/include/sfx2/thumbnailview.hxx
@@ -192,7 +192,7 @@ public:
void RemoveItem( sal_uInt16 nItemId );
- void Clear();
+ virtual void Clear();
// Change current thumbnail item list with new one (invalidates all pointers to a thumbnail item)
void updateItems(const std::vector<ThumbnailViewItem *> &items);
diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx
index 69b605954e2f..9ed9a96dda0c 100644
--- a/sfx2/source/control/recentdocsview.cxx
+++ b/sfx2/source/control/recentdocsview.cxx
@@ -54,14 +54,6 @@ RecentDocsView::RecentDocsView( Window* pParent )
SetStyle(GetStyle() | WB_VSCROLL);
setItemMaxTextLength( mnItemMaxTextLength );
setItemDimensions( mnItemMaxSize, mnItemMaxSize, mnTextHeight, mnItemPadding );
-
- // Set prefered width so text lines will not be cut off
- Font aOldFont(GetFont());
- Font aNewFont(aOldFont);
- aNewFont.SetHeight(20);
- SetFont(aNewFont);
- set_width_request(std::max(GetTextWidth(maWelcomeLine1),GetTextWidth(maWelcomeLine2)));
- SetFont(aOldFont);
}
extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeRecentDocsView(Window *pParent, VclBuilder::stringmap &)
@@ -185,6 +177,21 @@ void RecentDocsView::loadRecentDocs()
CalculateItemPositions();
Invalidate();
+
+ // Set prefered width
+ if( mFilteredItemList.empty() )
+ {
+ Font aOldFont(GetFont());
+ Font aNewFont(aOldFont);
+ aNewFont.SetHeight(20);
+ SetFont(aNewFont);
+ set_width_request(std::max(GetTextWidth(maWelcomeLine1),GetTextWidth(maWelcomeLine2)));
+ SetFont(aOldFont);
+ }
+ else
+ {
+ set_width_request(mnItemMaxSize);
+ }
}
void RecentDocsView::MouseButtonDown( const MouseEvent& rMEvt )
@@ -304,6 +311,18 @@ long RecentDocsView::GetThumbnailSize() const
return mnItemMaxSize;
}
+void RecentDocsView::Clear()
+{
+ Font aOldFont(GetFont());
+ Font aNewFont(aOldFont);
+ aNewFont.SetHeight(20);
+ SetFont(aNewFont);
+ set_width_request(std::max(GetTextWidth(maWelcomeLine1),GetTextWidth(maWelcomeLine2)));
+ SetFont(aOldFont);
+
+ ThumbnailView::Clear();
+}
+
IMPL_STATIC_LINK_NOINSTANCE( RecentDocsView, ExecuteHdl_Impl, LoadRecentFile*, pLoadRecentFile )
{
try
diff --git a/sfx2/source/dialog/backingcomp.cxx b/sfx2/source/dialog/backingcomp.cxx
index d79c545266bf..7d511517bd18 100644
--- a/sfx2/source/dialog/backingcomp.cxx
+++ b/sfx2/source/dialog/backingcomp.cxx
@@ -808,7 +808,19 @@ void SAL_CALL BackingComp::dispatch( const css::util::URL& aURL, const css::uno:
Window* pWindow = VCLUnoHelper::GetWindow(m_xWindow);
BackingWindow* pBack = dynamic_cast<BackingWindow*>(pWindow );
if( pBack )
+ {
pBack->clearRecentFileList();
+
+ // Recalculate minimum width
+ css::uno::Reference< css::awt::XWindow > xParentWindow = m_xFrame->getContainerWindow();
+ WorkWindow* pParent = (WorkWindow*)VCLUnoHelper::GetWindow(xParentWindow);
+ if( pParent )
+ {
+ pParent->SetMinOutputSizePixel( Size(
+ pBack->get_width_request(),
+ pParent->GetMinOutputSizePixel().Height()) );
+ }
+ }
}
}
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index bf128f0cd6fd..daa3d10964fa 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -557,5 +557,6 @@ Size BackingWindow::GetOptimalSize() const
void BackingWindow::clearRecentFileList()
{
mpAllRecentThumbnails->Clear();
+ set_width_request(mpAllRecentThumbnails->get_width_request() + mpAllButtonsBox->GetOptimalSize().Width());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab:*/