mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Add a disk space gauge.
This commit is contained in:
@@ -330,6 +330,10 @@ MainWindowGen::MainWindowGen( wxWindow* parent, wxWindowID id, const wxString& t
|
||||
m_dataViewColumn3 = browserTree->AppendTextColumn( wxT("Mode"), 2, wxDATAVIEW_CELL_INERT, -1, static_cast<wxAlignment>(wxALIGN_LEFT), wxDATAVIEW_COL_RESIZABLE );
|
||||
fgSizer23->Add( browserTree, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
diskSpaceGauge = new wxGauge( browsePanel, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL );
|
||||
diskSpaceGauge->SetValue( 0 );
|
||||
fgSizer23->Add( diskSpaceGauge, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxGridSizer* gSizer12;
|
||||
gSizer12 = new wxGridSizer( 0, 2, 0, 0 );
|
||||
|
||||
|
||||
@@ -2545,6 +2545,71 @@
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxGauge" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">diskSpaceGauge</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="range">100</property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxGA_HORIZONTAL</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <wx/aui/auibar.h>
|
||||
#include "visualisationcontrol.h"
|
||||
#include <wx/dataview.h>
|
||||
#include <wx/gauge.h>
|
||||
#include <wx/simplebook.h>
|
||||
#include <wx/frame.h>
|
||||
#include <wx/textctrl.h>
|
||||
@@ -101,6 +102,7 @@ class MainWindowGen : public wxFrame
|
||||
wxDataViewColumn* m_dataViewColumn1;
|
||||
wxDataViewColumn* m_dataViewColumn2;
|
||||
wxDataViewColumn* m_dataViewColumn3;
|
||||
wxGauge* diskSpaceGauge;
|
||||
wxButton* browserDiscardButton;
|
||||
wxButton* browserCommitButton;
|
||||
wxStaticText* m_staticText12;
|
||||
|
||||
@@ -458,6 +458,38 @@ public:
|
||||
{
|
||||
_filesystemModel->SetFiles(item, files);
|
||||
browserTree->Expand(item);
|
||||
UpdateDiskSpaceGauge();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
void UpdateDiskSpaceGauge()
|
||||
{
|
||||
QueueBrowserOperation(
|
||||
[this]()
|
||||
{
|
||||
auto metadata = _filesystem->getMetadata();
|
||||
|
||||
runOnUiThread(
|
||||
[&]()
|
||||
{
|
||||
try
|
||||
{
|
||||
uint32_t blockSize =
|
||||
std::stoul(metadata.at(Filesystem::BLOCK_SIZE));
|
||||
uint32_t totalBlocks =
|
||||
std::stoul(metadata.at(Filesystem::TOTAL_BLOCKS));
|
||||
uint32_t usedBlocks =
|
||||
std::stoul(metadata.at(Filesystem::USED_BLOCKS));
|
||||
|
||||
diskSpaceGauge->Enable();
|
||||
diskSpaceGauge->SetRange(totalBlocks * blockSize);
|
||||
diskSpaceGauge->SetValue(usedBlocks * blockSize);
|
||||
}
|
||||
catch (const std::out_of_range& e)
|
||||
{
|
||||
diskSpaceGauge->Disable();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user