Skip to content
Permalink
Browse files

b4622 -- 1. M#3183: Panel FreeInfo, TotalInfo - add options for human…

…-readable format (e.g. "1.375 T" free space)
  • Loading branch information...
w17 committed Apr 14, 2016
1 parent e517641 commit b2ecaa0cdb2449db098980dae0c4597dc427c6e9
Showing with 69 additions and 23 deletions.
  1. +3 −1 far/FarEng.hlf.m4
  2. +3 −1 far/FarRus.hlf.m4
  3. +7 −1 far/changelog
  4. +1 −1 far/config.cpp
  5. +1 −1 far/config.hpp
  6. +31 −12 far/filelist.cpp
  7. +21 −1 far/filepanels.cpp
  8. +1 −4 far/infolist.cpp
  9. +1 −1 far/vbuild.m4
@@ -327,6 +327,8 @@ $ #Panel control commands #
Restore default panels width #Ctrl-Numpad5#
Restore default panels height #Ctrl-Alt-Numpad5#
Show/Hide functional key bar at the bottom line. #Ctrl-B#
Toggle total and free size show mode #Ctrl-Shift-S#
(in bytes or with size suffices K/M/G/T)

#File panel commands#

@@ -1141,7 +1143,7 @@ prompt, and set the '#Local Policies/Security Options/Devices: Restrict#
shown.

^<wrap>#Ctrl-Shift-S# toggles size display mode: float with size suffixes or bytes.
Memory size display mode also changes. Current mode - far:config #Panel.Info.ShowBytes# (default=false).
Memory size display mode also changes. Current mode - far:config #Panel.ShowBytes# (default=false).

2. ^<wrap>name and type of the #current disk#, type of the file system, network
name, total and free space, disk volume label and serial number;
@@ -341,6 +341,8 @@ $ #Команды управления панелями#
Восстановить ширину панелей по умолчанию #Ctrl-Numpad5#
Восстановить высоту панелей по умолчанию #Ctrl-Alt-Numpad5#
Спрятать/Показать линейку функциональных клавиш #Ctrl-B#
Переключение режима показа общего размера файлов #Ctrl-Shift-S#
и свободного места (в байтах или суффиксами К/М/Г/Т)

#Команды файловой панели#

@@ -1174,7 +1176,7 @@ $ #Панель информации#

^<wrap>#Ctrl-Shift-S# меняет режим отображения размеров: плавающий с суффиксами или байты.
Это влияет также на отображение информации о состоянии памяти.
Текущий режим - far:config #Panel.Info.ShowBytes# (default=false).
Текущий режим - far:config #Panel.ShowBytes# (default=false).

3. Информацию о состоянии памяти
^<wrap>Уровень загрузки памяти (100% означает, что использована вся память),
@@ -1,4 +1,10 @@
zg 14.04.2016 00:25:20 +0200 - build 4621
w17 14.04.2016 16:24:08 +0300 - build 4622

1. M#3183: Panel FreeInfo, TotalInfo - add options for human-readable format (e.g. "1.375 T" free space)
Ctrl-Shift-S (M#3089) теперь влияет и на показ общего размера и свободного места в файловой панели.
Параметр изменился Panel.Info.ShowBytes -> Panel.ShowBytes

zg 14.04.2016 00:25:20 +0200 - build 4621

1. 0003213: Время перерисовки редактора почему-то становится пропорционально размеру файла.

@@ -1641,6 +1641,7 @@ void Options::InitConfigData()
{FSSF_PRIVATE, NKeyPanel,L"RightClickRule", OPT_DEF(PanelRightClickRule, 2)},
{FSSF_PRIVATE, NKeyPanel,L"SelectFolders", OPT_DEF(SelectFolders, false)},
{FSSF_PRIVATE, NKeyPanel,L"ShellRightLeftArrowsRule", OPT_DEF(ShellRightLeftArrowsRule, false)},
{FSSF_PRIVATE, NKeyPanel,L"ShowBytes", OPT_DEF(ShowBytes, false) },
{FSSF_PANEL, NKeyPanel,L"ShowHidden", OPT_DEF(ShowHidden, true)},
{FSSF_PANEL, NKeyPanel,L"ShortcutAlwaysChdir", OPT_DEF(ShortcutAlwaysChdir, false)},
{FSSF_PRIVATE, NKeyPanel,L"SortFolderExt", OPT_DEF(SortFolderExt, false)},
@@ -1650,7 +1651,6 @@ void Options::InitConfigData()
{FSSF_PRIVATE, NKeyPanelInfo,L"InfoUserNameFormat", OPT_DEF(InfoPanel.UserNameFormat, NameUserPrincipal)},
{FSSF_PRIVATE, NKeyPanelInfo,L"ShowCDInfo", OPT_DEF(InfoPanel.ShowCDInfo, true)},
{FSSF_PRIVATE, NKeyPanelInfo,L"ShowPowerStatus", OPT_DEF(InfoPanel.ShowPowerStatus, false)},
{FSSF_PRIVATE, NKeyPanelInfo,L"ShowBytes", OPT_DEF(InfoPanel.ShowBytes, false) },

{FSSF_PRIVATE, NKeyPanelLayout,L"ColoredGlobalColumnSeparator", OPT_DEF(HighlightColumnSeparator, true)},
{FSSF_PANELLAYOUT, NKeyPanelLayout,L"ColumnTitles", OPT_DEF(ShowColumnTitles, true)},
@@ -515,7 +515,6 @@ class Options: noncopyable
StringOption strShowStatusInfo;
StringOption strFolderInfoFiles;
BoolOption ShowCDInfo;
BoolOption ShowBytes;
};

struct TreeOptions
@@ -618,6 +617,7 @@ class Options: noncopyable
BoolOption ShortcutAlwaysChdir;
BoolOption Highlight;
BoolOption RightClickSelect;
BoolOption ShowBytes;

BoolOption SelectFolders;
BoolOption ReverseSort;
@@ -7890,6 +7890,33 @@ void FileList::SetShowColor(int Position, bool FileColor) const
SetColor(GetShowColor(Position,FileColor));
}

static string size2str(ULONGLONG Size, int width)
{
if (width < 0 || Global->Opt->ShowBytes)
{
string str;
InsertCommas(Size, str);
return str;
}
else if (width <= 0) // float style
{
string str;
FileSizeToStr(str, Size, 10, COLUMN_FLOATSIZE | COLUMN_SHOWBYTESINDEX);
RemoveExternalSpaces(str);
return str;
}
else
{
string str = std::to_wstring(Size);
if (str.size() > static_cast<size_t>(width))
{
FileSizeToStr(str, Size, width, COLUMN_SHOWBYTESINDEX);
RemoveExternalSpaces(str);
}
return str;
}
}

void FileList::ShowSelectedSize()
{

@@ -7913,8 +7940,7 @@ void FileList::ShowSelectedSize()

if (m_SelFileCount)
{
string strFormStr;
InsertCommas(SelFileSize,strFormStr);
auto strFormStr = size2str(SelFileSize, -6);
auto strSelStr = string_format(MListFileSize, strFormStr, m_SelFileCount - m_SelDirCount, m_SelDirCount);
TruncStr(strSelStr,m_X2-m_X1-1);
int Length=(int)strSelStr.size();
@@ -7930,20 +7956,13 @@ void FileList::ShowTotalSize(const OpenPanelInfo &Info)
if (!Global->Opt->ShowPanelTotals && m_PanelMode == panel_mode::PLUGIN_PANEL && !(Info.Flags & OPIF_REALNAMES))
return;

string strFormSize, strFreeSize, strTotalStr;
string strFreeSize, strTotalStr;
int Length;
InsertCommas(TotalFileSize,strFormSize);
auto strFormSize = size2str(TotalFileSize, 6);

if (Global->Opt->ShowPanelFree && (m_PanelMode != panel_mode::PLUGIN_PANEL || (Info.Flags & OPIF_REALNAMES)))
{
if(FreeDiskSize != static_cast<unsigned __int64>(-1))
{
InsertCommas(FreeDiskSize,strFreeSize);
}
else
{
strFreeSize = L"?";
}
strFreeSize = (FreeDiskSize != static_cast<unsigned __int64>(-1)) ? size2str(FreeDiskSize, 0) : L"?";
}

if (Global->Opt->ShowPanelTotals)
@@ -541,7 +541,27 @@ int FilePanels::ProcessKey(const Manager::Key& Key)
case KEY_CTRLSHIFTS:
case KEY_RCTRLSHIFTS:
{
process_default = !ActivePanel()->IsVisible() || PassivePanel()->GetType() != panel_type::INFO_PANEL || !PassivePanel()->ProcessKey(Key);
process_default = true;
if (ActivePanel()->IsVisible())
{
auto atype = ActivePanel()->GetType();
bool active_redraw = (atype == panel_type::FILE_PANEL || atype == panel_type::INFO_PANEL);
bool passive_redraw = false;
if (PassivePanel()->IsVisible())
{
auto ptype = PassivePanel()->GetType();
passive_redraw = (ptype == panel_type::FILE_PANEL || ptype == panel_type::INFO_PANEL);
}
if (active_redraw || passive_redraw)
{
process_default = false;
Global->Opt->ShowBytes = !Global->Opt->ShowBytes;
if (active_redraw)
ActivePanel()->Redraw();
if (passive_redraw)
PassivePanel()->Redraw();
}
}
break;
}
case KEY_CTRLO:
@@ -374,7 +374,7 @@ void InfoList::DisplayObject()
auto size2str = [&bytes_suffix](ULONGLONG Size)
{
string str;
if (Global->Opt->InfoPanel.ShowBytes) {
if (Global->Opt->ShowBytes) {
InsertCommas(Size, str); str += L" ";
}
else {
@@ -759,9 +759,6 @@ int InfoList::ProcessKey(const Manager::Key& Key)
Parent()->Redraw();
return TRUE;
}
case KEY_CTRLSHIFTS:
case KEY_RCTRLSHIFTS:
Global->Opt->InfoPanel.ShowBytes = !Global->Opt->InfoPanel.ShowBytes; // pass to Redraw()...
case KEY_CTRLR:
case KEY_RCTRLR:
{
@@ -1 +1 @@
m4_define(BUILD,4621)m4_dnl
m4_define(BUILD,4622)m4_dnl

0 comments on commit b2ecaa0

Please sign in to comment.
You can’t perform that action at this time.