37 #include <QGraphicsScene>
38 #include <QGraphicsView>
39 #include <QOpenGLWidget>
44 ExternalContent* ExternalContent::inst =
nullptr;
57 if ((*it)->name() == pluginName)
67 itw.value()->remove();
68 itw.value()->deleteLater();
84 bool ContentManager::sSettingsInitialized = initializeSettings();
85 bool ContentManager::initializeSettings()
93 "keybinds/searchbar_toggle",
96 "Keybind for toggeling the searchbar in widgets where available (Selection Details Widget, Modules Widget, Python Editor, Views Widget, Grouping Widget).");
101 "keybinds/item_delete",
103 "Keybindings:Global",
104 "Keybind for deleting the focused Item.");
109 mPythonConsoleWidget(nullptr),
110 mPythonWidget(nullptr),
111 mGraphTabWidget(nullptr),
112 mModuleWidget(nullptr),
113 mContextManagerWidget(nullptr),
114 mGroupingManagerWidget(nullptr),
115 mSelectionDetailsWidget(nullptr),
116 mLoggerWidget(nullptr),
117 mContextSerializer(nullptr)
137 it.value()->deleteLater();
144 mPythonConsoleWidget =
nullptr;
146 mGraphTabWidget =
nullptr;
148 mModuleWidget =
nullptr;
150 mContextManagerWidget =
nullptr;
152 mGroupingManagerWidget =
nullptr;
154 mSelectionDetailsWidget =
nullptr;
156 mLoggerWidget =
nullptr;
157 if (mContextSerializer)
delete mContextSerializer;
162 return mPythonWidget;
167 return mGraphTabWidget;
172 return mSelectionDetailsWidget;
177 return mGroupingManagerWidget;
182 return mModuleWidget;
187 return mContextManagerWidget;
222 if (settingPlacement.
index >= 0)
223 cwp = settingPlacement;
227 while (!contentPlaceList.
isEmpty())
229 auto it = contentPlaceList.
begin();
230 while (it != contentPlaceList.
end())
232 if (it->index == placeIndex)
234 mMainWindow->
addContent(it->widget, it->index, it->anchorPos);
235 if (it->visible) it->widget->open();
238 it = contentPlaceList.
erase(it);
251 mSpecialLogContentManager->startLogging(60000);
279 if (mContextSerializer->
restore())
285 selectedContext = topModuleContextFactory();
310 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()
void removePlugin(const QString &pluginName)
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()
ContentLayoutArea * layoutArea() const
void addContent(ContentWidget *widget, int index, ContentLayout::Position 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
void widgetDetach(ContentWidget *cw) const
static SettingsManager * instance()
ContentWidgetPlacement widgetPlacement(ContentWidget *cw) const
Logs the python editor and gui screenshots.
GraphContextManager * gGraphContextManager
void append(const T &value)
QList::iterator erase(QList::iterator pos)
bool isEmpty() const const
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