Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)

Модерирует : gyra, Maz

Maz (15-01-2020 17:38): FAR Manager (часть 6)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
local far,F,msg = far,far.Flags,far.SendDlgMessage
------------------------------------------------------------------------------
-- Расширение возможностей копирования, переноса и создания папок. © SimSU
-- версия от 06.09.2015
--
-- Изменения и исправления:
--
-- исправлен баг с вызовом SimSU.Shell_Shift_F5F6F7.MkDir() на временной панели
-- за подсказку спасибо Shmuel. Баг существовал с версии скрипта от 21.07.2013.
-- закомментированы макросы для F5 и F6 ибо вечно чудят создавая ошибочную
-- рекурсию каталогов при операциях COPY/MOVE.
-- /авторы изменений и исправлений VictorVG и Shmuel/
-------------------------------------------------------------------------------
 
---- Настройки
local function Settings()
-- Начало файла Profile\SimSU\Shell_Shift_F5F6F7.cfg
return{
  KeyCopy="F5"; --PriorCopy=50;
  KeyMove="F6"; --PriorMove=50;
  KeyMkDir="F7"; --PriorMkDir=50;
  KeyDuplicate="ShiftF5"; --PriorDuplicate=50;
  KeyRename="ShiftF6"; --PriorRename=50;
  KeyNameDir="ShiftF7"; --PriorNameDir=50;
 
  NameFormat="%Y_%m_%d";
 
  DisableHistory=true; --ProirDisableHistory=50;
}
-- Конец файла Profile\SimSU\Shell_Shift_F5F6F7.cfg
end
 
---- Локализация
_G.far.lang=far.lang or win.GetEnv("farlang")
-- Встроенные языки / Buildin laguages
local function Messages()
if far.lang=="Russian" then
-- Начало файла Profile\SimSU\Shell_Shift_F5F6F7Russian.lng
return{
  DescrCopy="Копирование с возможностью изменения имени. © SimSU";
  DescrMove="Перемещение с возможностью изменения имени. © SimSU";
  DescrMkDir="Создание папки с именем = текущая дата. © SimSU";
  DescrDuplicate="Дублирование с сохранением расширения. © SimSU";
  DescrRename="Переименование с сохранением расширения. © SimSU";
  DescrNameDir="Создание папки на пассивной с именем как у файла под курсором. © SimSU";
  DescrDisableHistory="Не сохранять в истории созданные макросом значения. © SimSU";
}
-- Конец файла Profile\SimSU\Shell_Shift_F5F6F7Russian.lng
else--if far.lang=="English" then
-- Begin of file Profile\SimSU\Shell_Shift_F5F6F7English.lng
return{
  DescrCopy="Копирование с возможностью изменения имени. © SimSU";
  DescrMove="Перемещение с возможностью изменения имени. © SimSU";
  DescrMkDir="Создание папки с именем = текущая дата. © SimSU";
  DescrDuplicate="Дублирование с сохранением расширения. © SimSU";
  DescrRename="Переименование с сохранением расширения. © SimSU";
  DescrNameDir="Создание папки на пассивной с именем как у файла под курсором. © SimSU";
  DescrDisableHistory="Не сохранять в истории созданные макросом значения. © SimSU";
}
-- End of file Profile\SimSU\Shell_Shift_F5F6F7English.lng
end end
 
local M=(loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Shell_Shift_F5F6F7"..far.lang..".lng") or Messages)()
local S=(loadfile(win.GetEnv("FARLOCALPROFILE").."\\SimSU\\Shell_Shift_F5F6F7.cfg") or loadfile(win.GetEnv("FARPROFILE").."\\SimSU\\Shell_Shift_F5F6F7.cfg") or Settings)()
 
local SimSU=SimSU or {}
SimSU.Shell_Shift_F5F6F7={}
-------------------------------------------------------------------------------
S.NameFormat= S.NameFormat or "%Y_%m_%d"
local Hdlg,Id
local _
 
function SimSU.Shell_Shift_F5F6F7.CopyMove(Key)
  Key=Key or "F5"
  if APanel.SelCount<2 and APanel.Path~=PPanel.Path and PPanel.Visible and PPanel.Type==0 and not APanel.Bof then
    Keys(Key.." End")
    local CP=Dlg.GetValue(-1,0):len()
    print(panel.GetSelectedPanelItem(nil,1,1).FileName)
    Keys("Home") for _=1,CP do Keys("Right") end
    Keys("ShiftEnd") if mf.fsplit(Dlg.GetValue(-1,0),0x8)~="" then Keys("CtrlShiftLeft ShiftLeft") end -- Выделяем только имя файла
  else
    Keys(Key)
  end
  return true
end
 
function SimSU.Shell_Shift_F5F6F7.MkDir()
  Keys("F7")--; print(os.date(NameFormat)); Keys("Home ShiftEnd")
    Hdlg=far.AdvControl(F.ACTL_GETWINDOWINFO).Id
    Id=msg(Hdlg,F.DM_GETFOCUS)
    msg(Hdlg,F.DM_SETTEXT,Id,os.date(S.NameFormat))
    local Value=msg(Hdlg,F.DM_GETTEXT,Id,os.date(S.NameFormat))
    msg(Hdlg,F.DM_EDITUNCHANGEDFLAG,Id,1)
  return Value
end
 
function SimSU.Shell_Shift_F5F6F7.DupRen(Key)
  Key=Key or "ShiftF5"
  Keys(Key)
  if mf.fsplit(Dlg.GetValue(-1,0),0x8)~="" then
    Keys("Home ShiftEnd CtrlShiftLeft ShiftLeft")
  end
  return true
end
 
function SimSU.Shell_Shift_F5F6F7.NameDir()
  local path=PPanel.Path.."\\"..mf.fsplit(APanel.Current,0x4)
  win.CreateDir(path)
  Panel.SetPath(1,path)
  return true
end
 
--function SimSU.Shell_Shift_F5F6F7.DisableHistory(Event,Param)
--  local tId=msg(Hdlg,F.DM_GETFOCUS)
--  if Id==tId then
--    local tValue=msg(Hdlg,F.DM_GETTEXT,Id,os.date(NameFormat))
--    if Value==tValue then
--      local item = far.GetDlgItem(Hdlg,Id)
--      item[9] = bor(item[9],F.DIF_MANUALADDHISTORY)
--      item = far.SetDlgItem(Hdlg,Id,item)
----      Far.DisableHistory(-1)
--    end
--  end
--  return true
--end
 
-------------------------------------------------------------------------------
if not Macro then return {Shell_Shift_F5F6F7=SimSU.Shell_Shift_F5F6F7} end
 
local ok, mod = pcall(require,"SimSU.Shell_Shift_F5F6F7"); if ok then SimSU=mod else _G.SimSU=SimSU end
-------------------------------------------------------------------------------
--[[
Macro {area="Shell Tree Search"; key=S.KeyCopy; priority=S.PriorCopy; description=M.DescrCopy; flags="NoPluginPanels NoPluginPPanels";
  action=function()  SimSU.Shell_Shift_F5F6F7.CopyMove("F5") end;
}
Macro {area="Shell Tree Search"; key=S.KeyMove; priority=S.PriorMove; description=M.DescrMove; flags="NoPluginPanels NoPluginPPanels";
  action=function()  SimSU.Shell_Shift_F5F6F7.CopyMove("F6") end;
}
--]]
Macro {area="Shell Tree Search"; key=S.KeyMkDir; priority=S.PriorMkDir; description=M.DescrMkDir; flags="NoPluginPanels";
  action=SimSU.Shell_Shift_F5F6F7.MkDir;
}
Macro {area="Shell Tree Search"; key=S.KeyDuplicate; priority=S.PriorDuplicate; description=M.DescrDuplicate; flags="NoPluginPanels";
  action=function()  SimSU.Shell_Shift_F5F6F7.DupRen("ShiftF5") end;
}
Macro {area="Shell Tree Search"; key=S.KeyRename; priority=S.PriorRename; description=M.DescrRename; flags="NoPluginPanels";
  action=function()  SimSU.Shell_Shift_F5F6F7.DupRen("ShiftF6") end;
}
Macro {area="Shell Tree Search"; key=S.KeyNameDir; priority=S.PriorNameDir; description=M.DescrNameDir; flags="NoPluginPanels";
  action=SimSU.Shell_Shift_F5F6F7.NameDir;
}
 
--Event {group="DialogEvent"; priority=S.ProirDisableHistory; description=M.DescrDisableHistory;
--  condition=function(Event,Param) return S.DisableHistory==true and Event==F.DE_DLGPROCINIT and Param.Msg==F.DN_CLOSE and Param.Param1>1 and Hdlg==far.AdvControl(F.ACTL_GETWINDOWINFO).Id end;
--  action=SimSU.Shell_Shift_F5F6F7.DisableHistory;
--}

Всего записей: 33134 | Зарегистр. 31-07-2002 | Отправлено: 21:02 14-05-2018
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 5)
Maz (15-01-2020 17:38): FAR Manager (часть 6)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru