CompilerExplorer: Add Toolbar button to add source

Change-Id: I0d8fb50fe1ce5305a93b524a9807997124ab119b
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-09-27 08:36:40 +02:00
parent 23908b283e
commit 8169e233c0
4 changed files with 34 additions and 11 deletions

View File

@@ -38,6 +38,7 @@
#include <QStandardItemModel>
#include <QTemporaryFile>
#include <QTimer>
#include <QToolBar>
#include <QToolButton>
#include <QUndoStack>
@@ -719,17 +720,13 @@ void HelperWidget::mousePressEvent(QMouseEvent *event)
event->accept();
}
void EditorWidget::addNewSource()
{
auto newSource = std::make_shared<SourceSettings>(
[settings = m_document->settings()] { return settings->apiConfig(); });
m_document->settings()->m_sources.addItem(newSource);
}
QWidget *EditorWidget::createHelpWidget() const
{
auto w = new HelperWidget;
connect(w, &HelperWidget::addSource, this, &EditorWidget::addNewSource);
connect(w,
&HelperWidget::addSource,
m_document->settings(),
&CompilerExplorerSettings::addNewSource);
return w;
}
@@ -783,6 +780,25 @@ static bool childHasFocus(QWidget *parent)
return false;
}
QWidget *Editor::toolBar()
{
if (!m_toolBar) {
m_toolBar = std::make_unique<QToolBar>();
QAction *newSource = new QAction(m_toolBar.get());
newSource->setIcon(Utils::Icons::PLUS_TOOLBAR.icon());
newSource->setToolTip(Tr::tr("Add source"));
m_toolBar->addAction(newSource);
connect(newSource,
&QAction::triggered,
m_document->settings(),
&CompilerExplorerSettings::addNewSource);
}
return m_toolBar.get();
}
EditorFactory::EditorFactory()
: m_actionHandler(Constants::CE_EDITOR_ID,
Constants::CE_EDITOR_ID,