diff --git a/Applications/FileManager/CMakeLists.txt b/Applications/FileManager/CMakeLists.txt index f650c97402..d81fc89bef 100644 --- a/Applications/FileManager/CMakeLists.txt +++ b/Applications/FileManager/CMakeLists.txt @@ -6,7 +6,7 @@ set(SOURCES FileManagerWindowGML.h FileUtils.cpp main.cpp - PropertiesDialog.cpp + PropertiesWindow.cpp ) serenity_app(FileManager ICON filetype-folder) diff --git a/Applications/FileManager/PropertiesDialog.cpp b/Applications/FileManager/PropertiesWindow.cpp similarity index 95% rename from Applications/FileManager/PropertiesDialog.cpp rename to Applications/FileManager/PropertiesWindow.cpp index 9778c6a227..8c0ff9f74e 100644 --- a/Applications/FileManager/PropertiesDialog.cpp +++ b/Applications/FileManager/PropertiesWindow.cpp @@ -24,7 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "PropertiesDialog.h" +#include "PropertiesWindow.h" #include #include #include @@ -43,8 +43,8 @@ #include #include -PropertiesDialog::PropertiesDialog(const String& path, bool disable_rename, Window* parent_window) - : Dialog(parent_window) +PropertiesWindow::PropertiesWindow(const String& path, bool disable_rename, Window* parent_window) + : Window(parent_window) { auto lexical_path = LexicalPath(path); ASSERT(lexical_path.is_valid()); @@ -166,15 +166,17 @@ PropertiesDialog::PropertiesDialog(const String& path, bool disable_rename, Wind update(); } -PropertiesDialog::~PropertiesDialog() { } +PropertiesWindow::~PropertiesWindow() +{ +} -void PropertiesDialog::update() +void PropertiesWindow::update() { m_icon->set_bitmap(GUI::FileIconProvider::icon_for_path(make_full_path(m_name), m_mode).bitmap_for_size(32)); set_title(String::formatted("{} - Properties", m_name)); } -void PropertiesDialog::permission_changed(mode_t mask, bool set) +void PropertiesWindow::permission_changed(mode_t mask, bool set) { if (set) { m_mode |= mask; @@ -186,12 +188,12 @@ void PropertiesDialog::permission_changed(mode_t mask, bool set) m_apply_button->set_enabled(m_name_dirty || m_permissions_dirty); } -String PropertiesDialog::make_full_path(const String& name) +String PropertiesWindow::make_full_path(const String& name) { return String::formatted("{}/{}", m_parent_path, name); } -bool PropertiesDialog::apply_changes() +bool PropertiesWindow::apply_changes() { if (m_name_dirty) { String new_name = m_name_box->text(); @@ -227,7 +229,7 @@ bool PropertiesDialog::apply_changes() return true; } -void PropertiesDialog::make_permission_checkboxes(GUI::Widget& parent, PermissionMasks masks, String label_string, mode_t mode) +void PropertiesWindow::make_permission_checkboxes(GUI::Widget& parent, PermissionMasks masks, String label_string, mode_t mode) { auto& widget = parent.add(); widget.set_layout(); @@ -261,7 +263,7 @@ void PropertiesDialog::make_permission_checkboxes(GUI::Widget& parent, Permissio box_execute.set_enabled(can_edit_checkboxes); } -void PropertiesDialog::make_property_value_pairs(const Vector& pairs, GUI::Widget& parent) +void PropertiesWindow::make_property_value_pairs(const Vector& pairs, GUI::Widget& parent) { int max_width = 0; Vector> property_labels; @@ -294,7 +296,7 @@ void PropertiesDialog::make_property_value_pairs(const Vector label->set_fixed_width(max_width); } -GUI::Button& PropertiesDialog::make_button(String text, GUI::Widget& parent) +GUI::Button& PropertiesWindow::make_button(String text, GUI::Widget& parent) { auto& button = parent.add(text); button.set_fixed_size(70, 22); diff --git a/Applications/FileManager/PropertiesDialog.h b/Applications/FileManager/PropertiesWindow.h similarity index 94% rename from Applications/FileManager/PropertiesDialog.h rename to Applications/FileManager/PropertiesWindow.h index ad95d8ae23..d2801f8049 100644 --- a/Applications/FileManager/PropertiesDialog.h +++ b/Applications/FileManager/PropertiesWindow.h @@ -34,13 +34,14 @@ #include #include -class PropertiesDialog final : public GUI::Dialog { - C_OBJECT(PropertiesDialog) +class PropertiesWindow final : public GUI::Window { + C_OBJECT(PropertiesWindow); + public: - virtual ~PropertiesDialog() override; + virtual ~PropertiesWindow() override; private: - PropertiesDialog(const String& path, bool disable_rename, Window* parent = nullptr); + PropertiesWindow(const String& path, bool disable_rename, Window* parent = nullptr); struct PropertyValuePair { String property; diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index 5e81cfee5b..c7372106f5 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -27,7 +27,7 @@ #include "DesktopWidget.h" #include "DirectoryView.h" #include "FileUtils.h" -#include "PropertiesDialog.h" +#include "PropertiesWindow.h" #include #include #include @@ -195,14 +195,17 @@ void do_create_link(const Vector& selected_file_paths, GUI::Window* wind void show_properties(const String& container_dir_path, const String& path, const Vector& selected, GUI::Window* window) { - RefPtr properties; + RefPtr properties; if (selected.is_empty()) { - properties = window->add(path, true); + properties = window->add(path, true); } else { - properties = window->add(selected.first(), access(container_dir_path.characters(), W_OK) != 0); + properties = window->add(selected.first(), access(container_dir_path.characters(), W_OK) != 0); } - - properties->exec(); + properties->on_close = [properties = properties.ptr()] { + properties->remove_from_parent(); + }; + properties->center_on_screen(); + properties->show(); } int run_in_desktop_mode([[maybe_unused]] RefPtr config)