aboutsummaryrefslogtreecommitdiff
path: root/launcher/widgets/WideBar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/widgets/WideBar.cpp')
-rw-r--r--launcher/widgets/WideBar.cpp116
1 files changed, 0 insertions, 116 deletions
diff --git a/launcher/widgets/WideBar.cpp b/launcher/widgets/WideBar.cpp
deleted file mode 100644
index cbd6c617..00000000
--- a/launcher/widgets/WideBar.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-#include "WideBar.h"
-#include <QToolButton>
-#include <QMenu>
-
-class ActionButton : public QToolButton
-{
- Q_OBJECT
-public:
- ActionButton(QAction * action, QWidget * parent = 0) : QToolButton(parent), m_action(action) {
- setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
- connect(action, &QAction::changed, this, &ActionButton::actionChanged);
- connect(this, &ActionButton::clicked, action, &QAction::trigger);
- actionChanged();
- };
-private slots:
- void actionChanged() {
- setEnabled(m_action->isEnabled());
- setChecked(m_action->isChecked());
- setCheckable(m_action->isCheckable());
- setText(m_action->text());
- setIcon(m_action->icon());
- setToolTip(m_action->toolTip());
- setHidden(!m_action->isVisible());
- setFocusPolicy(Qt::NoFocus);
- }
-private:
- QAction * m_action;
-};
-
-
-WideBar::WideBar(const QString& title, QWidget* parent) : QToolBar(title, parent)
-{
- setFloatable(false);
- setMovable(false);
-}
-
-WideBar::WideBar(QWidget* parent) : QToolBar(parent)
-{
- setFloatable(false);
- setMovable(false);
-}
-
-struct WideBar::BarEntry {
- enum Type {
- None,
- Action,
- Separator,
- Spacer
- } type = None;
- QAction *qAction = nullptr;
- QAction *wideAction = nullptr;
-};
-
-
-WideBar::~WideBar()
-{
- for(auto *iter: m_entries) {
- delete iter;
- }
-}
-
-void WideBar::addAction(QAction* action)
-{
- auto entry = new BarEntry();
- entry->qAction = addWidget(new ActionButton(action, this));
- entry->wideAction = action;
- entry->type = BarEntry::Action;
- m_entries.push_back(entry);
-}
-
-void WideBar::addSeparator()
-{
- auto entry = new BarEntry();
- entry->qAction = QToolBar::addSeparator();
- entry->type = BarEntry::Separator;
- m_entries.push_back(entry);
-}
-
-void WideBar::insertSpacer(QAction* action)
-{
- auto iter = std::find_if(m_entries.begin(), m_entries.end(), [action](BarEntry * entry) {
- return entry->wideAction == action;
- });
- if(iter == m_entries.end()) {
- return;
- }
- QWidget* spacer = new QWidget();
- spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-
- auto entry = new BarEntry();
- entry->qAction = insertWidget((*iter)->qAction, spacer);
- entry->type = BarEntry::Spacer;
- m_entries.insert(iter, entry);
-}
-
-QMenu * WideBar::createContextMenu(QWidget *parent, const QString & title)
-{
- QMenu *contextMenu = new QMenu(title, parent);
- for(auto & item: m_entries) {
- switch(item->type) {
- default:
- case BarEntry::None:
- break;
- case BarEntry::Separator:
- case BarEntry::Spacer:
- contextMenu->addSeparator();
- break;
- case BarEntry::Action:
- contextMenu->addAction(item->wideAction);
- break;
- }
- }
- return contextMenu;
-}
-
-#include "WideBar.moc"