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)
119 it.value()->deleteLater();
122 for (
auto content : mContent)
129 mPythonConsoleWidget =
nullptr;
131 mGraphTabWidget =
nullptr;
132 mModuleWidget =
nullptr;
133 mContextManagerWidget =
nullptr;
134 mGroupingManagerWidget =
nullptr;
135 mSelectionDetailsWidget =
nullptr;
136 mLoggerWidget =
nullptr;
137 if (mContextSerializer)
delete mContextSerializer;
142 return mPythonWidget;
147 return mGraphTabWidget;
152 return mSelectionDetailsWidget;
157 return mGroupingManagerWidget;
162 return mModuleWidget;
167 return mContextManagerWidget;
179 mModuleWidget->
open();
183 mContextManagerWidget->
open();
187 mGroupingManagerWidget->
open();
213 mSelectionDetailsWidget->
open();
219 mPythonWidget->
open();
223 mPythonConsoleWidget->
open();
225 mContent.append(mGraphTabWidget);
226 mContent.append(mModuleWidget);
227 mContent.append(mContextManagerWidget);
228 mContent.append(mGroupingManagerWidget);
229 mContent.append(mSelectionDetailsWidget);
230 mContent.append(mLoggerWidget);
232 mContent.append(mPythonConsoleWidget);
239 mSpecialLogContentManager->startLogging(60000);
267 if (mContextSerializer->
restore())
273 selectedContext = topModuleContextFactory();
302 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