summaryrefslogtreecommitdiff
path: root/cui/source/dialogs/hldocntp.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/dialogs/hldocntp.cxx')
-rw-r--r--cui/source/dialogs/hldocntp.cxx133
1 files changed, 55 insertions, 78 deletions
diff --git a/cui/source/dialogs/hldocntp.cxx b/cui/source/dialogs/hldocntp.cxx
index 65afc25c77d0..9ecb6f54d3b7 100644
--- a/cui/source/dialogs/hldocntp.cxx
+++ b/cui/source/dialogs/hldocntp.cxx
@@ -42,6 +42,7 @@
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <bitmaps.hlst>
+#include <cuihyperdlg.hxx>
#include <dialmgr.hxx>
#include <strings.hrc>
@@ -89,9 +90,9 @@ bool SvxHyperlinkNewDocTp::ImplGetURLObject( const OUString& rPath, const OUStri
}
if ( bIsValidURL )
{
- sal_Int32 nPos = m_pLbDocTypes->GetSelectedEntryPos();
- if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- aURLObject.SetExtension( static_cast<DocumentTypeData*>(m_pLbDocTypes->GetEntryData( nPos ))->aStrExt );
+ sal_Int32 nPos = m_xLbDocTypes->get_selected_index();
+ if (nPos != -1)
+ aURLObject.SetExtension(reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos).toInt64())->aStrExt);
}
}
@@ -104,55 +105,40 @@ bool SvxHyperlinkNewDocTp::ImplGetURLObject( const OUString& rPath, const OUStri
|*
|************************************************************************/
-SvxHyperlinkNewDocTp::SvxHyperlinkNewDocTp ( vcl::Window *pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet)
-: SvxHyperlinkTabPageBase ( pParent, pDlg, "HyperlinkNewDocPage", "cui/ui/hyperlinknewdocpage.ui", pItemSet )
+SvxHyperlinkNewDocTp::SvxHyperlinkNewDocTp(weld::Container* pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet)
+ : SvxHyperlinkTabPageBase(pParent, pDlg, "cui/ui/hyperlinknewdocpage.ui", "HyperlinkNewDocPage", pItemSet)
+ , m_xRbtEditNow(xBuilder->weld_radio_button("editnow"))
+ , m_xRbtEditLater(xBuilder->weld_radio_button("editlater"))
+ , m_xCbbPath(new SvxHyperURLBox(xBuilder->weld_combo_box("path")))
+ , m_xBtCreate(xBuilder->weld_button("create"))
+ , m_xLbDocTypes(xBuilder->weld_tree_view("types"))
{
- get(m_pRbtEditNow, "editnow");
- get(m_pRbtEditLater, "editlater");
- get(m_pCbbPath, "path");
- m_pCbbPath->SetSmartProtocol(INetProtocol::File);
- get(m_pBtCreate, "create");
- m_pBtCreate->SetModeImage(Image(StockImage::Yes, RID_SVXBMP_NEWDOC));
- get(m_pLbDocTypes, "types");
- m_pLbDocTypes->set_height_request(m_pLbDocTypes->GetTextHeight() * 5);
-
- // Set HC bitmaps and disable display of bitmap names.
- m_pBtCreate->EnableTextDisplay (false);
+ m_xCbbPath->SetSmartProtocol(INetProtocol::File);
+ m_xLbDocTypes->set_size_request(-1, m_xLbDocTypes->get_height_rows(5));
InitStdControls();
SetExchangeSupport ();
- m_pCbbPath->Show();
- m_pCbbPath->SetBaseURL(SvtPathOptions().GetWorkPath());
+ m_xCbbPath->show();
+ m_xCbbPath->SetBaseURL(SvtPathOptions().GetWorkPath());
// set defaults
- m_pRbtEditNow->Check();
+ m_xRbtEditNow->set_active(true);
- m_pBtCreate->SetClickHdl ( LINK ( this, SvxHyperlinkNewDocTp, ClickNewHdl_Impl ) );
+ m_xBtCreate->connect_clicked(LINK(this, SvxHyperlinkNewDocTp, ClickNewHdl_Impl));
FillDocumentList ();
}
SvxHyperlinkNewDocTp::~SvxHyperlinkNewDocTp ()
{
- disposeOnce();
-}
-
-void SvxHyperlinkNewDocTp::dispose()
-{
- if (m_pLbDocTypes)
+ if (m_xLbDocTypes)
{
- for ( sal_Int32 n=0; n<m_pLbDocTypes->GetEntryCount(); n++ )
- delete static_cast<DocumentTypeData*>(m_pLbDocTypes->GetEntryData ( n ));
- m_pLbDocTypes = nullptr;
+ for (sal_Int32 n = 0, nEntryCount = m_xLbDocTypes->n_children(); n < nEntryCount; ++n)
+ delete reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(n).toInt64());
+ m_xLbDocTypes = nullptr;
}
- m_pRbtEditNow.clear();
- m_pRbtEditLater.clear();
- m_pCbbPath.clear();
- m_pBtCreate.clear();
- m_pLbDocTypes.clear();
- SvxHyperlinkTabPageBase::dispose();
}
/*************************************************************************
@@ -166,9 +152,9 @@ void SvxHyperlinkNewDocTp::FillDlgFields(const OUString& /*rStrURL*/)
{
}
-void SvxHyperlinkNewDocTp::FillDocumentList ()
+void SvxHyperlinkNewDocTp::FillDocumentList()
{
- EnterWait();
+ weld::WaitObject aWaitObj(mpDialog->getDialog());
uno::Sequence< uno::Sequence< beans::PropertyValue > >
aDynamicMenuEntries( SvtDynamicMenuOptions().GetMenu( EDynamicMenuType::NewMenu ) );
@@ -206,16 +192,14 @@ void SvxHyperlinkNewDocTp::FillDocumentList ()
// insert doc-name and image
OUString aTitleName = aTitle.replaceFirst( "~", "" );
- sal_Int16 nPos = m_pLbDocTypes->InsertEntry ( aTitleName );
- OUString aStrDefExt( pFilter->GetDefaultExtension () );
- DocumentTypeData *pTypeData = new DocumentTypeData ( aDocumentUrl, aStrDefExt.copy( 2 ) );
- m_pLbDocTypes->SetEntryData ( nPos, pTypeData );
+ OUString aStrDefExt(pFilter->GetDefaultExtension());
+ DocumentTypeData *pTypeData = new DocumentTypeData(aDocumentUrl, aStrDefExt.copy(2));
+ OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pTypeData)));
+ m_xLbDocTypes->append(sId, aTitleName);
}
}
}
- m_pLbDocTypes->SelectEntryPos ( 0 );
-
- LeaveWait();
+ m_xLbDocTypes->select(0);
}
/*************************************************************************
@@ -229,9 +213,9 @@ void SvxHyperlinkNewDocTp::GetCurentItemData ( OUString& rStrURL, OUString& aStr
SvxLinkInsertMode& eMode )
{
// get data from dialog-controls
- rStrURL = m_pCbbPath->GetText();
+ rStrURL = m_xCbbPath->get_active_text();
INetURLObject aURL;
- if ( ImplGetURLObject( rStrURL, m_pCbbPath->GetBaseURL(), aURL ) )
+ if ( ImplGetURLObject( rStrURL, m_xCbbPath->GetBaseURL(), aURL ) )
{
rStrURL = aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE );
}
@@ -245,9 +229,9 @@ void SvxHyperlinkNewDocTp::GetCurentItemData ( OUString& rStrURL, OUString& aStr
|*
|************************************************************************/
-VclPtr<IconChoicePage> SvxHyperlinkNewDocTp::Create( vcl::Window* pWindow, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet )
+std::unique_ptr<IconChoicePage> SvxHyperlinkNewDocTp::Create(weld::Container* pWindow, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet)
{
- return VclPtr<SvxHyperlinkNewDocTp>::Create( pWindow, pDlg, pItemSet );
+ return std::make_unique<SvxHyperlinkNewDocTp>(pWindow, pDlg, pItemSet);
}
/*************************************************************************
@@ -255,10 +239,9 @@ VclPtr<IconChoicePage> SvxHyperlinkNewDocTp::Create( vcl::Window* pWindow, SvxHp
|* Set initial focus
|*
|************************************************************************/
-
void SvxHyperlinkNewDocTp::SetInitFocus()
{
- m_pCbbPath->GrabFocus();
+ m_xCbbPath->grab_focus();
}
/*************************************************************************
@@ -266,14 +249,13 @@ void SvxHyperlinkNewDocTp::SetInitFocus()
|* Ask page whether an insert is possible
|*
\************************************************************************/
-
bool SvxHyperlinkNewDocTp::AskApply()
{
INetURLObject aINetURLObject;
- bool bRet = ImplGetURLObject( m_pCbbPath->GetText(), m_pCbbPath->GetBaseURL(), aINetURLObject );
+ bool bRet = ImplGetURLObject(m_xCbbPath->get_active_text(), m_xCbbPath->GetBaseURL(), aINetURLObject);
if ( !bRet )
{
- std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(GetFrameWeld(),
+ std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(mpDialog->getDialog(),
VclMessageType::Warning, VclButtonsType::Ok,
CuiResId(RID_SVXSTR_HYPDLG_NOVALIDFILENAME)));
xWarn->run();
@@ -363,20 +345,19 @@ IMPL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, p, void)
|* Any action to do after apply-button is pressed
|*
\************************************************************************/
-
-void SvxHyperlinkNewDocTp::DoApply ()
+void SvxHyperlinkNewDocTp::DoApply()
{
- EnterWait();
+ weld::WaitObject aWait(mpDialog->getDialog());
// get data from dialog-controls
- OUString aStrNewName = m_pCbbPath->GetText();
+ OUString aStrNewName = m_xCbbPath->get_active_text();
if ( aStrNewName.isEmpty() )
aStrNewName = maStrInitURL;
// create a real URL-String
INetURLObject aURL;
- if ( ImplGetURLObject( aStrNewName, m_pCbbPath->GetBaseURL(), aURL ) )
+ if ( ImplGetURLObject( aStrNewName, m_xCbbPath->GetBaseURL(), aURL ) )
{
// create Document
aStrNewName = aURL.GetURLPath( INetURLObject::DecodeMechanism::NONE );
@@ -392,7 +373,7 @@ void SvxHyperlinkNewDocTp::DoApply ()
if( bOk )
{
- std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(GetFrameWeld(),
+ std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(mpDialog->getDialog(),
VclMessageType::Warning, VclButtonsType::YesNo,
CuiResId(RID_SVXSTR_HYPERDLG_QUERYOVERWRITE)));
bCreate = xWarn->run() == RET_YES;
@@ -406,15 +387,14 @@ void SvxHyperlinkNewDocTp::DoApply ()
{
ExecuteInfo* pExecuteInfo = new ExecuteInfo;
- pExecuteInfo->bRbtEditLater = m_pRbtEditLater->IsChecked();
- pExecuteInfo->bRbtEditNow = m_pRbtEditNow->IsChecked();
+ pExecuteInfo->bRbtEditLater = m_xRbtEditLater->get_active();
+ pExecuteInfo->bRbtEditNow = m_xRbtEditNow->get_active();
// get private-url
- sal_Int32 nPos = m_pLbDocTypes->GetSelectedEntryPos();
- if( nPos == LISTBOX_ENTRY_NOTFOUND )
- nPos=0;
+ sal_Int32 nPos = m_xLbDocTypes->get_selected_index();
+ if (nPos == -1)
+ nPos = 0;
pExecuteInfo->aURL = aURL;
- pExecuteInfo->aStrDocName = static_cast<DocumentTypeData*>(
- m_pLbDocTypes->GetEntryData( nPos ))->aStrURL;
+ pExecuteInfo->aStrDocName = reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos).toInt64())->aStrURL;
// current document
pExecuteInfo->xFrame = GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface();
@@ -423,8 +403,6 @@ void SvxHyperlinkNewDocTp::DoApply ()
Application::PostUserEvent(LINK(nullptr, SvxHyperlinkNewDocTp, DispatchDocument), pExecuteInfo);
}
}
-
- LeaveWait();
}
/*************************************************************************
@@ -432,14 +410,14 @@ void SvxHyperlinkNewDocTp::DoApply ()
|* Click on imagebutton : new
|*
|************************************************************************/
-
-IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, Button*, void)
+IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, weld::Button&, void)
{
+ DisableClose( true );
uno::Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
uno::Reference < XFolderPicker2 > xFolderPicker = FolderPicker::create(xContext);
OUString aStrURL;
- OUString aTempStrURL( m_pCbbPath->GetText() );
+ OUString aTempStrURL( m_xCbbPath->get_active_text() );
osl::FileBase::getFileURLFromSystemPath( aTempStrURL, aStrURL );
OUString aStrPath = aStrURL;
@@ -453,7 +431,6 @@ IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, Button*, void)
bHandleFileName = true;
xFolderPicker->setDisplayDirectory( aStrPath );
- DisableClose( true );
sal_Int16 nResult = xFolderPicker->execute();
DisableClose( false );
if( ExecutableDialogResults::OK == nResult )
@@ -465,7 +442,7 @@ IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, Button*, void)
if( bHandleFileName )
aStrName = bZeroPath? aTempStrURL : aURL.getName();
- m_pCbbPath->SetBaseURL( xFolderPicker->getDirectory() );
+ m_xCbbPath->SetBaseURL( xFolderPicker->getDirectory() );
OUString aStrTmp( xFolderPicker->getDirectory() );
if( aStrTmp[ aStrTmp.getLength() - 1 ] != sSlash[0] )
@@ -477,12 +454,12 @@ IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, Button*, void)
INetURLObject aNewURL( aStrTmp );
- if( !aStrName.isEmpty() && !aNewURL.getExtension().isEmpty() &&
- m_pLbDocTypes->GetSelectedEntryPos() != LISTBOX_ENTRY_NOTFOUND )
+ if (!aStrName.isEmpty() && !aNewURL.getExtension().isEmpty() &&
+ m_xLbDocTypes->get_selected_index() != -1)
{
// get private-url
- const sal_Int32 nPos = m_pLbDocTypes->GetSelectedEntryPos();
- aNewURL.setExtension( static_cast<DocumentTypeData*>(m_pLbDocTypes->GetEntryData( nPos ))->aStrExt );
+ const sal_Int32 nPos = m_xLbDocTypes->get_selected_index();
+ aNewURL.setExtension(reinterpret_cast<DocumentTypeData*>(m_xLbDocTypes->get_id(nPos).toInt64())->aStrExt);
}
if( aNewURL.GetProtocol() == INetProtocol::File )
@@ -494,7 +471,7 @@ IMPL_LINK_NOARG(SvxHyperlinkNewDocTp, ClickNewHdl_Impl, Button*, void)
aStrTmp = aNewURL.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous );
}
- m_pCbbPath->SetText ( aStrTmp );
+ m_xCbbPath->set_entry_text( aStrTmp );
}
}