change toolbar buttons to QAction

This commit is contained in:
jussi 2019-10-09 14:11:35 +03:00
parent 6937f8870e
commit cf8ede3a50
2 changed files with 53 additions and 8 deletions

View File

@ -15,14 +15,38 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
m_mainToolBar->setFloatable(true);
m_mainLayout->addWidget(m_mainToolBar);
// Add toolbar buttons
QToolButton *settingsButton = new QToolButton;
settingsButton->setCheckable(true);
settingsButton->setIcon(QIcon::fromTheme("configure"));
m_mainToolBar->addWidget(settingsButton);
m_mainStackedWidget = new QStackedWidget;
AssignableWidget *assignableWidget = new AssignableWidget;
m_mainLayout->addWidget(assignableWidget);
m_assignableWidget = new AssignableWidget;
m_mainStackedWidget->addWidget(m_assignableWidget);
m_settingWidget = new QWidget;
m_mainStackedWidget->addWidget(m_settingWidget);
m_mainLayout->addWidget(m_mainStackedWidget);
// Add toolbar buttons
// Connect tool buttons to changing the active stacked widget
QAction *activateSettings = new QAction;
activateSettings->setCheckable(true);
activateSettings->setIcon(QIcon::fromTheme("configure"));
m_mainToolBar->addAction(activateSettings);
QAction *activateEditor = new QAction;
activateEditor->setCheckable(true);
activateEditor->setIcon(QIcon::fromTheme("edit-entry"));
m_mainToolBar->addAction(activateEditor);
connect(activateSettings, &QAction::triggered, [=]() {
changeActiveWidget(m_settingWidget, activateSettings);
});
/*connect(settingsButton, &QToolButton::toggled, [=](bool toggled) {
if (toggled) {
m_mainStackedWidget->setCurrentWidget(m_settingWidget);
}
});*/
m_mainWidget->setLayout(m_mainLayout);
setCentralWidget(m_mainWidget);
@ -30,3 +54,12 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
MainWindow::~MainWindow() {
}
void MainWindow::changeActiveWidget(QWidget *widget, const QAction *action) {
// Replace this with list of actions that change widgets
for (QAction *i_actions : m_mainToolBar->actions()) {
}
m_mainStackedWidget->setCurrentWidget(widget);
}

View File

@ -1,10 +1,13 @@
#pragma once
#include <AssignableWidget.h>
#include <QMainWindow>
#include <QLayout>
#include <QToolBar>
#include <QToolButton>
#include <QStackedWidget>
#include <QMap>
namespace Ui {
class MainWindow;
@ -20,9 +23,18 @@ private:
QGridLayout *m_mainLayout;
QStatusBar *m_mainStatusBar;
QWidget *m_mainWidget;
QToolBar *m_mainToolBar;
// Stacked widgets for the main view
QStackedWidget *m_mainStackedWidget;
QVector <QWidget*> m_mainStackedWidgetWidgets;
AssignableWidget *m_assignableWidget;
QWidget *m_settingWidget;
// List of widget switch triggers so we know which ones to uncheck
QVector <QAction*> m_widgetSwitchTriggers;
// Setup connections
void setupConnections();
// Change current stacked widget according to the action that was triggered
void changeActiveWidget(QWidget *widget, const QAction *action);
};