mirror of https://gitlab.com/basile.b/dexed.git
added persistent option auto-refresh
This commit is contained in:
parent
87d588d475
commit
a8430f74f9
|
@ -41,10 +41,10 @@ inherited CETodoListWidget: TCETodoListWidget
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
object lstfilter: TListFilterEdit
|
object lstfilter: TListFilterEdit
|
||||||
Left = 38
|
Left = 68
|
||||||
Height = 23
|
Height = 23
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 513
|
Width = 483
|
||||||
ButtonWidth = 28
|
ButtonWidth = 28
|
||||||
NumGlyphs = 1
|
NumGlyphs = 1
|
||||||
Align = alCustom
|
Align = alCustom
|
||||||
|
@ -52,6 +52,19 @@ inherited CETodoListWidget: TCETodoListWidget
|
||||||
MaxLength = 0
|
MaxLength = 0
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
|
object btnGo: TBitBtn
|
||||||
|
Left = 32
|
||||||
|
Height = 22
|
||||||
|
Hint = 'refresh the list'
|
||||||
|
Top = 2
|
||||||
|
Width = 28
|
||||||
|
Align = alLeft
|
||||||
|
BorderSpacing.Around = 2
|
||||||
|
Layout = blGlyphBottom
|
||||||
|
OnClick = btnGoClick
|
||||||
|
Spacing = 0
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object lstItems: TListView[1]
|
object lstItems: TListView[1]
|
||||||
Left = 4
|
Left = 4
|
||||||
|
@ -90,5 +103,10 @@ inherited CETodoListWidget: TCETodoListWidget
|
||||||
inherited contextMenu: TPopupMenu
|
inherited contextMenu: TPopupMenu
|
||||||
left = 40
|
left = 40
|
||||||
top = 72
|
top = 72
|
||||||
|
object mnuAutoRefresh: TMenuItem[0]
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Auto resfresh'
|
||||||
|
OnClick = mnuAutoRefreshClick
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -56,12 +56,17 @@ type
|
||||||
|
|
||||||
{ TCETodoListWidget }
|
{ TCETodoListWidget }
|
||||||
|
|
||||||
TCETodoListWidget = class(TCEWidget, ICEMultiDocObserver, ICEProjectObserver)
|
TCETodoListWidget = class(TCEWidget, ICEMultiDocObserver, ICEProjectObserver, ICESessionOptionsObserver)
|
||||||
btnRefresh: TBitBtn;
|
btnRefresh: TBitBtn;
|
||||||
|
btnGo: TBitBtn;
|
||||||
lstItems: TListView;
|
lstItems: TListView;
|
||||||
lstfilter: TListFilterEdit;
|
lstfilter: TListFilterEdit;
|
||||||
|
mnuAutoRefresh: TMenuItem;
|
||||||
Panel1: TPanel;
|
Panel1: TPanel;
|
||||||
|
procedure btnGoClick(Sender: TObject);
|
||||||
|
procedure mnuAutoRefreshClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
|
fAutoRefresh: Boolean;
|
||||||
fProj: TCEProject;
|
fProj: TCEProject;
|
||||||
fDoc: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
fToolProcess: TCheckedAsyncProcess;
|
fToolProcess: TCheckedAsyncProcess;
|
||||||
|
@ -91,6 +96,11 @@ type
|
||||||
procedure filterItems(sender: TObject);
|
procedure filterItems(sender: TObject);
|
||||||
protected
|
protected
|
||||||
procedure SetVisible(Value: boolean); override;
|
procedure SetVisible(Value: boolean); override;
|
||||||
|
// ICESessionOptionsObserver
|
||||||
|
procedure optset_AutoReafresh(aReader: TReader);
|
||||||
|
procedure optget_AutoReafresh(aWriter: TWriter);
|
||||||
|
procedure sesoptDeclareProperties(aFiler: TFiler); override;
|
||||||
|
procedure sesoptAfterLoad; override;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
|
@ -166,7 +176,8 @@ begin
|
||||||
fLogMessager := TCELogMessageSubject.create;
|
fLogMessager := TCELogMessageSubject.create;
|
||||||
lstItems.OnDblClick := @lstItemsDoubleClick;
|
lstItems.OnDblClick := @lstItemsDoubleClick;
|
||||||
btnRefresh.OnClick := @btnRefreshClick;
|
btnRefresh.OnClick := @btnRefreshClick;
|
||||||
|
fAutoRefresh := true;
|
||||||
|
mnuAutoRefresh.Checked := true;
|
||||||
// http://bugs.freepascal.org/view.php?id=27137
|
// http://bugs.freepascal.org/view.php?id=27137
|
||||||
// TODO-cCleanup: remove comment after next Laz release
|
// TODO-cCleanup: remove comment after next Laz release
|
||||||
// TODO-cfeature, try the new TListViewFilterEdit here.
|
// TODO-cfeature, try the new TListViewFilterEdit here.
|
||||||
|
@ -176,6 +187,8 @@ begin
|
||||||
try
|
try
|
||||||
png.LoadFromLazarusResource('arrow_update');
|
png.LoadFromLazarusResource('arrow_update');
|
||||||
btnRefresh.Glyph.Assign(png);
|
btnRefresh.Glyph.Assign(png);
|
||||||
|
png.LoadFromLazarusResource('arrow_pen');
|
||||||
|
btnGo.Glyph.Assign(png);
|
||||||
finally
|
finally
|
||||||
png.Free;
|
png.Free;
|
||||||
end;
|
end;
|
||||||
|
@ -197,6 +210,30 @@ end;
|
||||||
|
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
|
{$REGION ICESessionOptionsObserver --------------------------------------------}
|
||||||
|
procedure TCETodoListWidget.optset_AutoReafresh(aReader: TReader);
|
||||||
|
begin
|
||||||
|
fAutoRefresh := aReader.ReadBoolean;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCETodoListWidget.optget_AutoReafresh(aWriter: TWriter);
|
||||||
|
begin
|
||||||
|
aWriter.WriteBoolean(fAutoRefresh);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCETodoListWidget.sesoptDeclareProperties(aFiler: TFiler);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
aFiler.DefineProperty(Name + '_AutoRefresh', @optset_AutoReafresh, @optget_AutoReafresh, true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCETodoListWidget.sesoptAfterLoad;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
mnuAutoRefresh.Checked := fAutoRefresh;
|
||||||
|
end;
|
||||||
|
{$ENDREGIOn}
|
||||||
|
|
||||||
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
||||||
procedure TCETodoListWidget.docNew(aDoc: TCESynMemo);
|
procedure TCETodoListWidget.docNew(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
@ -206,7 +243,7 @@ procedure TCETodoListWidget.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
if aDoc = fDoc then exit;
|
if aDoc = fDoc then exit;
|
||||||
fDoc := aDoc;
|
fDoc := aDoc;
|
||||||
if Visible then
|
if Visible and fAutoRefresh then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -232,7 +269,7 @@ end;
|
||||||
procedure TCETodoListWidget.projChanged(aProject: TCEProject);
|
procedure TCETodoListWidget.projChanged(aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then exit;
|
if fProj <> aProject then exit;
|
||||||
if Visible then
|
if Visible and fAutoRefresh then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -247,7 +284,7 @@ procedure TCETodoListWidget.projFocused(aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
if aProject = fProj then exit;
|
if aProject = fProj then exit;
|
||||||
fProj := aProject;
|
fProj := aProject;
|
||||||
if Visible then
|
if Visible and fAutoRefresh then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -404,6 +441,16 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCETodoListWidget.btnGoClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
lstItemsDoubleClick(nil);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCETodoListWidget.mnuAutoRefreshClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
fAutoRefresh := mnuAutoRefresh.Checked;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.lstItemsDoubleClick(sender: TObject);
|
procedure TCETodoListWidget.lstItemsDoubleClick(sender: TObject);
|
||||||
var
|
var
|
||||||
itm: TTodoItem;
|
itm: TTodoItem;
|
||||||
|
|
Loading…
Reference in New Issue