37 #include <QGraphicsScene>
38 #include <QGraphicsView>
43 ExternalContent* ExternalContent::inst =
nullptr;
56 if ((*it)->name() == pluginName)
66 itw.value()->remove();
67 itw.value()->deleteLater();
83 bool ContentManager::sSettingsInitialized = initializeSettings();
84 bool ContentManager::initializeSettings()
92 "keybinds/searchbar_toggle",
95 "Keybind for toggeling the searchbar in widgets where available (Selection Details Widget, Modules Widget, Python Editor, Views Widget, Grouping Widget).");
100 "keybinds/item_delete",
102 "Keybindings:Global",
103 "Keybind for deleting the focused Item.");
108 mPythonConsoleWidget(nullptr),
109 mPythonWidget(nullptr),
110 mGraphTabWidget(nullptr),
111 mModuleWidget(nullptr),
112 mContextManagerWidget(nullptr),
113 mGroupingManagerWidget(nullptr),
114 mSelectionDetailsWidget(nullptr),
115 mLoggerWidget(nullptr),
116 mContextSerializer(nullptr)
136 it.value()->deleteLater();
143 mPythonConsoleWidget =
nullptr;
145 mGraphTabWidget =
nullptr;
147 mModuleWidget =
nullptr;
149 mContextManagerWidget =
nullptr;
151 mGroupingManagerWidget =
nullptr;
153 mSelectionDetailsWidget =
nullptr;
155 mLoggerWidget =
nullptr;
156 if (mContextSerializer)
delete mContextSerializer;
161 return mPythonWidget;
166 return mGraphTabWidget;
171 return mSelectionDetailsWidget;
176 return mGroupingManagerWidget;
181 return mModuleWidget;
186 return mContextManagerWidget;
221 if (settingPlacement.
index >= 0)
222 cwp = settingPlacement;
226 while (!contentPlaceList.
isEmpty())
228 auto it = contentPlaceList.
begin();
229 while (it != contentPlaceList.
end())
231 if (it->index == placeIndex)
233 mMainWindow->
addContent(it->widget, it->index, it->anchorPos);
234 if (it->visible) it->widget->open();
237 it = contentPlaceList.
erase(it);
250 mSpecialLogContentManager->startLogging(60000);
278 if (mContextSerializer->
restore())
284 selectedContext = topModuleContextFactory();
309 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