File: scenetoolbar.cpp

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (61 lines) | stat: -rw-r--r-- 1,462 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "scenetoolbar.hpp"

#include <QVBoxLayout>

#include <memory>

#include "../../model/prefs/shortcut.hpp"

#include "scenetool.hpp"

void CSVWidget::SceneToolbar::focusInEvent(QFocusEvent* event)
{
    QWidget::focusInEvent(event);

    if (mLayout->count())
        dynamic_cast<QWidgetItem&>(*mLayout->itemAt(0)).widget()->setFocus();
}

CSVWidget::SceneToolbar::SceneToolbar(int buttonSize, QWidget* parent)
    : QWidget(parent)
    , mButtonSize(buttonSize)
    , mIconSize(buttonSize - 6)
{
    setFixedWidth(mButtonSize);

    mLayout = new QVBoxLayout(this);
    mLayout->setAlignment(Qt::AlignTop);

    mLayout->setContentsMargins(QMargins(0, 0, 0, 0));

    setLayout(mLayout);

    CSMPrefs::Shortcut* focusSceneShortcut = new CSMPrefs::Shortcut("scene-focus-toolbar", this);
    connect(focusSceneShortcut, qOverload<>(&CSMPrefs::Shortcut::activated), this, &SceneToolbar::focusSceneRequest);
}

void CSVWidget::SceneToolbar::addTool(SceneTool* tool, SceneTool* insertPoint)
{
    if (!insertPoint)
        mLayout->addWidget(tool, 0, Qt::AlignTop);
    else
    {
        int index = mLayout->indexOf(insertPoint);
        mLayout->insertWidget(index + 1, tool, 0, Qt::AlignTop);
    }
}

void CSVWidget::SceneToolbar::removeTool(SceneTool* tool)
{
    mLayout->removeWidget(tool);
}

int CSVWidget::SceneToolbar::getButtonSize() const
{
    return mButtonSize;
}

int CSVWidget::SceneToolbar::getIconSize() const
{
    return mIconSize;
}