35 #include <QGraphicsScene>
36 #include <QGraphicsView>
37 #include <QOpenGLWidget>
42 ExternalContent* ExternalContent::inst =
nullptr;
65 bool ContentManager::sSettingsInitialized = initializeSettings();
66 bool ContentManager::initializeSettings()
74 "keybinds/searchbar_toggle",
77 "Keybind for toggeling the searchbar in widgets where available (Selection Details Widget, Modules Widget, Python Editor, Views Widget, Grouping Widget).");
82 "keybinds/item_delete",
85 "Keybind for deleting the focused Item.");
91 mPythonConsoleWidget(nullptr),
92 mPythonWidget(nullptr),
93 mGraphTabWidget(nullptr),
94 mModuleWidget(nullptr),
95 mContextManagerWidget(nullptr),
96 mGroupingManagerWidget(nullptr),
97 mSelectionDetailsWidget(nullptr),
98 mLoggerWidget(nullptr),
99 mContextSerializer(nullptr)
116 for (
auto content : mContent)
123 mPythonConsoleWidget =
nullptr;
125 mGraphTabWidget =
nullptr;
126 mModuleWidget =
nullptr;
127 mContextManagerWidget =
nullptr;
128 mGroupingManagerWidget =
nullptr;
129 mSelectionDetailsWidget =
nullptr;
130 mLoggerWidget =
nullptr;
131 if (mContextSerializer)
delete mContextSerializer;
136 return mPythonWidget;
141 return mGraphTabWidget;
146 return mSelectionDetailsWidget;
151 return mGroupingManagerWidget;
156 return mModuleWidget;
161 return mContextManagerWidget;
173 mModuleWidget->
open();
177 mContextManagerWidget->
open();
181 mGroupingManagerWidget->
open();
207 mSelectionDetailsWidget->
open();
213 mPythonWidget->
open();
217 mPythonConsoleWidget->
open();
219 mContent.append(mGraphTabWidget);
220 mContent.append(mModuleWidget);
221 mContent.append(mContextManagerWidget);
222 mContent.append(mGroupingManagerWidget);
223 mContent.append(mSelectionDetailsWidget);
224 mContent.append(mLoggerWidget);
226 mContent.append(mPythonConsoleWidget);
233 mSpecialLogContentManager->startLogging(60000);
261 if (mContextSerializer->
restore())
267 selectedContext = topModuleContextFactory();
296 if (!top_module)
return nullptr;
virtual ExternalContentWidget * contentFactory() const =0
GraphTabWidget * getGraphTabWidget()
Get hal's graph tab widget.
SelectionDetailsWidget * getSelectionDetailsWidget()
PythonEditor * getPythonEditorWidget()
ContentManager(MainWindow *parent)
void handleOpenDocument(const QString &fileName)
static SettingsItemKeybind * sSettingDeleteItem
GroupingManagerWidget * getGroupingManagerWidget()
static SettingsItemKeybind * sSettingSearch
ModuleWidget * getModuleWidget()
void setWindowTitle(const QString &filename)
void addExternalWidget(ContentFactory *factory)
ContextManagerWidget * getContextManagerWidget()
Abstract class for Widgets within HAL's ContentArea.
virtual void restoreFromProject()
void handleSearchKeysequenceChanged(QKeySequence seq)
Provides the user with an interface to manage GraphContexts.
void selectViewContext(GraphContext *context)
void handleOpenContextClicked()
static ExternalContent * instance()
QMap< QString, ExternalContentWidget * > openWidgets
virtual ~ExternalContentWidget()
ExternalContentWidget(const QString &pluginName, const QString &windowName, QWidget *parent=nullptr)
static FileManager * get_instance()
void fileOpened(const QString &fileName)
Logical container for modules, gates, and nets.
void setExclusiveModuleId(u32 id, bool emitSignal=true)
void add(const QSet< u32 > &modules, const QSet< u32 > &gates, PlacementHint placement=PlacementHint())
GraphContext * createNewContext(const QString &name, u32 parentId=0)
GraphContext * restoreFromFile(const QString &filename)
bool restore(const std::filesystem::path &loaddir=std::filesystem::path())
GraphContext * selectedContext() const
static QMap< QString, GuiExtensionInterface * > getGuiExtensions()
void addContent(ContentWidget *widget, int index, content_anchor anchor)
std::string get_name() const
Module * get_top_module() const
Main widget that combines all neccessary functionality to develop in python (for hal).
A SettingsItem that represents a dropdown menu.
virtual QVariant value() const override
void intChanged(int value)
A SettingsItem to modify keybinds.
void keySequenceChanged(QKeySequence value)
virtual QVariant value() const override
Logs the python editor and gui screenshots.
GraphContextManager * gGraphContextManager
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QString fromStdString(const std::string &str)
QString number(int n, int base)
std::string toStdString() const const
int toInt(bool *ok) const const
QString toString() const const