Elaztek Developer Hub
Blamite Game Engine - Keystone  00386.06.16.23.0646.blamite
A library that enables the use of Qt in Blamite's editing tools.
block.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QWidget>
4 #include <vector>
5 #include <HEKGuerilla/components/tags/fields/block/block.h>
6 
9 #include "ui_block.h"
10 
18 {
19  Q_OBJECT
20 
21 private:
22  Ui::ui_tag_block ui;
23  BlamTagField_Block* field = nullptr;
24  BlamPluginField_Block* template_field = nullptr;
25  bool is_template = false;
26 
27  int active_entry_index = -1;
28  bool collapsed = true;
29 
30  std::vector<BlamEditorTagFieldControl*> fields_ui;
31  bool ui_ready = false;
32 
33  int designer_next_item_id = 0;
34 
35  void ClearEntryUI();
36  void GenerateEntryUI(int index);
37 
38 public:
39  ui_tag_block_field(BlamTagField_Block* _field, BlamEditorDocument_Tag* _document, QWidget *parent = Q_NULLPTR);
40  ui_tag_block_field(BlamPluginField_Block* _template, BlamEditorDocument_Tag* _document, QWidget* parent = Q_NULLPTR);
42 
43  bool eventFilter(QObject* object, QEvent* event) override;
44 
45  void SetDesignModeActive(drag_list* _drag_list, tag_designer* _designer) override;
46  void SetDesignNameEditState(bool edit_state, bool save_changes = true) override;
47 
49 
50  void UnfocusAllContainers();
51 
52  void SetupUI() override;
53 
54 private slots:
55  void EntryChanged(int new_index);
56 
57  void btn_add_Click();
58  void btn_duplicate_Click();
59  void btn_insert_Click();
60  void btn_delete_Click();
61  void btn_delete_all_Click();
62  void btn_rename_Click();
63  void btn_expand_collapse_Click();
64  void LabelEditEnterPressed();
65 };
drag_list::GenerateDropZones
void GenerateDropZones(bool clear_existing=true)
Generates drop zones for the given drag list.
Definition: drag_list.cpp:5
block.h
BlamEditorDocument_Tag
Class representing a Tag document.
Definition: tag.h:15
BlamEditorDocument_Tag::show_invisibles
bool show_invisibles
Whether or not to show invisible (hidden) fields in the editor.
Definition: tag.h:21
ui_tag_block_field::eventFilter
bool eventFilter(QObject *object, QEvent *event) override
Definition: block.cpp:269
drag_container
Class representing a draggable widget container.
Definition: drag_container.h:90
BlamKeystone::UI::TagFields::GenerateFieldTemplateControl
KEYSTONE BlamEditorTagFieldControl * GenerateFieldTemplateControl(BlamPluginField *field, BlamEditorDocument_Tag *document)
Generates a UI control for a given plugin field.
Definition: tag_fields.cpp:84
ui_comment_field
A comment field control.
Definition: comment.h:15
ui_tag_block_field::RebuildDesignModeFieldList
void RebuildDesignModeFieldList()
Definition: block.cpp:365
BlamEditorTagFieldControl::document
BlamEditorDocument_Tag * document
The document this field belongs to.
Definition: tag_fields.h:24
BlamEditorTagFieldControl
Interface used as a base for all tag field controls.
Definition: tag_fields.h:18
ui_tag_block_field::SetupUI
void SetupUI() override
Configures the UI for the current field.
Definition: block.cpp:460
ui_tag_block_field::ui_tag_block_field
ui_tag_block_field(BlamTagField_Block *_field, BlamEditorDocument_Tag *_document, QWidget *parent=Q_NULLPTR)
Definition: block.cpp:13
drag_container.h
drag_list::GetContentWidgets
std::vector< QWidget * > GetContentWidgets()
Retrieves a list of all content widgets within the drag list.
Definition: drag_list.cpp:56
drag_container::field_data
BlamPluginField * field_data
The plugin field that belongs to this container.
Definition: drag_container.h:143
ui_tag_block_field
A tag block control.
Definition: block.h:17
drag_list::drag_layout
QBoxLayout * drag_layout
The layout container that holds all drag and drop widgets.
Definition: drag_container.h:22
drag_container::tag_field_control
BlamEditorTagFieldControl * tag_field_control
The tag field widget that belongs to this container.
Definition: drag_container.h:144
BlamEditorTagFieldControl::drag_drop_list
drag_list * drag_drop_list
The active drag list that owns this control. Only used when design_mode is enabled.
Definition: tag_fields.h:26
comment.h
drag_list
A basic interface class which can be used for drag and drop behaviors.
Definition: drag_container.h:19
tag_designer::GeneratePluginFieldControl
void GeneratePluginFieldControl(drag_list *destination_drag_list, BlamPluginField *plugin_field)
Creates a new plugin field control and adds it to a drag list.
Definition: tag_designer.cpp:213
BlamEditorTagFieldControl::design_mode
bool design_mode
Whether or not this field is currently in design mode.
Definition: tag_fields.h:25
tag.h
ui_tag_block_field::SetDesignNameEditState
void SetDesignNameEditState(bool edit_state, bool save_changes=true) override
Enables or disables the label edit field for the current field.
Definition: block.cpp:332
ui_tag_block_field::UnfocusAllContainers
void UnfocusAllContainers()
Definition: block.cpp:429
tag_fields.h
ui_tag_block_field::~ui_tag_block_field
~ui_tag_block_field()
Definition: block.cpp:50
ui_tag_block_field::SetDesignModeActive
void SetDesignModeActive(drag_list *_drag_list, tag_designer *_designer) override
Instructs the field to be editable as a designer field.
Definition: block.cpp:289
BlamEditorTagFieldControl::designer
tag_designer * designer
The active tag designer that owns this control. Only used when design_mode is enabled.
Definition: tag_fields.h:27
tag_designer.h
BlamKeystone::UI::TagFields::GenerateFieldControl
KEYSTONE BlamEditorTagFieldControl * GenerateFieldControl(BlamTagField *field, BlamEditorDocument_Tag *document)
Generates a UI control for a given field.
Definition: tag_fields.cpp:19
tag_designer
Class representing the Tag Designer.
Definition: tag_designer.h:24
BlamEditorDocument_Tag::show_unused_fields
bool show_unused_fields
Whether or not to show unused fields in the editor.
Definition: tag.h:22
drag_container::SetFocusState
void SetFocusState(bool focus_state, bool force_update=false)
Sets the drag container's focus state.
Definition: drag_container.cpp:312