diff options
-rw-r--r-- | dbaccess/UIConfig_dbaccess.mk | 1 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/directsql.cxx | 66 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/directsql.hxx | 18 | ||||
-rw-r--r-- | dbaccess/uiconfig/ui/directsqldialog.ui | 277 | ||||
-rw-r--r-- | extras/source/glade/libreoffice-catalog.xml.in | 6 | ||||
-rw-r--r-- | svtools/source/edit/editsyntaxhighlighter.cxx | 6 | ||||
-rw-r--r-- | svtools/source/edit/svmedit.cxx | 6 |
7 files changed, 330 insertions, 50 deletions
diff --git a/dbaccess/UIConfig_dbaccess.mk b/dbaccess/UIConfig_dbaccess.mk index eb979729ca3f..cace6a8cde5f 100644 --- a/dbaccess/UIConfig_dbaccess.mk +++ b/dbaccess/UIConfig_dbaccess.mk @@ -10,6 +10,7 @@ $(eval $(call gb_UIConfig_UIConfig,dbaccess)) $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \ + dbaccess/uiconfig/ui/directsqldialog \ dbaccess/uiconfig/ui/querypropertiesdialog \ dbaccess/uiconfig/ui/generalpagedialog \ dbaccess/uiconfig/ui/generalpagewizard \ diff --git a/dbaccess/source/ui/dlg/directsql.cxx b/dbaccess/source/ui/dlg/directsql.cxx index bb73d8adbf37..87b917321970 100644 --- a/dbaccess/source/ui/dlg/directsql.cxx +++ b/dbaccess/source/ui/dlg/directsql.cxx @@ -73,33 +73,25 @@ namespace dbaui DBG_NAME(DirectSQLDialog) //-------------------------------------------------------------------- DirectSQLDialog::DirectSQLDialog( Window* _pParent, const Reference< XConnection >& _rxConn ) - :ModalDialog(_pParent, ModuleRes(DLG_DIRECTSQL)) - ,m_aFrame (this, ModuleRes(FL_SQL)) - ,m_aSQLLabel (this, ModuleRes(FT_SQL)) - ,m_aSQL (this, ModuleRes(ME_SQL)) - ,m_aExecute (this, ModuleRes(PB_EXECUTE)) - ,m_aHistoryLabel (this, ModuleRes(FT_HISTORY)) - ,m_pSQLHistory(new LargeEntryListBox(this, ModuleRes(LB_HISTORY))) - ,m_aStatusFrame (this, ModuleRes(FL_STATUS)) - ,m_aStatus (this, ModuleRes(ME_STATUS)) - ,m_pShowOutput(new CheckBox(this, ModuleRes(CB_SHOWOUTPUT))) - ,m_aOutputFrame (this, ModuleRes(FL_OUTPUT)) - ,m_aOutput (this, ModuleRes(ME_OUTPUT)) - ,m_aButtonSeparator (this, ModuleRes(FL_BUTTONS)) - ,m_aHelp (this, ModuleRes(PB_HELP)) - ,m_aClose (this, ModuleRes(PB_CLOSE)) + :ModalDialog(_pParent, "DirectSQLDialog" , "dbaccess/ui/directsqldialog.ui") ,m_nHistoryLimit(20) ,m_nStatusCount(1) ,m_xConnection(_rxConn) { - DBG_CTOR(DirectSQLDialog,NULL); + get(m_pSQL,"sql"); + get(m_pExecute,"execute"); + get(m_pSQLHistory,"sqlhistory"); + get(m_pStatus,"status"); + get(m_pShowOutput,"showoutput"); + get(m_pOutput,"output"); + get(m_pClose,"close"); - FreeResource(); + DBG_CTOR(DirectSQLDialog,NULL); - m_aSQL.GrabFocus(); + m_pSQL->GrabFocus(); - m_aExecute.SetClickHdl(LINK(this, DirectSQLDialog, OnExecute)); - m_aClose.SetClickHdl(LINK(this, DirectSQLDialog, OnClose)); + m_pExecute->SetClickHdl(LINK(this, DirectSQLDialog, OnExecute)); + m_pClose->SetClickHdl(LINK(this, DirectSQLDialog, OnClose)); m_pSQLHistory->SetSelectHdl(LINK(this, DirectSQLDialog, OnListEntrySelected)); m_pSQLHistory->SetDropDownLineCount(10); @@ -109,8 +101,8 @@ DBG_NAME(DirectSQLDialog) if (xConnComp.is()) startComponentListening(xConnComp); - m_aSQL.SetModifyHdl(LINK(this, DirectSQLDialog, OnStatementModified)); - OnStatementModified(&m_aSQL); + m_pSQL->SetModifyHdl(LINK(this, DirectSQLDialog, OnStatementModified)); + OnStatementModified(m_pSQL); } //-------------------------------------------------------------------- @@ -120,8 +112,6 @@ DBG_NAME(DirectSQLDialog) ::osl::MutexGuard aGuard(m_aMutex); stopAllComponentListening(); } - delete m_pSQLHistory; - delete m_pShowOutput; DBG_DTOR(DirectSQLDialog,NULL); } @@ -226,7 +216,7 @@ DBG_NAME(DirectSQLDialog) OSL_ENSURE(xStatement.is(), "DirectSQLDialog::implExecuteStatement: no statement returned by the connection!"); // clear the output box - m_aOutput.SetText(OUString()); + m_pOutput->SetText(OUString()); if (xStatement.is()) { if (OUString(_rStatement).toAsciiUpperCase().startsWith("SELECT") && m_pShowOutput->IsChecked()) @@ -288,10 +278,10 @@ DBG_NAME(DirectSQLDialog) { OUString sAppendMessage = OUString::number(m_nStatusCount++) + ": " + _rMessage + "\n\n"; - OUString sCompleteMessage = m_aStatus.GetText() + sAppendMessage; - m_aStatus.SetText(sCompleteMessage); + OUString sCompleteMessage = m_pStatus->GetText() + sAppendMessage; + m_pStatus->SetText(sCompleteMessage); - m_aStatus.SetSelection(Selection(sCompleteMessage.getLength(), sCompleteMessage.getLength())); + m_pStatus->SetSelection(Selection(sCompleteMessage.getLength(), sCompleteMessage.getLength())); } //-------------------------------------------------------------------- @@ -300,9 +290,9 @@ DBG_NAME(DirectSQLDialog) String sAppendMessage = _rMessage; sAppendMessage += OUString("\n"); - String sCompleteMessage = m_aOutput.GetText(); + String sCompleteMessage = m_pOutput->GetText(); sCompleteMessage += sAppendMessage; - m_aOutput.SetText(sCompleteMessage); + m_pOutput->SetText(sCompleteMessage); } //-------------------------------------------------------------------- @@ -310,7 +300,7 @@ DBG_NAME(DirectSQLDialog) { CHECK_INVARIANTS("DirectSQLDialog::executeCurrent"); - String sStatement = m_aSQL.GetText(); + String sStatement = m_pSQL->GetText(); // execute implExecuteStatement(sStatement); @@ -318,8 +308,8 @@ DBG_NAME(DirectSQLDialog) // add the statement to the history implAddToStatementHistory(sStatement); - m_aSQL.SetSelection(Selection()); - m_aSQL.GrabFocus(); + m_pSQL->SetSelection(Selection()); + m_pSQL->GrabFocus(); } //-------------------------------------------------------------------- @@ -331,8 +321,8 @@ DBG_NAME(DirectSQLDialog) { // set the text in the statement editor String sStatement = m_aStatementHistory[_nHistoryPos]; - m_aSQL.SetText(sStatement); - OnStatementModified(&m_aSQL); + m_pSQL->SetText(sStatement); + OnStatementModified(m_pSQL); if (_bUpdateListBox) { @@ -342,8 +332,8 @@ DBG_NAME(DirectSQLDialog) "DirectSQLDialog::switchToHistory: inconsistent listbox entries!"); } - m_aSQL.GrabFocus(); - m_aSQL.SetSelection(Selection(sStatement.Len(), sStatement.Len())); + m_pSQL->GrabFocus(); + m_pSQL->SetSelection(Selection(sStatement.Len(), sStatement.Len())); } else OSL_FAIL("DirectSQLDialog::switchToHistory: invalid position!"); @@ -352,7 +342,7 @@ DBG_NAME(DirectSQLDialog) //-------------------------------------------------------------------- IMPL_LINK( DirectSQLDialog, OnStatementModified, void*, /*NOTINTERESTEDIN*/ ) { - m_aExecute.Enable(!m_aSQL.GetText().isEmpty()); + m_pExecute->Enable(!m_pSQL->GetText().isEmpty()); return 0L; } diff --git a/dbaccess/source/ui/inc/directsql.hxx b/dbaccess/source/ui/inc/directsql.hxx index 0c10fc9b330d..3b59d315859b 100644 --- a/dbaccess/source/ui/inc/directsql.hxx +++ b/dbaccess/source/ui/inc/directsql.hxx @@ -51,20 +51,14 @@ namespace dbaui OModuleClient m_aModuleClient; ::osl::Mutex m_aMutex; - FixedLine m_aFrame; - FixedText m_aSQLLabel; - MultiLineEditSyntaxHighlight m_aSQL; - PushButton m_aExecute; - FixedText m_aHistoryLabel; + MultiLineEditSyntaxHighlight* m_pSQL; + PushButton* m_pExecute; ListBox* m_pSQLHistory; - FixedLine m_aStatusFrame; - MultiLineEdit m_aStatus; + MultiLineEdit* m_pStatus; CheckBox* m_pShowOutput; - FixedLine m_aOutputFrame; - MultiLineEdit m_aOutput; - FixedLine m_aButtonSeparator; - HelpButton m_aHelp; - PushButton m_aClose; + MultiLineEdit* m_pOutput; + HelpButton* m_pHelp; + PushButton* m_pClose; typedef ::std::deque< String > StringQueue; StringQueue m_aStatementHistory; // previous statements diff --git a/dbaccess/uiconfig/ui/directsqldialog.ui b/dbaccess/uiconfig/ui/directsqldialog.ui new file mode 100644 index 000000000000..b4ac7ec3b987 --- /dev/null +++ b/dbaccess/uiconfig/ui/directsqldialog.ui @@ -0,0 +1,277 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkDialog" id="DirectSQLDialog"> + <property name="can_focus">False</property> + <property name="border_width">6</property> + <property name="title" translatable="yes">Execute SQL Statement</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="help"> + <property name="label">gtk-help</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">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="close"> + <property name="label">gtk-close</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">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> + </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="GtkFrame" id="frame1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="GtkGrid" id="grid1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="row_spacing">6</property> + <child> + <object class="svtlo-MultiLineEditSyntaxHighlight" id="sql:border"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="sql_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Command to execute</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">sql:border</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="GtkGrid" id="grid2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="column_spacing">12</property> + <child> + <object class="GtkCheckButton" id="showoutput"> + <property name="label" translatable="yes">_Show output of "select" statements</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + <property name="draw_indicator">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="execute"> + <property name="label">_Execute</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="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="left_attach">0</property> + <property name="top_attach">2</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="sqlhistory"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">4</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="sqlhistory_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Previous commands</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">sqlhistory</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">3</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">SQL command</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="svtlo-MultiLineEdit" id="status:border"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Status</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <child> + <object class="svtlo-MultiLineEdit" id="output:border"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Output</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">help</action-widget> + <action-widget response="0">close</action-widget> + </action-widgets> + </object> +</interface> diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in index bf617a2093fe..3fb28a9d6c6d 100644 --- a/extras/source/glade/libreoffice-catalog.xml.in +++ b/extras/source/glade/libreoffice-catalog.xml.in @@ -227,6 +227,12 @@ <glade-widget-class title="Frame Selector" name="svxlo-SvxFrameSelector" generic-name="Frame Border Preview Window" parent="GtkDrawingArea" icon-name="widget-gtk-drawingarea"/> + <glade-widget-class title="MultiLine Edit" name="svtlo-MultiLineEdit" + generic-name="MultiLineEdit" parent="GtkTextView" + icon-name="widget-gtk-textview"/> + <glade-widget-class title="MultiLine Edit" name="svtlo-MultiLineEditSyntaxHighlight" + generic-name="MultiLineEdit" parent="GtkTextView" + icon-name="widget-gtk-textview"/> <glade-widget-class title="ValueSet" name="svtlo-ValueSet" generic-name="Set of Value Options" parent="GtkDrawingArea" icon-name="widget-gtk-drawingarea"/> diff --git a/svtools/source/edit/editsyntaxhighlighter.cxx b/svtools/source/edit/editsyntaxhighlighter.cxx index 33e96d9da0be..05cc7b46008a 100644 --- a/svtools/source/edit/editsyntaxhighlighter.cxx +++ b/svtools/source/edit/editsyntaxhighlighter.cxx @@ -20,6 +20,7 @@ #include <svtools/svmedit.hxx> #include <vcl/xtextedt.hxx> +#include <vcl/builder.hxx> #include <svtools/editsyntaxhighlighter.hxx> #include <vcl/txtattr.hxx> @@ -38,6 +39,11 @@ MultiLineEditSyntaxHighlight::MultiLineEditSyntaxHighlight( Window* pParent, con aHighlighter.initialize( aLanguage ); } +extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeMultiLineEditSyntaxHighlight(Window *pParent, VclBuilder::stringmap &) +{ + return new MultiLineEditSyntaxHighlight(pParent); +} + MultiLineEditSyntaxHighlight::~MultiLineEditSyntaxHighlight() { } diff --git a/svtools/source/edit/svmedit.cxx b/svtools/source/edit/svmedit.cxx index 6a7c977c234c..224a967f299e 100644 --- a/svtools/source/edit/svmedit.cxx +++ b/svtools/source/edit/svmedit.cxx @@ -20,6 +20,7 @@ #include "unoiface.hxx" +#include <vcl/builder.hxx> #include <svtools/textwindowpeer.hxx> @@ -33,6 +34,11 @@ MultiLineEdit::MultiLineEdit( Window* pParent, const ResId& rResId ) { } +extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeMultiLineEdit(Window *pParent, VclBuilder::stringmap &) +{ + return new MultiLineEdit(pParent); +} + // virtual css::uno::Reference< css::awt::XWindowPeer > MultiLineEdit::GetComponentInterface(sal_Bool bCreate) |