mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Qt: add grid zoom slider
This commit is contained in:
parent
f79ba4885a
commit
8752996018
@ -499,30 +499,51 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
,m_historyPlaylistsItem(NULL)
|
||||
,m_folderIcon()
|
||||
,m_customThemeString()
|
||||
,m_gridLayout(new FlowLayout())
|
||||
,m_gridLayout(NULL)
|
||||
,m_gridWidget(new QWidget(this))
|
||||
,m_gridScrollArea(new QScrollArea(m_gridWidget))
|
||||
,m_gridItems()
|
||||
,m_gridLayoutWidget(new QWidget())
|
||||
,m_zoomSlider(NULL)
|
||||
,m_lastZoomSliderValue(0)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
QDir playlistDir(settings->paths.directory_playlist);
|
||||
QString configDir = QFileInfo(path_get(RARCH_PATH_CONFIG)).dir().absolutePath();
|
||||
QToolButton *searchResetButton = NULL;
|
||||
QWidget *gridLayoutWidget = new QWidget();
|
||||
QWidget *zoomWidget = new QWidget();
|
||||
QHBoxLayout *zoomLayout = new QHBoxLayout();
|
||||
int i = 0;
|
||||
|
||||
m_zoomSlider = new QSlider(Qt::Horizontal, zoomWidget);
|
||||
|
||||
m_zoomSlider->setMinimum(0);
|
||||
m_zoomSlider->setMaximum(100);
|
||||
m_zoomSlider->setValue(50);
|
||||
|
||||
m_lastZoomSliderValue = m_zoomSlider->value();
|
||||
|
||||
m_gridWidget->setLayout(new QVBoxLayout());
|
||||
|
||||
gridLayoutWidget->setLayout(m_gridLayout);
|
||||
m_gridLayout = new FlowLayout(m_gridLayoutWidget);
|
||||
|
||||
m_gridScrollArea->setAlignment(Qt::AlignCenter);
|
||||
m_gridScrollArea->setFrameShape(QFrame::NoFrame);
|
||||
m_gridScrollArea->setWidgetResizable(true);
|
||||
m_gridScrollArea->setWidget(gridLayoutWidget);
|
||||
m_gridScrollArea->setWidget(m_gridLayoutWidget);
|
||||
|
||||
m_gridWidget->layout()->addWidget(m_gridScrollArea);
|
||||
m_gridWidget->layout()->setAlignment(Qt::AlignCenter);
|
||||
|
||||
m_zoomSlider->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred));
|
||||
|
||||
zoomWidget->setLayout(zoomLayout);
|
||||
zoomLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Preferred));
|
||||
zoomLayout->addWidget(new QLabel("Zoom:"));
|
||||
zoomLayout->addWidget(m_zoomSlider);
|
||||
|
||||
m_gridWidget->layout()->addWidget(zoomWidget);
|
||||
|
||||
m_tableWidget->setAlternatingRowColors(true);
|
||||
|
||||
m_logWidget->setObjectName("logWidget");
|
||||
@ -644,6 +665,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
connect(m_dirTree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(onFileBrowserTreeContextMenuRequested(const QPoint&)));
|
||||
connect(m_listWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(onPlaylistWidgetContextMenuRequested(const QPoint&)));
|
||||
connect(m_launchWithComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onLaunchWithComboBoxIndexChanged(int)));
|
||||
connect(m_zoomSlider, SIGNAL(valueChanged(int)), this, SLOT(onZoomValueChanged(int)));
|
||||
|
||||
/* make sure these use an auto connection so it will be queued if called from a different thread (some facilities in RA log messages from other threads) */
|
||||
connect(this, SIGNAL(gotLogMessage(const QString&)), this, SLOT(onGotLogMessage(const QString&)), Qt::AutoConnection);
|
||||
@ -687,9 +709,20 @@ MainWindow::~MainWindow()
|
||||
delete m_thumbnailPixmap2;
|
||||
if (m_thumbnailPixmap3)
|
||||
delete m_thumbnailPixmap3;
|
||||
|
||||
removeGridItems();
|
||||
}
|
||||
|
||||
void MainWindow::onZoomValueChanged(int value)
|
||||
{
|
||||
foreach(GridItem *item, m_gridItems)
|
||||
{
|
||||
item->widget->setFixedSize(QSize(value * 5.12f, value * 5.12f));
|
||||
}
|
||||
|
||||
m_lastZoomSliderValue = value;
|
||||
}
|
||||
|
||||
void MainWindow::showWelcomeScreen()
|
||||
{
|
||||
const QString welcomeText = QStringLiteral(""
|
||||
@ -2853,6 +2886,10 @@ void MainWindow::initContentGridLayout()
|
||||
}
|
||||
else
|
||||
addPlaylistItemsToGrid(path);
|
||||
|
||||
QTimer::singleShot(0, this, [this]() {
|
||||
m_gridLayoutWidget->resize(m_gridScrollArea->viewport()->size());
|
||||
});
|
||||
}
|
||||
|
||||
void MainWindow::initContentTableWidget()
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include <QPalette>
|
||||
#include <QPlainTextEdit>
|
||||
#include <QFutureWatcher>
|
||||
#include <QPixmap>
|
||||
#include <QImage>
|
||||
|
||||
extern "C" {
|
||||
@ -57,6 +58,7 @@ class QCheckBox;
|
||||
class QFormLayout;
|
||||
class QStyle;
|
||||
class QScrollArea;
|
||||
class QSlider;
|
||||
class LoadCoreWindow;
|
||||
class MainWindow;
|
||||
class ThumbnailWidget;
|
||||
@ -320,6 +322,7 @@ private slots:
|
||||
void onPlaylistWidgetContextMenuRequested(const QPoint &pos);
|
||||
void onStopClicked();
|
||||
void onDeferredImageLoaded();
|
||||
void onZoomValueChanged(int value);
|
||||
|
||||
private:
|
||||
void setCurrentCoreLabel();
|
||||
@ -374,6 +377,9 @@ private:
|
||||
QWidget *m_gridWidget;
|
||||
QScrollArea *m_gridScrollArea;
|
||||
QList<GridItem*> m_gridItems;
|
||||
QWidget *m_gridLayoutWidget;
|
||||
QSlider *m_zoomSlider;
|
||||
int m_lastZoomSliderValue;
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
Loading…
x
Reference in New Issue
Block a user