Qt: Move zoom logic entirely to game list widget

pull/3566/head
Stenzek 1 month ago
parent 56665d64af
commit 8f247c909a
No known key found for this signature in database

@ -49,6 +49,7 @@ static constexpr int MAX_ICON_SIZE = 80;
static constexpr float MIN_COVER_SCALE = 0.1f;
static constexpr float DEFAULT_COVER_SCALE = 0.45f;
static constexpr float MAX_COVER_SCALE = 2.0f;
static constexpr float COVER_SCALE_STEP = 0.05f;
static const char* SUPPORTED_FORMATS_STRING =
QT_TRANSLATE_NOOP(GameListWidget, ".cue (Cue Sheets)\n"
@ -1427,6 +1428,22 @@ bool GameListWidget::isShowingGameGrid() const
return (m_ui.stack->currentIndex() == VIEW_MODE_GRID);
}
void GameListWidget::zoomOut()
{
if (isShowingGameList())
m_list_view->adjustIconSize(-ICON_SIZE_STEP);
else if (isShowingGameGrid())
m_grid_view->adjustZoom(-COVER_SCALE_STEP);
}
void GameListWidget::zoomIn()
{
if (isShowingGameList())
m_list_view->adjustIconSize(ICON_SIZE_STEP);
else if (isShowingGameGrid())
m_grid_view->adjustZoom(COVER_SCALE_STEP);
}
void GameListWidget::refresh(bool invalidate_cache)
{
cancelRefresh();
@ -2023,16 +2040,6 @@ void GameListListView::adjustIconSize(int delta)
m_model->setIconSize(new_size);
}
void GameListListView::zoomIn()
{
adjustIconSize(ICON_SIZE_STEP);
}
void GameListListView::zoomOut()
{
adjustIconSize(-ICON_SIZE_STEP);
}
GameListGridView::GameListGridView(GameListModel* model, GameListSortModel* sort_model, QWidget* parent)
: QListView(parent), m_model(model)
{
@ -2062,9 +2069,9 @@ void GameListGridView::wheelEvent(QWheelEvent* e)
if (dy != 0)
{
if (dy < 0)
zoomOut();
adjustZoom(-COVER_SCALE_STEP);
else
zoomIn();
adjustZoom(COVER_SCALE_STEP);
return;
}
@ -2085,22 +2092,6 @@ void GameListGridView::adjustZoom(float delta)
m_model->setCoverScale(new_scale);
}
void GameListGridView::zoomIn()
{
adjustZoom(0.05f);
}
void GameListGridView::zoomOut()
{
adjustZoom(-0.05f);
}
void GameListGridView::setZoomPct(int int_scale)
{
const float new_scale = std::clamp(static_cast<float>(int_scale) / 100.0f, MIN_COVER_SCALE, MAX_COVER_SCALE);
m_model->setCoverScale(new_scale);
}
void GameListGridView::updateLayout()
{
const int icon_width = m_model->getCoverArtSize();

@ -177,16 +177,12 @@ public:
void setFixedColumnWidth(const QFontMetrics& fm, int column, int str_width);
void setAndSaveColumnHidden(int column, bool hidden);
public Q_SLOTS:
void zoomOut();
void zoomIn();
void adjustIconSize(int delta);
protected:
void wheelEvent(QWheelEvent* e) override;
private:
void adjustIconSize(int delta);
void onHeaderSortIndicatorChanged(int, Qt::SortOrder);
void onHeaderContextMenuRequested(const QPoint& point);
@ -212,10 +208,9 @@ public:
int horizontalOffset() const override;
int verticalOffset() const override;
void adjustZoom(float delta);
public Q_SLOTS:
void zoomOut();
void zoomIn();
void setZoomPct(int int_scale);
void updateLayout();
protected:
@ -223,8 +218,6 @@ protected:
void resizeEvent(QResizeEvent* e) override;
private:
void adjustZoom(float delta);
GameListModel* m_model = nullptr;
int m_horizontal_offset = 0;
int m_vertical_offset = 0;
@ -253,6 +246,9 @@ public:
bool isShowingGameList() const;
bool isShowingGameGrid() const;
void zoomOut();
void zoomIn();
const GameList::Entry* getSelectedEntry() const;
Q_SIGNALS:

@ -1460,10 +1460,7 @@ void MainWindow::onViewZoomInActionTriggered()
if (!isShowingGameList())
return;
if (m_game_list_widget->isShowingGameList())
m_game_list_widget->getListView()->zoomIn();
else if (m_game_list_widget->isShowingGameGrid())
m_game_list_widget->getGridView()->zoomIn();
m_game_list_widget->zoomIn();
}
void MainWindow::onViewZoomOutActionTriggered()
@ -1471,10 +1468,7 @@ void MainWindow::onViewZoomOutActionTriggered()
if (!isShowingGameList())
return;
if (m_game_list_widget->isShowingGameList())
m_game_list_widget->getListView()->zoomOut();
else if (m_game_list_widget->isShowingGameGrid())
m_game_list_widget->getGridView()->zoomOut();
m_game_list_widget->zoomOut();
}
void MainWindow::onGitHubRepositoryActionTriggered()

Loading…
Cancel
Save