Kaydet (Commit) 1fccdde1 authored tarafından Caolán McNamara's avatar Caolán McNamara

weld DBMySQLNativeSettings

Change-Id: I0c4f27e02f9dd6c7bb42ffe49043e98e043d9084
Reviewed-on: https://gerrit.libreoffice.org/62292
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst a8165c11
......@@ -305,6 +305,175 @@ namespace dbaui
return true;
}
// MySQLNativeSettings
DBMySQLNativeSettings::DBMySQLNativeSettings(weld::Widget* pParent, const Link<void*,void>& rControlModificationLink)
: m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/mysqlnativesettings.ui"))
, m_xContainer(m_xBuilder->weld_widget("MysqlNativeSettings"))
, m_xDatabaseNameLabel(m_xBuilder->weld_label("dbnamelabel"))
, m_xDatabaseName(m_xBuilder->weld_entry("dbname"))
, m_xHostPortRadio(m_xBuilder->weld_radio_button("hostport"))
, m_xSocketRadio(m_xBuilder->weld_radio_button("socketlabel"))
, m_xNamedPipeRadio(m_xBuilder->weld_radio_button("namedpipelabel"))
, m_xHostNameLabel(m_xBuilder->weld_label("serverlabel"))
, m_xHostName(m_xBuilder->weld_entry("server"))
, m_xPortLabel(m_xBuilder->weld_label("portlabel"))
, m_xPort(m_xBuilder->weld_spin_button("port"))
, m_xDefaultPort(m_xBuilder->weld_label("defaultport"))
, m_xSocket(m_xBuilder->weld_entry("socket"))
, m_xNamedPipe(m_xBuilder->weld_entry("namedpipe"))
, m_aControlModificationLink(rControlModificationLink)
{
m_xDatabaseName->connect_changed( LINK(this, DBMySQLNativeSettings, EditModifyHdl) );
m_xHostName->connect_changed( LINK(this, DBMySQLNativeSettings, EditModifyHdl) );
m_xPort->connect_value_changed( LINK(this, DBMySQLNativeSettings, SpinModifyHdl) );
m_xSocket->connect_changed( LINK(this, DBMySQLNativeSettings, EditModifyHdl) );
m_xNamedPipe->connect_changed( LINK(this, DBMySQLNativeSettings, EditModifyHdl) );
m_xSocketRadio->connect_toggled( LINK(this, DBMySQLNativeSettings, RadioToggleHdl) );
m_xNamedPipeRadio->connect_toggled( LINK(this, DBMySQLNativeSettings, RadioToggleHdl) );
m_xHostPortRadio->connect_toggled( LINK(this, DBMySQLNativeSettings, RadioToggleHdl) );
// sockets are available on Unix systems only, named pipes only on Windows
#ifdef UNX
m_xNamedPipeRadio->hide();
m_xNamedPipe->hide();
#else
m_xSocketRadio->hide();
m_xSocket->hide();
#endif
m_xContainer->show();
}
IMPL_LINK(DBMySQLNativeSettings, RadioToggleHdl, weld::ToggleButton&, rRadioButton, void)
{
m_aControlModificationLink.Call(&rRadioButton);
const bool bHostPortRadio = m_xHostPortRadio->get_active();
m_xHostNameLabel->set_sensitive(bHostPortRadio);
m_xHostName->set_sensitive(bHostPortRadio);
m_xPortLabel->set_sensitive(bHostPortRadio);
m_xPort->set_sensitive(bHostPortRadio);
m_xDefaultPort->set_sensitive(bHostPortRadio);
m_xSocket->set_sensitive(m_xSocketRadio->get_active());
m_xNamedPipe->set_sensitive(m_xNamedPipeRadio->get_active());
}
IMPL_LINK(DBMySQLNativeSettings, EditModifyHdl, weld::Entry&, rEdit, void)
{
m_aControlModificationLink.Call(&rEdit);
}
IMPL_LINK(DBMySQLNativeSettings, SpinModifyHdl, weld::SpinButton&, rEdit, void)
{
m_aControlModificationLink.Call(&rEdit);
}
void DBMySQLNativeSettings::fillControls( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList )
{
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xDatabaseName.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xHostName.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xPort.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xSocket.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xNamedPipe.get()));
}
void DBMySQLNativeSettings::fillWindows( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList )
{
_rControlList.emplace_back( new ODisableWidgetWrapper<weld::Label>( m_xDatabaseNameLabel.get() ) );
_rControlList.emplace_back( new ODisableWidgetWrapper<weld::Label>( m_xHostNameLabel.get() ) );
_rControlList.emplace_back( new ODisableWidgetWrapper<weld::Label>( m_xPortLabel.get() ) );
_rControlList.emplace_back( new ODisableWidgetWrapper<weld::Label>( m_xDefaultPort.get() ) );
_rControlList.emplace_back( new ODisableWidgetWrapper<weld::RadioButton>( m_xSocketRadio.get() ) );
_rControlList.emplace_back( new ODisableWidgetWrapper<weld::RadioButton>( m_xNamedPipeRadio.get() ) );
}
bool DBMySQLNativeSettings::FillItemSet( SfxItemSet* _rSet )
{
bool bChangedSomething = false;
OGenericAdministrationPage::fillString( *_rSet, m_xHostName.get(), DSID_CONN_HOSTNAME, bChangedSomething );
OGenericAdministrationPage::fillString( *_rSet, m_xDatabaseName.get(), DSID_DATABASENAME, bChangedSomething );
OGenericAdministrationPage::fillInt32 ( *_rSet, m_xPort.get(), DSID_MYSQL_PORTNUMBER, bChangedSomething );
#ifdef UNX
OGenericAdministrationPage::fillString( *_rSet, m_xSocket.get(), DSID_CONN_SOCKET, bChangedSomething );
#else
OGenericAdministrationPage::fillString( *_rSet, m_xNamedPipe.get(), DSID_NAMED_PIPE, bChangedSomething );
#endif
return bChangedSomething;
}
void DBMySQLNativeSettings::implInitControls(const SfxItemSet& _rSet )
{
const SfxBoolItem* pInvalid = _rSet.GetItem<SfxBoolItem>(DSID_INVALID_SELECTION);
bool bValid = !pInvalid || !pInvalid->GetValue();
if ( !bValid )
return;
const SfxStringItem* pDatabaseName = _rSet.GetItem<SfxStringItem>(DSID_DATABASENAME);
const SfxStringItem* pHostName = _rSet.GetItem<SfxStringItem>(DSID_CONN_HOSTNAME);
const SfxInt32Item* pPortNumber = _rSet.GetItem<SfxInt32Item>(DSID_MYSQL_PORTNUMBER);
const SfxStringItem* pSocket = _rSet.GetItem<SfxStringItem>(DSID_CONN_SOCKET);
const SfxStringItem* pNamedPipe = _rSet.GetItem<SfxStringItem>(DSID_NAMED_PIPE);
m_xDatabaseName->set_text( pDatabaseName->GetValue() );
m_xDatabaseName->save_value();
m_xHostName->set_text( pHostName->GetValue() );
m_xHostName->save_value();
m_xPort->set_value( pPortNumber->GetValue() );
m_xPort->save_value();
m_xSocket->set_text( pSocket->GetValue() );
m_xSocket->save_value();
m_xNamedPipe->set_text( pNamedPipe->GetValue() );
m_xNamedPipe->save_value();
// if a socket (on Unix) or a pipe name (on Windows) is given, this is preferred over
// the port
#ifdef UNX
weld::RadioButton& rSocketPipeRadio = *m_xSocketRadio;
const SfxStringItem* pSocketPipeItem = pSocket;
#else
weld::RadioButton& rSocketPipeRadio = *m_xNamedPipeRadio;
const SfxStringItem* pSocketPipeItem = pNamedPipe;
#endif
const OUString& rSocketPipe( pSocketPipeItem->GetValue() );
if (!rSocketPipe.isEmpty())
rSocketPipeRadio.set_active(true);
else
m_xHostPortRadio->set_active(true);
}
bool DBMySQLNativeSettings::canAdvance() const
{
if (m_xDatabaseName->get_text().isEmpty())
return false;
if ( m_xHostPortRadio->get_active()
&& ( ( m_xHostName->get_text().isEmpty() )
|| ( m_xPort->get_text().isEmpty() )
)
)
return false;
#ifdef UNX
if ( ( m_xSocketRadio->get_active() )
&& ( m_xSocket->get_text().isEmpty() )
)
#else
if ( ( m_xNamedPipeRadio->get_active() )
&& ( m_xNamedPipe->get_text().isEmpty() )
)
#endif
return false;
return true;
}
} // namespace dbaui
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -66,6 +66,39 @@ namespace dbaui
bool canAdvance() const;
};
class DBMySQLNativeSettings
{
private:
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::Widget> m_xContainer;
std::unique_ptr<weld::Label> m_xDatabaseNameLabel;
std::unique_ptr<weld::Entry> m_xDatabaseName;
std::unique_ptr<weld::RadioButton> m_xHostPortRadio;
std::unique_ptr<weld::RadioButton> m_xSocketRadio;
std::unique_ptr<weld::RadioButton> m_xNamedPipeRadio;
std::unique_ptr<weld::Label> m_xHostNameLabel;
std::unique_ptr<weld::Entry> m_xHostName;
std::unique_ptr<weld::Label> m_xPortLabel;
std::unique_ptr<weld::SpinButton> m_xPort;
std::unique_ptr<weld::Label> m_xDefaultPort;
std::unique_ptr<weld::Entry> m_xSocket;
std::unique_ptr<weld::Entry> m_xNamedPipe;
Link<void*,void> m_aControlModificationLink;
DECL_LINK(RadioToggleHdl, weld::ToggleButton&, void);
DECL_LINK(SpinModifyHdl, weld::SpinButton&, void);
DECL_LINK(EditModifyHdl, weld::Entry&, void);
public:
DBMySQLNativeSettings(weld::Widget* pParent, const Link<void*,void>& rControlModificationLink);
void fillControls( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList );
void fillWindows( std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList );
bool FillItemSet( SfxItemSet* rCoreAttrs );
void implInitControls( const SfxItemSet& _rSet );
bool canAdvance() const;
};
} // namespace dbaui
#endif // INCLUDED_DBACCESS_SOURCE_UI_DLG_ADMINCONTROLS_HXX
......
......@@ -627,19 +627,17 @@ namespace dbaui
}
// MySQLNativePage
MySQLNativePage::MySQLNativePage( vcl::Window* pParent, const SfxItemSet& _rCoreAttrs )
:OCommonBehaviourTabPage(pParent, "MysqlNativePage", "dbaccess/ui/mysqlnativepage.ui", _rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset )
,m_aMySQLSettings ( VclPtr<MySQLNativeSettings>::Create(*get<VclVBox>("MySQLSettingsContainer"), LINK(this,OGenericAdministrationPage,OnControlModified)) )
MySQLNativePage::MySQLNativePage(TabPageParent pParent, const SfxItemSet& rCoreAttrs)
: DBOCommonBehaviourTabPage(pParent, "dbaccess/ui/mysqlnativepage.ui", "MysqlNativePage", rCoreAttrs, OCommonBehaviourTabPageFlags::UseCharset)
, m_xMySQLSettingsContainer(m_xBuilder->weld_widget("MySQLSettingsContainer"))
, m_aMySQLSettings(m_xMySQLSettingsContainer.get(), LINK(this,OGenericAdministrationPage,OnControlModified))
, m_xSeparator1(m_xBuilder->weld_label("connectionheader"))
, m_xSeparator2(m_xBuilder->weld_label("userheader"))
, m_xUserNameLabel(m_xBuilder->weld_label("usernamelabel"))
, m_xUserName(m_xBuilder->weld_entry("username"))
, m_xPasswordRequired(m_xBuilder->weld_check_button("passwordrequired"))
{
get(m_pSeparator1, "connectionheader");
get(m_pSeparator2, "userheader");
get(m_pUserNameLabel, "usernamelabel");
get(m_pUserName, "username");
get(m_pPasswordRequired, "passwordrequired");
m_pUserName->SetModifyHdl(LINK(this,OGenericAdministrationPage,OnControlEditModifyHdl));
m_aMySQLSettings->Show();
m_xUserName->connect_changed(LINK(this,OGenericAdministrationPage,OnControlEntryModifyHdl));
}
MySQLNativePage::~MySQLNativePage()
......@@ -647,48 +645,38 @@ namespace dbaui
disposeOnce();
}
void MySQLNativePage::dispose()
{
m_aMySQLSettings.disposeAndClear();
m_pSeparator1.clear();
m_pSeparator2.clear();
m_pUserNameLabel.clear();
m_pUserName.clear();
m_pPasswordRequired.clear();
OCommonBehaviourTabPage::dispose();
}
void MySQLNativePage::fillControls(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
{
OCommonBehaviourTabPage::fillControls( _rControlList );
m_aMySQLSettings->fillControls( _rControlList );
DBOCommonBehaviourTabPage::fillControls( _rControlList );
m_aMySQLSettings.fillControls( _rControlList );
_rControlList.emplace_back(new OSaveValueWrapper<Edit>(m_pUserName));
_rControlList.emplace_back(new OSaveValueWrapper<CheckBox>(m_pPasswordRequired));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Entry>(m_xUserName.get()));
_rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::CheckButton>(m_xPasswordRequired.get()));
}
void MySQLNativePage::fillWindows(std::vector< std::unique_ptr<ISaveValueWrapper> >& _rControlList)
{
OCommonBehaviourTabPage::fillWindows( _rControlList );
m_aMySQLSettings->fillWindows( _rControlList);
DBOCommonBehaviourTabPage::fillWindows( _rControlList );
m_aMySQLSettings.fillWindows( _rControlList);
_rControlList.emplace_back(new ODisableWrapper<FixedText>(m_pSeparator1));
_rControlList.emplace_back(new ODisableWrapper<FixedText>(m_pSeparator2));
_rControlList.emplace_back(new ODisableWrapper<FixedText>(m_pUserNameLabel));
_rControlList.emplace_back(new ODisableWidgetWrapper<weld::Label>(m_xSeparator1.get()));
_rControlList.emplace_back(new ODisableWidgetWrapper<weld::Label>(m_xSeparator2.get()));
_rControlList.emplace_back(new ODisableWidgetWrapper<weld::Label>(m_xUserNameLabel.get()));
}
bool MySQLNativePage::FillItemSet( SfxItemSet* _rSet )
{
bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet( _rSet );
bool bChangedSomething = DBOCommonBehaviourTabPage::FillItemSet( _rSet );
bChangedSomething |= m_aMySQLSettings->FillItemSet( _rSet );
bChangedSomething |= m_aMySQLSettings.FillItemSet( _rSet );
if ( m_pUserName->IsValueChangedFromSaved() )
if (m_xUserName->get_value_changed_from_saved())
{
_rSet->Put( SfxStringItem( DSID_USER, m_pUserName->GetText() ) );
_rSet->Put( SfxStringItem( DSID_USER, m_xUserName->get_text() ) );
_rSet->Put( SfxStringItem( DSID_PASSWORD, OUString()));
bChangedSomething = true;
}
fillBool(*_rSet,m_pPasswordRequired,DSID_PASSWORDREQUIRED,bChangedSomething);
fillBool(*_rSet,m_xPasswordRequired.get(),DSID_PASSWORDREQUIRED,false,bChangedSomething);
return bChangedSomething;
}
......@@ -698,19 +686,19 @@ namespace dbaui
bool bValid, bReadonly;
getFlags(_rSet, bValid, bReadonly);
m_aMySQLSettings->implInitControls( _rSet );
m_aMySQLSettings.implInitControls( _rSet );
const SfxStringItem* pUidItem = _rSet.GetItem<SfxStringItem>(DSID_USER);
const SfxBoolItem* pAllowEmptyPwd = _rSet.GetItem<SfxBoolItem>(DSID_PASSWORDREQUIRED);
if ( bValid )
{
m_pUserName->SetText(pUidItem->GetValue());
m_pUserName->ClearModifyFlag();
m_pPasswordRequired->Check(pAllowEmptyPwd->GetValue());
m_xUserName->set_text(pUidItem->GetValue());
m_xUserName->save_value();
m_xPasswordRequired->set_active(pAllowEmptyPwd->GetValue());
}
OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
DBOCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
}
VclPtr<SfxTabPage> ODriversSettings::CreateMySQLJDBC( TabPageParent pParent, const SfxItemSet* _rAttrSet )
......@@ -718,9 +706,9 @@ namespace dbaui
return VclPtr<OGeneralSpecialJDBCDetailsPage>::Create(pParent, *_rAttrSet,DSID_MYSQL_PORTNUMBER);
}
VclPtr<SfxTabPage> ODriversSettings::CreateMySQLNATIVE( TabPageParent pParent, const SfxItemSet* _rAttrSet )
VclPtr<SfxTabPage> ODriversSettings::CreateMySQLNATIVE(TabPageParent pParent, const SfxItemSet* pAttrSet)
{
return VclPtr<MySQLNativePage>::Create( pParent.pParent, *_rAttrSet );
return VclPtr<MySQLNativePage>::Create(pParent, *pAttrSet);
}
VclPtr<SfxTabPage> ODriversSettings::CreateOracleJDBC(TabPageParent pParent, const SfxItemSet* _rAttrSet)
......
......@@ -233,22 +233,20 @@ namespace dbaui
};
// MySQLNativePage
class MySQLNativePage : public OCommonBehaviourTabPage
class MySQLNativePage : public DBOCommonBehaviourTabPage
{
public:
MySQLNativePage( vcl::Window* pParent,
const SfxItemSet& _rCoreAttrs );
MySQLNativePage(TabPageParent pParent, const SfxItemSet& rCoreAttrs);
virtual ~MySQLNativePage() override;
virtual void dispose() override;
private:
VclPtr<FixedText> m_pSeparator1;
VclPtr<MySQLNativeSettings> m_aMySQLSettings;
VclPtr<FixedText> m_pSeparator2;
VclPtr<FixedText> m_pUserNameLabel;
VclPtr<Edit> m_pUserName;
VclPtr<CheckBox> m_pPasswordRequired;
std::unique_ptr<weld::Widget> m_xMySQLSettingsContainer;
DBMySQLNativeSettings m_aMySQLSettings;
std::unique_ptr<weld::Label> m_xSeparator1;
std::unique_ptr<weld::Label> m_xSeparator2;
std::unique_ptr<weld::Label> m_xUserNameLabel;
std::unique_ptr<weld::Entry> m_xUserName;
std::unique_ptr<weld::CheckButton> m_xPasswordRequired;
protected:
virtual bool FillItemSet( SfxItemSet* _rCoreAttrs ) override;
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="dba">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkBox" id="MysqlNativePage">
<property name="visible">True</property>
<property name="can_focus">False</property>
......@@ -12,7 +11,7 @@
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkFrame" id="frame1">
<object class="GtkFrame" id="connectionframe">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
......@@ -59,7 +58,7 @@
</packing>
</child>
<child>
<object class="GtkFrame" id="frame2">
<object class="GtkFrame" id="userframe">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
......@@ -86,10 +85,10 @@
<object class="GtkLabel" id="usernamelabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes" context="mysqlnativepage|usernamelabel">_User name:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">username</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
......@@ -101,6 +100,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -147,7 +147,7 @@
</packing>
</child>
<child>
<object class="GtkFrame" id="frame3">
<object class="GtkFrame" id="charsetframe">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
......@@ -171,10 +171,10 @@
<object class="GtkLabel" id="charsetlabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes" context="mysqlnativepage|charsetlabel">_Character set:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">charset</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="expand">False</property>
......@@ -183,7 +183,7 @@
</packing>
</child>
<child>
<object class="dbulo-CharSetListBox" id="charset">
<object class="GtkComboBoxText" id="charset">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="dba">
<requires lib="gtk+" version="3.18"/>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">65535</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkBox" id="MysqlNativeSettings">
<property name="visible">True</property>
<property name="can_focus">False</property>
......@@ -21,10 +26,10 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="mysqlnativesettings|dbnamelabel">_Database name:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">dbname</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
......@@ -37,6 +42,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="expand">False</property>
......@@ -90,10 +96,10 @@
<object class="GtkLabel" id="serverlabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes" context="mysqlnativesettings|serverlabel">_Server:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">server</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
......@@ -104,10 +110,10 @@
<object class="GtkLabel" id="portlabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes" context="mysqlnativesettings|portlabel">_Port:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">port</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
......@@ -119,6 +125,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -131,8 +138,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="mysqlnativesettings|defaultport">Default: 3306</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">2</property>
......@@ -144,6 +151,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
<property name="adjustment">adjustment1</property>
<property name="numeric">True</property>
</object>
<packing>
......@@ -194,6 +203,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -235,6 +245,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment