summaryrefslogtreecommitdiff
path: root/sfx2/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-05 13:57:56 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-03-05 18:08:44 +0100
commit6ca3a21ba96f93b9ed729202ef5d4170daddd6f7 (patch)
tree997078113e3fac133aa7d3d698707842b59f29c1 /sfx2/source
parent5ad62544bce42396faaae2bc79c7517af6ff085b (diff)
weld SfxSaveAsTemplateDialog
Change-Id: Ia663102a2d871fdca093c0d33e5af5a79deebeb5 Reviewed-on: https://gerrit.libreoffice.org/50775 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2/source')
-rw-r--r--sfx2/source/doc/objserv.cxx7
-rw-r--r--sfx2/source/doc/saveastemplatedlg.cxx99
2 files changed, 44 insertions, 62 deletions
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index aaf71fb25586..5af4ef033706 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -97,7 +97,7 @@
#include <com/sun/star/document/XDocumentProperties.hpp>
#include <guisaveas.hxx>
-#include <sfx2/saveastemplatedlg.hxx>
+#include <saveastemplatedlg.hxx>
#include <memory>
#include <cppuhelper/implbase.hxx>
#include <unotools/ucbstreamhelper.hxx>
@@ -795,9 +795,8 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
case SID_DOCTEMPLATE:
{
// save as document templates
- ScopedVclPtrInstance<SfxSaveAsTemplateDialog> aDlg;
- aDlg->setDocumentModel(GetModel());
- aDlg->Execute();
+ SfxSaveAsTemplateDialog aDlg(rReq.GetFrameWeld(), GetModel());
+ aDlg.run();
break;
}
diff --git a/sfx2/source/doc/saveastemplatedlg.cxx b/sfx2/source/doc/saveastemplatedlg.cxx
index 168c39bc7e79..efdb861d86a8 100644
--- a/sfx2/source/doc/saveastemplatedlg.cxx
+++ b/sfx2/source/doc/saveastemplatedlg.cxx
@@ -7,8 +7,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-#include <sfx2/saveastemplatedlg.hxx>
-
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <comphelper/storagehelper.hxx>
@@ -28,57 +26,42 @@
#include <sfx2/strings.hrc>
+#include <saveastemplatedlg.hxx>
+
using namespace ::com::sun::star;
using namespace ::com::sun::star::frame;
// Class SfxSaveAsTemplateDialog --------------------------------------------------
-SfxSaveAsTemplateDialog::SfxSaveAsTemplateDialog():
- ModalDialog(nullptr, "SaveAsTemplateDialog", "sfx/ui/saveastemplatedlg.ui"),
- msSelectedCategory(OUString()),
- msTemplateName(OUString()),
- mnRegionPos(0)
+SfxSaveAsTemplateDialog::SfxSaveAsTemplateDialog(weld::Window* pParent, const uno::Reference<frame::XModel> &rModel)
+ : m_xBuilder(Application::CreateBuilder(pParent, "sfx/ui/saveastemplatedlg.ui"))
+ , m_xDialog(m_xBuilder->weld_dialog("SaveAsTemplateDialog"))
+ , m_xLBCategory(m_xBuilder->weld_tree_view("categorylb"))
+ , m_xCBXDefault(m_xBuilder->weld_check_button("defaultcb"))
+ , m_xTemplateNameEdit(m_xBuilder->weld_entry("name_entry"))
+ , m_xOKButton(m_xBuilder->weld_button("ok"))
+ , msSelectedCategory(OUString())
+ , msTemplateName(OUString())
+ , mnRegionPos(0)
+ , m_xModel(rModel)
{
- get(mpLBCategory, "categorylb");
- get(mpCBXDefault, "defaultcb");
- get(mpTemplateNameEdit, "name_entry");
- get(mpOKButton, "ok");
-
initialize();
SetCategoryLBEntries(msCategories);
- mpTemplateNameEdit->SetModifyHdl(LINK(this, SfxSaveAsTemplateDialog, TemplateNameEditHdl));
- mpLBCategory->SetSelectHdl(LINK(this, SfxSaveAsTemplateDialog, SelectCategoryHdl));
- mpOKButton->SetClickHdl(LINK(this, SfxSaveAsTemplateDialog, OkClickHdl));
+ m_xTemplateNameEdit->connect_changed(LINK(this, SfxSaveAsTemplateDialog, TemplateNameEditHdl));
+ m_xLBCategory->connect_changed(LINK(this, SfxSaveAsTemplateDialog, SelectCategoryHdl));
+ m_xLBCategory->set_size_request(m_xLBCategory->get_approximate_char_width() * 32,
+ m_xLBCategory->get_height_rows(8));
+ m_xOKButton->connect_clicked(LINK(this, SfxSaveAsTemplateDialog, OkClickHdl));
- mpOKButton->Disable();
- mpOKButton->SetText(SfxResId(STR_SAVEDOC));
-}
-
-SfxSaveAsTemplateDialog::~SfxSaveAsTemplateDialog()
-{
- disposeOnce();
-}
-
-void SfxSaveAsTemplateDialog::dispose()
-{
- mpLBCategory.clear();
- mpTemplateNameEdit.clear();
- mpOKButton.clear();
- mpCBXDefault.clear();
-
- ModalDialog::dispose();
-}
-
-void SfxSaveAsTemplateDialog::setDocumentModel(const uno::Reference<frame::XModel> &rModel)
-{
- m_xModel = rModel;
+ m_xOKButton->set_sensitive(false);
+ m_xOKButton->set_label(SfxResId(STR_SAVEDOC));
}
-IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, OkClickHdl, Button*, void)
+IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, OkClickHdl, weld::Button&, void)
{
- std::unique_ptr<weld::MessageDialog> xQueryDlg(Application::CreateMessageDialog(GetFrameWeld(), VclMessageType::Question, VclButtonsType::YesNo,
- OUString()));
+ std::unique_ptr<weld::MessageDialog> xQueryDlg(Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Question,
+ VclButtonsType::YesNo, OUString()));
if(!IsTemplateNameUnique())
{
OUString sQueryMsg(SfxResId(STR_QMSG_TEMPLATE_OVERWRITE));
@@ -89,34 +72,34 @@ IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, OkClickHdl, Button*, void)
return;
}
- if(SaveTemplate())
- Close();
+ if (SaveTemplate())
+ m_xDialog->response(RET_OK);
else
{
OUString sText( SfxResId(STR_ERROR_SAVEAS) );
- std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetFrameWeld(), VclMessageType::Warning, VclButtonsType::Ok,
- sText.replaceFirst("$1", msTemplateName)));
+ std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Warning,
+ VclButtonsType::Ok, sText.replaceFirst("$1", msTemplateName)));
xBox->run();
}
}
-IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, TemplateNameEditHdl, Edit&, void)
+IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, TemplateNameEditHdl, weld::Entry&, void)
{
- msTemplateName = comphelper::string::strip(mpTemplateNameEdit->GetText(), ' ');
- SelectCategoryHdl(*mpLBCategory);
+ msTemplateName = comphelper::string::strip(m_xTemplateNameEdit->get_text(), ' ');
+ SelectCategoryHdl(*m_xLBCategory);
}
-IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, SelectCategoryHdl, ListBox&, void)
+IMPL_LINK_NOARG(SfxSaveAsTemplateDialog, SelectCategoryHdl, weld::TreeView&, void)
{
- if(mpLBCategory->GetSelectedEntryPos() == 0)
+ if (m_xLBCategory->get_selected_index() == 0)
{
msSelectedCategory = OUString();
- mpOKButton->Disable();
+ m_xOKButton->set_sensitive(false);
}
else
{
- msSelectedCategory = mpLBCategory->GetSelectedEntry();
- mpOKButton->Enable(!msTemplateName.isEmpty());
+ msSelectedCategory = m_xLBCategory->get_selected();
+ m_xOKButton->set_sensitive(!msTemplateName.isEmpty());
}
}
@@ -130,14 +113,14 @@ void SfxSaveAsTemplateDialog::initialize()
}
}
-void SfxSaveAsTemplateDialog::SetCategoryLBEntries(std::vector<OUString> aFolderNames)
+void SfxSaveAsTemplateDialog::SetCategoryLBEntries(const std::vector<OUString>& rFolderNames)
{
- if (!aFolderNames.empty())
+ if (!rFolderNames.empty())
{
- for (size_t i = 0, n = aFolderNames.size(); i < n; ++i)
- mpLBCategory->InsertEntry(aFolderNames[i], i+1);
+ for (size_t i = 0, n = rFolderNames.size(); i < n; ++i)
+ m_xLBCategory->insert(rFolderNames[i], i+1);
}
- mpLBCategory->SelectEntryPos(0);
+ m_xLBCategory->select(0);
}
bool SfxSaveAsTemplateDialog::IsTemplateNameUnique()
@@ -173,7 +156,7 @@ bool SfxSaveAsTemplateDialog::SaveTemplate()
if (!bIsSaved)
return false;
- if ( !sURL.isEmpty() && mpCBXDefault->IsChecked() )
+ if (!sURL.isEmpty() && m_xCBXDefault->get_active())
{
OUString aServiceName;
try