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