[Libreoffice-commits] core.git: include/svx svx/AllLangResTarget_svx.mk svx/source svx/uiconfig svx/UIConfig_svx.mk
Caolán McNamara
caolanm at redhat.com
Wed Nov 27 01:45:36 PST 2013
include/svx/linkwarn.hxx | 16 +----
svx/AllLangResTarget_svx.mk | 1
svx/UIConfig_svx.mk | 1
svx/source/dialog/linkwarn.cxx | 104 +++-----------------------------------
svx/source/dialog/linkwarn.hrc | 53 -------------------
svx/source/dialog/linkwarn.src | 74 ---------------------------
svx/uiconfig/ui/linkwarndialog.ui | 89 ++++++++++++++++++++++++++++++++
7 files changed, 103 insertions(+), 235 deletions(-)
New commits:
commit 34592b9189bf47438a452479972968d33a3a4c1b
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Nov 27 09:35:33 2013 +0000
convert link warning dialog to .ui
the amount of code required for the new vs old dialog is amusing
Change-Id: I7feee572eecd94fab3e8c2210755b70832cbd2f2
diff --git a/include/svx/linkwarn.hxx b/include/svx/linkwarn.hxx
index ba0d841..beb7154 100644
--- a/include/svx/linkwarn.hxx
+++ b/include/svx/linkwarn.hxx
@@ -21,24 +21,16 @@
#define INCLUDED_SVX_LINKWARN_HXX
#include <vcl/button.hxx>
-#include <vcl/fixed.hxx>
-#include <sfx2/basedlgs.hxx>
+#include <vcl/layout.hxx>
#include <svx/svxdllapi.h>
-class SVX_DLLPUBLIC SvxLinkWarningDialog : public SfxModalDialog
+class SVX_DLLPUBLIC SvxLinkWarningDialog : public MessageDialog
{
private:
- FixedImage m_aQueryImage;
- FixedText m_aInfoText;
- OKButton m_aLinkGraphicBtn;
- CancelButton m_aEmbedGraphicBtn;
- FixedLine m_aOptionLine;
- CheckBox m_aWarningOnBox;
-
- void InitSize();
+ CheckBox* m_pWarningOnBox;
public:
- SvxLinkWarningDialog( Window* pParent, const OUString& _rFileName );
+ SvxLinkWarningDialog(Window* pParent, const OUString& _rFileName);
virtual ~SvxLinkWarningDialog();
};
diff --git a/svx/AllLangResTarget_svx.mk b/svx/AllLangResTarget_svx.mk
index f2674d1..002b339 100644
--- a/svx/AllLangResTarget_svx.mk
+++ b/svx/AllLangResTarget_svx.mk
@@ -48,7 +48,6 @@ $(eval $(call gb_SrsTarget_add_files,svx/res,\
svx/source/dialog/imapdlg.src \
svx/source/dialog/langbox.src \
svx/source/dialog/language.src \
- svx/source/dialog/linkwarn.src \
svx/source/dialog/passwd.src \
svx/source/dialog/prtqry.src \
svx/source/dialog/ruler.src \
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index cb4c759..1780983 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -18,6 +18,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
svx/uiconfig/ui/deletefooterdialog \
svx/uiconfig/ui/headfootformatpage \
svx/uiconfig/ui/findreplacedialog \
+ svx/uiconfig/ui/linkwarndialog \
svx/uiconfig/ui/optgridpage \
svx/uiconfig/ui/passwd \
svx/uiconfig/ui/redlinecontrol \
diff --git a/svx/source/dialog/linkwarn.cxx b/svx/source/dialog/linkwarn.cxx
index e15d795..e46ebfc 100644
--- a/svx/source/dialog/linkwarn.cxx
+++ b/svx/source/dialog/linkwarn.cxx
@@ -17,119 +17,33 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include "linkwarn.hrc"
-#include "svx/linkwarn.hxx"
-#include "svx/dialogs.hrc"
-#include "svx/dialmgr.hxx"
-#include <vcl/msgbox.hxx>
-#include <sfx2/basedlgs.hxx>
+#include <svx/linkwarn.hxx>
#include <svtools/miscopt.hxx>
-SvxLinkWarningDialog::SvxLinkWarningDialog( Window* pParent, const OUString& _rFileName ) :
- SfxModalDialog( pParent, SVX_RES( RID_SVXDLG_LINK_WARNING ) ),
- m_aQueryImage ( this, SVX_RES( FI_QUERY ) ),
- m_aInfoText ( this, SVX_RES( FT_INFOTEXT ) ),
- m_aLinkGraphicBtn ( this, SVX_RES( PB_OK ) ),
- m_aEmbedGraphicBtn ( this, SVX_RES( PB_NO ) ),
- m_aOptionLine ( this, SVX_RES( FL_OPTION ) ),
- m_aWarningOnBox ( this, SVX_RES( CB_WARNING_OFF ) )
+SvxLinkWarningDialog::SvxLinkWarningDialog( Window* pParent, const OUString& _rFileName )
+ : MessageDialog(pParent, "LinkWarnDialog" , "svx/ui/linkwarndialog.ui")
{
- FreeResource();
-
- // set questionmark image
- m_aQueryImage.SetImage( QueryBox::GetStandardImage() );
+ get(m_pWarningOnBox, "ask");
// replace filename
- OUString sInfoText = m_aInfoText.GetText();
+ OUString sInfoText = get_primary_text();
sInfoText = sInfoText.replaceAll("%FILENAME", _rFileName);
- m_aInfoText.SetText( sInfoText );
+ set_primary_text( sInfoText );
// load state of "warning on" checkbox from misc options
SvtMiscOptions aMiscOpt;
- m_aWarningOnBox.Check( aMiscOpt.ShowLinkWarningDialog() == sal_True );
+ m_pWarningOnBox->Check( aMiscOpt.ShowLinkWarningDialog() == sal_True );
if( aMiscOpt.IsShowLinkWarningDialogReadOnly() )
- m_aWarningOnBox.Disable();
-
- // set focus to Cancel button
- m_aEmbedGraphicBtn.GrabFocus();
-
- // calculate and set the size of the dialog and its controls
- InitSize();
+ m_pWarningOnBox->Disable();
}
-// -----------------------------------------------------------------------
-
SvxLinkWarningDialog::~SvxLinkWarningDialog()
{
// save value of "warning off" checkbox, if necessary
SvtMiscOptions aMiscOpt;
- sal_Bool bChecked = m_aWarningOnBox.IsChecked();
+ sal_Bool bChecked = m_pWarningOnBox->IsChecked();
if ( aMiscOpt.ShowLinkWarningDialog() != bChecked )
aMiscOpt.SetShowLinkWarningDialog( bChecked );
}
-// -----------------------------------------------------------------------
-
-void SvxLinkWarningDialog::InitSize()
-{
- // text of checkbox to wide -> add new line
- long nTxtW = m_aWarningOnBox.GetCtrlTextWidth( m_aWarningOnBox.GetText() ) + IMPL_EXTRA_BUTTON_WIDTH;
- long nCtrlW = m_aWarningOnBox.GetSizePixel().Width();
- if ( nTxtW >= nCtrlW )
- {
- long nTextHeight = m_aWarningOnBox.GetTextHeight();
- Size aNewSize = m_aWarningOnBox.GetSizePixel();
- aNewSize.Height() += nTextHeight;
- m_aWarningOnBox.SetSizePixel( aNewSize );
- aNewSize = GetSizePixel();
- aNewSize.Height() += nTextHeight;
- SetSizePixel( aNewSize );
- }
-
- // align the size of the information text control (FixedText) to its content
- Size aMinSize = m_aInfoText.CalcMinimumSize( m_aInfoText.GetSizePixel().Width() );
- long nTxtH = aMinSize.Height();
- long nCtrlH = m_aInfoText.GetSizePixel().Height();
- long nDelta = ( nCtrlH - nTxtH );
- Size aNewSize = m_aInfoText.GetSizePixel();
- aNewSize.Height() -= nDelta;
- m_aInfoText.SetSizePixel( aNewSize );
-
- // new position for the succeeding windows
- Window* pWins[] =
- {
- &m_aLinkGraphicBtn, &m_aEmbedGraphicBtn, &m_aOptionLine, &m_aWarningOnBox
- };
- Window** pCurrent = pWins;
- for ( sal_uInt32 i = 0; i < SAL_N_ELEMENTS(pWins); ++i, ++pCurrent )
- {
- Point aNewPos = (*pCurrent)->GetPosPixel();
- aNewPos.Y() -= nDelta;
- (*pCurrent)->SetPosPixel( aNewPos );
- }
-
- // new size of the dialog
- aNewSize = GetSizePixel();
- aNewSize.Height() -= nDelta;
- SetSizePixel( aNewSize );
-
- // recalculate the size and position of the buttons
- nTxtW = m_aLinkGraphicBtn.GetCtrlTextWidth( m_aLinkGraphicBtn.GetText() );
- long nTemp = m_aEmbedGraphicBtn.GetCtrlTextWidth( m_aEmbedGraphicBtn.GetText() );
- if ( nTemp > nTxtW )
- nTxtW = nTemp;
- nTxtW += IMPL_EXTRA_BUTTON_WIDTH;
- Size a3Size = LogicToPixel( Size( 3, 3 ), MAP_APPFONT );
- Point aPos = m_aLinkGraphicBtn.GetPosPixel();
- aPos.X() = ( aNewSize.Width() - (2*nTxtW) - a3Size.Width() ) / 2;
- long nDefX = m_aWarningOnBox.GetPosPixel().X();
- if ( nDefX < aPos.X() )
- aPos.X() = nDefX;
- aNewSize = m_aLinkGraphicBtn.GetSizePixel();
- aNewSize.Width() = nTxtW;
- m_aLinkGraphicBtn.SetPosSizePixel( aPos, aNewSize );
- aPos.X() += nTxtW + a3Size.Width();
- m_aEmbedGraphicBtn.SetPosSizePixel( aPos, aNewSize );
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/linkwarn.hrc b/svx/source/dialog/linkwarn.hrc
deleted file mode 100644
index ec08edc..0000000
--- a/svx/source/dialog/linkwarn.hrc
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _SVX_LINKWARN_HRC
-#define _SVX_LINKWARN_HRC
-
-#include <svtools/controldims.hrc>
-
-// dialog ids
-#define FI_QUERY 10
-#define FT_INFOTEXT 11
-#define PB_OK 12
-#define PB_NO 13
-#define FL_OPTION 15
-#define CB_WARNING_OFF 16
-
-// --------- general metrics ---------
-
-#define SYMBOL_EDGE 20
-#define DIALOG_WIDTH 220
-#define INFO_TEXT_LINES 11
-
-#define AW_COL_1 (RSC_SP_DLG_INNERBORDER_LEFT)
-#define AW_COL_2 (AW_COL_1+SYMBOL_EDGE+RSC_SP_CTRL_DESC_X)
-#define AW_COL_3 (AW_COL_2+RSC_CD_PUSHBUTTON_WIDTH+RSC_SP_CTRL_DESC_X)
-#define AW_COL_4 (DIALOG_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT-RSC_CD_PUSHBUTTON_WIDTH)
-
-#define AW_ROW_1 (RSC_SP_DLG_INNERBORDER_TOP)
-#define AW_ROW_2 (AW_ROW_1+INFO_TEXT_LINES*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_Y)
-#define AW_ROW_3 (AW_ROW_2+RSC_CD_PUSHBUTTON_HEIGHT+RSC_SP_CTRL_DESC_Y)
-#define AW_ROW_4 (AW_ROW_3+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_CTRL_DESC_Y)
-
-#define DIALOG_HEIGHT (AW_ROW_4+RSC_CD_CHECKBOX_HEIGHT+RSC_SP_DLG_INNERBORDER_BOTTOM)
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/dialog/linkwarn.src b/svx/source/dialog/linkwarn.src
deleted file mode 100644
index 3cecfce..0000000
--- a/svx/source/dialog/linkwarn.src
+++ /dev/null
@@ -1,74 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "linkwarn.hrc"
-#include "svx/dialogs.hrc"
-#include "helpid.hrc"
-
-ModalDialog RID_SVXDLG_LINK_WARNING
-{
- Size = MAP_APPFONT( DIALOG_WIDTH, DIALOG_HEIGHT );
- OutputSize = TRUE;
- Closeable = FALSE;
- Moveable = TRUE;
- SVLook = TRUE;
-
- Text = "%PRODUCTNAME %PRODUCTVERSION%PRODUCTEXTENSION";
-
- FixedImage FI_QUERY
- {
- Pos = MAP_APPFONT( AW_COL_1, AW_ROW_1 );
- Size = MAP_APPFONT( SYMBOL_EDGE, SYMBOL_EDGE );
- };
- FixedText FT_INFOTEXT
- {
- Pos = MAP_APPFONT( AW_COL_2, AW_ROW_1 );
- Size = MAP_APPFONT( DIALOG_WIDTH-AW_COL_2-RSC_SP_DLG_INNERBORDER_RIGHT, INFO_TEXT_LINES*RSC_CD_FIXEDTEXT_HEIGHT );
- NoLabel = TRUE;
- Wordbreak = TRUE;
- Text [ en-US ] = "The file %FILENAME will not be stored along with your document, but only referenced as a link. This is dangerous if you move and/or rename the files. Do you want to embed the graphic instead?";
- };
- OKButton PB_OK
- {
- Pos = MAP_APPFONT( AW_COL_2, AW_ROW_2 );
- Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
- DefButton = TRUE ;
- Text [ en-US ] = "~Keep Link";
- };
- CancelButton PB_NO
- {
- Pos = MAP_APPFONT( AW_COL_3, AW_ROW_2 );
- Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
- Text [ en-US ] = "~Embed Graphic";
- };
- FixedLine FL_OPTION
- {
- Pos = MAP_APPFONT( 0, AW_ROW_3 );
- Size = MAP_APPFONT( DIALOG_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
- };
- CheckBox CB_WARNING_OFF
- {
- Pos = MAP_APPFONT( AW_COL_2, AW_ROW_4 );
- Size = MAP_APPFONT( DIALOG_WIDTH-AW_COL_2-RSC_SP_DLG_INNERBORDER_RIGHT, RSC_CD_CHECKBOX_HEIGHT );
- WordBreak = TRUE ;
- Text [ en-US ] = "~Ask when linking a graphic";
- };
-};
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/uiconfig/ui/linkwarndialog.ui b/svx/uiconfig/ui/linkwarndialog.ui
new file mode 100644
index 0000000..d263bd7
--- /dev/null
+++ b/svx/uiconfig/ui/linkwarndialog.ui
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkMessageDialog" id="LinkWarnDialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="title" translatable="yes">Confirm Linked Graphic</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="type_hint">dialog</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="message_type">question</property>
+ <property name="text" translatable="yes">The file %FILENAME will not be stored along with your document, but only referenced as a link.</property>
+ <property name="secondary_text" translatable="yes">This is dangerous if you move and/or rename the files. Do you want to embed the graphic instead?</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="messagedialog-vbox">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">24</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="messagedialog-action_area">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="ok">
+ <property name="label" translatable="yes">_Keep Link</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="cancel">
+ <property name="label">_Embed Graphic</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ <property name="image_position">bottom</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="ask">
+ <property name="label" translatable="yes">_Ask when linking a graphic</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="1">ok</action-widget>
+ <action-widget response="0">cancel</action-widget>
+ </action-widgets>
+ </object>
+</interface>
More information about the Libreoffice-commits
mailing list