1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-15 14:34:59 +00:00
serenity/Userland/DevTools/SQLStudio/MainWidget.h
Timothy Flynn e3d5b67eaf SQLStudio: Remove (unimplemented) ability to open database storage files
It may be handy to have some sort of storage inspector at some point but
for now, it doesn't make sense to open a database file. So only allow
opening script files, and don't make assumptions on their extension.
2022-12-30 14:17:18 +01:00

77 lines
2 KiB
C++

/*
* Copyright (c) 2022, Dylan Katz <dykatz@uw.edu>
* Copyright (c) 2022, Tim Flynn <trflynn89@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/LexicalPath.h>
#include <AK/Vector.h>
#include <LibGUI/Widget.h>
#include <LibSQL/SQLClient.h>
namespace SQLStudio {
class ScriptEditor;
class MainWidget : public GUI::Widget {
C_OBJECT(MainWidget)
public:
virtual ~MainWidget() = default;
void initialize_menu(GUI::Window*);
void open_new_script();
void open_script_from_file(LexicalPath const&);
bool request_close();
private:
MainWidget();
ScriptEditor* active_editor();
void update_title();
void on_editor_change();
void update_statusbar(ScriptEditor*);
void update_editor_actions(ScriptEditor*);
virtual void drag_enter_event(GUI::DragEvent&) override;
virtual void drop_event(GUI::DropEvent&) override;
RefPtr<GUI::Action> m_new_action;
RefPtr<GUI::Action> m_open_action;
RefPtr<GUI::Action> m_save_action;
RefPtr<GUI::Action> m_save_as_action;
RefPtr<GUI::Action> m_save_all_action;
RefPtr<GUI::Action> m_copy_action;
RefPtr<GUI::Action> m_cut_action;
RefPtr<GUI::Action> m_paste_action;
RefPtr<GUI::Action> m_undo_action;
RefPtr<GUI::Action> m_redo_action;
RefPtr<GUI::Action> m_connect_to_database_action;
RefPtr<GUI::Action> m_run_script_action;
int m_new_script_counter { 1 };
RefPtr<GUI::ComboBox> m_databases_combo_box;
RefPtr<GUI::TabWidget> m_tab_widget;
RefPtr<GUI::Statusbar> m_statusbar;
RefPtr<GUI::TabWidget> m_action_tab_widget;
RefPtr<GUI::Widget> m_query_results_widget;
RefPtr<GUI::TableView> m_query_results_table_view;
RefPtr<SQL::SQLClient> m_sql_client;
Optional<SQL::ConnectionID> m_connection_id;
Vector<Vector<DeprecatedString>> m_results;
void read_next_sql_statement_of_editor();
Optional<DeprecatedString> read_next_line_of_editor();
size_t m_current_line_for_parsing { 0 };
int m_editor_line_level { 0 };
};
}
using SQLStudio::MainWidget;