GSOC work, ModalDialog instead of menu entry
Created a ModalDialog named CodeCompleteOptionsDlg to edit options for code completition/suggestion. Unimplemented features in it are disabled. The dialog window uses Glade .ui file. Change-Id: I1b59f386a9575aa25b38c5a1d7d1f020498a69ab
This commit is contained in:
@@ -90,6 +90,7 @@ $(eval $(call gb_Library_add_exception_objects,basctl,\
|
||||
basctl/source/basicide/linenumberwindow \
|
||||
basctl/source/basicide/localizationmgr \
|
||||
basctl/source/basicide/macrodlg \
|
||||
basctl/source/basicide/codecompleteoptionsdlg \
|
||||
basctl/source/basicide/moduldl2 \
|
||||
basctl/source/basicide/moduldlg \
|
||||
basctl/source/basicide/objdlg \
|
||||
|
@@ -30,6 +30,7 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/BasicIDE,\
|
||||
|
||||
$(eval $(call gb_UIConfig_add_uifiles,modules/BasicIDE,\
|
||||
basctl/uiconfig/basicide/ui/basicmacrodialog \
|
||||
basctl/uiconfig/basicide/ui/codecompleteoptionsdlg \
|
||||
))
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
||||
|
@@ -54,6 +54,7 @@
|
||||
#include <cassert>
|
||||
#include <basic/codecompletecache.hxx>
|
||||
#include <svtools/miscopt.hxx>
|
||||
#include "codecompleteoptionsdlg.hxx"
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
@@ -1013,8 +1014,8 @@ void ModulWindow::ExecuteCommand (SfxRequest& rReq)
|
||||
break;
|
||||
case SID_BASICIDE_CODECOMPLETITION:
|
||||
{
|
||||
SFX_REQUEST_ARG(rReq, pItem, SfxBoolItem, rReq.GetSlot(), false);
|
||||
CodeCompleteOptions::SetCodeCompleteOn( pItem && pItem->GetValue() );
|
||||
boost::scoped_ptr< CodeCompleteOptionsDlg > pDlg( new CodeCompleteOptionsDlg( this ) );
|
||||
pDlg->Execute();
|
||||
}
|
||||
break;
|
||||
case SID_CUT:
|
||||
@@ -1166,15 +1167,9 @@ void ModulWindow::GetState( SfxItemSet &rSet )
|
||||
case SID_BASICIDE_CODECOMPLETITION:
|
||||
{
|
||||
SvtMiscOptions aMiscOptions;
|
||||
if( aMiscOptions.IsExperimentalMode() )
|
||||
{
|
||||
rSet.Put(SfxBoolItem( nWh, CodeCompleteOptions::IsCodeCompleteOn() ));
|
||||
std::cerr <<"code complete set to: " << CodeCompleteOptions::IsCodeCompleteOn() << std::endl;
|
||||
}
|
||||
else
|
||||
if( !aMiscOptions.IsExperimentalMode() )
|
||||
{
|
||||
rSet.Put( SfxVisibilityItem(nWh, false) );
|
||||
//CodeCompleteOptions::SetCodeCompleteOn( false );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
74
basctl/source/basicide/codecompleteoptionsdlg.cxx
Normal file
74
basctl/source/basicide/codecompleteoptionsdlg.cxx
Normal file
@@ -0,0 +1,74 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include "codecompleteoptionsdlg.hxx"
|
||||
#include <basic/codecompletecache.hxx>
|
||||
#include <svtools/miscopt.hxx>
|
||||
#include <basidesh.hrc>
|
||||
#include <iostream>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
|
||||
CodeCompleteOptionsDlg::CodeCompleteOptionsDlg( Window* pWindow )
|
||||
: ModalDialog(pWindow, "CodeCompleteOptionsDialog", "modules/BasicIDE/ui/codecompleteoptionsdlg.ui")
|
||||
{
|
||||
get(pCancelBtn, "cancel");
|
||||
get(pOkBtn, "ok");
|
||||
|
||||
get(pCodeCompleteChk, "codecomplete_enable");
|
||||
get(pAutocloseProcChk, "autoclose_proc");
|
||||
get(pAutocloseBracesChk, "autoclose_braces");
|
||||
get(pAutocloseQuotesChk, "autoclose_quotes");
|
||||
|
||||
pOkBtn->SetClickHdl( LINK( this, CodeCompleteOptionsDlg, OkHdl ) );
|
||||
pCancelBtn->SetClickHdl( LINK( this, CodeCompleteOptionsDlg, CancelHdl ) );
|
||||
|
||||
pCodeCompleteChk->Check(CodeCompleteOptions::IsCodeCompleteOn()); //set it on, if needed
|
||||
|
||||
pAutocloseProcChk->Enable( false );
|
||||
pAutocloseBracesChk->Enable( false );
|
||||
pAutocloseQuotesChk->Enable( false );
|
||||
}
|
||||
|
||||
CodeCompleteOptionsDlg::~CodeCompleteOptionsDlg()
|
||||
{
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(CodeCompleteOptionsDlg, OkHdl)
|
||||
{
|
||||
CodeCompleteOptions::SetCodeCompleteOn( pCodeCompleteChk->IsChecked() );
|
||||
Close();
|
||||
return 0;
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(CodeCompleteOptionsDlg, CancelHdl)
|
||||
{
|
||||
Close();
|
||||
return 0;
|
||||
}
|
||||
|
||||
short CodeCompleteOptionsDlg::Execute()
|
||||
{
|
||||
return ModalDialog::Execute();
|
||||
}
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
54
basctl/source/basicide/codecompleteoptionsdlg.hxx
Normal file
54
basctl/source/basicide/codecompleteoptionsdlg.hxx
Normal file
@@ -0,0 +1,54 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#ifndef BASCTL_CODECOMPLETEOPTIONSDLG_HXX
|
||||
#define BASCTL_CODECOMPLETEOPTIONSDLG_HXX
|
||||
|
||||
#include <vcl/button.hxx>
|
||||
#include <vcl/dialog.hxx>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
|
||||
class CodeCompleteOptionsDlg: public ModalDialog
|
||||
{
|
||||
private:
|
||||
CancelButton* pCancelBtn;
|
||||
OKButton* pOkBtn;
|
||||
|
||||
CheckBox* pCodeCompleteChk;
|
||||
CheckBox* pAutocloseProcChk;
|
||||
CheckBox* pAutocloseBracesChk;
|
||||
CheckBox* pAutocloseQuotesChk;
|
||||
|
||||
DECL_LINK(OkHdl, void*);
|
||||
DECL_LINK(CancelHdl, void*);
|
||||
|
||||
public:
|
||||
CodeCompleteOptionsDlg( Window* pWindow );
|
||||
~CodeCompleteOptionsDlg();
|
||||
|
||||
virtual short Execute();
|
||||
};
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
#endif //BASCTL_CODECOMPLETEOPTIONSDLG_HXX
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
@@ -61,7 +61,7 @@
|
||||
<menu:menuitem menu:id=".uno:StatusBarVisible"/>
|
||||
<menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
|
||||
<menu:menuitem menu:id=".uno:ShowLines"/>
|
||||
<menu:menuitem menu:id=".uno:BasicCodeCompletition"/>
|
||||
<menu:menuitem menu:id=".uno:CodeCompleteOptionsDialog"/>
|
||||
<menu:menuitem menu:id=".uno:GotoLine"/>
|
||||
<menu:menuseparator/>
|
||||
<menu:menuitem menu:id=".uno:FullScreen"/>
|
||||
|
212
basctl/uiconfig/basicide/ui/codecompleteoptionsdlg.ui
Normal file
212
basctl/uiconfig/basicide/ui/codecompleteoptionsdlg.ui
Normal file
@@ -0,0 +1,212 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<object class="GtkDialog" id="CodeCompleteOptionsDialog">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="title" translatable="yes">Autocomplete Options</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="modal">True</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">2</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="cancel">
|
||||
<property name="label">gtk-cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">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="ok">
|
||||
<property name="label">gtk-ok</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="image_position">right</property>
|
||||
<property name="has_default">True</property>
|
||||
<property name="can_default">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="GtkBox" id="box1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<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="left_padding">12</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="codecomplete_enable">
|
||||
<property name="label" translatable="yes">Enable Code Completition</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</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">Code Completition</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">0</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="left_padding">12</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="autoclose_proc">
|
||||
<property name="label" translatable="yes">Autoclose Procedures</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="autoclose_braces">
|
||||
<property name="label" translatable="yes">Autoclose Braces</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="autoclose_quotes">
|
||||
<property name="label" translatable="yes">Autoclose Quotes</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</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">Code Suggestion</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>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="-1">cancel</action-widget>
|
||||
<action-widget response="0">ok</action-widget>
|
||||
</action-widgets>
|
||||
</object>
|
||||
</interface>
|
@@ -30,24 +30,19 @@ namespace
|
||||
}
|
||||
|
||||
CodeCompleteOptions::CodeCompleteOptions()
|
||||
: bIsCodeCompleteOn( false )
|
||||
: bIsCodeCompleteOn( false ),
|
||||
bIsProcedureAutoCompleteOn( false )
|
||||
{
|
||||
}
|
||||
|
||||
bool CodeCompleteOptions::IsCodeCompleteOn()
|
||||
{
|
||||
/*if( !theCodeCompleteOptions::get().aMiscOptions.IsExperimentalMode() )
|
||||
return false;
|
||||
else*/
|
||||
return theCodeCompleteOptions::get().aMiscOptions.IsExperimentalMode() && theCodeCompleteOptions::get().bIsCodeCompleteOn;
|
||||
}
|
||||
|
||||
void CodeCompleteOptions::SetCodeCompleteOn( const bool& b )
|
||||
{
|
||||
if( !theCodeCompleteOptions::get().aMiscOptions.IsExperimentalMode() )
|
||||
theCodeCompleteOptions::get().bIsCodeCompleteOn = false;
|
||||
else
|
||||
theCodeCompleteOptions::get().bIsCodeCompleteOn = b;
|
||||
theCodeCompleteOptions::get().bIsCodeCompleteOn = b;
|
||||
}
|
||||
|
||||
bool CodeCompleteOptions::IsExtendedTypeDeclaration()
|
||||
@@ -55,6 +50,16 @@ bool CodeCompleteOptions::IsExtendedTypeDeclaration()
|
||||
return CodeCompleteOptions::IsCodeCompleteOn();
|
||||
}
|
||||
|
||||
bool CodeCompleteOptions::IsProcedureAutoCompleteOn()
|
||||
{
|
||||
return theCodeCompleteOptions::get().aMiscOptions.IsExperimentalMode() && theCodeCompleteOptions::get().bIsProcedureAutoCompleteOn;
|
||||
}
|
||||
|
||||
void CodeCompleteOptions::SetProcedureAutoCompleteOn( const bool& b )
|
||||
{
|
||||
theCodeCompleteOptions::get().bIsProcedureAutoCompleteOn = b;
|
||||
}
|
||||
|
||||
std::ostream& operator<< (std::ostream& aStream, const CodeCompleteDataCache& aCache)
|
||||
{
|
||||
for( CodeCompleteVarScopes::const_iterator aIt = aCache.aVarScopes.begin(); aIt != aCache.aVarScopes.end(); ++aIt )
|
||||
|
@@ -671,7 +671,10 @@ void SbModule::EndDefinitions( sal_Bool bNewState )
|
||||
if( p )
|
||||
{
|
||||
if( p->bInvalid )
|
||||
{
|
||||
std::cerr << "invalid definition: " << p->GetName() << std::endl;
|
||||
pMethods->Remove( p );
|
||||
}
|
||||
else
|
||||
{
|
||||
p->bInvalid = bNewState;
|
||||
|
@@ -41,6 +41,7 @@ class BASIC_DLLPUBLIC CodeCompleteOptions
|
||||
* */
|
||||
private:
|
||||
bool bIsCodeCompleteOn;
|
||||
bool bIsProcedureAutoCompleteOn;
|
||||
SvtMiscOptions aMiscOptions;
|
||||
|
||||
public:
|
||||
@@ -49,6 +50,9 @@ public:
|
||||
static bool IsCodeCompleteOn();
|
||||
static void SetCodeCompleteOn( const bool& b );
|
||||
static bool IsExtendedTypeDeclaration();
|
||||
|
||||
static bool IsProcedureAutoCompleteOn();
|
||||
static void SetProcedureAutoCompleteOn( const bool& b );
|
||||
};
|
||||
|
||||
class BASIC_DLLPUBLIC CodeCompleteDataCache
|
||||
|
@@ -8,9 +8,9 @@
|
||||
<value xml:lang="en-US">Goto Line Number...</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name=".uno:BasicCodeCompletition" oor:op="replace">
|
||||
<node oor:name=".uno:CodeCompleteOptionsDialog" oor:op="replace">
|
||||
<prop oor:name="Label" oor:type="xs:string">
|
||||
<value xml:lang="en-US">Enable Code Completition</value>
|
||||
<value xml:lang="en-US">Code Completition Options</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name=".uno:ShowLines" oor:op="replace">
|
||||
|
@@ -3819,7 +3819,7 @@ SfxVoidItem MatchGroup SID_BASICIDE_MATCHGROUP
|
||||
GroupId = GID_MACRO;
|
||||
]
|
||||
|
||||
SfxBoolItem BasicCodeCompletition SID_BASICIDE_CODECOMPLETITION
|
||||
SfxVoidItem CodeCompleteOptionsDialog SID_BASICIDE_CODECOMPLETITION
|
||||
|
||||
[
|
||||
/* flags: */
|
||||
@@ -3829,7 +3829,7 @@ SfxBoolItem BasicCodeCompletition SID_BASICIDE_CODECOMPLETITION
|
||||
HasCoreId = FALSE,
|
||||
HasDialog = FALSE,
|
||||
ReadOnlyDoc = TRUE,
|
||||
Toggle = TRUE,
|
||||
Toggle = FALSE,
|
||||
Container = FALSE,
|
||||
RecordAbsolute = FALSE,
|
||||
RecordPerSet;
|
||||
|
Reference in New Issue
Block a user