mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-12 09:48:37 +12:00
[Qt] UI improvements (#3558)
* Qt: Show tooltips in description box * Qt: implement description subscription * Qt: add gamelist resize for ctrl-+/-/wheel (simple zoom) * Qt: handle strict mode in gui tab * Qt: more highdpi stuff * Qt: remove old tooltips from settings_dialog * Qt: conform cpublit tooltip to new subscription model
This commit is contained in:
parent
b90a7dc66a
commit
b3efa75206
23 changed files with 374 additions and 230 deletions
|
@ -144,6 +144,7 @@ game_list_frame::game_list_frame(std::shared_ptr<gui_settings> guiSettings, std:
|
|||
m_gameList->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
m_gameList->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
m_gameList->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||
m_gameList->verticalScrollBar()->installEventFilter(this);
|
||||
m_gameList->verticalScrollBar()->setSingleStep(20);
|
||||
m_gameList->horizontalScrollBar()->setSingleStep(20);
|
||||
m_gameList->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
|
||||
|
@ -157,6 +158,7 @@ game_list_frame::game_list_frame(std::shared_ptr<gui_settings> guiSettings, std:
|
|||
m_gameList->horizontalHeader()->setDefaultSectionSize(150);
|
||||
m_gameList->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
m_gameList->setAlternatingRowColors(true);
|
||||
m_gameList->installEventFilter(this);
|
||||
|
||||
m_gameList->setColumnCount(GUI::COLUMN_COUNT);
|
||||
m_gameList->setHorizontalHeaderItem( GUI::COLUMN_ICON, new QTableWidgetItem(tr("Icon")));
|
||||
|
@ -950,6 +952,42 @@ void game_list_frame::resizeEvent(QResizeEvent *event)
|
|||
QDockWidget::resizeEvent(event);
|
||||
}
|
||||
|
||||
bool game_list_frame::eventFilter(QObject *object, QEvent *event)
|
||||
{
|
||||
// Zoom gamelist/gamegrid
|
||||
if (event->type() == QEvent::Wheel && (object == m_gameList->verticalScrollBar() || object == m_xgrid->verticalScrollBar()))
|
||||
{
|
||||
QWheelEvent *wheelEvent = static_cast<QWheelEvent *>(event);
|
||||
|
||||
if (wheelEvent->modifiers() & Qt::ControlModifier)
|
||||
{
|
||||
QPoint numSteps = wheelEvent->angleDelta() / 8 / 15; // http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta
|
||||
const int value = numSteps.y();
|
||||
m_Slider_Size->setValue(m_Slider_Size->value() + value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (event->type() == QEvent::KeyPress && (object == m_gameList || object == m_xgrid))
|
||||
{
|
||||
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
|
||||
|
||||
if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
{
|
||||
if (keyEvent->key() == Qt::Key_Plus)
|
||||
{
|
||||
m_Slider_Size->setValue(m_Slider_Size->value() + 1);
|
||||
return true;
|
||||
}
|
||||
else if (keyEvent->key() == Qt::Key_Minus)
|
||||
{
|
||||
m_Slider_Size->setValue(m_Slider_Size->value() - 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return QDockWidget::eventFilter(object, event);
|
||||
}
|
||||
|
||||
/**
|
||||
Cleans and readds entries to table widget in UI.
|
||||
*/
|
||||
|
@ -1099,6 +1137,8 @@ void game_list_frame::PopulateGameGrid(uint maxCols, const QSize& image_size, co
|
|||
|
||||
m_xgrid->resizeColumnsToContents();
|
||||
m_xgrid->resizeRowsToContents();
|
||||
m_xgrid->installEventFilter(this);
|
||||
m_xgrid->verticalScrollBar()->installEventFilter(this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue