История: как убрать группировку по датам?

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Post Reply
rvm9500
Posts: 2
Joined: Wed 11 Mar, 2015 19:46
Has thanked: 1 time

История: как убрать группировку по датам?

Post by rvm9500 »

Подскажите, как отключить показ дат (группировку по датам) в списках с историями фара?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

История в выпадающих списах

Post by John Doe »

Установить следующий макрос:

Code: Select all

local HideOnly = true --hide or remove

local isHistoryList = {
  [win.Uuid"4406C688-209F-4378-8B7B-465BF16205FF"]="SelectFromEditHistoryId",
  [win.Uuid"E770E044-23A8-4F4D-B268-0E602B98CCF9"]="HistoryEditViewId",      
  [win.Uuid"FC3384A8-6608-4C9B-8D6B-EE105F4C5A54"]="HistoryFolderId",        
  [win.Uuid"880968A6-6258-43E0-9BDC-F2B8678EC278"]="HistoryCmdId",           
}
local F = far.Flags
Event {
  description="Remove date separators from history list";
  group="DialogEvent";
  uid="95525607-A291-48C2-8110-FA9150AF7A7E";
  action=function(Event,param)
    if param.Msg==F.DN_INITDIALOG and Event == F.DE_DLGPROCINIT then
      local hDlg = param.hDlg
      local info = hDlg:send(F.DM_GETDIALOGINFO)
      if not (info and isHistoryList[info.Id]) then return end
      local Item = hDlg:send(F.DM_GETDLGITEM,1)
      if Item and Item[1]==F.DI_LISTBOX then
        local list = Item[6]
        for i=#list,1,-1 do
          local v = list[i]
          if bit64.band(v.Flags,F.LIF_SEPARATOR)~=0 then
            if HideOnly then
              v.Index = i
              v.Flags = bit64.bor(v.Flags,F.LIF_HIDDEN)
              hDlg:send(F.DM_LISTUPDATE,1,v)
            else --Remove
              hDlg:send(F.DM_LISTDELETE,1,{StartIndex=i,Count=1})
            end
          end
        end
      end
    end
  end
}
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

История: как убрать группировку по датам?

Post by HaRT »

John Doe, спасибо!
И обнаружилась блоха: если в диалоге (скажем, из панелей [b]ShiftF5[/b]) открыть историю текстового поля и там по [b]ShiftDel[/b] удалить из списка какой-то элемент, то разделители с датой возвращаются до переоткрытия списка.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

История: как убрать группировку по датам?

Post by John Doe »

А тут интересно: при удалении элемента обработчикам приходит DN_CLOSE, т.е. диалог как бы закрывается (вероятно особенность реализации).
Однако за этим не следует DN_INITDIALOG, как можно было бы ожидать.

Если это не баг, значит эту особенность необходимо документировать.
(Но непонятно как тогда плагин должен узнать об окончательном закрытии диалога?).

Edit:
Оказывается DN_CLOSE подобным образом может приходить и в других случаях: http://forum.farmanager.com/viewtopic.php?f=8&t=9478
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

История: как убрать группировку по датам?

Post by HaRT »

Как только начинаю вводить фильтр, разделители снова появляются. Сложно ли это исправить?
Far 3.0 build 4363 x86
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

История: как убрать группировку по датам?

Post by John Doe »

Есть на мантисе http://bugs.farmanager.com/view.php?id=2554

Исправить можно, но лично я пользуюсь этой особенностью как фичей.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

История: как убрать группировку по датам?

Post by HaRT »

John Doe wrote:можно
Пишу HideOnly = false — история открывается с разделителями. Какая требуется сборка Фара?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

История: как убрать группировку по датам?

Post by John Doe »

Поправил.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

История: как убрать группировку по датам?

Post by HaRT »

John Doe wrote: Поправил.
Спасибо!
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Нужна помощь”