Skip to content

Commit

Permalink
Уточнение revision 13921.
Browse files Browse the repository at this point in the history
  • Loading branch information
shmuz committed Mar 13, 2016
1 parent 3bb63e1 commit 65dd865
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 24 deletions.
6 changes: 5 additions & 1 deletion far/changelog
@@ -1,4 +1,8 @@
shmuel 13.03.2016 01:35:20 +0200 - build 4577
shmuel 13.03.2016 21:45:25 +0200 - build 4578

1. Уточнение 4577.

shmuel 13.03.2016 01:35:20 +0200 - build 4577

1. В функции Panel.LoadCustomSortMode таблица параметров может включать в себя опциональное поле
'Condition' (функцию). Данная функция может использоваться, например, в интерактивном режиме
Expand Down
22 changes: 11 additions & 11 deletions far/filelist.cpp
Expand Up @@ -180,6 +180,16 @@ bool SortFileList(CustomSort *cs, wchar_t *indicator)
return false;
}

bool CanSort(int SortMode)
{
FarMacroValue values[] = {(double)SortMode};
FarMacroCall fmc = {sizeof(FarMacroCall),ARRAYSIZE(values),values,nullptr,nullptr};
OpenMacroPluginInfo info = {MCT_CANPANELSORT,&fmc};
void *ptr;

return Global->CtrlObject->Plugins->CallPlugin(Global->Opt->KnownIDs.Luamacro.Id, OPEN_LUAMACRO, &info, &ptr) && ptr;
}

};

struct FileList::PrevDataItem: swapable<PrevDataItem>
Expand Down Expand Up @@ -4705,7 +4715,7 @@ void FileList::SelectSortMode()
int index = 3*(SortCode-ARRAYSIZE(SortModes)-1);
int mode = (int)mpr->Values[index].Double;

if (CanDoCustomSort(mode))
if (custom_sort::CanSort(mode))
{
bool InvertByDefault = mpr->Values[index+1].Boolean != 0;
bool KeepOrder = false;
Expand Down Expand Up @@ -8761,13 +8771,3 @@ bool FileList::IsColumnDisplayed(int Type)
{
return IsColumnDisplayed([&Type](const column& i) {return static_cast<int>(i.type & 0xff) == Type;});
}

bool FileList::CanDoCustomSort(int SortMode)
{
FarMacroValue values[] = {(double)SortMode};
FarMacroCall fmc = {sizeof(FarMacroCall),ARRAYSIZE(values),values,nullptr,nullptr};
OpenMacroPluginInfo info = {MCT_CANPANELSORT,&fmc};
void *ptr;

return Global->CtrlObject->Plugins->CallPlugin(Global->Opt->KnownIDs.Luamacro.Id, OPEN_LUAMACRO, &info, &ptr) && ptr;
}
1 change: 0 additions & 1 deletion far/filelist.hpp
Expand Up @@ -204,7 +204,6 @@ class FileList:public Panel
virtual void SortFileList(int KeepPosition) override;
virtual void SetViewMode(int ViewMode) override;
virtual void SetSortMode(panel_sort SortMode, bool KeepOrder = false) override;
virtual bool CanDoCustomSort(int SortMode) override;
virtual void SetCustomSortMode(int SortMode, bool KeepOrder = false, bool InvertByDefault = false) override;
virtual void ChangeSortOrder(bool Reverse) override;
virtual void ChangeNumericSort(bool Mode) override;
Expand Down
7 changes: 2 additions & 5 deletions far/macro.cpp
Expand Up @@ -2260,11 +2260,8 @@ intptr_t KeyMacro::CallFar(intptr_t CheckCode, FarMacroCall* Data)
if (panel)
{
int SortMode = (int)Data->Values[1].Double;
if (panel->CanDoCustomSort(SortMode))
{
bool InvertByDefault = Data->Values[2].Boolean != 0;
panel->SetCustomSortMode(SortMode, false, InvertByDefault);
}
bool InvertByDefault = Data->Values[2].Boolean != 0;
panel->SetCustomSortMode(SortMode, false, InvertByDefault);
}
}
break;
Expand Down
1 change: 0 additions & 1 deletion far/panel.hpp
Expand Up @@ -235,7 +235,6 @@ class Panel: public ScreenObject, public std::enable_shared_from_this<Panel>
virtual bool GetPrevDirectoriesFirst() const { return m_DirectoriesFirst; }
virtual void ChangeDirectoriesFirst(bool Mode) { SetDirectoriesFirst(Mode); }
virtual void SetSortMode(panel_sort Mode, bool KeepOrder = false) { m_SortMode = Mode; }
virtual bool CanDoCustomSort(int SortMode) { return false; }
virtual void SetCustomSortMode(int SortMode, bool KeepOrder = false, bool InvertByDefault = false) {}
virtual void ChangeSortOrder(bool Reverse) {SetSortOrder(Reverse);}
virtual void IfGoHome(wchar_t Drive) {}
Expand Down
2 changes: 1 addition & 1 deletion far/vbuild.m4
@@ -1 +1 @@
m4_define(BUILD,4577)m4_dnl
m4_define(BUILD,4578)m4_dnl
2 changes: 1 addition & 1 deletion plugins/luamacro/_globalinfo.lua
@@ -1,7 +1,7 @@
function export.GetGlobalInfo()
return {
Version = { 1, 0, 0, 565 },
MinFarVersion = { 3, 0, 0, 4577 },
MinFarVersion = { 3, 0, 0, 4578 },
Guid = win.Uuid("4EBBEFC8-2084-4B7F-94C0-692CE136894D"),
Title = "LuaMacro",
Description = "Far macros in Lua",
Expand Down
6 changes: 5 additions & 1 deletion plugins/luamacro/changelog
@@ -1,4 +1,8 @@
shmuel 13.03.2016 01:28:38 +0200 - build 565
shmuel 13.03.2016 21:46:38 +0200 - build 566

1. Уточнение 565.

shmuel 13.03.2016 01:28:38 +0200 - build 565

1. В функции Panel.LoadCustomSortMode таблица параметров может включать в себя опциональное поле
'Condition' (функцию). Данная функция может использоваться, например, в интерактивном режиме
Expand Down
4 changes: 2 additions & 2 deletions plugins/luamacro/panelsort.lua
Expand Up @@ -128,8 +128,8 @@ end

local function SetCustomSortMode (nMode, whatpanel)
if CanChangeSortMode then
local Settings = CustomSortModes[nMode]
if Settings then
if CanDoPanelSort(nMode) then
local Settings = CustomSortModes[nMode]
whatpanel = whatpanel==1 and 1 or 0
Shared.MacroCallFar(MCODE_F_SETCUSTOMSORTMODE, whatpanel, nMode, Settings.InvertByDefault)
end
Expand Down

0 comments on commit 65dd865

Please sign in to comment.