[Libreoffice-commits] core.git: 2 commits - sfx2/inc sfx2/source
Rafael Dominguez
venccsralph at gmail.com
Thu Mar 28 21:01:55 PDT 2013
sfx2/inc/sfx2/templatelocalview.hxx | 2
sfx2/inc/templatedlg.hxx | 4 +
sfx2/source/control/templatelocalview.cxx | 12 +++
sfx2/source/doc/templatedlg.cxx | 97 ++++++++++++++++++++++++++++--
4 files changed, 110 insertions(+), 5 deletions(-)
New commits:
commit 05a9ca5b8920e2452130b0a327763a2c3f6dfd24
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Thu Mar 28 23:33:59 2013 -0430
fdo#60844 Remember last open folder and filter in Template Manager.
Change-Id: I81982af9a540c9966df8c0474b6527c5d08ed6f3
diff --git a/sfx2/inc/sfx2/templatelocalview.hxx b/sfx2/inc/sfx2/templatelocalview.hxx
index 2837eca..fe7d50a 100644
--- a/sfx2/inc/sfx2/templatelocalview.hxx
+++ b/sfx2/inc/sfx2/templatelocalview.hxx
@@ -42,6 +42,8 @@ public:
virtual void showRegion (ThumbnailViewItem *pItem);
+ void showRegion (const OUString &rName);
+
sal_uInt16 getCurRegionItemId () const;
sal_uInt16 getRegionId (size_t pos) const;
diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx
index 894e70a..d422459 100644
--- a/sfx2/inc/templatedlg.hxx
+++ b/sfx2/inc/templatedlg.hxx
@@ -55,6 +55,10 @@ public:
private:
+ void readSettings ();
+
+ void writeSettings ();
+
virtual void Resize ();
DECL_LINK(TBXViewHdl, void*);
diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx
index 90f928b..1f867ea 100644
--- a/sfx2/source/control/templatelocalview.cxx
+++ b/sfx2/source/control/templatelocalview.cxx
@@ -159,6 +159,18 @@ void TemplateLocalView::showRegion(ThumbnailViewItem *pItem)
maOpenRegionHdl.Call(NULL);
}
+void TemplateLocalView::showRegion(const OUString &rName)
+{
+ for (int i = 0, n = maRegions.size(); i < n; ++i)
+ {
+ if (maRegions[i]->maTitle == rName)
+ {
+ showRegion(maRegions[i]);
+ break;
+ }
+ }
+}
+
sal_uInt16 TemplateLocalView::getCurRegionItemId() const
{
for (size_t i = 0; i < maRegions.size(); ++i)
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 22bc0ed..cfe5b6c 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -35,6 +35,7 @@
#include <tools/urlobj.hxx>
#include <unotools/moduleoptions.hxx>
#include <unotools/pathoptions.hxx>
+#include <unotools/viewoptions.hxx>
#include <vcl/edit.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/toolbox.hxx>
@@ -58,6 +59,10 @@
#define PADDING_DLG_BORDER 10
+#define TM_SETTING_MANAGER "TemplateManager"
+#define TM_SETTING_LASTFOLDER "LastFolder"
+#define TM_SETTING_FILTER "SelectedFilter"
+
using namespace ::com::sun::star;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::embed;
@@ -251,16 +256,19 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
createDefaultTemplateMenu();
maView->Populate();
- maView->showRootRegion();
- maView->Show();
-
mpCurView->filterItems(ViewFilter_Application(FILTER_APP_WRITER));
+ readSettings();
+
+ maView->Show();
+
FreeResource();
}
SfxTemplateManagerDlg::~SfxTemplateManagerDlg ()
{
+ writeSettings();
+
// Synchronize the config before deleting it
syncRepositories();
for (size_t i = 0, n = maRepositories.size(); i < n; ++i)
@@ -340,6 +348,81 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg,ActivatePageHdl)
return 0;
}
+void SfxTemplateManagerDlg::readSettings ()
+{
+ OUString aLastFolder;
+ sal_uInt16 nPageId = FILTER_DOCS;
+ SvtViewOptions aViewSettings( E_DIALOG, TM_SETTING_MANAGER );
+
+ if ( aViewSettings.Exists() )
+ {
+ sal_uInt16 nFilter;
+ aViewSettings.GetUserItem(TM_SETTING_LASTFOLDER) >>= aLastFolder;
+ aViewSettings.GetUserItem(TM_SETTING_FILTER) >>= nFilter;
+
+ switch (nFilter)
+ {
+ case FILTER_APP_WRITER:
+ nPageId = FILTER_DOCS;
+ break;
+ case FILTER_APP_IMPRESS:
+ nPageId = FILTER_PRESENTATIONS;
+ break;
+ case FILTER_APP_CALC:
+ nPageId = FILTER_SHEETS;
+ break;
+ case FILTER_APP_DRAW:
+ nPageId = FILTER_DRAWS;
+ break;
+ }
+ }
+
+ if (!aLastFolder.getLength())
+ maView->showRootRegion();
+ else
+ maView->showRegion(aLastFolder);
+
+ maTabControl.SelectTabPage(nPageId);
+}
+
+void SfxTemplateManagerDlg::writeSettings ()
+{
+ Sequence< NamedValue > aSettings(2);
+
+ OUString aLastFolder;
+
+ if (mpCurView == maView && maView->getCurRegionId())
+ aLastFolder = maView->getRegionName(maView->getCurRegionId()-1);
+
+ // last folder
+ aSettings[0].Name = TM_SETTING_LASTFOLDER;
+ aSettings[0].Value <<= aLastFolder;
+
+ sal_uInt16 nFilter = FILTER_APP_WRITER;
+ switch (maTabControl.GetCurPageId())
+ {
+ case FILTER_DOCS:
+ nFilter = FILTER_APP_WRITER;
+ break;
+ case FILTER_PRESENTATIONS:
+ nFilter = FILTER_APP_IMPRESS;
+ break;
+ case FILTER_SHEETS:
+ nFilter = FILTER_APP_CALC;
+ break;
+ case FILTER_DRAWS:
+ nFilter = FILTER_APP_DRAW;
+ break;
+ }
+
+ aSettings[1].Name = TM_SETTING_FILTER;
+ aSettings[1].Value <<= nFilter;
+
+ // write
+ SvtViewOptions aViewSettings( E_DIALOG, TM_SETTING_MANAGER );
+ aViewSettings.SetUserData( aSettings );
+}
+
void SfxTemplateManagerDlg::Resize()
{
// Fit the tab page control and the toolbars
commit 45264d8fd882101912065b9bbb47260fa6db200c
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Thu Mar 28 21:40:17 2013 -0430
Position view below toolbox and search bar when resizing Template dialog.
Change-Id: Icfafb88218ad10e8729fd966265e1ccc001041e5
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index f9e1d55..22bc0ed 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -364,11 +364,9 @@ void SfxTemplateManagerDlg::Resize()
mpActionBar->SetPosSizePixel(aActionPos,aActionSize);
mpTemplateBar->SetSizePixel(aTemplateSize);
- // Set view position below toolbox
Point aViewPos = maView->GetPosPixel();
aViewPos.setY(nToolbarsHeight);
aViewPos.setX(0);
- Size aThumbSize(aWinSize.getWidth(), aWinSize.getHeight() - aViewPos.getY());
// Set search box position and size
Size aSearchSize = mpSearchEdit->CalcMinimumSize();
@@ -377,6 +375,12 @@ void SfxTemplateManagerDlg::Resize()
mpSearchEdit->SetSizePixel(aSearchSize);
mpSearchEdit->SetPosPixel(Point(PADDING_DLG_BORDER,aViewPos.Y()));
+ if (mpSearchEdit->IsVisible())
+ aViewPos.setY(aViewPos.getY() + mpSearchEdit->GetSizePixel().getHeight() );
+
+ // Set view position below toolbox and search box
+ Size aThumbSize(aWinSize.getWidth(), aWinSize.getHeight() - aViewPos.getY());
+
maView->SetPosSizePixel(aViewPos,aThumbSize);
mpOnlineView->SetPosSizePixel(aViewPos,aThumbSize);
mpSearchView->SetPosSizePixel(aViewPos,aThumbSize);
More information about the Libreoffice-commits
mailing list