[Libreoffice-commits] .: Branch 'feature/template-dialog' - 9 commits - sfx2/inc sfx2/source
Rafael Dominguez
rdominguez at kemper.freedesktop.org
Sun Jun 24 10:31:34 PDT 2012
sfx2/inc/sfx2/templatefolderview.hxx | 5
sfx2/inc/sfx2/templateview.hxx | 2
sfx2/inc/sfx2/templateviewitem.hxx | 5
sfx2/inc/templatedlg.hxx | 11 ++
sfx2/source/control/templatefolderview.cxx | 59 ++++++++++
sfx2/source/control/templateview.cxx | 18 +++
sfx2/source/doc/templatedlg.cxx | 157 ++++++++++++++++++++++++++++-
7 files changed, 255 insertions(+), 2 deletions(-)
New commits:
commit f7ef4c3808de41cd42ef9198f27b5f2ff84799c2
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sun Jun 24 12:52:42 2012 -0430
Display/Hide search edit box when clicking the toolbox button.
Change-Id: I553219699b0d132c115767d70511f11dd887bf8f
diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx
index 0ad84cb..d606fd4 100644
--- a/sfx2/inc/templatedlg.hxx
+++ b/sfx2/inc/templatedlg.hxx
@@ -15,6 +15,7 @@
#include <vcl/dialog.hxx>
#include <vcl/button.hxx>
+class Edit;
class TemplateFolderView;
class ThumbnailViewItem;
class ToolBox;
@@ -70,6 +71,7 @@ private:
PushButton aButtonDraws;
ImageButton maButtonSelMode;
+ Edit *mpSearchEdit;
ToolBox *mpViewBar;
ToolBox *mpActionBar;
ToolBox *mpTemplateBar;
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 23d5230..b1b6395 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -18,6 +18,7 @@
#include <sfx2/thumbnailviewitem.hxx>
#include <tools/urlobj.hxx>
#include <unotools/moduleoptions.hxx>
+#include <vcl/edit.hxx>
#include <vcl/toolbox.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
@@ -34,6 +35,7 @@
#define MAX_LINE_COUNT 2
#define PADDING_TOOLBAR_VIEW 15
+#define PADDING_DLG_BORDER 10
using namespace ::com::sun::star;
using namespace ::com::sun::star::beans;
@@ -47,6 +49,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
aButtonSheets(this,SfxResId(BTN_SELECT_SHEETS)),
aButtonDraws(this,SfxResId(BTN_SELECT_DRAWS)),
maButtonSelMode(this,SfxResId(BTN_SELECTION_MODE)),
+ mpSearchEdit(new Edit(this,WB_HIDE | WB_BORDER)),
mpViewBar( new ToolBox(this, SfxResId(TBX_ACTION_VIEW))),
mpActionBar( new ToolBox(this, SfxResId(TBX_ACTION_ACTION))),
mpTemplateBar( new ToolBox(this, SfxResId(TBX_ACTION_TEMPLATES))),
@@ -87,6 +90,13 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
aViewPos.setY(aActionPos.Y() + aActionSize.getHeight() + PADDING_TOOLBAR_VIEW);
maView->SetPosPixel(aViewPos);
+ // Set search box position and size
+ Size aSearchSize = mpSearchEdit->CalcMinimumSize();
+ aSearchSize.setWidth(aWinSize.getWidth() - 2*PADDING_DLG_BORDER);
+
+ mpSearchEdit->SetSizePixel(aSearchSize);
+ mpSearchEdit->SetPosPixel(Point(PADDING_DLG_BORDER,aActionPos.Y()+aActionSize.getHeight()));
+
maView->SetStyle(WB_TABSTOP | WB_VSCROLL);
maView->SetColCount(MAX_COLUMN_COUNT);
maView->SetLineCount(MAX_LINE_COUNT);
@@ -341,6 +351,22 @@ void SfxTemplateManagerDlg::OnTemplateImport ()
void SfxTemplateManagerDlg::OnTemplateSearch ()
{
+ Point aPos = maView->GetPosPixel();
+ bool bVisible = mpSearchEdit->IsVisible();
+
+ if (bVisible)
+ {
+ aPos.setY(aPos.getY() - mpSearchEdit->GetSizePixel().getHeight());
+ mpActionBar->SetItemState(TBI_TEMPLATE_SEARCH,STATE_NOCHECK);
+ }
+ else
+ {
+ aPos.setY(aPos.getY() + mpSearchEdit->GetSizePixel().getHeight());
+ mpActionBar->SetItemState(TBI_TEMPLATE_SEARCH,STATE_CHECK);
+ }
+
+ maView->SetPosPixel(aPos);
+ mpSearchEdit->Show(!bVisible);
}
void SfxTemplateManagerDlg::OnTemplateAction ()
commit 9cc086f46250156167f68cab81c42296b045438d
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sun Jun 24 10:00:17 2012 -0430
Delete selected templates when clicking delete toolbar button.
Change-Id: I4ad2ea913ab7a8f68b6010cedc8a2a2a72eea0bd
diff --git a/sfx2/inc/sfx2/templatefolderview.hxx b/sfx2/inc/sfx2/templatefolderview.hxx
index 2558025..5ae7385 100644
--- a/sfx2/inc/sfx2/templatefolderview.hxx
+++ b/sfx2/inc/sfx2/templatefolderview.hxx
@@ -45,6 +45,8 @@ public:
void setTemplateStateHdl (const Link &aLink) { maTemplateStateHdl = aLink; }
+ bool removeTemplate (const sal_uInt16 nItemId);
+
void copyFrom (TemplateFolderViewItem *pItem, const rtl::OUString &rPath);
private:
diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx
index 3f6419d..caef6bd 100644
--- a/sfx2/source/control/templatefolderview.cxx
+++ b/sfx2/source/control/templatefolderview.cxx
@@ -342,6 +342,42 @@ void TemplateFolderView::filterTemplatesByApp (const FILTER_APPLICATION &eApp)
}
}
+bool TemplateFolderView::removeTemplate (const sal_uInt16 nItemId)
+{
+ sal_uInt16 nRegionId = mpItemView->getRegionId();
+ sal_uInt16 nItemRegionId = nRegionId + 1;
+ sal_uInt16 nTemplateId = nItemId - 1;
+
+ if (!mpDocTemplates->Delete(nRegionId,nTemplateId))
+ return false;
+
+ for (size_t i = 0, n = mItemList.size(); i < n; ++i)
+ {
+ if (mItemList[i]->mnId == nItemRegionId)
+ {
+
+ TemplateFolderViewItem *pItem = static_cast<TemplateFolderViewItem*>(mItemList[i]);
+ std::vector<TemplateViewItem*>::iterator pIter;
+ for (pIter = pItem->maTemplates.begin(); pIter != pItem->maTemplates.end(); ++pIter)
+ {
+ if ((*pIter)->mnId == nItemId)
+ {
+ delete *pIter;
+
+ pItem->maTemplates.erase(pIter);
+
+ mpItemView->RemoveItem(nItemId);
+ break;
+ }
+ }
+
+ break;
+ }
+ }
+
+ return true;
+}
+
void TemplateFolderView::copyFrom (TemplateFolderViewItem *pItem, const rtl::OUString &rPath)
{
sal_uInt16 nId = 0;
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 16f398a..23d5230 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -381,6 +381,14 @@ void SfxTemplateManagerDlg::OnTemplateMove ()
void SfxTemplateManagerDlg::OnTemplateDelete ()
{
+ std::set<const ThumbnailViewItem*>::const_iterator pIter;
+ for (pIter = maSelTemplates.begin(); pIter != maSelTemplates.end();)
+ {
+ if (maView->removeTemplate((*pIter)->mnId))
+ maSelTemplates.erase(pIter++);
+ else
+ ++pIter;
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 64f9aa20e2c46385f528bebebcf32680dd39dab6
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sun Jun 24 08:33:30 2012 -0430
Set correct handler to keep track of folder item state.
Change-Id: I4d2d30515f22f04ce259689b3ad210c149b1191a
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 492d40a..16f398a 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -91,7 +91,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
maView->SetColCount(MAX_COLUMN_COUNT);
maView->SetLineCount(MAX_LINE_COUNT);
- maView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
+ maView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVFolderStateHdl));
maView->setTemplateStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
aButtonAll.SetClickHdl(LINK(this,SfxTemplateManagerDlg,ViewAllHdl));
commit 496c8232c4f97e5feb507ec1dda5d9454825737d
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sun Jun 24 08:25:32 2012 -0430
Import multiple templates from filesystem to selected folders.
Change-Id: I285d2e429592bb170db6500d6751b6ef9bfad1db
diff --git a/sfx2/inc/sfx2/templatefolderview.hxx b/sfx2/inc/sfx2/templatefolderview.hxx
index 6433777..2558025 100644
--- a/sfx2/inc/sfx2/templatefolderview.hxx
+++ b/sfx2/inc/sfx2/templatefolderview.hxx
@@ -13,6 +13,7 @@
#include <sfx2/thumbnailview.hxx>
class SfxDocumentTemplates;
+class TemplateFolderViewItem;
class TemplateView;
enum FILTER_APPLICATION
@@ -44,6 +45,8 @@ public:
void setTemplateStateHdl (const Link &aLink) { maTemplateStateHdl = aLink; }
+ void copyFrom (TemplateFolderViewItem *pItem, const rtl::OUString &rPath);
+
private:
virtual void OnSelectionMode (bool bMode);
diff --git a/sfx2/inc/sfx2/templateview.hxx b/sfx2/inc/sfx2/templateview.hxx
index f54f707..b3c6b6a 100644
--- a/sfx2/inc/sfx2/templateview.hxx
+++ b/sfx2/inc/sfx2/templateview.hxx
@@ -30,6 +30,8 @@ public:
virtual void Paint (const Rectangle &rRect);
+ void InsertItem (const TemplateViewItem *pItem);
+
void InsertItems (const std::vector<TemplateViewItem*> &rTemplates);
protected:
diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx
index 104ae15..3f6419d 100644
--- a/sfx2/source/control/templatefolderview.cxx
+++ b/sfx2/source/control/templatefolderview.cxx
@@ -342,6 +342,28 @@ void TemplateFolderView::filterTemplatesByApp (const FILTER_APPLICATION &eApp)
}
}
+void TemplateFolderView::copyFrom (TemplateFolderViewItem *pItem, const rtl::OUString &rPath)
+{
+ sal_uInt16 nId = 0;
+ sal_uInt16 nRegionId = pItem->mnId - 1;
+ String aPath(rPath);
+
+ if (!mItemList.empty())
+ nId = (mItemList.back())->mnId+1;
+
+ if (mpDocTemplates->CopyFrom(nRegionId,nId,aPath))
+ {
+ TemplateViewItem *pTemplate = new TemplateViewItem(*mpItemView,mpItemView);
+ pTemplate->mnId = nId;
+ pTemplate->maText = mpDocTemplates->GetName(nRegionId,nId);
+ pTemplate->maPreview1 = lcl_fetchThumbnail(rPath,128,128);
+ pTemplate->setPath(rPath);
+ pTemplate->setFileType(SvFileInformationManager::GetDescription(INetURLObject(rPath)));
+
+ pItem->maTemplates.push_back(pTemplate);
+ }
+}
+
void TemplateFolderView::OnSelectionMode (bool bMode)
{
if (mpItemView->IsVisible())
diff --git a/sfx2/source/control/templateview.cxx b/sfx2/source/control/templateview.cxx
index 74088cc..eb81867 100644
--- a/sfx2/source/control/templateview.cxx
+++ b/sfx2/source/control/templateview.cxx
@@ -90,6 +90,23 @@ void TemplateView::Paint (const Rectangle &rRect)
mpProcessor->process(aSeq);
}
+void TemplateView::InsertItem (const TemplateViewItem *pItem)
+{
+ TemplateViewItem *pCloneItem = new TemplateViewItem(*this,this);
+
+ pCloneItem->mnId = pItem->mnId;
+ pCloneItem->maText = pItem->maText;
+ pCloneItem->setPath(pItem->getPath());
+ pCloneItem->setFileType(pItem->getFileType());
+ pCloneItem->maPreview1 = pItem->maPreview1;
+
+ mItemList.push_back(pCloneItem);
+
+ CalculateItemPositions();
+
+ Invalidate();
+}
+
void TemplateView::InsertItems (const std::vector<TemplateViewItem*> &rTemplates)
{
for (size_t i = 0, n = rTemplates.size(); i < n; ++i )
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index ca97f85..492d40a 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -13,6 +13,7 @@
#include <sfx2/filedlghelper.hxx>
#include <sfx2/sfxresid.hxx>
#include <sfx2/templatefolderview.hxx>
+#include <sfx2/templatefolderviewitem.hxx>
#include <sfx2/templateviewitem.hxx>
#include <sfx2/thumbnailviewitem.hxx>
#include <tools/urlobj.hxx>
@@ -318,15 +319,22 @@ void SfxTemplateManagerDlg::OnTemplateImport ()
aFileDlg.AddFilter( sFilterName, sFilterExt );
aFileDlg.SetCurrentFilter( sFilterName );
- aFileDlg.Execute();
+ ErrCode nCode = aFileDlg.Execute();
- if ( aFileDlg.GetError() == ERRCODE_NONE )
+ if ( nCode == ERRCODE_NONE )
{
com::sun::star::uno::Sequence< ::rtl::OUString > aFiles = aFileDlg.GetSelectedFiles();
if (aFiles.hasElements())
{
+ std::set<const ThumbnailViewItem*>::const_iterator pIter;
+ for (pIter = maSelFolders.begin(); pIter != maSelFolders.end(); ++pIter)
+ {
+ TemplateFolderViewItem *pFolder = (TemplateFolderViewItem*)(*pIter);
+ for (size_t i = 0, n = aFiles.getLength(); i < n; ++i)
+ maView->copyFrom(pFolder,aFiles[i]);
+ }
}
}
}
commit 199b2f8023e4c1e9242d3b83f62027ee81cbaa3e
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sun Jun 24 08:23:15 2012 -0430
Keep track of selected folders in TemplateManager dialog.
Change-Id: I9348d73ec70dc0ab222682736640bbe0ca28bf6f
diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx
index 75dd36f..0ad84cb 100644
--- a/sfx2/inc/templatedlg.hxx
+++ b/sfx2/inc/templatedlg.hxx
@@ -77,6 +77,7 @@ private:
int mnSelectionCount;
std::set<const ThumbnailViewItem*> maSelTemplates;
+ std::set<const ThumbnailViewItem*> maSelFolders;
com::sun::star::uno::Reference< com::sun::star::frame::XComponentLoader > mxDesktop;
};
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 83bc005..ca97f85 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -215,6 +215,15 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg,TBXTemplateHdl)
IMPL_LINK(SfxTemplateManagerDlg, TVFolderStateHdl, const ThumbnailViewItem*, pItem)
{
+ if (pItem->isSelected())
+ {
+ maSelFolders.insert(pItem);
+ }
+ else
+ {
+ maSelFolders.erase(pItem);
+ }
+
return 0;
}
commit 4de494c8e73f35a66647c31ce61cb01f5d9353cd
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sun Jun 24 02:20:13 2012 -0430
Display file picker dialog when clicking import template toolbox button.
Change-Id: Id4eba9076163f2d2b2916ad253236c0c377da37c
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index bb60bd5..83bc005 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -10,11 +10,13 @@
#include "templatedlg.hxx"
#include <comphelper/processfactory.hxx>
+#include <sfx2/filedlghelper.hxx>
#include <sfx2/sfxresid.hxx>
#include <sfx2/templatefolderview.hxx>
#include <sfx2/templateviewitem.hxx>
#include <sfx2/thumbnailviewitem.hxx>
#include <tools/urlobj.hxx>
+#include <unotools/moduleoptions.hxx>
#include <vcl/toolbox.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
@@ -22,6 +24,7 @@
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
#include "doc.hrc"
#include "templatedlg.hrc"
@@ -252,6 +255,71 @@ void SfxTemplateManagerDlg::OnTemplateCreate ()
void SfxTemplateManagerDlg::OnTemplateImport ()
{
+ sal_Int16 nDialogType =
+ com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE;
+
+ sfx2::FileDialogHelper aFileDlg(nDialogType, SFXWB_MULTISELECTION);
+
+ // add "All" filter
+ aFileDlg.AddFilter( String(SfxResId( STR_SFX_FILTERNAME_ALL) ),
+ DEFINE_CONST_UNICODE(FILEDIALOG_FILTER_ALL) );
+
+ // add template filter
+ rtl::OUString sFilterExt;
+ rtl::OUString sFilterName( SfxResId( STR_TEMPLATE_FILTER ).toString() );
+
+ // add filters of modules which are installed
+ SvtModuleOptions aModuleOpt;
+ if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
+ sFilterExt += "*.ott;*.stw;*.oth";
+
+ if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
+ {
+ if ( !sFilterExt.isEmpty() )
+ sFilterExt += ";";
+
+ sFilterExt += "*.ots;*.stc";
+ }
+
+ if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
+ {
+ if ( !sFilterExt.isEmpty() )
+ sFilterExt += ";";
+
+ sFilterExt += "*.otp;*.sti";
+ }
+
+ if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) )
+ {
+ if ( !sFilterExt.isEmpty() )
+ sFilterExt += ";";
+
+ sFilterExt += "*.otg;*.std";
+ }
+
+ if ( !sFilterExt.isEmpty() )
+ sFilterExt += ";";
+
+ sFilterExt += "*.vor";
+
+ sFilterName += " (";
+ sFilterName += sFilterExt;
+ sFilterName += ")";
+
+ aFileDlg.AddFilter( sFilterName, sFilterExt );
+ aFileDlg.SetCurrentFilter( sFilterName );
+
+ aFileDlg.Execute();
+
+ if ( aFileDlg.GetError() == ERRCODE_NONE )
+ {
+ com::sun::star::uno::Sequence< ::rtl::OUString > aFiles = aFileDlg.GetSelectedFiles();
+
+ if (aFiles.hasElements())
+ {
+
+ }
+ }
}
void SfxTemplateManagerDlg::OnTemplateSearch ()
commit 6cf42f89b1f4908405d75d6ed1072be57d914cdc
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sat Jun 23 23:16:06 2012 -0430
Open template for editing when clicking on the edit toolbox button.
Change-Id: If965e52694a856bdd8827486682ce9531786a149
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 8b3bfad..bb60bd5 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -12,10 +12,14 @@
#include <comphelper/processfactory.hxx>
#include <sfx2/sfxresid.hxx>
#include <sfx2/templatefolderview.hxx>
+#include <sfx2/templateviewitem.hxx>
#include <sfx2/thumbnailviewitem.hxx>
+#include <tools/urlobj.hxx>
#include <vcl/toolbox.hxx>
+#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
@@ -28,6 +32,7 @@
#define PADDING_TOOLBAR_VIEW 15
using namespace ::com::sun::star;
+using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::frame;
SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
@@ -259,6 +264,26 @@ void SfxTemplateManagerDlg::OnTemplateAction ()
void SfxTemplateManagerDlg::OnTemplateEdit ()
{
+ uno::Sequence< PropertyValue > aArgs(1);
+ aArgs[0].Name = "AsTemplate";
+ aArgs[0].Value <<= sal_False;
+
+ uno::Reference< XStorable > xStorable;
+ std::set<const ThumbnailViewItem*>::const_iterator pIter;
+ for (pIter = maSelTemplates.begin(); pIter != maSelTemplates.end(); ++pIter)
+ {
+ const TemplateViewItem *pItem = static_cast<const TemplateViewItem*>(*pIter);
+
+ try
+ {
+ xStorable = uno::Reference< XStorable >(
+ mxDesktop->loadComponentFromURL(pItem->getPath(),rtl::OUString("_blank"), 0, aArgs ),
+ uno::UNO_QUERY );
+ }
+ catch( const uno::Exception& )
+ {
+ }
+ }
}
void SfxTemplateManagerDlg::OnTemplateProperties ()
commit 3c5b59e3864ce231acd9697ed6a48155f74a34a6
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sat Jun 23 23:15:18 2012 -0430
Read and set template path attribute in TemplateViewItem.
Change-Id: Id9cca6d8a716d7f99904db8cba21d7f4c1fe2074
diff --git a/sfx2/inc/sfx2/templateviewitem.hxx b/sfx2/inc/sfx2/templateviewitem.hxx
index f9797f4..ffb72cd 100644
--- a/sfx2/inc/sfx2/templateviewitem.hxx
+++ b/sfx2/inc/sfx2/templateviewitem.hxx
@@ -20,6 +20,10 @@ public:
virtual ~TemplateViewItem ();
+ void setPath (const rtl::OUString &rPath) { maPath = rPath; }
+
+ const rtl::OUString& getPath () const { return maPath; }
+
void setAuthor (const rtl::OUString &rAuthor) { maAuthor = rAuthor; }
const rtl::OUString& getAuthor () const { return maAuthor; }
@@ -34,6 +38,7 @@ public:
private:
+ rtl::OUString maPath;
rtl::OUString maAuthor;
rtl::OUString maKeywords;
rtl::OUString maFileType;
diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx
index ac2fa43..104ae15 100644
--- a/sfx2/source/control/templatefolderview.cxx
+++ b/sfx2/source/control/templatefolderview.cxx
@@ -283,6 +283,7 @@ void TemplateFolderView::Populate ()
TemplateViewItem *pTemplateItem = new TemplateViewItem(*mpItemView,mpItemView);
pTemplateItem->mnId = j+1;
pTemplateItem->maText = mpDocTemplates->GetName(i,j);
+ pTemplateItem->setPath(aURL);
pTemplateItem->setFileType(aType);
pTemplateItem->maPreview1 = lcl_fetchThumbnail(aURL,128,128);
diff --git a/sfx2/source/control/templateview.cxx b/sfx2/source/control/templateview.cxx
index 6ff1c1f..74088cc 100644
--- a/sfx2/source/control/templateview.cxx
+++ b/sfx2/source/control/templateview.cxx
@@ -99,6 +99,7 @@ void TemplateView::InsertItems (const std::vector<TemplateViewItem*> &rTemplates
pItem->mnId = pCur->mnId;
pItem->maText = pCur->maText;
+ pItem->setPath(pCur->getPath());
pItem->setFileType(pCur->getFileType());
pItem->maPreview1 = pCur->maPreview1;
commit 9ab2176b43647eedd4fcc1c47c747214433a7e1c
Author: Rafael Dominguez <venccsralph at gmail.com>
Date: Sat Jun 23 22:20:11 2012 -0430
Create an instance of com.sun.star.frame.Desktop service.
Change-Id: Iac9891502eed15ab60674f12d4efe1728937c22a
diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx
index 256f8ce..75dd36f 100644
--- a/sfx2/inc/templatedlg.hxx
+++ b/sfx2/inc/templatedlg.hxx
@@ -19,6 +19,12 @@ class TemplateFolderView;
class ThumbnailViewItem;
class ToolBox;
+namespace com {
+ namespace sun { namespace star { namespace frame {
+ class XComponentLoader;
+ } } }
+}
+
class SfxTemplateManagerDlg : public ModalDialog
{
public:
@@ -71,6 +77,8 @@ private:
int mnSelectionCount;
std::set<const ThumbnailViewItem*> maSelTemplates;
+
+ com::sun::star::uno::Reference< com::sun::star::frame::XComponentLoader > mxDesktop;
};
#endif // TEMPLATEDLG_HXX
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index d490ff5..8b3bfad 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -9,11 +9,16 @@
#include "templatedlg.hxx"
+#include <comphelper/processfactory.hxx>
#include <sfx2/sfxresid.hxx>
#include <sfx2/templatefolderview.hxx>
#include <sfx2/thumbnailviewitem.hxx>
#include <vcl/toolbox.hxx>
+#include <com/sun/star/frame/XComponentLoader.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+
#include "doc.hrc"
#include "templatedlg.hrc"
@@ -22,6 +27,9 @@
#define PADDING_TOOLBAR_VIEW 15
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::frame;
+
SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
: ModalDialog(parent, SfxResId(DLG_TEMPLATE_MANAGER)),
aButtonAll(this,SfxResId(BTN_SELECT_ALL)),
@@ -34,7 +42,8 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
mpActionBar( new ToolBox(this, SfxResId(TBX_ACTION_ACTION))),
mpTemplateBar( new ToolBox(this, SfxResId(TBX_ACTION_TEMPLATES))),
maView(new TemplateFolderView(this,SfxResId(TEMPLATE_VIEW))),
- mnSelectionCount(0)
+ mnSelectionCount(0),
+ mxDesktop(comphelper::getProcessServiceFactory()->createInstance( "com.sun.star.frame.Desktop" ),uno::UNO_QUERY )
{
maButtonSelMode.SetStyle(maButtonSelMode.GetStyle() | WB_TOGGLE);
More information about the Libreoffice-commits
mailing list