Skip to content

Commit efd526c

Browse files
committed
Fix pixbuffer using too much memmory
1 parent bfb39b9 commit efd526c

File tree

5 files changed

+156
-80
lines changed

5 files changed

+156
-80
lines changed

src/Data.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ struct ListItemData {
307307
private:
308308
void centerPixmap(QPixmap pixmap) {
309309
// Define target dimensions and maintain aspect ratio
310-
QSize targetSize(640, 480);
310+
QSize targetSize(160, 120);
311311
QSize newSize = pixmap.size().scaled(targetSize, Qt::KeepAspectRatio);
312312

313313
// Scale the pixmap

src/TombRaiderLinuxLauncher.cpp

Lines changed: 45 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,20 @@ TombRaiderLinuxLauncher::TombRaiderLinuxLauncher(QWidget *parent)
141141
levelListModel->filterInstalled();
142142
});
143143

144-
loader = new LoadingIndicator(ui->loading);
145-
loader->setFixedSize(64, 64);
146-
ui->verticalLayout_15->addWidget(loader, 0, Qt::AlignCenter);
147-
loader->show();
144+
m_loadingIndicatorWidget = new LoadingIndicator(ui->loading);
145+
m_loadingIndicatorWidget->setFixedSize(64, 64);
146+
ui->verticalLayout_15->
147+
addWidget(m_loadingIndicatorWidget, 0, Qt::AlignCenter);
148+
m_loadingIndicatorWidget->show();
148149
ui->stackedWidget->setCurrentWidget(
149150
ui->stackedWidget->findChild<QWidget*>("loading"));
150-
UpdateLevelDoneTo = "select";
151+
m_loadingDoneGoTo = "select";
152+
153+
ui->Tabs->setTabEnabled(
154+
ui->Tabs->indexOf(ui->Tabs->findChild<QWidget*>("Modding")), false);
151155

152156
// Read settings
153-
QString value = m_settings.value("setup").toString();
157+
QString value = settings.value("setup").toString();
154158
if (value != "yes") {
155159
setup();
156160
} else {
@@ -161,7 +165,7 @@ TombRaiderLinuxLauncher::TombRaiderLinuxLauncher(QWidget *parent)
161165
void TombRaiderLinuxLauncher::generateList(const QList<int>& availableGames) {
162166
// Update list only when 24 hours past
163167
QDateTime now = QDateTime::currentDateTime();
164-
QString lastUpdatedStr = m_settings.value("lastUpdated").toString();
168+
QString lastUpdatedStr = settings.value("lastUpdated").toString();
165169
QDateTime lastUpdated = QDateTime::fromString(lastUpdatedStr, Qt::ISODate);
166170

167171
// Define today's noon
@@ -179,7 +183,7 @@ void TombRaiderLinuxLauncher::generateList(const QList<int>& availableGames) {
179183

180184
if (!lastUpdated.isValid() || lastUpdated < targetTime) {
181185
controller.syncLevels();
182-
m_settings.setValue("lastUpdated", now.toString(Qt::ISODate));
186+
settings.setValue("lastUpdated", now.toString(Qt::ISODate));
183187
m_availableGames = availableGames;
184188
} else {
185189
levelListModel->setLevels(availableGames);
@@ -190,16 +194,16 @@ void TombRaiderLinuxLauncher::generateList(const QList<int>& availableGames) {
190194
}
191195

192196
void TombRaiderLinuxLauncher::setInstalled() {
193-
QStringList keys = m_settings.allKeys();
197+
QStringList keys = settings.allKeys();
194198
QHash<int, bool> installedLevel;
195199
QHash<int, bool> installedGame;
196200
for (const QString &key : keys) {
197201
if (key.startsWith("installed/game")) {
198202
qint64 id = key.mid(QString("installed/game").length()).toInt();
199-
installedGame.insert(id, m_settings.value(key).toBool());
203+
installedGame.insert(id, settings.value(key).toBool());
200204
} else if (key.startsWith("installed/level")) {
201205
qint64 id = key.mid(QString("installed/level").length()).toInt();
202-
installedLevel.insert(id, m_settings.value(key).toBool());
206+
installedLevel.insert(id, settings.value(key).toBool());
203207
}
204208
}
205209
levelListModel->setInstalledListOriginal(installedGame);
@@ -251,10 +255,10 @@ void TombRaiderLinuxLauncher::filterByDuration(const QString& duration) {
251255
}
252256

253257
void TombRaiderLinuxLauncher::readSavedSettings() {
254-
const QString gamePathValue = m_settings.value("gamePath").toString();
258+
const QString gamePathValue = settings.value("gamePath").toString();
255259
ui->tableWidgetSetup->item(0, 0)->setText(gamePathValue);
256260
qDebug() << "Read game path value:" << gamePathValue;
257-
const QString levelPathValue = m_settings.value("levelPath").toString();
261+
const QString levelPathValue = settings.value("levelPath").toString();
258262
ui->tableWidgetSetup->item(1, 0)->setText(levelPathValue);
259263
qDebug() << "Read level path value:" << levelPathValue;
260264
controller.setup(levelPathValue, gamePathValue);
@@ -326,17 +330,17 @@ void TombRaiderLinuxLauncher::onCurrentItemChanged(
326330
} else {
327331
levelDirSelected(id);
328332
}
329-
ui->lineEditCustomCommand->setEnabled(true);
330-
ui->lineEditCustomCommand->setText(
331-
m_settings.value(QString("level%1/CustomCommand")
332-
.arg(id)).toString());
333+
// ui->lineEditCustomCommand->setEnabled(true);
334+
// ui->lineEditCustomCommand->setText(
335+
// m_settings.value(QString("level%1/CustomCommand")
336+
// .arg(id)).toString());
333337
ui->lineEditEnvironmentVariables->setEnabled(true);
334338
ui->lineEditEnvironmentVariables->setText(
335-
m_settings.value(QString("level%1/EnvironmentVariables")
339+
settings.value(QString("level%1/EnvironmentVariables")
336340
.arg(id)).toString());
337341
ui->comboBoxRunnerType->setEnabled(true);
338342
ui->comboBoxRunnerType->setCurrentIndex(
339-
m_settings.value(QString("level%1/RunnerType")
343+
settings.value(QString("level%1/RunnerType")
340344
.arg(id)).toInt());
341345
ui->commandLinkButtonLSSave->setEnabled(true);
342346
ui->commandLinkButtonLSReset->setEnabled(true);
@@ -346,16 +350,16 @@ void TombRaiderLinuxLauncher::onCurrentItemChanged(
346350
void TombRaiderLinuxLauncher::setOptionsClicked() {
347351
QString gamePath = ui->gamePathEdit->text();
348352
QString levelPath = ui->levelPathEdit->text();
349-
m_settings.setValue("gamePath" , gamePath);
350-
m_settings.setValue("levelPath" , levelPath);
351-
m_settings.setValue("setup" , "yes");
353+
settings.setValue("gamePath" , gamePath);
354+
settings.setValue("levelPath" , levelPath);
355+
settings.setValue("setup" , "yes");
352356

353357
ui->tableWidgetSetup->item(0, 0)->setText(gamePath);
354358
ui->tableWidgetSetup->item(1, 0)->setText(levelPath);
355359
ui->Tabs->setTabEnabled(
356360
ui->Tabs->indexOf(ui->Tabs->findChild<QWidget*>("Levels")), true);
357361
ui->Tabs->setTabEnabled(
358-
ui->Tabs->indexOf(ui->Tabs->findChild<QWidget*>("Modding")), true);
362+
ui->Tabs->indexOf(ui->Tabs->findChild<QWidget*>("Modding")), false);
359363
ui->Tabs->show();
360364
ui->Tabs->setCurrentIndex(
361365
ui->Tabs->indexOf(ui->Tabs->findChild<QWidget*>("Levels")));
@@ -370,7 +374,7 @@ void TombRaiderLinuxLauncher::linkClicked() {
370374
if (current.isValid()) {
371375
qint64 id = levelListModel->getLid(current);
372376
if (id != 0) {
373-
if (m_settings.value(QString("level%1/RunnerType").arg(id)) == 2) {
377+
if (settings.value(QString("level%1/RunnerType").arg(id)) == 2) {
374378
Model::getInstance().runWine(id);
375379
} else {
376380
if (levelListModel->getListType()) {
@@ -412,11 +416,11 @@ void TombRaiderLinuxLauncher::infoClicked() {
412416
if (id != 0) {
413417
InfoData info = controller.getInfo(id);
414418
if (info.m_body == "" && info.m_imageList.size() == 0) {
415-
loader->show();
419+
m_loadingIndicatorWidget->show();
416420
ui->stackedWidget->setCurrentWidget(
417421
ui->stackedWidget->findChild<QWidget*>("loading"));
418422
controller.updateLevel(id);
419-
UpdateLevelDoneTo = "info";
423+
m_loadingDoneGoTo = "info";
420424
return;
421425
}
422426

@@ -502,14 +506,14 @@ void TombRaiderLinuxLauncher::workTick() {
502506
qint64 id = levelListModel->getLid(current);
503507
levelListModel->setInstalled(current);
504508
if (levelListModel->getListType()) { // its the original game
505-
m_settings.setValue(
509+
settings.setValue(
506510
QString("installed/game%1").arg(id),
507511
"true");
508512
ui->pushButtonLink->setEnabled(true);
509513
ui->pushButtonInfo->setEnabled(false);
510514
ui->pushButtonDownload->setEnabled(false);
511515
} else {
512-
m_settings.setValue(
516+
settings.setValue(
513517
QString("installed/level%1").arg(id),
514518
"true");
515519
ui->pushButtonLink->setEnabled(true);
@@ -546,13 +550,13 @@ void TombRaiderLinuxLauncher::downloadError(int status) {
546550
}
547551

548552
void TombRaiderLinuxLauncher::UpdateLevelDone() {
549-
loader->hide();
550-
if (UpdateLevelDoneTo == "select") {
553+
m_loadingIndicatorWidget->hide();
554+
if (m_loadingDoneGoTo == "select") {
551555
levelListModel->setLevels(m_availableGames);
552556
setInstalled();
553557
ui->stackedWidget->setCurrentWidget(
554558
ui->stackedWidget->findChild<QWidget*>("select"));
555-
} else if (UpdateLevelDoneTo == "info") {
559+
} else if (m_loadingDoneGoTo == "info") {
556560
QModelIndex current = ui->listViewLevels->currentIndex();
557561
if (current.isValid()) {
558562
qint64 id = levelListModel->getLid(current);
@@ -575,36 +579,36 @@ void TombRaiderLinuxLauncher::GlobalSaveClicked() {
575579
const QString newLevelPath = ui->tableWidgetSetup->item(1, 0)->text();
576580
const QString newGamePath = ui->tableWidgetSetup->item(0, 0)->text();
577581

578-
const QString oldLevelPath = m_settings.value("levelPath").toString();
579-
const QString oldGamePath = m_settings.value("gamePath").toString();
582+
const QString oldLevelPath = settings.value("levelPath").toString();
583+
const QString oldGamePath = settings.value("gamePath").toString();
580584

581585
if ((newLevelPath != oldLevelPath) || (newGamePath != oldGamePath)) {
582-
m_settings.setValue("levelPath" , newLevelPath);
583-
m_settings.setValue("gamePath" , newGamePath);
586+
settings.setValue("levelPath" , newLevelPath);
587+
settings.setValue("gamePath" , newGamePath);
584588

585589
controller.setup(newLevelPath, newGamePath);
586590
}
587591
}
588592

589593
void TombRaiderLinuxLauncher::GlobalResetClicked() {
590594
ui->tableWidgetSetup->item(0, 0)->setText(
591-
m_settings.value("gamePath").toString());
595+
settings.value("gamePath").toString());
592596
ui->tableWidgetSetup->item(1, 0)->setText(
593-
m_settings.value("levelPath").toString());
597+
settings.value("levelPath").toString());
594598
}
595599

596600
void TombRaiderLinuxLauncher::LevelSaveClicked() {
597601
QModelIndex current = ui->listViewLevels->currentIndex();
598602
if (current.isValid()) {
599603
qint64 id = levelListModel->getLid(current);
600604

601-
m_settings.setValue(QString("level%1/CustomCommand")
602-
.arg(id), ui->lineEditCustomCommand->text());
605+
// settings.setValue(QString("level%1/CustomCommand")
606+
// .arg(id), ui->lineEditCustomCommand->text());
603607

604-
m_settings.setValue(QString("level%1/EnvironmentVariables")
608+
settings.setValue(QString("level%1/EnvironmentVariables")
605609
.arg(id), ui->lineEditEnvironmentVariables->text());
606610

607-
m_settings.setValue(QString("level%1/RunnerType")
611+
settings.setValue(QString("level%1/RunnerType")
608612
.arg(id), ui->comboBoxRunnerType->currentIndex());
609613
}
610614
}

src/TombRaiderLinuxLauncher.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <QVector>
2828
#include <QString>
2929

30+
#include "../src/settings.hpp"
3031
#include "../src/Controller.hpp"
3132
#include "../src/levelViewList.hpp"
3233
#include "../src/LoadingIndicator.hpp"
@@ -173,10 +174,10 @@ class TombRaiderLinuxLauncher : public QMainWindow {
173174

174175
LevelListModel *levelListModel;
175176
Controller& controller = Controller::getInstance();
176-
QSettings m_settings;
177+
QSettings& settings = getSettingsInstance();
177178
Ui::TombRaiderLinuxLauncher *ui;
178-
LoadingIndicator* loader;
179-
QString UpdateLevelDoneTo;
179+
LoadingIndicator* m_loadingIndicatorWidget;
180+
QString m_loadingDoneGoTo;
180181
QList<int> m_availableGames;
181182
};
182183

0 commit comments

Comments
 (0)