summaryrefslogtreecommitdiff
path: root/editor/connections_dialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'editor/connections_dialog.h')
-rw-r--r--editor/connections_dialog.h73
1 files changed, 39 insertions, 34 deletions
diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h
index 8bad2d9b5b..dcfde8800a 100644
--- a/editor/connections_dialog.h
+++ b/editor/connections_dialog.h
@@ -35,16 +35,19 @@
#include "editor/editor_inspector.h"
#include "editor/scene_tree_editor.h"
#include "scene/gui/button.h"
+#include "scene/gui/check_box.h"
#include "scene/gui/check_button.h"
#include "scene/gui/dialogs.h"
+#include "scene/gui/label.h"
#include "scene/gui/line_edit.h"
#include "scene/gui/menu_button.h"
+#include "scene/gui/option_button.h"
#include "scene/gui/popup.h"
+#include "scene/gui/popup_menu.h"
+#include "scene/gui/spin_box.h"
#include "scene/gui/tree.h"
-class PopupMenu;
class ConnectDialogBinds;
-class SpinBox;
class ConnectDialog : public ConfirmationDialog {
GDCLASS(ConnectDialog, ConfirmationDialog);
@@ -90,8 +93,11 @@ public:
if (unbinds > 0) {
return Callable(target, method).unbind(unbinds);
} else if (!binds.is_empty()) {
- const Variant *args = binds.ptr();
- return Callable(target, method).bind(&args, binds.size());
+ const Variant **argptrs = (const Variant **)alloca(sizeof(Variant *) * binds.size());
+ for (int i = 0; i < binds.size(); i++) {
+ argptrs[i] = &binds[i];
+ }
+ return Callable(target, method).bind(argptrs, binds.size());
} else {
return Callable(target, method);
}
@@ -99,27 +105,27 @@ public:
};
private:
- Label *connect_to_label;
- LineEdit *from_signal;
- Node *source;
+ Label *connect_to_label = nullptr;
+ LineEdit *from_signal = nullptr;
+ Node *source = nullptr;
StringName signal;
- LineEdit *dst_method;
- ConnectDialogBinds *cdbinds;
- bool edit_mode;
+ LineEdit *dst_method = nullptr;
+ ConnectDialogBinds *cdbinds = nullptr;
+ bool edit_mode = false;
NodePath dst_path;
- VBoxContainer *vbc_right;
-
- SceneTreeEditor *tree;
- AcceptDialog *error;
- SpinBox *unbind_count;
- EditorInspector *bind_editor;
- OptionButton *type_list;
- CheckBox *deferred;
- CheckBox *oneshot;
- CheckButton *advanced;
+ VBoxContainer *vbc_right = nullptr;
+
+ SceneTreeEditor *tree = nullptr;
+ AcceptDialog *error = nullptr;
+ SpinBox *unbind_count = nullptr;
+ EditorInspector *bind_editor = nullptr;
+ OptionButton *type_list = nullptr;
+ CheckBox *deferred = nullptr;
+ CheckBox *oneshot = nullptr;
+ CheckButton *advanced = nullptr;
Vector<Control *> bind_controls;
- Label *error_label;
+ Label *error_label = nullptr;
void ok_pressed() override;
void _cancel_pressed();
@@ -180,19 +186,18 @@ class ConnectionsDock : public VBoxContainer {
DISCONNECT
};
- Node *selected_node;
- ConnectionsDockTree *tree;
- EditorNode *editor;
+ Node *selected_node = nullptr;
+ ConnectionsDockTree *tree = nullptr;
- ConfirmationDialog *disconnect_all_dialog;
- ConnectDialog *connect_dialog;
- Button *connect_button;
- PopupMenu *signal_menu;
- PopupMenu *slot_menu;
- UndoRedo *undo_redo;
- LineEdit *search_box;
+ ConfirmationDialog *disconnect_all_dialog = nullptr;
+ ConnectDialog *connect_dialog = nullptr;
+ Button *connect_button = nullptr;
+ PopupMenu *signal_menu = nullptr;
+ PopupMenu *slot_menu = nullptr;
+ UndoRedo *undo_redo = nullptr;
+ LineEdit *search_box = nullptr;
- Map<StringName, Map<StringName, String>> descr_cache;
+ HashMap<StringName, HashMap<StringName, String>> descr_cache;
void _filter_changed(const String &p_text);
@@ -211,7 +216,7 @@ class ConnectionsDock : public VBoxContainer {
void _handle_signal_menu_option(int p_option);
void _handle_slot_menu_option(int p_option);
- void _rmb_pressed(Vector2 p_position);
+ void _rmb_pressed(Vector2 p_position, MouseButton p_button);
void _close();
protected:
@@ -224,7 +229,7 @@ public:
void set_node(Node *p_node);
void update_tree();
- ConnectionsDock(EditorNode *p_editor = nullptr);
+ ConnectionsDock();
~ConnectionsDock();
};