35 #include <QGraphicsScene>
36 #include <QGraphicsView>
37 #include <QOpenGLWidget>
42 ExternalContent* ExternalContent::inst =
nullptr;
55 if ((*it)->name() == pluginName)
65 itw.value()->remove();
66 itw.value()->deleteLater();
82 bool ContentManager::sSettingsInitialized = initializeSettings();
83 bool ContentManager::initializeSettings()
91 "keybinds/searchbar_toggle",
94 "Keybind for toggeling the searchbar in widgets where available (Selection Details Widget, Modules Widget, Python Editor, Views Widget, Grouping Widget).");
99 "keybinds/item_delete",
101 "Keybindings:Global",
102 "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();
139 for (
auto content : mContent)
146 mPythonConsoleWidget =
nullptr;
148 mGraphTabWidget =
nullptr;
149 mModuleWidget =
nullptr;
150 mContextManagerWidget =
nullptr;
151 mGroupingManagerWidget =
nullptr;
152 mSelectionDetailsWidget =
nullptr;
153 mLoggerWidget =
nullptr;
154 if (mContextSerializer)
delete mContextSerializer;
159 return mPythonWidget;
164 return mGraphTabWidget;
169 return mSelectionDetailsWidget;
174 return mGroupingManagerWidget;
179 return mModuleWidget;
184 return mContextManagerWidget;
196 mModuleWidget->
open();
200 mContextManagerWidget->
open();
204 mGroupingManagerWidget->
open();
230 mSelectionDetailsWidget->
open();
236 mPythonWidget->
open();
240 mPythonConsoleWidget->
open();
242 mContent.append(mGraphTabWidget);
243 mContent.append(mModuleWidget);
244 mContent.append(mContextManagerWidget);
245 mContent.append(mGroupingManagerWidget);
246 mContent.append(mSelectionDetailsWidget);
247 mContent.append(mLoggerWidget);
249 mContent.append(mPythonConsoleWidget);
256 mSpecialLogContentManager->startLogging(60000);
284 if (mContextSerializer->
restore())
290 selectedContext = topModuleContextFactory();
319 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()
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
QList::iterator erase(QList::iterator pos)
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