LibreOffice Module sw (master)  1
srtdlg.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include <cstdint>
21 
22 #include <srtdlg.hxx>
23 
24 #include <vcl/svapp.hxx>
25 #include <vcl/weld.hxx>
26 #include <svl/intitem.hxx>
27 #include <svl/eitem.hxx>
28 #include <sfx2/dispatch.hxx>
29 #include <svx/svxids.hrc>
30 #include <editeng/unolingu.hxx>
31 #include <svx/svxdlg.hxx>
32 #include <svx/dialogs.hrc>
34 #include <svtools/collatorres.hxx>
35 #include <swwait.hxx>
36 #include <view.hxx>
37 #include <cmdid.h>
38 #include <wrtsh.hxx>
39 #include <app.hrc>
40 #include <strings.hrc>
41 #include <swtable.hxx>
42 #include <sortopt.hxx>
43 #include <node.hxx>
44 #include <tblsel.hxx>
45 #include <sfx2/request.hxx>
46 #include <memory>
47 
48 static bool bCheck1 = true;
49 static bool bCheck2 = false;
50 static bool bCheck3 = false;
51 
52 static sal_uInt16 nCol1 = 1;
53 static sal_uInt16 nCol2 = 1;
54 static sal_uInt16 nCol3 = 1;
55 
56 static sal_uInt16 nType1 = 0;
57 static sal_uInt16 nType2 = 0;
58 static sal_uInt16 nType3 = 0;
59 
61 
62 static bool bAsc1 = true;
63 static bool bAsc2 = true;
64 static bool bAsc3 = true;
65 static bool bCol = false;
66 static bool bCsSens= false;
67 
68 static sal_Unicode cDeli = '\t';
69 
70 using namespace ::com::sun::star::lang;
71 using namespace ::com::sun::star::uno;
72 using namespace ::com::sun::star;
73 
74 // determine lines and columns for table selection
75 static bool lcl_GetSelTable( SwWrtShell const &rSh, sal_uInt16& rX, sal_uInt16& rY )
76 {
77  const SwTableNode* pTableNd = rSh.IsCursorInTable();
78  if( !pTableNd )
79  return false;
80 
81  FndBox_ aFndBox( nullptr, nullptr );
82 
83  // look for all boxes / lines
84  {
85  SwSelBoxes aSelBoxes;
86  ::GetTableSel( rSh, aSelBoxes );
87  FndPara aPara( aSelBoxes, &aFndBox );
88  const SwTable& rTable = pTableNd->GetTable();
89  ForEach_FndLineCopyCol( const_cast<SwTableLines&>(rTable.GetTabLines()), &aPara );
90  }
91  rX = aFndBox.GetLines().size();
92  if( !rX )
93  return false;
94 
95  rY = aFndBox.GetLines().front()->GetBoxes().size();
96  return true;
97 }
98 
99 // init list
101  : GenericDialogController(pParent, "modules/swriter/ui/sortdialog.ui", "SortDialog")
102  , m_pParent(pParent)
103  , m_xColLbl(m_xBuilder->weld_label("column"))
104  , m_xKeyCB1(m_xBuilder->weld_check_button("key1"))
105  , m_xColEdt1(m_xBuilder->weld_spin_button("colsb1"))
106  , m_xTypDLB1(m_xBuilder->weld_combo_box("typelb1"))
107  , m_xSortUp1RB(m_xBuilder->weld_radio_button("up1"))
108  , m_xSortDn1RB(m_xBuilder->weld_radio_button("down1"))
109  , m_xKeyCB2(m_xBuilder->weld_check_button("key2"))
110  , m_xColEdt2(m_xBuilder->weld_spin_button("colsb2"))
111  , m_xTypDLB2(m_xBuilder->weld_combo_box("typelb2"))
112  , m_xSortUp2RB(m_xBuilder->weld_radio_button("up2"))
113  , m_xSortDn2RB(m_xBuilder->weld_radio_button("down2"))
114  , m_xKeyCB3(m_xBuilder->weld_check_button("key3"))
115  , m_xColEdt3(m_xBuilder->weld_spin_button("colsb3"))
116  , m_xTypDLB3(m_xBuilder->weld_combo_box("typelb3"))
117  , m_xSortUp3RB(m_xBuilder->weld_radio_button("up3"))
118  , m_xSortDn3RB(m_xBuilder->weld_radio_button("down3"))
119  , m_xColumnRB(m_xBuilder->weld_radio_button("columns"))
120  , m_xRowRB(m_xBuilder->weld_radio_button("rows"))
121  , m_xDelimTabRB(m_xBuilder->weld_radio_button("tabs"))
122  , m_xDelimFreeRB(m_xBuilder->weld_radio_button("character"))
123  , m_xDelimEdt(m_xBuilder->weld_entry("separator"))
124  , m_xDelimPB(m_xBuilder->weld_button("delimpb"))
125  , m_xLangLB(new SvxLanguageBox(m_xBuilder->weld_combo_box("langlb")))
126  , m_xCaseCB(m_xBuilder->weld_check_button("matchcase"))
127  , aColText(SwResId(STR_COL))
128  , aRowText(SwResId(STR_ROW))
129  , aNumericText(SwResId(STR_NUMERIC))
130  , rSh(rShell)
131  , nX(99)
132  , nY(99)
133 {
134  if(rSh.GetSelectionType() &
136  {
137  m_xColumnRB->set_active(bCol);
138  m_xColLbl->set_label(bCol ? aRowText : aColText);
139  m_xRowRB->set_active(!bCol);
140  m_xDelimTabRB->set_sensitive(false);
141  m_xDelimFreeRB->set_sensitive(false);
142  m_xDelimEdt->set_sensitive(false);
143  }
144  else
145  {
146  m_xColumnRB->set_sensitive(false);
147  m_xRowRB->set_active(true);
148  m_xColLbl->set_label(aColText);
149  }
150 
151  // Set accessible names here because text of m_xColLbl may be changed
152  // by the if-else block above
153  m_xColEdt1->set_accessible_name(m_xColLbl->get_label());
154  m_xColEdt2->set_accessible_name(m_xColLbl->get_label());
155  m_xColEdt3->set_accessible_name(m_xColLbl->get_label());
156 
157  // initialise
158  Link<weld::ToggleButton&,void> aLk = LINK(this, SwSortDlg, CheckHdl);
159  m_xKeyCB1->connect_toggled( aLk );
160  m_xKeyCB2->connect_toggled( aLk );
161  m_xKeyCB3->connect_toggled( aLk );
162  m_xColumnRB->connect_toggled( aLk );
163  m_xRowRB->connect_toggled( aLk );
164 
165  aLk = LINK(this, SwSortDlg, DelimHdl);
166  m_xDelimFreeRB->connect_toggled(aLk);
167  m_xDelimTabRB->connect_toggled(aLk);
168 
169  m_xDelimPB->connect_clicked( LINK( this, SwSortDlg, DelimCharHdl ));
170 
171  m_xKeyCB1->set_active(bCheck1);
172  m_xKeyCB2->set_active(bCheck2);
173  m_xKeyCB3->set_active(bCheck3);
174 
175  m_xColEdt1->set_value(nCol1);
176  m_xColEdt2->set_value(nCol2);
177  m_xColEdt3->set_value(nCol3);
178 
179  // first initialise the language, then select the
180  if( LANGUAGE_NONE == nLang || LANGUAGE_DONTKNOW == nLang )
181  nLang = GetAppLanguage();
182 
183  m_xLangLB->SetLanguageList( SvxLanguageListFlags::ALL | SvxLanguageListFlags::ONLY_KNOWN, true );
184  m_xLangLB->set_active_id(nLang);
185 
186  LanguageHdl( nullptr );
187  m_xLangLB->connect_changed( LINK( this, SwSortDlg, LanguageListBoxHdl ));
188 
189  m_xSortUp1RB->set_active(bAsc1);
190  m_xSortDn1RB->set_active(!bAsc1);
191  m_xSortUp2RB->set_active(bAsc2);
192  m_xSortDn2RB->set_active(!bAsc2);
193  m_xSortUp3RB->set_active(bAsc3);
194  m_xSortDn3RB->set_active(!bAsc3);
195 
196  m_xCaseCB->set_active( bCsSens );
197 
198  m_xDelimTabRB->set_active(cDeli == '\t');
199  if(!m_xDelimTabRB->get_active())
200  {
201  m_xDelimEdt->set_text(OUString(cDeli));
202  m_xDelimFreeRB->set_active(true);
203  DelimHdl(*m_xDelimFreeRB);
204  }
205  else
206  DelimHdl(*m_xDelimTabRB);
207 
208  if( ::lcl_GetSelTable( rSh, nX, nY) )
209  {
210  sal_uInt16 nMax = m_xRowRB->get_active()? nY : nX;
211  m_xColEdt1->set_max(nMax);
212  m_xColEdt2->set_max(nMax);
213  m_xColEdt3->set_max(nMax);
214  }
215 }
216 
218 {
219  sal_Unicode cRet = '\t';
220  if( !m_xDelimTabRB->get_active() )
221  {
222  OUString aTmp(m_xDelimEdt->get_text());
223  if( !aTmp.isEmpty() )
224  cRet = aTmp[0];
225  }
226  return cRet;
227 }
228 
230 {
231  short nRet = GenericDialogController::run();
232  if (nRet == RET_OK)
233  Apply();
234  return nRet;
235 }
236 
237 // pass on to the Core
239 {
240  // save all settings
241  bCheck1 = m_xKeyCB1->get_active();
242  bCheck2 = m_xKeyCB2->get_active();
243  bCheck3 = m_xKeyCB3->get_active();
244 
245  nCol1 = m_xColEdt1->get_value();
246  nCol2 = m_xColEdt2->get_value();
247  nCol3 = m_xColEdt3->get_value();
248 
249  nType1 = m_xTypDLB1->get_active();
250  nType2 = m_xTypDLB2->get_active();
251  nType3 = m_xTypDLB3->get_active();
252 
253  bAsc1 = m_xSortUp1RB->get_active();
254  bAsc2 = m_xSortUp2RB->get_active();
255  bAsc3 = m_xSortUp3RB->get_active();
256  bCol = m_xColumnRB->get_active();
257  nLang = m_xLangLB->get_active_id();
258  cDeli = GetDelimChar();
259  bCsSens = m_xCaseCB->get_active();
260 
261  SwSortOptions aOptions;
262  if( bCheck1 )
263  {
264  OUString sEntry( m_xTypDLB1->get_active_text() );
265  if( sEntry == aNumericText )
266  sEntry.clear();
267  else if (!m_xTypDLB1->get_active_id().isEmpty())
268  sEntry = m_xTypDLB1->get_active_id();
269 
270  aOptions.aKeys.push_back(
271  std::make_unique<SwSortKey>( nCol1, sEntry,
273  }
274 
275  if( bCheck2 )
276  {
277  OUString sEntry( m_xTypDLB2->get_active_text() );
278  if( sEntry == aNumericText )
279  sEntry.clear();
280  else if (!m_xTypDLB2->get_active_id().isEmpty())
281  sEntry = m_xTypDLB2->get_active_id();
282 
283  aOptions.aKeys.push_back(
284  std::make_unique<SwSortKey>( nCol2, sEntry,
286  }
287 
288  if( bCheck3 )
289  {
290  OUString sEntry( m_xTypDLB3->get_active_text() );
291  if( sEntry == aNumericText )
292  sEntry.clear();
293  else if (!m_xTypDLB3->get_active_id().isEmpty())
294  sEntry = m_xTypDLB3->get_active_id();
295 
296  aOptions.aKeys.push_back(
297  std::make_unique<SwSortKey>( nCol3, sEntry,
299  }
300 
301  aOptions.eDirection = bCol ? SRT_COLUMNS : SRT_ROWS;
302  aOptions.cDeli = cDeli;
303  aOptions.nLanguage = nLang;
304  aOptions.bTable = rSh.IsTableMode();
305  aOptions.bIgnoreCase = !bCsSens;
306 
307  bool bRet;
308  {
309  SwWait aWait( *rSh.GetView().GetDocShell(), true );
311  bRet = rSh.Sort( aOptions );
312  if( bRet )
313  rSh.SetModified();
314  rSh.EndAllAction();
315  }
316 
317  if (!bRet)
318  {
319  std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(m_pParent,
320  VclMessageType::Info, VclButtonsType::Ok,
321  SwResId(STR_SRTERR)));
322  xInfoBox->run();
323  }
324 }
325 
326 IMPL_LINK( SwSortDlg, DelimHdl, weld::ToggleButton&, rButton, void )
327 {
328  bool bEnable = &rButton == m_xDelimFreeRB.get() && m_xDelimFreeRB->get_sensitive();
329  m_xDelimEdt->set_sensitive( bEnable );
330  m_xDelimPB->set_sensitive( bEnable );
331 }
332 
333 IMPL_LINK_NOARG(SwSortDlg, DelimCharHdl, weld::Button&, void)
334 {
336  SfxAllItemSet aSet( rSh.GetAttrPool() );
337  aSet.Put( SfxInt32Item( SID_ATTR_CHAR, GetDelimChar() ) );
338  ScopedVclPtr<SfxAbstractDialog> pMap(pFact->CreateCharMapDialog(m_xDialog.get(), aSet, nullptr));
339  if( RET_OK == pMap->Execute() )
340  {
341  const SfxInt32Item* pItem = SfxItemSet::GetItem<SfxInt32Item>(pMap->GetOutputItemSet(), SID_ATTR_CHAR, false);
342  if ( pItem )
343  m_xDelimEdt->set_text(OUString(sal_Unicode(pItem->GetValue())));
344  }
345 }
346 
347 IMPL_LINK( SwSortDlg, CheckHdl, weld::ToggleButton&, rControl, void )
348 {
349  if (&rControl == m_xRowRB.get())
350  {
351  m_xColLbl->set_label(aColText);
352  m_xColEdt1->set_max(nY);
353  m_xColEdt2->set_max(nY);
354  m_xColEdt3->set_max(nY);
355 
356  m_xColEdt1->set_accessible_name(aColText);
357  m_xColEdt2->set_accessible_name(aColText);
358  m_xColEdt3->set_accessible_name(aColText);
359  }
360  else if (&rControl == m_xColumnRB.get())
361  {
362  m_xColLbl->set_label(aRowText);
363  m_xColEdt1->set_max(nX);
364  m_xColEdt2->set_max(nX);
365  m_xColEdt3->set_max(nX);
366 
367  m_xColEdt1->set_accessible_name(aRowText);
368  m_xColEdt2->set_accessible_name(aRowText);
369  m_xColEdt3->set_accessible_name(aRowText);
370  }
371  else if(!m_xKeyCB1->get_active() &&
372  !m_xKeyCB2->get_active() &&
373  !m_xKeyCB3->get_active())
374  {
375  rControl.set_active(true);
376  }
377 }
378 
379 IMPL_LINK( SwSortDlg, LanguageListBoxHdl, weld::ComboBox&, rLBox, void )
380 {
381  LanguageHdl(&rLBox);
382 }
383 
385 {
386  Sequence < OUString > aSeq( GetAppCollator().listCollatorAlgorithms(
387  LanguageTag( m_xLangLB->get_active_id()).getLocale() ));
388 
389  if (!m_xColRes)
390  m_xColRes.reset(new CollatorResource);
391 
392  const int nLstBoxCnt = 3;
393  weld::ComboBox* aLstArr[ nLstBoxCnt ] = { m_xTypDLB1.get(), m_xTypDLB2.get(), m_xTypDLB3.get() };
394  sal_uInt16* const aTypeArr[ nLstBoxCnt ] = { &nType1, &nType2, &nType3 };
395  OUString aOldStrArr[ nLstBoxCnt ];
396 
397  for( int n = 0; n < nLstBoxCnt; ++n )
398  {
399  weld::ComboBox* pL = aLstArr[ n ];
400  OUString sUserData = pL->get_active_id();
401  if (!sUserData.isEmpty())
402  aOldStrArr[ n ] = sUserData;
403  pL->clear();
404  }
405 
406  OUString sAlg, sUINm;
407  const sal_Int32 nEnd = aSeq.getLength();
408  for( sal_Int32 nCnt = 0; nCnt <= nEnd; ++nCnt )
409  {
410  if( nCnt < nEnd )
411  {
412  sAlg = aSeq[ nCnt ];
413  sUINm = m_xColRes->GetTranslation( sAlg );
414  }
415  else
416  sUINm = sAlg = aNumericText;
417 
418  for( int n = 0; n < nLstBoxCnt; ++n )
419  {
420  weld::ComboBox* pL = aLstArr[ n ];
421  pL->append(sAlg, sUINm);
422  if (pLBox && sAlg == aOldStrArr[n])
423  pL->set_active_id(sAlg);
424  }
425  }
426 
427  for( int n = 0; n < nLstBoxCnt; ++n )
428  {
429  weld::ComboBox* pL = aLstArr[ n ];
430  if( !pLBox )
431  pL->set_active(*aTypeArr[n]);
432  else if (pL->get_active() == -1)
433  pL->set_active(0);
434  }
435 }
436 
437 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
const FndLines_t & GetLines() const
Definition: tblsel.hxx:173
sal_Int32 GetValue() const
#define LANGUAGE_NONE
static sal_uInt16 nType3
Definition: srtdlg.cxx:58
std::unique_ptr< weld::SpinButton > m_xColEdt2
Definition: srtdlg.hxx:40
SwSortDirection eDirection
Definition: sortopt.hxx:51
virtual const SfxItemSet * GetOutputItemSet() const =0
static bool bAsc1
Definition: srtdlg.cxx:62
bool IsTableMode() const
Definition: crsrsh.hxx:647
sal_Unicode cDeli
Definition: sortopt.hxx:52
static SvxAbstractDialogFactory * Create()
std::unique_ptr< weld::RadioButton > m_xSortDn2RB
Definition: srtdlg.hxx:43
std::unique_ptr< weld::CheckButton > m_xCaseCB
Definition: srtdlg.hxx:61
void Apply()
Definition: srtdlg.cxx:238
static sal_uInt16 nType2
Definition: srtdlg.cxx:57
std::vector< std::unique_ptr< SwSortKey > > aKeys
Definition: sortopt.hxx:50
SwSortDlg(weld::Window *pParent, SwWrtShell &rSh)
Definition: srtdlg.cxx:100
std::unique_ptr< weld::RadioButton > m_xSortUp2RB
Definition: srtdlg.hxx:42
void append(const OUString &rId, const OUString &rStr)
void SetModified()
Definition: edws.cxx:69
virtual OUString get_active_id() const =0
static bool bCsSens
Definition: srtdlg.cxx:66
virtual int get_active() const =0
std::unique_ptr< weld::CheckButton > m_xKeyCB3
Definition: srtdlg.hxx:45
void EndAllAction()
Definition: edws.cxx:96
static bool bCheck1
Definition: srtdlg.cxx:48
SwWrtShell & rSh
Definition: srtdlg.hxx:67
void ForEach_FndLineCopyCol(SwTableLines &rLines, FndPara *pFndPara)
Definition: tblsel.cxx:2089
OUString const aColText
Definition: srtdlg.hxx:63
static LanguageType nLang
Definition: srtdlg.cxx:60
Used by the UI to modify the document model.
Definition: wrtsh.hxx:90
sal_uInt16 sal_Unicode
virtual void set_active_id(const OUString &rStr)=0
const SwView & GetView() const
Definition: wrtsh.hxx:428
std::unique_ptr< CollatorResource > m_xColRes
Definition: srtdlg.hxx:68
std::unique_ptr< weld::RadioButton > m_xSortDn1RB
Definition: srtdlg.hxx:37
OUString const aNumericText
Definition: srtdlg.hxx:65
std::unique_ptr< weld::ComboBox > m_xTypDLB3
Definition: srtdlg.hxx:47
const SwTable & GetTable() const
Definition: node.hxx:497
static sal_uInt16 nCol2
Definition: srtdlg.cxx:53
bool bIgnoreCase
Definition: sortopt.hxx:55
std::unique_ptr< weld::RadioButton > m_xSortUp1RB
Definition: srtdlg.hxx:36
std::unique_ptr< weld::RadioButton > m_xSortUp3RB
Definition: srtdlg.hxx:48
bool Sort(const SwSortOptions &)
Definition: fews.cxx:558
void LanguageHdl(weld::ComboBox const *)
Definition: srtdlg.cxx:384
const SwTableNode * IsCursorInTable() const
Definition: crsrsh.hxx:893
std::unique_ptr< weld::RadioButton > m_xSortDn3RB
Definition: srtdlg.hxx:49
std::unique_ptr< SvxLanguageBox > m_xLangLB
Definition: srtdlg.hxx:59
static bool bCol
Definition: srtdlg.cxx:65
void GetTableSel(const SwCursorShell &rShell, SwSelBoxes &rBoxes, const SwTableSearchType eSearchType)
Definition: tblsel.cxx:141
std::unique_ptr< weld::ComboBox > m_xTypDLB2
Definition: srtdlg.hxx:41
std::unique_ptr< weld::RadioButton > m_xDelimFreeRB
Definition: srtdlg.hxx:55
sal_uInt16 nX
Definition: srtdlg.hxx:70
std::unique_ptr< weld::CheckButton > m_xKeyCB2
Definition: srtdlg.hxx:39
OUString const aRowText
Definition: srtdlg.hxx:64
static bool bCheck2
Definition: srtdlg.cxx:49
static sal_uInt16 nCol1
Definition: srtdlg.cxx:52
#define LANGUAGE_DONTKNOW
virtual VclPtr< SfxAbstractDialog > CreateCharMapDialog(weld::Window *pParent, const SfxItemSet &rAttr, const css::uno::Reference< css::frame::XFrame > &rFrame)=0
virtual void set_active(int pos)=0
OUString SwResId(const char *pId)
Definition: swmodule.cxx:190
virtual void clear()=0
static bool bAsc3
Definition: srtdlg.cxx:64
SwTableLines & GetTabLines()
Definition: swtable.hxx:198
std::unique_ptr< weld::RadioButton > m_xDelimTabRB
Definition: srtdlg.hxx:54
SwTable is one table in the document model, containing rows (which contain cells).
Definition: swtable.hxx:110
SwDocShell * GetDocShell()
Definition: view.cxx:1128
std::unique_ptr< weld::Label > m_xColLbl
Definition: srtdlg.hxx:31
static sal_uInt16 nType1
Definition: srtdlg.cxx:56
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
std::unique_ptr< weld::RadioButton > m_xColumnRB
Definition: srtdlg.hxx:51
virtual short run() override
Definition: srtdlg.cxx:229
static sal_uInt16 nCol3
Definition: srtdlg.cxx:54
sal_uInt16 nY
Definition: srtdlg.hxx:71
std::unique_ptr< weld::Entry > m_xDelimEdt
Definition: srtdlg.hxx:56
sal_Unicode GetDelimChar() const
Definition: srtdlg.cxx:217
LanguageType GetAppLanguage()
Definition: init.cxx:729
RET_OK
static bool bCheck3
Definition: srtdlg.cxx:50
IMPL_LINK(SwSortDlg, DelimHdl, weld::ToggleButton &, rButton, void)
Definition: srtdlg.cxx:326
IMPL_LINK_NOARG(SwSortDlg, DelimCharHdl, weld::Button &, void)
Definition: srtdlg.cxx:333
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage)
LanguageType nLanguage
Definition: sortopt.hxx:53
std::unique_ptr< weld::Button > m_xDelimPB
Definition: srtdlg.hxx:57
std::unique_ptr< weld::SpinButton > m_xColEdt3
Definition: srtdlg.hxx:46
static bool lcl_GetSelTable(SwWrtShell const &rSh, sal_uInt16 &rX, sal_uInt16 &rY)
Definition: srtdlg.cxx:75
std::unique_ptr< weld::SpinButton > m_xColEdt1
Definition: srtdlg.hxx:34
std::unique_ptr< weld::CheckButton > m_xKeyCB1
Definition: srtdlg.hxx:33
SelectionType GetSelectionType() const
Definition: wrtsh1.cxx:1406
void StartAllAction()
For all views of this document.
Definition: edws.cxx:85
static sal_Unicode cDeli
Definition: srtdlg.cxx:68
std::unique_ptr< weld::RadioButton > m_xRowRB
Definition: srtdlg.hxx:52
static bool bAsc2
Definition: srtdlg.cxx:63
std::unique_ptr< weld::ComboBox > m_xTypDLB1
Definition: srtdlg.hxx:35
CollatorWrapper & GetAppCollator()
Definition: init.cxx:741
weld::Window *const m_pParent
Definition: srtdlg.hxx:30