LibreOffice Module dbaccess (master) 1
advancedsettings.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 <sal/config.h>
21
22#include <memory>
23
24#include "advancedsettings.hxx"
26#include <dsitems.hxx>
27#include "DbAdminImpl.hxx"
28#include "DriverSettings.hxx"
29#include "optionalboolitem.hxx"
30
31#include <svl/eitem.hxx>
32#include <svl/intitem.hxx>
33#include <svl/stritem.hxx>
34
35namespace dbaui
36{
37
38 using ::com::sun::star::uno::Reference;
39 using ::com::sun::star::uno::Any;
40 using ::com::sun::star::uno::XComponentContext;
41 using ::com::sun::star::beans::XPropertySet;
42 using ::com::sun::star::sdbc::XConnection;
43 using ::com::sun::star::sdbc::XDriver;
44
45 // SpecialSettingsPage
47 {
48 std::unique_ptr<weld::CheckButton>& xControl; // the dialog's control which displays this setting
49 OUString sControlId; // the widget name of the control in the .ui
50 sal_uInt16 nItemId; // the ID of the item (in an SfxItemSet) which corresponds to this setting
51 bool bInvertedDisplay; // true if and only if the checkbox is checked when the item is sal_False, and vice versa
52 bool bOptionalBool; // type is OptionalBool
53 };
54
55 // SpecialSettingsPage
57 : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/specialsettingspage.ui", "SpecialSettingsPage", _rCoreAttrs)
58 , m_aBooleanSettings {
59 { m_xIsSQL92Check, "usesql92", DSID_SQL92CHECK, false, false },
60 { m_xAppendTableAlias, "append", DSID_APPEND_TABLE_ALIAS, false, false },
61 { m_xAsBeforeCorrelationName, "useas", DSID_AS_BEFORE_CORRNAME, false, false },
62 { m_xEnableOuterJoin, "useoj", DSID_ENABLEOUTERJOIN, false, false },
63 { m_xIgnoreDriverPrivileges, "ignoreprivs", DSID_IGNOREDRIVER_PRIV, false, false },
64 { m_xParameterSubstitution, "replaceparams", DSID_PARAMETERNAMESUBST, false, false },
65 { m_xSuppressVersionColumn, "displayver", DSID_SUPPRESSVERSIONCL, true, false },
66 { m_xCatalog, "usecatalogname", DSID_CATALOG, false, false },
67 { m_xSchema, "useschemaname", DSID_SCHEMA, false, false },
68 { m_xIndexAppendix, "createindex", DSID_INDEXAPPENDIX, false, false },
69 { m_xDosLineEnds, "eol", DSID_DOSLINEENDS, false, false },
70 { m_xCheckRequiredFields, "inputchecks", DSID_CHECK_REQUIRED_FIELDS, false, false },
71 { m_xIgnoreCurrency, "ignorecurrency", DSID_IGNORECURRENCY, false, false },
72 { m_xEscapeDateTime, "useodbcliterals", DSID_ESCAPE_DATETIME, false, false },
73 { m_xPrimaryKeySupport, "primarykeys", DSID_PRIMARY_KEY_SUPPORT, false, false },
74 { m_xRespectDriverResultSetType, "resulttype", DSID_RESPECTRESULTSETTYPE, false, false } }
75 , m_bHasBooleanComparisonMode( _rDSMeta.getFeatureSet().has( DSID_BOOLEANCOMPARISON ) )
76 , m_bHasMaxRowScan( _rDSMeta.getFeatureSet().has( DSID_MAX_ROW_SCAN ) )
77 {
78 const FeatureSet& rFeatures( _rDSMeta.getFeatureSet() );
79 // create all the check boxes for the boolean settings
80 for (auto & booleanSetting : m_aBooleanSettings)
81 {
82 sal_uInt16 nItemId = booleanSetting.nItemId;
83 if ( rFeatures.has( nItemId ) )
84 {
85 // check whether this must be a tristate check box
86 const SfxPoolItem& rItem = _rCoreAttrs.Get(nItemId);
87 booleanSetting.bOptionalBool = dynamic_cast<const OptionalBoolItem*>(&rItem) != nullptr;
88 booleanSetting.xControl = m_xBuilder->weld_check_button(booleanSetting.sControlId);
89 if (booleanSetting.bOptionalBool)
90 booleanSetting.xControl->connect_toggled(LINK(this, SpecialSettingsPage, OnTriStateToggleHdl));
91 else
92 booleanSetting.xControl->connect_toggled(LINK(this, SpecialSettingsPage, OnToggleHdl));
93 booleanSetting.xControl->show();
94 }
95 }
96
97 // create the controls for the boolean comparison mode
98 if ( m_bHasBooleanComparisonMode )
99 {
100 m_xBooleanComparisonModeLabel = m_xBuilder->weld_label("comparisonft");
101 m_xBooleanComparisonMode = m_xBuilder->weld_combo_box("comparison");
102 m_xBooleanComparisonMode->connect_changed(LINK(this, SpecialSettingsPage, BooleanComparisonSelectHdl));
103 m_xBooleanComparisonModeLabel->show();
104 m_xBooleanComparisonMode->show();
105 }
106 // create the controls for the max row scan
107 if ( m_bHasMaxRowScan )
108 {
109 m_xMaxRowScanLabel = m_xBuilder->weld_label("rowsft");
110 m_xMaxRowScan = m_xBuilder->weld_spin_button("rows");
111 m_xMaxRowScan->connect_value_changed(LINK(this, OGenericAdministrationPage, OnControlSpinButtonModifyHdl));
112 m_xMaxRowScanLabel->show();
113 m_xMaxRowScan->show();
114 }
115 }
116
117 IMPL_LINK(SpecialSettingsPage, OnTriStateToggleHdl, weld::Toggleable&, rToggle, void)
118 {
119 auto eOldState = m_aTriStates[&rToggle];
120 switch (eOldState)
121 {
122 case TRISTATE_INDET:
123 rToggle.set_state(TRISTATE_FALSE);
124 break;
125 case TRISTATE_TRUE:
126 rToggle.set_state(TRISTATE_INDET);
127 break;
128 case TRISTATE_FALSE:
129 rToggle.set_state(TRISTATE_TRUE);
130 break;
131 }
132 m_aTriStates[&rToggle] = rToggle.get_state();
133 OnToggleHdl(rToggle);
134 }
135
137 {
138 if (&rBtn == m_xAppendTableAlias.get() && m_xAsBeforeCorrelationName)
139 {
140 // make m_xAsBeforeCorrelationName depend on m_xAppendTableAlias
141 m_xAsBeforeCorrelationName->set_sensitive(m_xAppendTableAlias->get_active());
142 }
143 OnControlModifiedButtonClick(rBtn);
144 }
145
146 IMPL_LINK(SpecialSettingsPage, BooleanComparisonSelectHdl, weld::ComboBox&, rControl, void)
147 {
148 callModifiedHdl(&rControl);
149 }
150
151 SpecialSettingsPage::~SpecialSettingsPage()
152 {
153 }
154
155 void SpecialSettingsPage::fillWindows( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList )
156 {
157 if ( m_bHasBooleanComparisonMode )
158 {
159 _rControlList.emplace_back(new ODisableWidgetWrapper<weld::Label>(m_xBooleanComparisonModeLabel.get()));
160 }
161 if ( m_bHasMaxRowScan )
162 {
163 _rControlList.emplace_back(new ODisableWidgetWrapper<weld::Label>(m_xMaxRowScanLabel.get()));
164 }
165 }
166
167 void SpecialSettingsPage::fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
168 {
169 for (auto const& booleanSetting : m_aBooleanSettings)
170 {
171 if (booleanSetting.xControl)
172 {
173 _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(booleanSetting.xControl.get()));
174 }
175 }
176
177 if ( m_bHasBooleanComparisonMode )
178 _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xBooleanComparisonMode.get()));
179 if ( m_bHasMaxRowScan )
180 _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::SpinButton>(m_xMaxRowScan.get()));
181 }
182
183 void SpecialSettingsPage::implInitControls(const SfxItemSet& _rSet, bool _bSaveValue)
184 {
185 // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
186 bool bValid, bReadonly;
187 getFlags( _rSet, bValid, bReadonly );
188
189 if ( !bValid )
190 {
191 OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue);
192 return;
193 }
194
195 m_aTriStates.clear();
196
197 // the boolean items
198 for (auto const& booleanSetting : m_aBooleanSettings)
199 {
200 if (!booleanSetting.xControl)
201 continue;
202
203 bool bTriState = false;
204
205 std::optional<bool> aValue;
206
207 const SfxPoolItem* pItem = _rSet.GetItem<SfxPoolItem>(booleanSetting.nItemId);
208 if (const SfxBoolItem *pBoolItem = dynamic_cast<const SfxBoolItem*>( pItem) )
209 {
210 aValue = pBoolItem->GetValue();
211 }
212 else if (const OptionalBoolItem *pOptionalItem = dynamic_cast<const OptionalBoolItem*>( pItem) )
213 {
214 aValue = pOptionalItem->GetFullValue();
215 bTriState = true;
216 }
217 else
218 OSL_FAIL( "SpecialSettingsPage::implInitControls: unknown boolean item type!" );
219
220 if ( !aValue )
221 {
222 booleanSetting.xControl->set_state(TRISTATE_INDET);
223 }
224 else
225 {
226 bool bValue = *aValue;
227 if ( booleanSetting.bInvertedDisplay )
228 bValue = !bValue;
229 booleanSetting.xControl->set_active(bValue);
230 }
231 if (bTriState)
232 m_aTriStates[booleanSetting.xControl.get()] = booleanSetting.xControl->get_state();
233 }
234
235 if (m_xAppendTableAlias && m_xAsBeforeCorrelationName)
236 {
237 // make m_xAsBeforeCorrelationName depend on m_xAppendTableAlias
238 m_xAsBeforeCorrelationName->set_sensitive(m_xAppendTableAlias->get_active());
239 }
240
241 // the non-boolean items
242 if ( m_bHasBooleanComparisonMode )
243 {
244 const SfxInt32Item* pBooleanComparison = _rSet.GetItem<SfxInt32Item>(DSID_BOOLEANCOMPARISON);
245 m_xBooleanComparisonMode->set_active(static_cast<sal_uInt16>(pBooleanComparison->GetValue()));
246 }
247
248 if ( m_bHasMaxRowScan )
249 {
250 const SfxInt32Item* pMaxRowScan = _rSet.GetItem<SfxInt32Item>(DSID_MAX_ROW_SCAN);
251 m_xMaxRowScan->set_value(pMaxRowScan->GetValue());
252 }
253
254 OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue);
255 }
256
257 bool SpecialSettingsPage::FillItemSet( SfxItemSet* _rSet )
258 {
259 bool bChangedSomething = false;
260
261 // the boolean items
262 for (auto const& booleanSetting : m_aBooleanSettings)
263 {
264 if (!booleanSetting.xControl)
265 continue;
266 fillBool(*_rSet, booleanSetting.xControl.get(), booleanSetting.nItemId, booleanSetting.bOptionalBool, bChangedSomething, booleanSetting.bInvertedDisplay);
267 }
268
269 // the non-boolean items
270 if ( m_bHasBooleanComparisonMode )
271 {
272 if (m_xBooleanComparisonMode->get_value_changed_from_saved())
273 {
274 _rSet->Put(SfxInt32Item(DSID_BOOLEANCOMPARISON, m_xBooleanComparisonMode->get_active()));
275 bChangedSomething = true;
276 }
277 }
278 if ( m_bHasMaxRowScan )
279 {
280 fillInt32(*_rSet,m_xMaxRowScan.get(),DSID_MAX_ROW_SCAN,bChangedSomething);
281 }
282 return bChangedSomething;
283 }
284
285 // GeneratedValuesPage
286 GeneratedValuesPage::GeneratedValuesPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& _rCoreAttrs)
287 : OGenericAdministrationPage(pPage, pController, "dbaccess/ui/generatedvaluespage.ui", "GeneratedValuesPage", _rCoreAttrs)
288 , m_xAutoRetrievingEnabled(m_xBuilder->weld_check_button("autoretrieve"))
289 , m_xGrid(m_xBuilder->weld_widget("grid"))
290 , m_xAutoIncrement(m_xBuilder->weld_entry("statement"))
291 , m_xAutoRetrieving(m_xBuilder->weld_entry("query"))
292 {
293 m_xAutoRetrievingEnabled->connect_toggled(LINK(this, GeneratedValuesPage, OnAutoToggleHdl));
294 m_xAutoIncrement->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
295 m_xAutoRetrieving->connect_changed(LINK(this, OGenericAdministrationPage, OnControlEntryModifyHdl));
296 }
297
298 IMPL_LINK(GeneratedValuesPage, OnAutoToggleHdl, weld::Toggleable&, rBtn, void)
299 {
300 m_xGrid->set_sensitive(rBtn.get_active());
301 OnControlModifiedButtonClick(rBtn);
302 }
303
305 {
306 }
307
308 void GeneratedValuesPage::fillWindows( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList )
309 {
310 _rControlList.emplace_back(new ODisableWidgetWrapper<weld::Widget>(m_xContainer.get()));
311 }
312
313 void GeneratedValuesPage::fillControls( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList )
314 {
315 _rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::Toggleable>( m_xAutoRetrievingEnabled.get() ) );
316 _rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::Entry>( m_xAutoIncrement.get() ) );
317 _rControlList.emplace_back( new OSaveValueWidgetWrapper<weld::Entry>( m_xAutoRetrieving.get() ) );
318 }
319
320 void GeneratedValuesPage::implInitControls( const SfxItemSet& _rSet, bool _bSaveValue )
321 {
322 // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
323 bool bValid, bReadonly;
324 getFlags(_rSet, bValid, bReadonly);
325
326 // collect the items
327 const SfxStringItem* pAutoIncrementItem = _rSet.GetItem<SfxStringItem>(DSID_AUTOINCREMENTVALUE);
328 const SfxStringItem* pAutoRetrieveValueItem = _rSet.GetItem<SfxStringItem>(DSID_AUTORETRIEVEVALUE);
329 const SfxBoolItem* pAutoRetrieveEnabledItem = _rSet.GetItem<SfxBoolItem>(DSID_AUTORETRIEVEENABLED);
330
331 // forward the values to the controls
332 if (bValid)
333 {
334 bool bEnabled = pAutoRetrieveEnabledItem->GetValue();
335 m_xAutoRetrievingEnabled->set_active(bEnabled);
336
337 m_xAutoIncrement->set_text(pAutoIncrementItem->GetValue());
338 m_xAutoIncrement->save_value();
339 m_xAutoRetrieving->set_text(pAutoRetrieveValueItem->GetValue());
340 m_xAutoRetrieving->save_value();
341 }
343 }
344
346 {
347 bool bChangedSomething = false;
348
349 fillString( *_rSet, m_xAutoIncrement.get(), DSID_AUTOINCREMENTVALUE, bChangedSomething );
350 fillBool( *_rSet, m_xAutoRetrievingEnabled.get(), DSID_AUTORETRIEVEENABLED, false, bChangedSomething );
351 fillString( *_rSet, m_xAutoRetrieving.get(), DSID_AUTORETRIEVEVALUE, bChangedSomething );
352
353 return bChangedSomething;
354 }
355
356 // AdvancedSettingsDialog
358 const Reference< XComponentContext >& _rxContext, const Any& _aDataSourceName )
359 : SfxTabDialogController(pParent, "dbaccess/ui/advancedsettingsdialog.ui", "AdvancedSettingsDialog", _pItems)
360 {
361 m_pImpl.reset(new ODbDataSourceAdministrationHelper(_rxContext, m_xDialog.get(), pParent, this));
362 m_pImpl->setDataSourceOrName(_aDataSourceName);
363 Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource();
364 m_pImpl->translateProperties(xDatasource, *_pItems);
365 SetInputSet(_pItems);
366 // propagate this set as our new input set and reset the example set
368
370
371 DataSourceMetaData aMeta( eType );
372 const FeatureSet& rFeatures( aMeta.getFeatureSet() );
373
374 // auto-generated values?
375 if (rFeatures.supportsGeneratedValues())
377 else
378 RemoveTabPage("generated");
379
380 // any "special settings"?
381 if (rFeatures.supportsAnySpecialSetting())
383 else
384 RemoveTabPage("special");
385
386 // remove the reset button - it's meaning is much too ambiguous in this dialog
388 }
389
391 {
392 SetInputSet(nullptr);
393 }
394
396 {
397 DataSourceMetaData aMeta( _sURL );
398 const FeatureSet& rFeatures( aMeta.getFeatureSet() );
399 return rFeatures.supportsGeneratedValues() || rFeatures.supportsAnySpecialSetting();
400 }
401
403 {
404 short nRet = SfxTabDialogController::Ok();
405 if ( nRet == RET_OK )
406 {
408 m_pImpl->saveChanges(*m_xExampleSet);
409 }
410 return nRet;
411 }
412
413 void AdvancedSettingsDialog::PageCreated(const OUString& rId, SfxTabPage& _rPage)
414 {
415 // register ourself as modified listener
416 static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory( getORB() );
417 static_cast<OGenericAdministrationPage&>(_rPage).SetAdminDialog(this,this);
419 }
420
422 {
423 return m_xExampleSet.get();
424 }
425
427 {
428 return m_xExampleSet.get();
429 }
430
431 std::pair< Reference< XConnection >, bool > AdvancedSettingsDialog::createConnection()
432 {
433 return m_pImpl->createConnection();
434 }
435
437 {
438 return m_pImpl->getORB();
439 }
440
442 {
443 return m_pImpl->getDriver();
444 }
445
447 {
449 }
450
452 {
453 m_pImpl->clearPassword();
454 }
455
456 void AdvancedSettingsDialog::setTitle(const OUString& _sTitle)
457 {
458 m_xDialog->set_title(_sTitle);
459 }
460
462
464 {
466 }
467
468} // namespace dbaui
469
470/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Reference< XExecutableDialog > m_xDialog
sal_Int32 GetValue() const
const OUString & GetValue() const
bool GetValue() const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
virtual short Ok()
void AddTabPage(const OUString &rName, CreateTabPage pCreateFunc, GetTabPageRanges pRangesFunc)
void SetInputSet(const SfxItemSet *pInSet)
void RemoveTabPage(const OUString &rName)
std::unique_ptr< SfxItemSet > m_xExampleSet
virtual void PageCreated(const OUString &rName, SfxTabPage &rPage)
const SfxItemSet * GetOutputItemSet() const
SfxItemSet * GetInputSetImpl()
virtual ~AdvancedSettingsDialog() override
virtual void PageCreated(const OUString &rId, SfxTabPage &_rPage) override
virtual short Ok() override
AdvancedSettingsDialog(weld::Window *pParent, SfxItemSet *_pItems, const css::uno::Reference< css::uno::XComponentContext > &_rxORB, const css::uno::Any &_aDataSourceName)
static bool doesHaveAnyAdvancedSettings(const OUString &_sURL)
determines whether or not the given data source type has any advanced setting
virtual void saveDatasource() override
virtual void setTitle(const OUString &_sTitle) override
virtual OUString getDatasourceType(const SfxItemSet &_rSet) const override
std::unique_ptr< ODbDataSourceAdministrationHelper > m_pImpl
virtual std::pair< css::uno::Reference< css::sdbc::XConnection >, bool > createConnection() override
virtual void enableConfirmSettings(bool _bEnable) override
enables or disables the user's possibility to confirm the settings
virtual css::uno::Reference< css::sdbc::XDriver > getDriver() override
virtual SfxItemSet * getWriteOutputSet() override
virtual css::uno::Reference< css::uno::XComponentContext > getORB() const override
virtual const SfxItemSet * getOutputSet() const override
virtual void clearPassword() override
encapsulates meta data for a data source
Definition: dsmeta.hxx:55
const FeatureSet & getFeatureSet() const
returns a struct describing this data source type's support for our known advanced settings
Definition: dsmeta.cxx:153
can be used to ask for (UI) support for certain advanced features
Definition: dsmeta.hxx:74
bool supportsAnySpecialSetting() const
Definition: dsmeta.hxx:99
bool supportsGeneratedValues() const
Definition: dsmeta.hxx:94
virtual void implInitControls(const SfxItemSet &_rSet, bool _bSaveValue) override
called from within Reset and ActivatePage, use to initialize the controls with the items from the giv...
virtual bool FillItemSet(SfxItemSet *_rCoreAttrs) override
std::unique_ptr< weld::Entry > m_xAutoIncrement
virtual void fillControls(std::vector< std::unique_ptr< ISaveValueWrapper > > &_rControlList) override
will be called inside <method>implInitControls</method> to save the value if necessary
std::unique_ptr< weld::CheckButton > m_xAutoRetrievingEnabled
virtual void fillWindows(std::vector< std::unique_ptr< ISaveValueWrapper > > &_rControlList) override
will be called inside <method>implInitControls</method> to disable if necessary
std::unique_ptr< weld::Entry > m_xAutoRetrieving
virtual ~GeneratedValuesPage() override
static OUString getDatasourceType(const SfxItemSet &_rSet)
extracts the connection type from the given setThe connection type is determined by the value of the ...
static std::unique_ptr< SfxTabPage > CreateSpecialSettingsPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *_rAttrSet)
creates the "Special Settings" page of the "Advanced Settings" dialog
static std::unique_ptr< SfxTabPage > CreateGeneratedValuesPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *_rAttrSet)
creates the GeneratedValues page
static void getFlags(const SfxItemSet &_rSet, bool &_rValid, bool &_rReadonly)
analyze the invalid and the readonly flag which may be present in the set
Definition: adminpages.cxx:93
static void fillString(SfxItemSet &_rSet, const weld::Entry *pEdit, TypedWhichId< SfxStringItem > _nID, bool &_bChangedSomething)
fills the String value into the item set when the value changed.
Definition: adminpages.cxx:219
virtual void implInitControls(const SfxItemSet &_rSet, bool _bSaveValue)
called from within Reset and ActivatePage, use to initialize the controls with the items from the giv...
Definition: adminpages.cxx:150
static void fillBool(SfxItemSet &_rSet, const weld::CheckButton *pCheckBox, sal_uInt16 _nID, bool bOptionalBool, bool &_bChangedSomething, bool _bRevertValue=false)
fills the Boolean value into the item set when the value changed.
Definition: adminpages.cxx:190
std::unique_ptr< weld::CheckButton > m_xIsSQL92Check
SpecialSettingsPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &_rCoreAttrs, const DataSourceMetaData &_rDSMeta)
#define DSID_RESPECTRESULTSETTYPE
Definition: dsitems.hxx:93
#define DSID_SCHEMA
Definition: dsitems.hxx:79
#define DSID_ESCAPE_DATETIME
Definition: dsitems.hxx:89
#define DSID_ENABLEOUTERJOIN
Definition: dsitems.hxx:77
#define DSID_AS_BEFORE_CORRNAME
Definition: dsitems.hxx:85
#define DSID_INDEXAPPENDIX
Definition: dsitems.hxx:80
#define DSID_MAX_ROW_SCAN
Definition: dsitems.hxx:92
#define DSID_BOOLEANCOMPARISON
Definition: dsitems.hxx:75
#define DSID_DOSLINEENDS
Definition: dsitems.hxx:83
#define DSID_PARAMETERNAMESUBST
Definition: dsitems.hxx:55
#define DSID_CHECK_REQUIRED_FIELDS
Definition: dsitems.hxx:86
#define DSID_AUTOINCREMENTVALUE
Definition: dsitems.hxx:69
#define DSID_PRIMARY_KEY_SUPPORT
Definition: dsitems.hxx:91
#define DSID_IGNOREDRIVER_PRIV
Definition: dsitems.hxx:74
#define DSID_AUTORETRIEVEENABLED
Definition: dsitems.hxx:71
#define DSID_CATALOG
Definition: dsitems.hxx:78
#define DSID_IGNORECURRENCY
Definition: dsitems.hxx:87
#define DSID_SUPPRESSVERSIONCL
Definition: dsitems.hxx:57
#define DSID_APPEND_TABLE_ALIAS
Definition: dsitems.hxx:72
#define DSID_SQL92CHECK
Definition: dsitems.hxx:68
#define DSID_AUTORETRIEVEVALUE
Definition: dsitems.hxx:70
TRISTATE_FALSE
TRISTATE_INDET
TRISTATE_TRUE
OUString eType
Definition: generalpage.cxx:78
IMPL_LINK(GeneratedValuesPage, OnAutoToggleHdl, weld::Toggleable &, rBtn, void)
IMPL_LINK(OApplicationController, OnSelectContainer, void *, _pType, void)
Reference< XNameAccess > m_xContainer
Definition: objectnames.cxx:80
std::unique_ptr< weld::CheckButton > & xControl
RET_OK