mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 15:32:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
	
		
			2.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_ABSTRACT(MainWidget)
 | |
| 
 | |
| public:
 | |
|     virtual ~MainWidget() = default;
 | |
|     static ErrorOr<NonnullRefPtr<MainWidget>> create();
 | |
| 
 | |
|     ErrorOr<void> initialize_menu(GUI::Window*);
 | |
|     void open_new_script();
 | |
|     void open_script_from_file(LexicalPath const&);
 | |
| 
 | |
|     bool request_close();
 | |
| 
 | |
| private:
 | |
|     ErrorOr<void> setup();
 | |
| 
 | |
|     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<DeprecatedString> m_result_column_names;
 | |
|     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;
 | 
