Changeset View
Changeset View
Standalone View
Standalone View
app/titlebar.cpp
Show All 26 Lines | |||||
27 | #include <QMenu> | 27 | #include <QMenu> | ||
28 | #include <QPushButton> | 28 | #include <QPushButton> | ||
29 | #include <KLocalizedString> | 29 | #include <KLocalizedString> | ||
30 | 30 | | |||
31 | #include <QApplication> | 31 | #include <QApplication> | ||
32 | #include <QBitmap> | 32 | #include <QBitmap> | ||
33 | #include <QPainter> | 33 | #include <QPainter> | ||
34 | 34 | | |||
35 | | ||||
36 | TitleBar::TitleBar(MainWindow* mainWindow) : QWidget(mainWindow) | 35 | TitleBar::TitleBar(MainWindow* mainWindow) : QWidget(mainWindow) | ||
37 | { | 36 | { | ||
38 | setWhatsThis(xi18nc("@info:whatsthis", | 37 | setWhatsThis(xi18nc("@info:whatsthis", | ||
39 | "<title>Title Bar</title>" | 38 | "<title>Title Bar</title>" | ||
40 | "<para>The title bar displays the session title if available.</para>")); | 39 | "<para>The title bar displays the session title if available.</para>")); | ||
41 | 40 | | |||
42 | setAttribute(Qt::WA_OpaquePaintEvent); | 41 | setAttribute(Qt::WA_OpaquePaintEvent); | ||
43 | 42 | | |||
Show All 27 Lines | |||||
71 | void TitleBar::applySkin() | 70 | void TitleBar::applySkin() | ||
72 | { | 71 | { | ||
73 | resize(width(), m_skin->titleBarBackgroundImage().height()); | 72 | resize(width(), m_skin->titleBarBackgroundImage().height()); | ||
74 | 73 | | |||
75 | m_focusButton->setStyleSheet(m_skin->titleBarFocusButtonStyleSheet()); | 74 | m_focusButton->setStyleSheet(m_skin->titleBarFocusButtonStyleSheet()); | ||
76 | m_menuButton->setStyleSheet(m_skin->titleBarMenuButtonStyleSheet()); | 75 | m_menuButton->setStyleSheet(m_skin->titleBarMenuButtonStyleSheet()); | ||
77 | m_quitButton->setStyleSheet(m_skin->titleBarQuitButtonStyleSheet()); | 76 | m_quitButton->setStyleSheet(m_skin->titleBarQuitButtonStyleSheet()); | ||
78 | 77 | | |||
79 | m_focusButton->move(width() - m_skin->titleBarFocusButtonPosition().x(), m_skin->titleBarFocusButtonPosition().y()); | 78 | moveButtons(); | ||
80 | m_menuButton->move(width() - m_skin->titleBarMenuButtonPosition().x(), m_skin->titleBarMenuButtonPosition().y()); | | |||
81 | m_quitButton->move(width() - m_skin->titleBarQuitButtonPosition().x(), m_skin->titleBarQuitButtonPosition().y()); | | |||
82 | 79 | | |||
83 | repaint(); | 80 | repaint(); | ||
84 | 81 | | |||
85 | updateMask(); | 82 | updateMask(); | ||
86 | } | 83 | } | ||
87 | 84 | | |||
88 | void TitleBar::resizeEvent(QResizeEvent* event) | 85 | void TitleBar::moveButtons() | ||
89 | { | 86 | { | ||
87 | if (m_skin->titleBarFocusButtonAnchor() == Qt::AnchorLeft) | ||||
88 | m_focusButton->move(m_skin->titleBarFocusButtonPosition().x(), m_skin->titleBarFocusButtonPosition().y()); | ||||
89 | else if (m_skin->titleBarFocusButtonAnchor() == Qt::AnchorRight) | ||||
90 | m_focusButton->move(width() - m_skin->titleBarFocusButtonPosition().x(), m_skin->titleBarFocusButtonPosition().y()); | 90 | m_focusButton->move(width() - m_skin->titleBarFocusButtonPosition().x(), m_skin->titleBarFocusButtonPosition().y()); | ||
91 | | ||||
92 | if (m_skin->titleBarMenuButtonAnchor() == Qt::AnchorLeft) | ||||
93 | m_menuButton->move(m_skin->titleBarMenuButtonPosition().x(), m_skin->titleBarMenuButtonPosition().y()); | ||||
94 | else if (m_skin->titleBarMenuButtonAnchor() == Qt::AnchorRight) | ||||
91 | m_menuButton->move(width() - m_skin->titleBarMenuButtonPosition().x(), m_skin->titleBarMenuButtonPosition().y()); | 95 | m_menuButton->move(width() - m_skin->titleBarMenuButtonPosition().x(), m_skin->titleBarMenuButtonPosition().y()); | ||
96 | | ||||
97 | if (m_skin->titleBarQuitButtonAnchor() == Qt::AnchorLeft) | ||||
98 | m_quitButton->move(m_skin->titleBarQuitButtonPosition().x(), m_skin->titleBarQuitButtonPosition().y()); | ||||
99 | else if (m_skin->titleBarQuitButtonAnchor() == Qt::AnchorRight) | ||||
92 | m_quitButton->move(width() - m_skin->titleBarQuitButtonPosition().x(), m_skin->titleBarQuitButtonPosition().y()); | 100 | m_quitButton->move(width() - m_skin->titleBarQuitButtonPosition().x(), m_skin->titleBarQuitButtonPosition().y()); | ||
101 | } | ||||
102 | | ||||
103 | void TitleBar::resizeEvent(QResizeEvent* event) | ||||
104 | { | ||||
105 | moveButtons(); | ||||
93 | 106 | | |||
94 | updateMask(); | 107 | updateMask(); | ||
95 | 108 | | |||
96 | QWidget::resizeEvent(event); | 109 | QWidget::resizeEvent(event); | ||
97 | } | 110 | } | ||
98 | 111 | | |||
99 | void TitleBar::paintEvent(QPaintEvent*) | 112 | void TitleBar::paintEvent(QPaintEvent*) | ||
100 | { | 113 | { | ||
Show All 10 Lines | |||||
111 | 124 | | |||
112 | painter.drawPixmap(0, 0, leftCornerImage); | 125 | painter.drawPixmap(0, 0, leftCornerImage); | ||
113 | painter.drawPixmap(width() - rightCornerImage.width(), 0, rightCornerImage); | 126 | painter.drawPixmap(width() - rightCornerImage.width(), 0, rightCornerImage); | ||
114 | 127 | | |||
115 | QFont font = QFontDatabase::systemFont(QFontDatabase::TitleFont); | 128 | QFont font = QFontDatabase::systemFont(QFontDatabase::TitleFont); | ||
116 | font.setBold(m_skin->titleBarTextBold()); | 129 | font.setBold(m_skin->titleBarTextBold()); | ||
117 | painter.setFont(font); | 130 | painter.setFont(font); | ||
118 | 131 | | |||
119 | painter.drawText(m_skin->titleBarTextPosition(), title()); | 132 | const QString title = this->title(); | ||
133 | if (m_skin->titleBarTextCentered() && width() > m_skin->titleBarTextPosition().x() + painter.fontMetrics().width(title) + m_focusButton->width() + m_quitButton->width() + m_menuButton->width()) | ||||
134 | painter.drawText(0, 0, width(), height(), Qt::AlignCenter, title); | ||||
135 | else | ||||
136 | painter.drawText(m_skin->titleBarTextPosition(), title); | ||||
120 | 137 | | |||
121 | painter.end(); | 138 | painter.end(); | ||
122 | } | 139 | } | ||
123 | 140 | | |||
124 | void TitleBar::updateMask() | 141 | void TitleBar::updateMask() | ||
125 | { | 142 | { | ||
126 | const QPixmap& leftCornerImage = m_skin->titleBarLeftCornerImage(); | 143 | const QPixmap& leftCornerImage = m_skin->titleBarLeftCornerImage(); | ||
127 | const QPixmap& rightCornerImage = m_skin->titleBarRightCornerImage(); | 144 | const QPixmap& rightCornerImage = m_skin->titleBarRightCornerImage(); | ||
Show All 35 Lines |