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

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

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

Post by rvm9500 » Wed 11 Mar, 2015 19:56

Подскажите, как отключить показ дат (группировку по датам) в списках с историями фара?

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Tue 07 Apr, 2015 15:07

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

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: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Wed 08 Apr, 2015 15:43

John Doe, спасибо!
И обнаружилась блоха: если в диалоге (скажем, из панелей [b]ShiftF5[/b]) открыть историю текстового поля и там по [b]ShiftDel[/b] удалить из списка какой-то элемент, то разделители с датой возвращаются до переоткрытия списка.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Wed 08 Apr, 2015 16:42

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

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

Edit:
Оказывается DN_CLOSE подобным образом может приходить и в других случаях: http://forum.farmanager.com/viewtopic.php?f=8&t=9478

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Fri 29 May, 2015 14:07

Как только начинаю вводить фильтр, разделители снова появляются. Сложно ли это исправить?
Far 3.0 build 4363 x86
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Fri 29 May, 2015 14:46

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

Исправить можно, но лично я пользуюсь этой особенностью как фичей.

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Fri 29 May, 2015 15:54

John Doe wrote:можно
Пишу HideOnly = false — история открывается с разделителями. Какая требуется сборка Фара?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12192
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 31 times
Been thanked: 159 times

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

Post by John Doe » Fri 29 May, 2015 16:00

Поправил.

User avatar
HaRT
Moderator
Posts: 8637
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 142 times

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

Post by HaRT » Fri 29 May, 2015 16:03

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

Post Reply

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