diff options
-rw-r--r-- | extras/source/glade/libreoffice-catalog.xml.in | 3 | ||||
-rw-r--r-- | sw/AllLangResTarget_sw.mk | 1 | ||||
-rw-r--r-- | sw/UIConfig_swriter.mk | 1 | ||||
-rw-r--r-- | sw/inc/dbui.hrc | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | sw/source/ui/dbui/createaddresslistdialog.cxx | 240 | ||||
-rw-r--r-- | sw/source/ui/dbui/createaddresslistdialog.hrc | 46 | ||||
-rwxr-xr-x[-rw-r--r--] | sw/source/ui/dbui/createaddresslistdialog.hxx | 25 | ||||
-rw-r--r-- | sw/source/ui/dbui/createaddresslistdialog.src | 165 | ||||
-rw-r--r-- | sw/source/ui/dbui/dbui.src | 5 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/createaddresslist.ui | 330 |
10 files changed, 490 insertions, 328 deletions
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in index 87d63df82419..2e393f6950df 100644 --- a/extras/source/glade/libreoffice-catalog.xml.in +++ b/extras/source/glade/libreoffice-catalog.xml.in @@ -30,6 +30,9 @@ <glade-widget-class title="Font PickListBox" name="smlo-SmFontPickListBox" generic-name="SmFontPickListBox" parent="GtkComboBoxText" icon-name="widget-gtk-comboboxtext"/> + <glade-widget-class title="Address Control" name="swuilo-SwAddressControlImpl" + generic-name="SwAddressControlImpl" parent="GtkComboBoxText" + icon-name="widget-gtk-comboboxtext"/> <glade-widget-class title="Thesaurus View" name="cuilo-ThesaurusAlternativesCtrl" generic-name="ThesaurusAlternativesCtrl" parent="GtkTextView" icon-name="widget-gtk-textview"/> diff --git a/sw/AllLangResTarget_sw.mk b/sw/AllLangResTarget_sw.mk index c5176fc86a25..f6b099d0401b 100644 --- a/sw/AllLangResTarget_sw.mk +++ b/sw/AllLangResTarget_sw.mk @@ -89,7 +89,6 @@ $(eval $(call gb_SrsTarget_add_files,sw/res,\ sw/source/ui/chrdlg/chrdlg.src \ sw/source/ui/config/optdlg.src \ sw/source/ui/config/optload.src \ - sw/source/ui/dbui/createaddresslistdialog.src \ sw/source/ui/dbui/dbtablepreviewdialog.src \ sw/source/ui/dbui/dbui.src \ sw/source/ui/dbui/mailmergewizard.src \ diff --git a/sw/UIConfig_swriter.mk b/sw/UIConfig_swriter.mk index e494bc31fd92..6a45ead83510 100644 --- a/sw/UIConfig_swriter.mk +++ b/sw/UIConfig_swriter.mk @@ -86,6 +86,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/swriter,\ sw/uiconfig/swriter/ui/columnwidth \ sw/uiconfig/swriter/ui/conditionpage \ sw/uiconfig/swriter/ui/converttexttable \ + sw/uiconfig/swriter/ui/createaddresslist \ sw/uiconfig/swriter/ui/createauthorentry \ sw/uiconfig/swriter/ui/createautomarkdialog \ sw/uiconfig/swriter/ui/customizeaddrlistdialog \ diff --git a/sw/inc/dbui.hrc b/sw/inc/dbui.hrc index 60865f87140f..e7c6a73cc04e 100644 --- a/sw/inc/dbui.hrc +++ b/sw/inc/dbui.hrc @@ -27,7 +27,6 @@ #define DLG_MAILMERGEWIZARD (RC_DBUI_BEGIN + 3) #define DLG_MM_SELECTDBTABLEDDIALOG (RC_DBUI_BEGIN + 12) #define DLG_MM_DBTABLEPREVIEWDIALOG (RC_DBUI_BEGIN + 13) -#define DLG_MM_CREATEADDRESSLIST (RC_DBUI_BEGIN + 14) #define DLG_MM_ASSIGNFIELDS (RC_DBUI_BEGIN + 20) @@ -67,6 +66,7 @@ #define ST_DEFAULTATTACHMENT (RC_DBUI_BEGIN + 30) #define ST_NOSUBJECT (RC_DBUI_BEGIN + 31) #define ST_CONFIGUREMAIL (RC_DBUI_BEGIN + 32) +#define ST_FILTERNAME (RC_DBUI_BEGIN + 33) // Elements ----------------------------------------------------------------- #define MM_PART_TITLE 0 diff --git a/sw/source/ui/dbui/createaddresslistdialog.cxx b/sw/source/ui/dbui/createaddresslistdialog.cxx index c194d1b8b55c..19440b8a32bf 100644..100755 --- a/sw/source/ui/dbui/createaddresslistdialog.cxx +++ b/sw/source/ui/dbui/createaddresslistdialog.cxx @@ -36,7 +36,6 @@ #include <com/sun/star/ui/dialogs/XFilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <tools/urlobj.hxx> -#include <createaddresslistdialog.hrc> #include <dbui.hrc> #include <helpid.h> #include <unomid.h> @@ -47,8 +46,8 @@ using namespace ::com::sun::star::ui::dialogs; class SwAddressControl_Impl : public Control { - ScrollBar m_aScrollBar; - Window m_aWindow; + ScrollBar *m_pScrollBar; + Window *m_pWindow; ::std::vector<FixedText*> m_aFixedTexts; ::std::vector<Edit*> m_aEdits; @@ -68,11 +67,12 @@ class SwAddressControl_Impl : public Control virtual bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE; virtual void Command( const CommandEvent& rCEvt ) SAL_OVERRIDE; + virtual Size GetOptimalSize() const SAL_OVERRIDE; using Window::SetData; public: - SwAddressControl_Impl(Window* pParent, const ResId& rResId ); + SwAddressControl_Impl(Window* pParent , WinBits nBits ); virtual ~SwAddressControl_Impl(); void SetData(SwCSVData& rDBData); @@ -80,24 +80,35 @@ public: void SetCurrentDataSet(sal_uInt32 nSet); sal_uInt32 GetCurrentDataSet() const { return m_nCurrentDataSet;} void SetCursorTo(sal_uInt32 nElement); + virtual void Resize(); }; -SwAddressControl_Impl::SwAddressControl_Impl(Window* pParent, const ResId& rResId ) : - Control(pParent, rResId), - m_aScrollBar(this, ResId(SCR_1,*rResId.GetResMgr())), - m_aWindow(this, ResId(WIN_DATA,*rResId.GetResMgr())), +SwAddressControl_Impl::SwAddressControl_Impl(Window* pParent, WinBits nBits ) : + Control(pParent, nBits), + m_pScrollBar(new ScrollBar(this)), + m_pWindow(new Window(this, WB_DIALOGCONTROL)), m_pData(0), - m_aWinOutputSize( m_aWindow.GetOutputSizePixel() ), m_nLineHeight(0), m_nCurrentDataSet(0), m_bNoDataSet(true) { - FreeResource(); + long nScrollBarWidth = m_pScrollBar->GetOutputSize().Width(); + Size aSize = GetOutputSizePixel(); + + m_pWindow->SetSizePixel(Size(aSize.Width() - nScrollBarWidth, aSize.Height())); + m_aWinOutputSize = m_pWindow->GetOutputSizePixel(); + m_pWindow->Show(); + m_pScrollBar->Show(); + Link aScrollLink = LINK(this, SwAddressControl_Impl, ScrollHdl_Impl); - m_aScrollBar.SetScrollHdl(aScrollLink); - m_aScrollBar.SetEndScrollHdl(aScrollLink); - m_aScrollBar.EnableDrag(); + m_pScrollBar->SetScrollHdl(aScrollLink); + m_pScrollBar->SetEndScrollHdl(aScrollLink); + m_pScrollBar->EnableDrag(); +} +extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSwAddressControlImpl(Window *pParent, VclBuilder::stringmap &) +{ + return new SwAddressControl_Impl(pParent, WB_BORDER | WB_DIALOGCONTROL); } SwAddressControl_Impl::~SwAddressControl_Impl() @@ -108,6 +119,8 @@ SwAddressControl_Impl::~SwAddressControl_Impl() ::std::vector<Edit*>::iterator aEditIter; for(aEditIter = m_aEdits.begin(); aEditIter != m_aEdits.end(); ++aEditIter) delete *aEditIter; + delete m_pScrollBar; + delete m_pWindow; } void SwAddressControl_Impl::SetData(SwCSVData& rDBData) @@ -130,8 +143,8 @@ void SwAddressControl_Impl::SetData(SwCSVData& rDBData) ::std::vector< OUString >::iterator aHeaderIter; - long nFTXPos = m_aWindow.LogicToPixel(Point(RSC_SP_CTRL_X, RSC_SP_CTRL_X), MAP_APPFONT).X(); - long nFTHeight = m_aWindow.LogicToPixel(Size(RSC_BS_CHARHEIGHT, RSC_BS_CHARHEIGHT), MAP_APPFONT).Height(); + long nFTXPos = m_pWindow->LogicToPixel(Point(RSC_SP_CTRL_X, RSC_SP_CTRL_X), MAP_APPFONT).X(); + long nFTHeight = m_pWindow->LogicToPixel(Size(RSC_BS_CHARHEIGHT, RSC_BS_CHARHEIGHT), MAP_APPFONT).Height(); long nFTWidth = 0; //determine the width of the FixedTexts @@ -139,19 +152,19 @@ void SwAddressControl_Impl::SetData(SwCSVData& rDBData) aHeaderIter != m_pData->aDBColumnHeaders.end(); ++aHeaderIter) { - sal_Int32 nTemp = m_aWindow.GetTextWidth(*aHeaderIter); + sal_Int32 nTemp = m_pWindow->GetTextWidth(*aHeaderIter); if(nTemp > nFTWidth) nFTWidth = nTemp; } //add some pixels nFTWidth += 2; long nEDXPos = nFTWidth + nFTXPos + - m_aWindow.LogicToPixel(Size(RSC_SP_CTRL_DESC_X, RSC_SP_CTRL_DESC_X), MAP_APPFONT).Width(); - long nEDHeight = m_aWindow.LogicToPixel(Size(RSC_CD_TEXTBOX_HEIGHT, RSC_CD_TEXTBOX_HEIGHT), MAP_APPFONT).Height(); + m_pWindow->LogicToPixel(Size(RSC_SP_CTRL_DESC_X, RSC_SP_CTRL_DESC_X), MAP_APPFONT).Width(); + long nEDHeight = m_pWindow->LogicToPixel(Size(RSC_CD_TEXTBOX_HEIGHT, RSC_CD_TEXTBOX_HEIGHT), MAP_APPFONT).Height(); long nEDWidth = m_aWinOutputSize.Width() - nEDXPos - nFTXPos; - m_nLineHeight = nEDHeight + m_aWindow.LogicToPixel(Size(RSC_SP_CTRL_GROUP_Y, RSC_SP_CTRL_GROUP_Y), MAP_APPFONT).Height(); + m_nLineHeight = nEDHeight + m_pWindow->LogicToPixel(Size(RSC_SP_CTRL_GROUP_Y, RSC_SP_CTRL_GROUP_Y), MAP_APPFONT).Height(); - long nEDYPos = m_aWindow.LogicToPixel(Size(RSC_SP_CTRL_DESC_Y, RSC_SP_CTRL_DESC_Y), MAP_APPFONT).Height(); + long nEDYPos = m_pWindow->LogicToPixel(Size(RSC_SP_CTRL_DESC_Y, RSC_SP_CTRL_DESC_Y), MAP_APPFONT).Height(); long nFTYPos = nEDYPos + nEDHeight - nFTHeight; Link aFocusLink = LINK(this, SwAddressControl_Impl, GotFocusHdl_Impl); @@ -163,8 +176,8 @@ void SwAddressControl_Impl::SetData(SwCSVData& rDBData) aHeaderIter != m_pData->aDBColumnHeaders.end(); ++aHeaderIter, nEDYPos += m_nLineHeight, nFTYPos += m_nLineHeight, nLines++) { - FixedText* pNewFT = new FixedText(&m_aWindow, WB_RIGHT); - Edit* pNewED = new Edit(&m_aWindow, WB_BORDER); + FixedText* pNewFT = new FixedText(m_pWindow, WB_RIGHT); + Edit* pNewED = new Edit(m_pWindow, WB_BORDER); //set nLines a position identifier - used in the ModifyHdl pNewED->SetData((void*)nLines); pNewED->SetGetFocusHdl(aFocusLink); @@ -188,37 +201,38 @@ void SwAddressControl_Impl::SetData(SwCSVData& rDBData) { //the m_aWindow has to be at least as high as the ScrollBar and it must include the last Edit sal_Int32 nContentHeight = pLastEdit->GetPosPixel().Y() + nEDHeight + - m_aWindow.LogicToPixel(Size(RSC_SP_CTRL_GROUP_Y, RSC_SP_CTRL_GROUP_Y), MAP_APPFONT).Height(); - if(nContentHeight < m_aScrollBar.GetSizePixel().Height()) + m_pWindow->LogicToPixel(Size(RSC_SP_CTRL_GROUP_Y, RSC_SP_CTRL_GROUP_Y), MAP_APPFONT).Height(); + if(nContentHeight < m_pScrollBar->GetSizePixel().Height()) { - nContentHeight = m_aScrollBar.GetSizePixel().Height(); + nContentHeight = m_pScrollBar->GetSizePixel().Height(); // Reset the scrollbar's thumb to the top before it is disabled. - m_aScrollBar.DoScroll(0); - m_aScrollBar.SetThumbPos(0); - m_aScrollBar.Enable(false); + m_pScrollBar->DoScroll(0); + m_pScrollBar->SetThumbPos(0); + m_pScrollBar->Enable(false); } else { - m_aScrollBar.Enable(true); - m_aScrollBar.SetRange(Range(0, nLines)); - m_aScrollBar.SetThumbPos(0); - m_aScrollBar.SetVisibleSize(nVisibleLines); + m_pScrollBar->Enable(true); + m_pScrollBar->SetRange(Range(0, nLines)); + m_pScrollBar->SetThumbPos(0); + m_pScrollBar->SetVisibleSize(nVisibleLines); // Reset the scroll bar position (especially if items deleted) - m_aScrollBar.DoScroll(m_aScrollBar.GetRangeMax()); - m_aScrollBar.DoScroll(0); + m_pScrollBar->DoScroll(m_pScrollBar->GetRangeMax()); + m_pScrollBar->DoScroll(0); } Size aWinOutputSize(m_aWinOutputSize); aWinOutputSize.Height() = nContentHeight; - m_aWindow.SetOutputSizePixel(aWinOutputSize); + m_pWindow->SetOutputSizePixel(aWinOutputSize); } // Even if no items in m_aEdits, the scrollbar will still exist; // we might as well disable it. if (m_aEdits.size() < 1) { - m_aScrollBar.DoScroll(0); - m_aScrollBar.SetThumbPos(0); - m_aScrollBar.Enable(false); + m_pScrollBar->DoScroll(0); + m_pScrollBar->SetThumbPos(0); + m_pScrollBar->Enable(false); } + Resize(); } void SwAddressControl_Impl::SetCurrentDataSet(sal_uInt32 nSet) @@ -245,7 +259,7 @@ void SwAddressControl_Impl::SetCurrentDataSet(sal_uInt32 nSet) IMPL_LINK(SwAddressControl_Impl, ScrollHdl_Impl, ScrollBar*, pScroll) { long nThumb = pScroll->GetThumbPos(); - m_aWindow.SetPosPixel(Point(0, - (m_nLineHeight * nThumb))); + m_pWindow->SetPosPixel(Point(0, - (m_nLineHeight * nThumb))); return 0; } @@ -262,10 +276,10 @@ IMPL_LINK(SwAddressControl_Impl, GotFocusHdl_Impl, Edit*, pEdit) void SwAddressControl_Impl::MakeVisible(const Rectangle & rRect) { - long nThumb = m_aScrollBar.GetThumbPos(); + long nThumb = m_pScrollBar->GetThumbPos(); //determine range of visible positions - long nMinVisiblePos = - m_aWindow.GetPosPixel().Y(); - long nMaxVisiblePos = m_aScrollBar.GetSizePixel().Height() + nMinVisiblePos; + long nMinVisiblePos = - m_pWindow->GetPosPixel().Y(); + long nMaxVisiblePos = m_pScrollBar->GetSizePixel().Height() + nMinVisiblePos; if( rRect.TopLeft().Y() < nMinVisiblePos) { nThumb -= 1 + ((nMinVisiblePos - rRect.TopLeft().Y()) / m_nLineHeight); @@ -274,10 +288,10 @@ void SwAddressControl_Impl::MakeVisible(const Rectangle & rRect) { nThumb += 1 + ((nMaxVisiblePos - rRect.BottomLeft().Y()) / m_nLineHeight); } - if(nThumb != m_aScrollBar.GetThumbPos()) + if(nThumb != m_pScrollBar->GetThumbPos()) { - m_aScrollBar.SetThumbPos(nThumb); - ScrollHdl_Impl(&m_aScrollBar); + m_pScrollBar->SetThumbPos(nThumb); + ScrollHdl_Impl(m_pScrollBar); } } @@ -318,7 +332,7 @@ void SwAddressControl_Impl::Command( const CommandEvent& rCEvt ) const CommandWheelData* pWheelData = rCEvt.GetWheelData(); if(pWheelData && !pWheelData->IsHorz() && COMMAND_WHEEL_ZOOM != pWheelData->GetMode()) { - HandleScrollCommand( rCEvt, 0, &m_aScrollBar ); + HandleScrollCommand( rCEvt, 0, m_pScrollBar ); } } break; @@ -342,46 +356,73 @@ bool SwAddressControl_Impl::PreNotify( NotifyEvent& rNEvt ) return Control::PreNotify(rNEvt); } +Size SwAddressControl_Impl::GetOptimalSize() const +{ + return LogicToPixel(Size(250, 160), MAP_APPFONT); +} + +void SwAddressControl_Impl::Resize() +{ + Window::Resize(); + m_pScrollBar->SetSizePixel(Size(m_pScrollBar->GetOutputSizePixel().Width(), GetOutputSizePixel().Height())); + + if(m_nLineHeight) + m_pScrollBar->SetVisibleSize(m_pScrollBar->GetOutputSize().Height() / m_nLineHeight); + m_pScrollBar->DoScroll(0); + + long nScrollBarWidth = m_pScrollBar->GetOutputSize().Width(); + Size aSize = GetOutputSizePixel(); + + m_pWindow->SetSizePixel(Size(aSize.Width() - nScrollBarWidth, m_pWindow->GetOutputSizePixel().Height())); + m_pScrollBar->SetPosPixel(Point(aSize.Width() - nScrollBarWidth, 0)); + + if(m_aEdits.size()) + { + long nNewEditSize = aSize.Width() - (*m_aEdits.begin())->GetPosPixel().X() - nScrollBarWidth - 6; + + ::std::vector<Edit*>::iterator aEditIter; + for(aEditIter = m_aEdits.begin(); aEditIter != m_aEdits.end(); ++aEditIter) + { + (*aEditIter)->SetSizePixel(Size(nNewEditSize, (*aEditIter)->GetSizePixel().Height())); + } + } + +} + SwCreateAddressListDialog::SwCreateAddressListDialog( Window* pParent, const OUString& rURL, SwMailMergeConfigItem& rConfig) : - SfxModalDialog(pParent, SW_RES(DLG_MM_CREATEADDRESSLIST)), - m_aAddressInformation( this, SW_RES( FI_ADDRESSINFORMATION)), - m_pAddressControl(new SwAddressControl_Impl(this, SW_RES(CT_ADDRESS))), - m_aNewPB( this, SW_RES( PB_NEW)), - m_aDeletePB( this, SW_RES( PB_DELETE)), - m_aFindPB( this, SW_RES( PB_FIND)), - m_aCustomizePB( this, SW_RES( PB_CUSTOMIZE)), - - m_aViewEntriesFI( this, SW_RES( FI_VIEWENTRIES)), - m_aStartPB( this, SW_RES( PB_START)), - m_aPrevPB( this, SW_RES( PB_PREV)), - m_aSetNoNF( this, SW_RES( NF_SETNO)), - m_aNextPB( this, SW_RES( PB_NEXT )), - m_aEndPB( this, SW_RES( PB_END)), - - m_aSeparatorFL( this, SW_RES( FL_SEPARATOR)), - - m_aOK( this, SW_RES( PB_OK)), - m_aCancel( this, SW_RES( PB_CANCEL)), - m_aHelp( this, SW_RES( PB_HELP)), + SfxModalDialog(pParent, "CreateAddressList", "modules/swriter/ui/createaddresslist.ui"), m_sAddressListFilterName( SW_RES( ST_FILTERNAME)), m_sURL(rURL), m_pCSVData( new SwCSVData ), m_pFindDlg(0) { - FreeResource(); - m_aNewPB.SetClickHdl(LINK(this, SwCreateAddressListDialog, NewHdl_Impl)); - m_aDeletePB.SetClickHdl(LINK(this, SwCreateAddressListDialog, DeleteHdl_Impl)); - m_aFindPB.SetClickHdl(LINK(this, SwCreateAddressListDialog, FindHdl_Impl)); - m_aCustomizePB.SetClickHdl(LINK(this, SwCreateAddressListDialog, CustomizeHdl_Impl)); - m_aOK.SetClickHdl(LINK(this, SwCreateAddressListDialog, OkHdl_Impl)); + get(m_pNewPB, "NEW"); + get(m_pDeletePB, "DELETE"); + get(m_pFindPB, "FIND"); + get(m_pCustomizePB, "CUSTOMIZE"); + get(m_pStartPB, "START"); + get(m_pPrevPB, "PREV"); + get(m_pSetNoNF, "SETNO-nospin"); + m_pSetNoNF->SetFirst(1); + m_pSetNoNF->SetMin(1); + get(m_pNextPB, "NEXT"); + get(m_pEndPB, "END"); + get(m_pOK, "OK"); + get(m_pAddressControl, "CONTAINER"); + + m_pNewPB->SetClickHdl(LINK(this, SwCreateAddressListDialog, NewHdl_Impl)); + m_pDeletePB->SetClickHdl(LINK(this, SwCreateAddressListDialog, DeleteHdl_Impl)); + m_pFindPB->SetClickHdl(LINK(this, SwCreateAddressListDialog, FindHdl_Impl)); + m_pCustomizePB->SetClickHdl(LINK(this, SwCreateAddressListDialog, CustomizeHdl_Impl)); + m_pOK->SetClickHdl(LINK(this, SwCreateAddressListDialog, OkHdl_Impl)); Link aLk = LINK(this, SwCreateAddressListDialog, DBCursorHdl_Impl); - m_aStartPB.SetClickHdl(aLk); - m_aPrevPB.SetClickHdl(aLk); - m_aSetNoNF.SetModifyHdl(LINK(this, SwCreateAddressListDialog, DBNumCursorHdl_Impl)); - m_aNextPB.SetClickHdl(aLk); - m_aEndPB.SetClickHdl(aLk); + m_pStartPB->SetClickHdl(aLk); + m_pPrevPB->SetClickHdl(aLk); + m_pSetNoNF->SetModifyHdl(LINK(this, SwCreateAddressListDialog, DBNumCursorHdl_Impl)); + m_pNextPB->SetClickHdl(aLk); + m_pEndPB->SetClickHdl(aLk); if(!m_sURL.isEmpty()) { @@ -448,13 +489,12 @@ SwCreateAddressListDialog::SwCreateAddressListDialog( //now fill the address control m_pAddressControl->SetData(*m_pCSVData); m_pAddressControl->SetCurrentDataSet(0); - m_aSetNoNF.SetMax(m_pCSVData->aDBData.size()); + m_pSetNoNF->SetMax(m_pCSVData->aDBData.size()); UpdateButtons(); } SwCreateAddressListDialog::~SwCreateAddressListDialog() { - delete m_pAddressControl; delete m_pCSVData; delete m_pFindDlg; } @@ -466,9 +506,9 @@ IMPL_LINK_NOARG(SwCreateAddressListDialog, NewHdl_Impl) OUString sTemp; aNewData.insert(aNewData.begin(), m_pCSVData->aDBColumnHeaders.size(), sTemp); m_pCSVData->aDBData.insert(m_pCSVData->aDBData.begin() + ++nCurrent, aNewData); - m_aSetNoNF.SetMax(m_pCSVData->aDBData.size()); + m_pSetNoNF->SetMax(m_pCSVData->aDBData.size()); //the NumericField start at 1 - m_aSetNoNF.SetValue(nCurrent + 1); + m_pSetNoNF->SetValue(nCurrent + 1); //the address control starts at 0 m_pAddressControl->SetCurrentDataSet(nCurrent); UpdateButtons(); @@ -489,10 +529,10 @@ IMPL_LINK_NOARG(SwCreateAddressListDialog, DeleteHdl_Impl) // if only one set is available then clear the data OUString sTemp; m_pCSVData->aDBData[0].assign(m_pCSVData->aDBData[0].size(), sTemp); - m_aDeletePB.Enable(false); + m_pDeletePB->Enable(false); } m_pAddressControl->SetCurrentDataSet(nCurrent); - m_aSetNoNF.SetMax(m_pCSVData->aDBData.size()); + m_pSetNoNF->SetMax(m_pCSVData->aDBData.size()); UpdateButtons(); return 0; } @@ -610,46 +650,46 @@ IMPL_LINK_NOARG(SwCreateAddressListDialog, OkHdl_Impl) IMPL_LINK(SwCreateAddressListDialog, DBCursorHdl_Impl, PushButton*, pButton) { - sal_uInt32 nValue = static_cast< sal_uInt32 >(m_aSetNoNF.GetValue()); + sal_uInt32 nValue = static_cast< sal_uInt32 >(m_pSetNoNF->GetValue()); - if(pButton == &m_aStartPB) + if(pButton == m_pStartPB) nValue = 1; - else if(pButton == &m_aPrevPB) + else if(pButton == m_pPrevPB) { if(nValue > 1) --nValue; } - else if(pButton == &m_aNextPB) + else if(pButton == m_pNextPB) { - if(nValue < (sal_uInt32)m_aSetNoNF.GetMax()) + if(nValue < (sal_uInt32)m_pSetNoNF->GetMax()) ++nValue; } else //m_aEndPB - nValue = static_cast< sal_uInt32 >(m_aSetNoNF.GetMax()); - if(nValue != m_aSetNoNF.GetValue()) + nValue = static_cast< sal_uInt32 >(m_pSetNoNF->GetMax()); + if(nValue != m_pSetNoNF->GetValue()) { - m_aSetNoNF.SetValue(nValue); - DBNumCursorHdl_Impl(&m_aSetNoNF); + m_pSetNoNF->SetValue(nValue); + DBNumCursorHdl_Impl(m_pSetNoNF); } return 0; } IMPL_LINK_NOARG(SwCreateAddressListDialog, DBNumCursorHdl_Impl) { - m_pAddressControl->SetCurrentDataSet( static_cast< sal_uInt32 >(m_aSetNoNF.GetValue() - 1) ); + m_pAddressControl->SetCurrentDataSet( static_cast< sal_uInt32 >(m_pSetNoNF->GetValue() - 1) ); UpdateButtons(); return 0; } void SwCreateAddressListDialog::UpdateButtons() { - sal_uInt32 nCurrent = static_cast< sal_uInt32 >(m_aSetNoNF.GetValue() ); + sal_uInt32 nCurrent = static_cast< sal_uInt32 >(m_pSetNoNF->GetValue() ); sal_uInt32 nSize = (sal_uInt32 )m_pCSVData->aDBData.size(); - m_aStartPB.Enable(nCurrent != 1); - m_aPrevPB.Enable(nCurrent != 1); - m_aNextPB.Enable(nCurrent != nSize); - m_aEndPB.Enable(nCurrent != nSize); - m_aDeletePB.Enable(nSize > 0); + m_pStartPB->Enable(nCurrent != 1); + m_pPrevPB->Enable(nCurrent != 1); + m_pNextPB->Enable(nCurrent != nSize); + m_pEndPB->Enable(nCurrent != nSize); + m_pDeletePB->Enable(nSize > 0); } void SwCreateAddressListDialog::Find(const OUString& rSearch, sal_Int32 nColumn) @@ -690,7 +730,7 @@ void SwCreateAddressListDialog::Find(const OUString& rSearch, sal_Int32 nColumn) if(bFound) { m_pAddressControl->SetCurrentDataSet(nPos); - m_aSetNoNF.SetValue( nPos + 1 ); + m_pSetNoNF->SetValue( nPos + 1 ); UpdateButtons(); m_pAddressControl->SetCursorTo(nElement); } diff --git a/sw/source/ui/dbui/createaddresslistdialog.hrc b/sw/source/ui/dbui/createaddresslistdialog.hrc deleted file mode 100644 index 2a3ea763b5ff..000000000000 --- a/sw/source/ui/dbui/createaddresslistdialog.hrc +++ /dev/null @@ -1,46 +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 _CREATEADDRESSLISTDIALOG_HRC -#define _CREATEADDRESSLISTDIALOG_HRC - -#define FI_ADDRESSINFORMATION 1 -#define CT_ADDRESS 2 -#define PB_NEW 3 -#define PB_DELETE 4 -#define PB_FIND 5 -#define PB_CUSTOMIZE 6 -#define FI_VIEWENTRIES 7 -#define PB_START 8 -#define PB_PREV 9 -#define NF_SETNO 10 -#define PB_NEXT 11 -#define PB_END 12 -#define FL_SEPARATOR 13 -#define PB_OK 14 -#define PB_CANCEL 15 -#define PB_HELP 16 - -#define ST_FILTERNAME 18 - -#define SCR_1 1 -#define WIN_DATA 2 - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/dbui/createaddresslistdialog.hxx b/sw/source/ui/dbui/createaddresslistdialog.hxx index d931ab30d0b1..f14461078e7c 100644..100755 --- a/sw/source/ui/dbui/createaddresslistdialog.hxx +++ b/sw/source/ui/dbui/createaddresslistdialog.hxx @@ -40,26 +40,21 @@ struct SwCSVData class SwFindEntryDialog; class SwCreateAddressListDialog : public SfxModalDialog { - FixedInfo m_aAddressInformation; SwAddressControl_Impl* m_pAddressControl; - PushButton m_aNewPB; - PushButton m_aDeletePB; - PushButton m_aFindPB; - PushButton m_aCustomizePB; + PushButton *m_pNewPB; + PushButton *m_pDeletePB; + PushButton *m_pFindPB; + PushButton *m_pCustomizePB; - FixedInfo m_aViewEntriesFI; - PushButton m_aStartPB; - PushButton m_aPrevPB; - NumericField m_aSetNoNF; - PushButton m_aNextPB; - PushButton m_aEndPB; + PushButton *m_pStartPB; + PushButton *m_pPrevPB; + NumericField *m_pSetNoNF; + PushButton *m_pNextPB; + PushButton *m_pEndPB; - FixedLine m_aSeparatorFL; - OKButton m_aOK; - CancelButton m_aCancel; - HelpButton m_aHelp; + OKButton *m_pOK; OUString m_sAddressListFilterName; OUString m_sURL; diff --git a/sw/source/ui/dbui/createaddresslistdialog.src b/sw/source/ui/dbui/createaddresslistdialog.src deleted file mode 100644 index 2febd88b9628..000000000000 --- a/sw/source/ui/dbui/createaddresslistdialog.src +++ /dev/null @@ -1,165 +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 <createaddresslistdialog.hrc> -#include <dbui.hrc> -#include <helpid.h> - -ModalDialog DLG_MM_CREATEADDRESSLIST -{ - OutputSize = TRUE ; - SVLook = TRUE ; - HelpID = HID_MM_CREATEADDRESSLIST; - Size = MAP_APPFONT ( 318 , 231 ) ; - Moveable = TRUE ; - - Text [ en-US ] = "New Address List"; - - FixedText FI_ADDRESSINFORMATION - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 150 , 8 ) ; - Text [ en-US ] = "Address Information"; - }; - Control CT_ADDRESS - { - Pos = MAP_APPFONT ( 6 , 14 ) ; - Size = MAP_APPFONT ( 250 , 160 ) ; - Border = TRUE; - DialogControl = TRUE; - OutputSize = TRUE ; - - ScrollBar SCR_1 - { - Pos = MAP_APPFONT ( 240 , 0 ) ; - Size = MAP_APPFONT ( 10 , 160 ) ; - }; - Window WIN_DATA - { - Pos = MAP_APPFONT ( 0 , 0 ) ; - Size = MAP_APPFONT ( 240 , 160 ) ; - DialogControl = TRUE; - }; - }; - PushButton PB_NEW - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_NEW"; - Pos = MAP_APPFONT ( 262 , 14 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~New"; - }; - PushButton PB_DELETE - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_DELETE"; - Pos = MAP_APPFONT ( 262 , 32 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Delete"; - }; - PushButton PB_FIND - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_FIND"; - Pos = MAP_APPFONT ( 262 , 50 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Find..."; - }; - PushButton PB_CUSTOMIZE - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_CUSTOMIZE"; - Pos = MAP_APPFONT ( 262 , 68 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "C~ustomize..."; - }; - FixedText FI_VIEWENTRIES - { - Pos = MAP_APPFONT ( 6 , 183 ) ; - Size = MAP_APPFONT ( 92 , 8 ) ; - Text [ en-US ] = "Sho~w entry number"; - }; - PushButton PB_START - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_START"; - Pos = MAP_APPFONT ( 100 , 180 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - Text = "|<"; - }; - PushButton PB_PREV - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_PREV"; - Pos = MAP_APPFONT ( 123 , 180 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - Text = "<"; - }; - NumericField NF_SETNO - { - HelpID = "sw:NumericField:DLG_MM_CREATEADDRESSLIST:NF_SETNO"; - Pos = MAP_APPFONT ( 146 , 180 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - Border = TRUE; - Left = TRUE ; - First = 1 ; - Minimum = 1 ; - Value = 1; - Repeat = TRUE ; - Spin = FALSE ; - TabStop = TRUE ; - }; - PushButton PB_NEXT - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_NEXT"; - Pos = MAP_APPFONT ( 169 , 180 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - Text = ">"; - }; - PushButton PB_END - { - HelpID = "sw:PushButton:DLG_MM_CREATEADDRESSLIST:PB_END"; - Pos = MAP_APPFONT ( 192 , 180 ) ; - Size = MAP_APPFONT ( 20 , 14 ) ; - Text = ">|"; - }; - FixedLine FL_SEPARATOR - { - Pos = MAP_APPFONT ( 0 , 200 ) ; - Size = MAP_APPFONT ( 318 , 8 ) ; - }; - - OKButton PB_OK - { - Pos = MAP_APPFONT ( 153 , 211 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - DefButton = TRUE; - }; - CancelButton PB_CANCEL - { - Pos = MAP_APPFONT ( 206 , 211 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - HelpButton PB_HELP - { - Pos = MAP_APPFONT ( 262 , 211 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - - String ST_FILTERNAME - { - Text [ en-US ] = "%PRODUCTNAME Address List (.csv)"; - }; -}; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/dbui/dbui.src b/sw/source/ui/dbui/dbui.src index d673c88706aa..0124bc7f96a1 100644 --- a/sw/source/ui/dbui/dbui.src +++ b/sw/source/ui/dbui/dbui.src @@ -120,4 +120,9 @@ String ST_CONFIGUREMAIL Text[ en-US ] = "In order to be able to send mail merge documents by e-mail, %PRODUCTNAME requires information about the e-mail account to be used.\n\nDo you want to enter e-mail account information now?"; }; +String ST_FILTERNAME +{ + Text [ en-US ] = "%PRODUCTNAME Address List (.csv)"; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/uiconfig/swriter/ui/createaddresslist.ui b/sw/uiconfig/swriter/ui/createaddresslist.ui new file mode 100644 index 000000000000..7d31c798c7ab --- /dev/null +++ b/sw/uiconfig/swriter/ui/createaddresslist.ui @@ -0,0 +1,330 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.16.1 --> +<interface> + <requires lib="gtk+" version="3.0"/> + <!-- interface-requires LibreOffice 1.0 --> + <object class="GtkDialog" id="CreateAddressList"> + <property name="can_focus">False</property> + <property name="border_width">6</property> + <property name="title" translatable="yes">New Address List</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox1"> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="OK"> + <property name="label">gtk-ok</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="CANCEL"> + <property name="label">gtk-cancel</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="HELP"> + <property name="label">gtk-help</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</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="GtkGrid" id="grid1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="row_spacing">6</property> + <property name="column_spacing">6</property> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="ADDRESS_INFORMATION"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Address Information</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">CONTAINER</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="swuilo-SwAddressControlImpl" id="CONTAINER"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkBox" id="box2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="VIEW_ENTRIES"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Sho_w entry number</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">grid2</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkGrid" id="grid2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="hexpand">True</property> + <property name="column_spacing">6</property> + <child> + <object class="GtkButton" id="START"> + <property name="label" translatable="yes">|<</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="PREV"> + <property name="label" translatable="yes"><</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="END"> + <property name="label" translatable="yes">>|</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">4</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="NEXT"> + <property name="label" translatable="yes">></property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </object> + <packing> + <property name="left_attach">3</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="SETNO-nospin"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="numeric">True</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkButtonBox" id="buttonbox1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <property name="layout_style">start</property> + <child> + <object class="GtkButton" id="NEW"> + <property name="label" translatable="yes">_New</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">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> + </packing> + </child> + <child> + <object class="GtkButton" id="DELETE"> + <property name="label" translatable="yes">_Delete</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">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">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="FIND"> + <property name="label" translatable="yes">_Find...</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">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">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="CUSTOMIZE"> + <property name="label" translatable="yes">C_ustomize...</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">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">3</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">OK</action-widget> + <action-widget response="0">CANCEL</action-widget> + <action-widget response="0">HELP</action-widget> + </action-widgets> + </object> +</interface> |