Elaztek Developer Hub
Blamite Game Engine - Keystone  00382.05.09.23.1235.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 
26  int active_entry_index = -1;
27  bool collapsed = true;
28 
29  std::vector<BlamEditorTagFieldControl*> fields_ui;
30  bool ui_ready = false;
31 
32  int designer_next_item_id = 0;
33 
34  void ClearEntryUI();
35  void GenerateEntryUI(int index);
36 
37 public:
38  ui_tag_block_field(BlamTagField_Block* _field, BlamEditorDocument_Tag* _document, QWidget *parent = Q_NULLPTR);
39  ui_tag_block_field(BlamPluginField_Block* _template, BlamEditorDocument_Tag* _document, QWidget* parent = Q_NULLPTR);
41 
42  bool eventFilter(QObject* object, QEvent* event) override;
43 
44  void SetDesignModeActive(drag_list* _drag_list, tag_designer* _designer) override;
45  void SetDesignNameEditState(bool edit_state, bool save_changes = true) override;
46 
48 
49  void UnfocusAllContainers();
50 
51 private slots:
52  void EntryChanged(int new_index);
53 
54  void btn_add_Click();
55  void btn_duplicate_Click();
56  void btn_insert_Click();
57  void btn_delete_Click();
58  void btn_delete_all_Click();
59  void btn_rename_Click();
60  void btn_expand_collapse_Click();
61  void LabelEditEnterPressed();
62 };
BlamEditorDocument_Tag
Class representing a Tag document.
Definition: tag.h:15
ui_tag_block_field::eventFilter
bool eventFilter(QObject *object, QEvent *event) override
Definition: block.cpp:305
ui_tag_block_field::RebuildDesignModeFieldList
void RebuildDesignModeFieldList()
Definition: block.cpp:388
BlamEditorTagFieldControl
Interface used as a base for all tag field controls.
Definition: tag_fields.h:18
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
ui_tag_block_field
A tag block control.
Definition: block.h:17
drag_list
A basic interface class which can be used for drag and drop behaviors.
Definition: drag_container.h:19
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:360
ui_tag_block_field::UnfocusAllContainers
void UnfocusAllContainers()
Definition: block.cpp:452
tag_fields.h
ui_tag_block_field::~ui_tag_block_field
~ui_tag_block_field()
Definition: block.cpp:86
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:325
tag_designer
Class representing the Tag Designer.
Definition: tag_designer.h:24