Kaydet (Commit) 45112bfd authored tarafından Caolán McNamara's avatar Caolán McNamara

weld NameClashDialog

Change-Id: I4c68bc92fa90ca4a9723f2664549f34b50213bfb
Reviewed-on: https://gerrit.libreoffice.org/54471Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 27c9370b
......@@ -1019,18 +1019,18 @@ executeMessageBox(
return aResult;
}
NameClashResolveDialogResult executeSimpleNameClashResolveDialog( vcl::Window *pParent,
OUString const & rTargetFolderURL,
OUString const & rClashingName,
OUString & rProposedNewName,
bool bAllowOverwrite )
NameClashResolveDialogResult executeSimpleNameClashResolveDialog(weld::Window *pParent,
OUString const & rTargetFolderURL,
OUString const & rClashingName,
OUString & rProposedNewName,
bool bAllowOverwrite)
{
std::locale aResLocale = Translate::Create("uui");
ScopedVclPtrInstance<NameClashDialog> aDialog(pParent, aResLocale, rTargetFolderURL,
rClashingName, rProposedNewName, bAllowOverwrite);
NameClashDialog aDialog(pParent, aResLocale, rTargetFolderURL,
rClashingName, rProposedNewName, bAllowOverwrite);
NameClashResolveDialogResult eResult = static_cast<NameClashResolveDialogResult>(aDialog->Execute());
rProposedNewName = aDialog->getNewName();
NameClashResolveDialogResult eResult = static_cast<NameClashResolveDialogResult>(aDialog.run());
rProposedNewName = aDialog.getNewName();
return eResult;
}
......@@ -1063,11 +1063,12 @@ UUIInteractionHelper::handleNameClashResolveRequest(
NameClashResolveDialogResult eResult = ABORT;
OUString aProposedNewName( rRequest.ProposedNewName );
eResult = executeSimpleNameClashResolveDialog( getParentProperty(),
uno::Reference<awt::XWindow> xParent = getParentXWindow();
eResult = executeSimpleNameClashResolveDialog(Application::GetFrameWeld(xParent),
rRequest.TargetFolderURL,
rRequest.ClashingName,
aProposedNewName,
xReplaceExistingData.is() );
xReplaceExistingData.is());
switch ( eResult )
{
......
......@@ -27,48 +27,47 @@
// NameClashDialog ---------------------------------------------------------
IMPL_LINK( NameClashDialog, ButtonHdl_Impl, Button *, pBtn, void )
IMPL_LINK(NameClashDialog, ButtonHdl_Impl, weld::Button&, rBtn, void)
{
long nRet = long(ABORT);
if ( m_pBtnRename == pBtn )
if (m_xBtnRename.get() == &rBtn)
{
nRet = long(RENAME);
OUString aNewName = m_pEDNewName->GetText();
if ( ( aNewName == maNewName ) || aNewName.isEmpty() )
OUString aNewName = m_xEDNewName->get_text();
if ( ( aNewName == m_aNewName ) || aNewName.isEmpty() )
{
std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(GetFrameWeld(),
std::unique_ptr<weld::MessageDialog> xErrorBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok,
maSameName));
m_aSameName));
xErrorBox->run();
return;
}
maNewName = aNewName;
m_aNewName = aNewName;
}
else if ( m_pBtnOverwrite == pBtn )
else if (m_xBtnOverwrite.get() == &rBtn)
nRet = long(OVERWRITE);
EndDialog( nRet );
m_xDialog->response(nRet);
}
NameClashDialog::NameClashDialog( vcl::Window* pParent, const std::locale& rResLocale,
NameClashDialog::NameClashDialog( weld::Window* pParent, const std::locale& rResLocale,
OUString const & rTargetFolderURL,
OUString const & rClashingName,
OUString const & rProposedNewName,
bool bAllowOverwrite )
: ModalDialog( pParent, "SimpleNameClashDialog", "uui/ui/simplenameclash.ui" ),
maNewName ( rClashingName )
: GenericDialogController(pParent, "uui/ui/simplenameclash.ui", "SimpleNameClashDialog")
, m_aNewName(rClashingName)
, m_xFTMessage(m_xBuilder->weld_label("warning"))
, m_xEDNewName(m_xBuilder->weld_entry("newname"))
, m_xBtnOverwrite(m_xBuilder->weld_button("replace"))
, m_xBtnRename(m_xBuilder->weld_button("rename"))
, m_xBtnCancel(m_xBuilder->weld_button("cancel"))
{
get(m_pFTMessage, "warning");
get(m_pEDNewName, "newname");
get(m_pBtnOverwrite, "replace");
get(m_pBtnRename, "rename");
get(m_pBtnCancel, "cancel");
Link<Button*,void> aLink( LINK( this, NameClashDialog, ButtonHdl_Impl ) );
m_pBtnOverwrite->SetClickHdl( aLink );
m_pBtnRename->SetClickHdl( aLink );
m_pBtnCancel->SetClickHdl( aLink );
Link<weld::Button&,void> aLink( LINK( this, NameClashDialog, ButtonHdl_Impl ) );
m_xBtnOverwrite->connect_clicked( aLink );
m_xBtnRename->connect_clicked( aLink );
m_xBtnCancel->connect_clicked( aLink );
OUString aInfo;
if ( bAllowOverwrite )
......@@ -78,37 +77,26 @@ NameClashDialog::NameClashDialog( vcl::Window* pParent, const std::locale& rResL
else
{
aInfo = Translate::get(STR_NAME_CLASH_RENAME_ONLY, rResLocale);
m_pBtnOverwrite->Hide();
m_xBtnOverwrite->hide();
}
OUString aPath;
if ( osl::FileBase::E_None != osl::FileBase::getSystemPathFromFileURL( rTargetFolderURL, aPath ) )
aPath = rTargetFolderURL;
maSameName = Translate::get(STR_SAME_NAME_USED, rResLocale);
m_aSameName = Translate::get(STR_SAME_NAME_USED, rResLocale);
aInfo = aInfo.replaceFirst( "%NAME", rClashingName );
aInfo = aInfo.replaceFirst( "%FOLDER", aPath );
m_pFTMessage->SetText( aInfo );
m_xFTMessage->set_label(aInfo);
if ( !rProposedNewName.isEmpty() )
m_pEDNewName->SetText( rProposedNewName );
m_xEDNewName->set_text( rProposedNewName );
else
m_pEDNewName->SetText( rClashingName );
m_xEDNewName->set_text( rClashingName );
}
NameClashDialog::~NameClashDialog()
{
disposeOnce();
}
void NameClashDialog::dispose()
{
m_pFTMessage.clear();
m_pEDNewName.clear();
m_pBtnOverwrite.clear();
m_pBtnRename.clear();
m_pBtnCancel.clear();
ModalDialog::dispose();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -20,36 +20,31 @@
#ifndef INCLUDED_UUI_SOURCE_NAMECLASHDLG_HXX
#define INCLUDED_UUI_SOURCE_NAMECLASHDLG_HXX
#include <vcl/button.hxx>
#include <vcl/dialog.hxx>
#include <vcl/fixed.hxx>
#include <vcl/edit.hxx>
#include <vcl/weld.hxx>
enum NameClashResolveDialogResult { ABORT, RENAME, OVERWRITE };
class NameClashDialog : public ModalDialog
class NameClashDialog : public weld::GenericDialogController
{
VclPtr<FixedText> m_pFTMessage;
VclPtr<Edit> m_pEDNewName;
VclPtr<PushButton> m_pBtnOverwrite;
VclPtr<PushButton> m_pBtnRename;
VclPtr<CancelButton> m_pBtnCancel;
OUString m_aSameName;
OUString m_aNewName;
OUString maSameName;
OUString maNewName;
std::unique_ptr<weld::Label> m_xFTMessage;
std::unique_ptr<weld::Entry> m_xEDNewName;
std::unique_ptr<weld::Button> m_xBtnOverwrite;
std::unique_ptr<weld::Button> m_xBtnRename;
std::unique_ptr<weld::Button> m_xBtnCancel;
DECL_LINK( ButtonHdl_Impl, Button *, void );
DECL_LINK(ButtonHdl_Impl, weld::Button&, void);
public:
NameClashDialog( vcl::Window* pParent, const std::locale& rLocale,
OUString const & rTargetFolderURL,
OUString const & rClashingName,
OUString const & rProposedNewName,
bool bAllowOverwrite );
NameClashDialog(weld::Window* pParent, const std::locale& rLocale,
OUString const & rTargetFolderURL,
OUString const & rClashingName,
OUString const & rProposedNewName,
bool bAllowOverwrite);
virtual ~NameClashDialog() override;
virtual void dispose() override;
const OUString& getNewName() const { return maNewName; }
const OUString& getNewName() const { return m_aNewName; }
};
#endif // UUI_COOKIEDG_HXX
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="uui">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="SimpleNameClashDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="simplenameclash|SimpleNameClashDialog">File Exists</property>
<property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
......@@ -109,6 +115,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="expand">False</property>
......@@ -127,8 +134,6 @@
</child>
<action-widgets>
<action-widget response="-11">help</action-widget>
<action-widget response="0">replace</action-widget>
<action-widget response="0">rename</action-widget>
<action-widget response="-6">cancel</action-widget>
</action-widgets>
</object>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment