mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-13 15:59:23 +01:00
DolphinQt2: add QtUtils/ElidedButton
This commit is contained in:
parent
6dc3b2e8bc
commit
07c90bed08
@ -39,6 +39,7 @@ set(SRCS
|
||||
GameList/GameListModel.cpp
|
||||
GameList/GameTracker.cpp
|
||||
GameList/ListProxyModel.cpp
|
||||
QtUtils/ElidedButton.cpp
|
||||
Settings/GeneralPane.cpp
|
||||
Settings/InterfacePane.cpp
|
||||
)
|
||||
|
@ -157,6 +157,7 @@
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="MainWindow.cpp" />
|
||||
<ClCompile Include="MenuBar.cpp" />
|
||||
<ClCompile Include="QtUtils\ElidedButton.cpp" />
|
||||
<ClCompile Include="RenderWidget.cpp" />
|
||||
<ClCompile Include="Resources.cpp" />
|
||||
<ClCompile Include="Settings.cpp" />
|
||||
|
@ -116,6 +116,9 @@
|
||||
<ClCompile Include="Config\Mapping\WiimoteEmuExtension.cpp" />
|
||||
<ClCompile Include="Config\Mapping\WiimoteEmuGeneral.cpp" />
|
||||
<ClCompile Include="Config\Mapping\WiimoteEmuMotionControl.cpp" />
|
||||
<ClCompile Include="QtUtils\ElidedButton.cpp">
|
||||
<Filter>QtUtils</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="MainWindow.h" />
|
||||
@ -177,6 +180,9 @@
|
||||
<Filter Include="Config">
|
||||
<UniqueIdentifier>{42f8a963-563e-420d-8aca-5761657dcff5}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="QtUtils">
|
||||
<UniqueIdentifier>{fb4b5691-df66-4984-af40-fcc2b37f3622}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Settings">
|
||||
<UniqueIdentifier>{d2a31121-7903-4a66-9b42-9358e92d36ff}</UniqueIdentifier>
|
||||
</Filter>
|
||||
|
40
Source/Core/DolphinQt2/QtUtils/ElidedButton.cpp
Normal file
40
Source/Core/DolphinQt2/QtUtils/ElidedButton.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright 2017 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "DolphinQt2/QtUtils/ElidedButton.h"
|
||||
|
||||
#include <QFontMetrics>
|
||||
#include <QStyleOptionButton>
|
||||
#include <QStylePainter>
|
||||
|
||||
ElidedButton::ElidedButton(const QString& text, Qt::TextElideMode elide_mode)
|
||||
: QPushButton(text, nullptr), m_elide_mode{elide_mode}
|
||||
{
|
||||
}
|
||||
|
||||
Qt::TextElideMode ElidedButton::elideMode() const
|
||||
{
|
||||
return m_elide_mode;
|
||||
}
|
||||
|
||||
void ElidedButton::setElideMode(Qt::TextElideMode elide_mode)
|
||||
{
|
||||
if (elide_mode == m_elide_mode)
|
||||
return;
|
||||
|
||||
m_elide_mode = elide_mode;
|
||||
repaint();
|
||||
}
|
||||
|
||||
void ElidedButton::paintEvent(QPaintEvent* event)
|
||||
{
|
||||
QStyleOptionButton option;
|
||||
initStyleOption(&option);
|
||||
|
||||
option.text = fontMetrics().elidedText(
|
||||
text(), m_elide_mode,
|
||||
style()->subElementRect(QStyle::SE_PushButtonContents, &option, this).width());
|
||||
|
||||
QStylePainter{this}.drawControl(QStyle::CE_PushButton, option);
|
||||
}
|
20
Source/Core/DolphinQt2/QtUtils/ElidedButton.h
Normal file
20
Source/Core/DolphinQt2/QtUtils/ElidedButton.h
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2017 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QPushButton>
|
||||
|
||||
class ElidedButton : public QPushButton
|
||||
{
|
||||
public:
|
||||
ElidedButton(const QString& text = QStringLiteral(""),
|
||||
Qt::TextElideMode elide_mode = Qt::ElideRight);
|
||||
Qt::TextElideMode elideMode() const;
|
||||
void setElideMode(Qt::TextElideMode elide_mode);
|
||||
|
||||
private:
|
||||
void paintEvent(QPaintEvent* event);
|
||||
Qt::TextElideMode m_elide_mode;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user