mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
LibGUI: Disable the ColumnsView subview in MultiView for now
This is causing FilePicker to log a bunch of debug noise due to the missing support for tree models in SortingProxyModel and it's not helping anyone so let's just disable it. This needs fixing in SortingProxyModel.
This commit is contained in:
parent
e52d1a02c8
commit
3523071bb7
Notes:
sideshowbarker
2024-07-19 08:59:52 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/3523071bb75
3 changed files with 34 additions and 3 deletions
|
@ -156,9 +156,10 @@ FilePicker::FilePicker(Mode mode, const StringView& file_name, const StringView&
|
|||
toolbar->add_action(m_view->view_as_icons_action());
|
||||
toolbar->add_action(m_view->view_as_table_action());
|
||||
|
||||
// FIXME: Enable this once GUI::ColumnsView doesn't crash when used here.
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_view->view_as_columns_action().set_enabled(false);
|
||||
toolbar->add_action(m_view->view_as_columns_action());
|
||||
#endif
|
||||
|
||||
auto lower_container = vertical_container->add<Widget>();
|
||||
lower_container->set_layout(make<VerticalBoxLayout>());
|
||||
|
|
|
@ -40,17 +40,22 @@ MultiView::MultiView()
|
|||
{
|
||||
set_active_widget(nullptr);
|
||||
m_item_view = add<ItemView>();
|
||||
m_columns_view = add<ColumnsView>();
|
||||
m_table_view = add<TableView>();
|
||||
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_columns_view = add<ColumnsView>();
|
||||
#endif
|
||||
|
||||
m_item_view->on_activation = [&](auto& index) {
|
||||
if (on_activation)
|
||||
on_activation(index);
|
||||
};
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_columns_view->on_activation = [&](auto& index) {
|
||||
if (on_activation)
|
||||
on_activation(index);
|
||||
};
|
||||
#endif
|
||||
m_table_view->on_activation = [&](auto& index) {
|
||||
if (on_activation)
|
||||
on_activation(index);
|
||||
|
@ -64,10 +69,12 @@ MultiView::MultiView()
|
|||
if (on_selection_change)
|
||||
on_selection_change();
|
||||
};
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_columns_view->on_selection_change = [this] {
|
||||
if (on_selection_change)
|
||||
on_selection_change();
|
||||
};
|
||||
#endif
|
||||
|
||||
m_table_view->on_context_menu_request = [this](auto& index, auto& event) {
|
||||
if (on_context_menu_request)
|
||||
|
@ -77,10 +84,12 @@ MultiView::MultiView()
|
|||
if (on_context_menu_request)
|
||||
on_context_menu_request(index, event);
|
||||
};
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_columns_view->on_context_menu_request = [this](auto& index, auto& event) {
|
||||
if (on_context_menu_request)
|
||||
on_context_menu_request(index, event);
|
||||
};
|
||||
#endif
|
||||
|
||||
m_table_view->on_drop = [this](auto& index, auto& event) {
|
||||
if (on_drop)
|
||||
|
@ -90,11 +99,12 @@ MultiView::MultiView()
|
|||
if (on_drop)
|
||||
on_drop(index, event);
|
||||
};
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_columns_view->on_drop = [this](auto& index, auto& event) {
|
||||
if (on_drop)
|
||||
on_drop(index, event);
|
||||
};
|
||||
|
||||
#endif
|
||||
set_view_mode(ViewMode::Icon);
|
||||
|
||||
build_actions();
|
||||
|
@ -114,10 +124,12 @@ void MultiView::set_view_mode(ViewMode mode)
|
|||
set_active_widget(m_table_view);
|
||||
return;
|
||||
}
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
if (mode == ViewMode::Columns) {
|
||||
set_active_widget(m_columns_view);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (mode == ViewMode::Icon) {
|
||||
set_active_widget(m_item_view);
|
||||
return;
|
||||
|
@ -141,7 +153,9 @@ void MultiView::set_model_column(int column)
|
|||
return;
|
||||
m_model_column = column;
|
||||
m_item_view->set_model_column(column);
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_columns_view->set_model_column(column);
|
||||
#endif
|
||||
}
|
||||
|
||||
void MultiView::set_column_hidden(int column_index, bool hidden)
|
||||
|
@ -165,18 +179,22 @@ void MultiView::build_actions()
|
|||
});
|
||||
m_view_as_icons_action->set_checkable(true);
|
||||
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_view_as_columns_action = Action::create(
|
||||
"Columns view", Gfx::Bitmap::load_from_file("/res/icons/16x16/columns-view.png"), [this](auto&) {
|
||||
set_view_mode(ViewMode::Columns);
|
||||
m_view_as_columns_action->set_checked(true);
|
||||
});
|
||||
m_view_as_columns_action->set_checkable(true);
|
||||
#endif
|
||||
|
||||
m_view_type_action_group = make<ActionGroup>();
|
||||
m_view_type_action_group->set_exclusive(true);
|
||||
m_view_type_action_group->add_action(*m_view_as_table_action);
|
||||
m_view_type_action_group->add_action(*m_view_as_icons_action);
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
m_view_type_action_group->add_action(*m_view_as_columns_action);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
#include <LibGUI/StackWidget.h>
|
||||
#include <LibGUI/TableView.h>
|
||||
|
||||
//#define MULTIVIEW_WITH_COLUMNSVIEW
|
||||
|
||||
namespace GUI {
|
||||
|
||||
class MultiView final : public GUI::StackWidget {
|
||||
|
@ -65,8 +67,10 @@ public:
|
|||
switch (m_view_mode) {
|
||||
case ViewMode::List:
|
||||
return *m_table_view;
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
case ViewMode::Columns:
|
||||
return *m_columns_view;
|
||||
#endif
|
||||
case ViewMode::Icon:
|
||||
return *m_item_view;
|
||||
default:
|
||||
|
@ -82,7 +86,9 @@ public:
|
|||
{
|
||||
callback(*m_table_view);
|
||||
callback(*m_item_view);
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
callback(*m_columns_view);
|
||||
#endif
|
||||
}
|
||||
|
||||
Model* model() { return m_model; }
|
||||
|
@ -92,7 +98,9 @@ public:
|
|||
|
||||
Action& view_as_table_action() { return *m_view_as_table_action; }
|
||||
Action& view_as_icons_action() { return *m_view_as_icons_action; }
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
Action& view_as_columns_action() { return *m_view_as_columns_action; }
|
||||
#endif
|
||||
|
||||
private:
|
||||
MultiView();
|
||||
|
@ -106,11 +114,15 @@ private:
|
|||
|
||||
RefPtr<TableView> m_table_view;
|
||||
RefPtr<ItemView> m_item_view;
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
RefPtr<ColumnsView> m_columns_view;
|
||||
#endif
|
||||
|
||||
RefPtr<Action> m_view_as_table_action;
|
||||
RefPtr<Action> m_view_as_icons_action;
|
||||
#ifdef MULTIVIEW_WITH_COLUMNSVIEW
|
||||
RefPtr<Action> m_view_as_columns_action;
|
||||
#endif
|
||||
|
||||
OwnPtr<ActionGroup> m_view_type_action_group;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue