Implement preference option to adjust tab width in SynMemos. Fixes issue #857.

This commit is contained in:
Ansgar Becker
2009-11-24 19:34:48 +00:00
parent e5771ad084
commit 0c83491ed5
4 changed files with 46 additions and 11 deletions

View File

@ -56,6 +56,8 @@ const
DEFAULT_FONTNAME = 'Courier New';
REGNAME_FONTSIZE = 'FontSize';
DEFAULT_FONTSIZE = 9;
REGNAME_TABWIDTH = 'TabWidth';
DEFAULT_TABWIDTH = 3;
REGNAME_DATAFONTNAME = 'DataFontName';
DEFAULT_DATAFONTNAME = 'Tahoma';
REGNAME_DATAFONTSIZE = 'DataFontSize';

View File

@ -8812,7 +8812,7 @@ var
Editors: TObjectList;
BaseEditor, Editor: TSynMemo;
FontName: String;
FontSize: Integer;
FontSize, TabWidth: Integer;
KeyStroke: TSynEditKeyStroke;
ActiveLineColor: TColor;
Attri: TSynHighlighterAttributes;
@ -8844,6 +8844,7 @@ begin
FontName := GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME);
FontSize := GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE);
TabWidth := GetRegValue(REGNAME_TABWIDTH, DEFAULT_TABWIDTH);
ActiveLineColor := StringToColor(GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE)));
for i:=0 to Editors.Count-1 do begin
Editor := Editors[i] as TSynMemo;
@ -8853,7 +8854,7 @@ begin
Editor.Gutter.Font.Size := FontSize;
Editor.ActiveLineColor := ActiveLineColor;
Editor.Options := BaseEditor.Options;
Editor.TabWidth := BaseEditor.TabWidth;
Editor.TabWidth := TabWidth;
Editor.MaxScrollWidth := BaseEditor.MaxScrollWidth;
// Shortcuts
if Editor = BaseEditor then for j:=0 to Editor.Keystrokes.Count-1 do begin

View File

@ -206,22 +206,22 @@ object optionsform: Toptionsform
object grpSQLFont: TGroupBox
Left = 1
Top = 1
Width = 397
Width = 288
Height = 56
Anchors = [akLeft, akTop, akRight, akBottom]
Caption = 'Editor font'
TabOrder = 0
object lblSQLFontSize: TLabel
Left = 248
Left = 263
Top = 26
Width = 23
Width = 10
Height = 13
Caption = 'Size:'
Caption = 'pt'
end
object comboSQLFontName: TComboBox
Left = 16
Top = 23
Width = 193
Width = 181
Height = 21
Style = csDropDownList
ItemHeight = 13
@ -229,7 +229,7 @@ object optionsform: Toptionsform
OnChange = SQLFontChange
end
object editSQLFontSize: TEdit
Left = 294
Left = 200
Top = 23
Width = 41
Height = 21
@ -238,7 +238,7 @@ object optionsform: Toptionsform
OnExit = SQLFontChange
end
object updownSQLFontSize: TUpDown
Left = 335
Left = 241
Top = 23
Width = 16
Height = 21
@ -366,6 +366,32 @@ object optionsform: Toptionsform
OnChange = SQLFontChange
end
end
object grpSQLTabWidth: TGroupBox
Left = 295
Top = 1
Width = 102
Height = 56
Caption = 'Tab width'
TabOrder = 3
object editSQLTabWidth: TEdit
Left = 14
Top = 23
Width = 43
Height = 21
TabOrder = 0
Text = '0'
OnExit = SQLFontChange
end
object updownSQLTabWidth: TUpDown
Left = 57
Top = 23
Width = 16
Height = 21
Associate = editSQLTabWidth
TabOrder = 1
OnClick = updownSQLFontSizeClick
end
end
end
object tabData: TTabSheet
BorderWidth = 5

View File

@ -115,6 +115,9 @@ type
lblShortcutHint: TLabel;
Shortcut2: TSynHotKey;
lblShortcut2: TLabel;
grpSQLTabWidth: TGroupBox;
editSQLTabWidth: TEdit;
updownSQLTabWidth: TUpDown;
procedure FormShow(Sender: TObject);
procedure Modified(Sender: TObject);
procedure Apply(Sender: TObject);
@ -204,6 +207,7 @@ begin
MainReg.WriteBool(REGNAME_RESTORELASTUSEDDB, chkRestoreLastDB.Checked);
MainReg.WriteString(REGNAME_FONTNAME, comboSQLFontName.Text);
MainReg.WriteInteger(REGNAME_FONTSIZE, updownSQLFontSize.Position);
MainReg.WriteInteger(REGNAME_TABWIDTH, updownSQLTabWidth.Position);
MainReg.WriteInteger(REGNAME_LOGSQLNUM, updownLogLines.Position);
MainReg.WriteInteger(REGNAME_LOGSQLWIDTH, updownLogSnip.Position);
for i:=0 to SynSQLSynSQLSample.AttrCount - 1 do begin
@ -332,12 +336,12 @@ begin
InheritFont(Font);
EnumFontFamilies(Canvas.Handle, nil, @EnumFixedProc, LPARAM(Pointer(comboSQLFontName.Items)));
SynMemoSQLSample.Text := 'SELECT DATE_SUB(NOW(), INTERVAL 1 DAY),' + CRLF +
' ''String literal'' AS lit' + CRLF +
#9'''String literal'' AS lit' + CRLF +
'FROM tableA AS ta -- A comment' + CRLF +
'WHERE `columnA` IS NULL; # More comment' + CRLF +
CRLF +
'CREATE TABLE /*!32312 IF NOT EXISTS*/ tableB' + CRLF +
' (id INT, name VARCHAR(30) DEFAULT "standard")';
#9'(id INT, name VARCHAR(30) DEFAULT "standard")';
SynSQLSynSQLSample.TableNames.CommaText := 'tableA,tableB';
for i:=0 to SynSQLSynSQLSample.AttrCount - 1 do
comboSQLColElement.Items.Add(SynSQLSynSQLSample.Attribute[i].FriendlyName);
@ -390,6 +394,7 @@ begin
Mainform.SetupSynEditors;
comboSQLFontName.ItemIndex := comboSQLFontName.Items.IndexOf(SynMemoSQLSample.Font.Name);
updownSQLFontSize.Position := SynMemoSQLSample.Font.Size;
updownSQLTabWidth.Position := SynMemoSQLSample.TabWidth;
comboSQLColElementChange(Sender);
// Data-Appearance:
@ -430,6 +435,7 @@ var
begin
SynMemoSQLSample.Font.Name := comboSQLFontName.Items[comboSQLFontName.ItemIndex];
SynMemoSQLSample.Font.Size := updownSQLFontSize.Position;
SynMemoSQLSample.TabWidth := updownSQLTabWidth.Position;
AttriIdx := comboSQLColElement.ItemIndex;
Foreground := cboxSQLColForeground.Selected;
Background := cboxSQLColBackground.Selected;