removal and rework of legacy code
This commit is contained in:
		
							parent
							
								
									a456b06ad3
								
							
						
					
					
						commit
						1528879b42
					
				
					 12 changed files with 115 additions and 177 deletions
				
			
		|  | @ -95,7 +95,6 @@ set(GTA5VIEW_SOURCES | |||
| 
 | ||||
| set(GTA5VIEW_HEADERS | ||||
|     src/config.h | ||||
|     src/wrapper.h | ||||
|     src/AboutDialog.h | ||||
|     src/AppEnv.h | ||||
|     src/CrewDatabase.h | ||||
|  |  | |||
|  | @ -21,7 +21,6 @@ | |||
| #include "TranslationClass.h" | ||||
| #include "StandardPaths.h" | ||||
| #include "UserInterface.h" | ||||
| #include "wrapper.h" | ||||
| #include "AppEnv.h" | ||||
| #include "config.h" | ||||
| #include <QStringBuilder> | ||||
|  | @ -65,16 +64,10 @@ OptionsDialog::OptionsDialog(ProfileDatabase *profileDB, QWidget *parent) : | |||
|     ui->cmdCancel->setDefault(true); | ||||
|     ui->cmdCancel->setFocus(); | ||||
| 
 | ||||
| #if QT_VERSION >= 0x050000 | ||||
|     qreal screenRatioPR = AppEnv::screenRatioPR(); | ||||
|     QRect desktopResolution = QApplication::primaryScreen()->geometry(); | ||||
|     int desktopSizeWidth = qRound((double)desktopResolution.width() * screenRatioPR); | ||||
|     int desktopSizeHeight = qRound((double)desktopResolution.height() * screenRatioPR); | ||||
| #else | ||||
|     QRect desktopResolution = QApplication::desktop()->screenGeometry(this); | ||||
|     int desktopSizeWidth = desktopResolution.width(); | ||||
|     int desktopSizeHeight = desktopResolution.height(); | ||||
| #endif | ||||
|     aspectRatio = Qt::KeepAspectRatio; | ||||
|     defExportSize = SnapmaticPicture::getSnapmaticResolution(); | ||||
|     cusExportSize = defExportSize; | ||||
|  | @ -560,7 +553,7 @@ void OptionsDialog::setupPictureSettings() | |||
|         ui->rbPicDefaultRes->setChecked(true); | ||||
|     } | ||||
| 
 | ||||
|     aspectRatio = (Qt::AspectRatioMode)settings->value("AspectRatio", Qt::KeepAspectRatio).toInt(); | ||||
|     aspectRatio = static_cast<Qt::AspectRatioMode>(settings->value("AspectRatio", Qt::KeepAspectRatio).toInt()); | ||||
|     if (aspectRatio == Qt::IgnoreAspectRatio) { | ||||
|         ui->cbIgnoreAspectRatio->setChecked(true); | ||||
|     } | ||||
|  |  | |||
|  | @ -84,7 +84,7 @@ | |||
| #define crewID QString::number(picture->getSnapmaticProperties().crewID) | ||||
| #define picArea picture->getSnapmaticProperties().location.area | ||||
| #define picPath picture->getPictureFilePath() | ||||
| #define picTitl StringParser::escapeString(picture->getPictureTitle()) | ||||
| #define picTitl picture->getPictureTitle().toHtmlEscaped() | ||||
| #define plyrsList picture->getSnapmaticProperties().playersList | ||||
| #if QT_VERSION >= 0x060000 | ||||
| #define created QLocale().toString(picture->getSnapmaticProperties().createdDateTime, QLocale::ShortFormat) | ||||
|  | @ -168,15 +168,15 @@ void PictureDialog::setupPictureDialog() | |||
| 
 | ||||
|     // Manage menu
 | ||||
|     manageMenu = new QMenu(this); | ||||
|     manageMenu->addAction(tr("Export as &Picture..."), this, SLOT(exportSnapmaticPicture())); | ||||
|     manageMenu->addAction(tr("Export as &Snapmatic..."), this, SLOT(copySnapmaticPicture())); | ||||
|     manageMenu->addAction(tr("Export as &Picture..."), this, &PictureDialog::exportSnapmaticPicture); | ||||
|     manageMenu->addAction(tr("Export as &Snapmatic..."), this, &PictureDialog::copySnapmaticPicture); | ||||
|     manageMenu->addSeparator(); | ||||
|     manageMenu->addAction(tr("&Edit Properties..."), this, SLOT(editSnapmaticProperties())); | ||||
|     manageMenu->addAction(tr("&Overwrite Image..."), this, SLOT(editSnapmaticImage())); | ||||
|     manageMenu->addAction(tr("&Edit Properties..."), this, &PictureDialog::editSnapmaticProperties); | ||||
|     manageMenu->addAction(tr("&Overwrite Image..."), this, &PictureDialog::editSnapmaticImage); | ||||
|     manageMenu->addSeparator(); | ||||
|     QAction *openViewerAction = manageMenu->addAction(tr("Open &Map Viewer..."), this, SLOT(openPreviewMap())); | ||||
|     QAction *openViewerAction = manageMenu->addAction(tr("Open &Map Viewer..."), this, &PictureDialog::openPreviewMap); | ||||
|     openViewerAction->setShortcut(Qt::Key_M); | ||||
|     manageMenu->addAction(tr("Open &JSON Editor..."), this, SLOT(editSnapmaticRawJson())); | ||||
|     manageMenu->addAction(tr("Open &JSON Editor..."), this, &PictureDialog::editSnapmaticRawJson); | ||||
|     ui->cmdManage->setMenu(manageMenu); | ||||
| 
 | ||||
|     // Global map
 | ||||
|  | @ -221,8 +221,8 @@ void PictureDialog::addPreviousNextButtons() | |||
|     QToolBar *uiToolbar = new QToolBar("Picture Toolbar", this); | ||||
|     uiToolbar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); | ||||
|     uiToolbar->setObjectName("UiToolbar"); | ||||
|     uiToolbar->addAction(QIcon(AppEnv::getImagesFolder() % "/back.svgz"), "", this, SLOT(previousPictureRequestedSlot())); | ||||
|     uiToolbar->addAction(QIcon(AppEnv::getImagesFolder() % "/next.svgz"), "", this, SLOT(nextPictureRequestedSlot())); | ||||
|     uiToolbar->addAction(QIcon(AppEnv::getImagesFolder() % "/back.svgz"), "", this, &PictureDialog::previousPictureRequestedSlot); | ||||
|     uiToolbar->addAction(QIcon(AppEnv::getImagesFolder() % "/next.svgz"), "", this, &PictureDialog::nextPictureRequestedSlot); | ||||
| #ifdef Q_OS_MAC | ||||
| #if QT_VERSION >= 0x050000 | ||||
|     uiToolbar->setStyle(QStyleFactory::create("Fusion")); | ||||
|  | @ -348,12 +348,10 @@ bool PictureDialog::eventFilter(QObject *obj, QEvent *ev) | |||
|                 openPreviewMap(); | ||||
|                 returnValue = true; | ||||
|                 break; | ||||
| #if QT_VERSION >= 0x050300 | ||||
|             case Qt::Key_Exit: | ||||
|                 ui->cmdClose->click(); | ||||
|                 returnValue = true; | ||||
|                 break; | ||||
| #endif | ||||
|             case Qt::Key_Enter: case Qt::Key_Return: | ||||
|                 on_labPicture_mouseDoubleClicked(Qt::LeftButton); | ||||
|                 returnValue = true; | ||||
|  | @ -365,7 +363,6 @@ bool PictureDialog::eventFilter(QObject *obj, QEvent *ev) | |||
|             } | ||||
|         } | ||||
| #ifdef Q_OS_WIN | ||||
| #if QT_VERSION >= 0x050000 | ||||
|         if (obj != ui->labPicture && naviEnabled) { | ||||
|             if (ev->type() == QEvent::MouseButtonPress) { | ||||
|                 QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(ev); | ||||
|  | @ -395,7 +392,6 @@ bool PictureDialog::eventFilter(QObject *obj, QEvent *ev) | |||
|                 } | ||||
|             } | ||||
|         } | ||||
| #endif | ||||
| #endif | ||||
|     } | ||||
|     return returnValue; | ||||
|  | @ -485,8 +481,8 @@ void PictureDialog::renderOverlayPicture() | |||
| void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, bool readOk, bool _indexed, int _index) | ||||
| { | ||||
|     if (smpic != nullptr) { | ||||
|         QObject::disconnect(smpic, SIGNAL(updated()), this, SLOT(updated())); | ||||
|         QObject::disconnect(smpic, SIGNAL(customSignal(QString)), this, SLOT(customSignal(QString))); | ||||
|         QObject::disconnect(smpic, &SnapmaticPicture::updated, this, &PictureDialog::updated); | ||||
|         QObject::disconnect(smpic, &SnapmaticPicture::customSignal, this, &PictureDialog::customSignal); | ||||
|     } | ||||
|     snapmaticPicture = QImage(); | ||||
|     indexed = _indexed; | ||||
|  | @ -511,14 +507,14 @@ void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, bool readOk, | |||
|         } | ||||
|         setWindowTitle(windowTitleStr.arg(picTitl)); | ||||
|         ui->labJSON->setText(jsonDrawString.arg(locX, locY, locZ, generatePlayersString(), generateCrewString(), picTitl, picAreaStr, created)); | ||||
|         QTimer::singleShot(0, this, SLOT(adaptDialogSize())); | ||||
|         QTimer::singleShot(0, this, &PictureDialog::adaptDialogSize); | ||||
|     } | ||||
|     else { | ||||
|         ui->labJSON->setText(jsonDrawString.arg("0", "0", "0", tr("No Players"), tr("No Crew"), tr("Unknown Location"))); | ||||
|         QTimer::singleShot(0, this, SLOT(adaptDialogSize())); | ||||
|         QTimer::singleShot(0, this, &PictureDialog::adaptDialogSize); | ||||
|     } | ||||
|     QObject::connect(smpic, SIGNAL(updated()), this, SLOT(updated())); | ||||
|     QObject::connect(smpic, SIGNAL(customSignal(QString)), this, SLOT(customSignal(QString))); | ||||
|     QObject::connect(smpic, &SnapmaticPicture::updated, this, &PictureDialog::updated); | ||||
|     QObject::connect(smpic, &SnapmaticPicture::customSignal, this, &PictureDialog::customSignal); | ||||
|     emit newPictureCommited(snapmaticPicture); | ||||
| } | ||||
| 
 | ||||
|  | @ -573,9 +569,7 @@ void PictureDialog::renderPicture() | |||
|         shownImagePainter.drawImage(3 * screenRatio * screenRatioPR, 3 * screenRatio * screenRatioPR, overlayTempImage, Qt::AutoColor); | ||||
|     } | ||||
|     shownImagePainter.end(); | ||||
| #if QT_VERSION >= 0x050600 | ||||
|     shownImagePixmap.setDevicePixelRatio(screenRatioPR); | ||||
| #endif | ||||
|     ui->labPicture->setPixmap(shownImagePixmap); | ||||
| } | ||||
| 
 | ||||
|  | @ -586,7 +580,7 @@ void PictureDialog::crewNameUpdated() | |||
|     if (crewIDStr == crewStr) { | ||||
|         crewStr = crewDB->getCrewName(crewIDStr); | ||||
|         ui->labJSON->setText(jsonDrawString.arg(locX, locY, locZ, generatePlayersString(), generateCrewString(), picTitl, picAreaStr, created)); | ||||
|         QTimer::singleShot(0, this, SLOT(adaptDialogSize())); | ||||
|         QTimer::singleShot(0, this, &PictureDialog::adaptDialogSize); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -595,7 +589,7 @@ void PictureDialog::playerNameUpdated() | |||
|     SnapmaticPicture *picture = smpic; // used by macro
 | ||||
|     if (plyrsList.count() >= 1) { | ||||
|         ui->labJSON->setText(jsonDrawString.arg(locX, locY, locZ, generatePlayersString(), generateCrewString(), picTitl, picAreaStr, created)); | ||||
|         QTimer::singleShot(0, this, SLOT(adaptDialogSize())); | ||||
|         QTimer::singleShot(0, this, &PictureDialog::adaptDialogSize); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -675,9 +669,9 @@ void PictureDialog::on_labPicture_mouseDoubleClicked(Qt::MouseButton button) | |||
|         pictureWidget->setModal(true); | ||||
| 
 | ||||
|         fullscreenWidget = pictureWidget; | ||||
|         QObject::connect(this, SIGNAL(newPictureCommited(QImage)), pictureWidget, SLOT(setImage(QImage))); | ||||
|         QObject::connect(pictureWidget, SIGNAL(nextPictureRequested()), this, SLOT(dialogNextPictureRequested())); | ||||
|         QObject::connect(pictureWidget, SIGNAL(previousPictureRequested()), this, SLOT(dialogPreviousPictureRequested())); | ||||
|         QObject::connect(this, &PictureDialog::newPictureCommited, pictureWidget, QOverload<QImage>::of(&PictureWidget::setImage)); | ||||
|         QObject::connect(pictureWidget, &PictureWidget::nextPictureRequested, this, &PictureDialog::dialogNextPictureRequested); | ||||
|         QObject::connect(pictureWidget, &PictureWidget::previousPictureRequested, this, &PictureDialog::dialogPreviousPictureRequested); | ||||
| 
 | ||||
|         pictureWidget->move(desktopRect.x(), desktopRect.y()); | ||||
|         pictureWidget->resize(desktopRect.width(), desktopRect.height()); | ||||
|  | @ -866,11 +860,7 @@ void PictureDialog::editSnapmaticRawJson() | |||
|     } | ||||
|     jsonEditor->setWindowIcon(windowIcon()); | ||||
|     jsonEditor->setModal(true); | ||||
| #ifndef Q_OS_ANDROID | ||||
|     jsonEditor->show(); | ||||
| #else | ||||
|     jsonEditor->showMaximized(); | ||||
| #endif | ||||
|     jsonEditor->exec(); | ||||
|     delete jsonEditor; | ||||
| } | ||||
|  | @ -887,7 +877,7 @@ void PictureDialog::updated() | |||
|     } | ||||
|     setWindowTitle(windowTitleStr.arg(picTitl)); | ||||
|     ui->labJSON->setText(jsonDrawString.arg(locX, locY, locZ, generatePlayersString(), generateCrewString(), picTitl, picAreaStr, created)); | ||||
|     QTimer::singleShot(0, this, SLOT(adaptDialogSize())); | ||||
|     QTimer::singleShot(0, this, &PictureDialog::adaptDialogSize); | ||||
| } | ||||
| 
 | ||||
| void PictureDialog::customSignal(QString signal) | ||||
|  |  | |||
|  | @ -1632,7 +1632,7 @@ void ProfileInterface::contextMenuTriggeredPIC(QContextMenuEvent *ev) | |||
|     SnapmaticWidget *picWidget = qobject_cast<SnapmaticWidget*>(sender()); | ||||
|     if (picWidget != previousWidget) { | ||||
|         if (previousWidget != nullptr) { | ||||
|             previousWidget->setStyleSheet(QLatin1String("")); | ||||
|             previousWidget->setStyleSheet(QString()); | ||||
|         } | ||||
|         picWidget->setStyleSheet(QString("QFrame#SnapmaticFrame{background-color:palette(highlight)}QLabel#labPicStr{color:palette(highlighted-text)}")); | ||||
|         previousWidget = picWidget; | ||||
|  | @ -1642,69 +1642,81 @@ void ProfileInterface::contextMenuTriggeredPIC(QContextMenuEvent *ev) | |||
|     if (contentMode < 20 || selectedCount == 0) { | ||||
|         QMenu editMenu(SnapmaticWidget::tr("Edi&t"), picWidget); | ||||
|         if (picWidget->isHidden()) { | ||||
|             editMenu.addAction(SnapmaticWidget::tr("Show &In-game"), picWidget, SLOT(makePictureVisibleSlot())); | ||||
|             editMenu.addAction(SnapmaticWidget::tr("Show &In-game"), picWidget, &SnapmaticWidget::makePictureVisibleSlot); | ||||
|         } | ||||
|         else { | ||||
|             editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), picWidget, SLOT(makePictureHiddenSlot())); | ||||
|             editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), picWidget, &SnapmaticWidget::makePictureHiddenSlot); | ||||
|         } | ||||
|         editMenu.addAction(PictureDialog::tr("&Edit Properties..."), picWidget, SLOT(editSnapmaticProperties())); | ||||
|         editMenu.addAction(PictureDialog::tr("&Overwrite Image..."), picWidget, SLOT(editSnapmaticImage())); | ||||
|         editMenu.addAction(PictureDialog::tr("&Edit Properties..."), picWidget, &SnapmaticWidget::editSnapmaticProperties); | ||||
|         editMenu.addAction(PictureDialog::tr("&Overwrite Image..."), picWidget, &SnapmaticWidget::editSnapmaticImage); | ||||
|         editMenu.addSeparator(); | ||||
|         editMenu.addAction(PictureDialog::tr("Open &Map Viewer..."), picWidget, SLOT(openMapViewer())); | ||||
|         editMenu.addAction(PictureDialog::tr("Open &JSON Editor..."), picWidget, SLOT(editSnapmaticRawJson())); | ||||
|         editMenu.addAction(PictureDialog::tr("Open &Map Viewer..."), picWidget, &SnapmaticWidget::openMapViewer); | ||||
|         editMenu.addAction(PictureDialog::tr("Open &JSON Editor..."), picWidget, &SnapmaticWidget::editSnapmaticRawJson); | ||||
|         QMenu exportMenu(SnapmaticWidget::tr("&Export"), this); | ||||
|         exportMenu.addAction(PictureDialog::tr("Export as &Picture..."), picWidget, SLOT(on_cmdExport_clicked())); | ||||
|         exportMenu.addAction(PictureDialog::tr("Export as &Snapmatic..."), picWidget, SLOT(on_cmdCopy_clicked())); | ||||
|         contextMenu.addAction(SnapmaticWidget::tr("&View"), picWidget, SLOT(on_cmdView_clicked())); | ||||
|         exportMenu.addAction(PictureDialog::tr("Export as &Picture..."), picWidget, &SnapmaticWidget::on_cmdExport_clicked); | ||||
|         exportMenu.addAction(PictureDialog::tr("Export as &Snapmatic..."), picWidget, &SnapmaticWidget::on_cmdCopy_clicked); | ||||
|         contextMenu.addAction(SnapmaticWidget::tr("&View"), picWidget, &SnapmaticWidget::on_cmdView_clicked); | ||||
|         contextMenu.addMenu(&editMenu); | ||||
|         contextMenu.addMenu(&exportMenu); | ||||
|         contextMenu.addAction(SnapmaticWidget::tr("&Remove"), picWidget, SLOT(on_cmdDelete_clicked())); | ||||
|         contextMenu.addAction(SnapmaticWidget::tr("&Remove"), picWidget, &SnapmaticWidget::on_cmdDelete_clicked); | ||||
|         contextMenu.addSeparator(); | ||||
|         if (!picWidget->isSelected()) | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Select"), picWidget, SLOT(pictureSelected())); | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Select"), picWidget, &SnapmaticWidget::pictureSelected); | ||||
|         else { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Deselect"), picWidget, SLOT(pictureSelected())); | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Deselect"), picWidget, &SnapmaticWidget::pictureSelected); | ||||
|         } | ||||
|         if (selectedCount != widgets.count()) { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("Select &All"), picWidget, SLOT(selectAllWidgets()), QKeySequence::fromString("Ctrl+A")); | ||||
|             QAction *action = contextMenu.addAction(SnapmaticWidget::tr("Select &All"), picWidget, &SnapmaticWidget::selectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+A")); | ||||
|         } | ||||
|         if (selectedCount != 0) { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Deselect All"), picWidget, SLOT(deselectAllWidgets()), QKeySequence::fromString("Ctrl+D")); | ||||
|             QAction *action = contextMenu.addAction(SnapmaticWidget::tr("&Deselect All"), picWidget, &SnapmaticWidget::deselectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+D")); | ||||
|         } | ||||
|         contextMenuOpened = true; | ||||
|         contextMenu.exec(ev->globalPos()); | ||||
|         contextMenuOpened = false; | ||||
|         QTimer::singleShot(0, this, SLOT(hoverProfileWidgetCheck())); | ||||
|         QTimer::singleShot(0, this, &ProfileInterface::hoverProfileWidgetCheck); | ||||
|     } | ||||
|     else { | ||||
|         QMenu editMenu(SnapmaticWidget::tr("Edi&t"), picWidget); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "&Qualify as Avatar"), this, SLOT(massToolQualify()), QKeySequence::fromString("Shift+Q")); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "Change &Players..."), this, SLOT(massToolPlayers()), QKeySequence::fromString("Shift+P")); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "Change &Crew..."), this, SLOT(massToolCrew()), QKeySequence::fromString("Shift+C")); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "Change &Title..."), this, SLOT(massToolTitle()), QKeySequence::fromString("Shift+T")); | ||||
|         QAction *action = editMenu.addAction(QApplication::translate("UserInterface", "&Qualify as Avatar"), this, &ProfileInterface::massToolQualify); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+Q")); | ||||
|         action = editMenu.addAction(QApplication::translate("UserInterface", "Change &Players..."), this, &ProfileInterface::massToolPlayers); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+P")); | ||||
|         action = editMenu.addAction(QApplication::translate("UserInterface", "Change &Crew..."), this, &ProfileInterface::massToolCrew); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+C")); | ||||
|         action = editMenu.addAction(QApplication::translate("UserInterface", "Change &Title..."), this, &ProfileInterface::massToolTitle); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+T")); | ||||
|         editMenu.addSeparator(); | ||||
|         editMenu.addAction(SnapmaticWidget::tr("Show &In-game"), this, SLOT(enableSelected()), QKeySequence::fromString("Shift+E")); | ||||
|         editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), this, SLOT(disableSelected()), QKeySequence::fromString("Shift+D")); | ||||
|         action = editMenu.addAction(SnapmaticWidget::tr("Show &In-game"), this, &ProfileInterface::enableSelected); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+E")); | ||||
|         action = editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), this, &ProfileInterface::disableSelected); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+D")); | ||||
|         contextMenu.addMenu(&editMenu); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Export"), this, SLOT(exportSelected()), QKeySequence::fromString("Ctrl+E")); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Remove"), this, SLOT(deleteSelectedR()), QKeySequence::fromString("Ctrl+Del")); | ||||
|         action = contextMenu.addAction(SavegameWidget::tr("&Export"), this, &ProfileInterface::exportSelected); | ||||
|         action->setShortcut(QKeySequence::fromString("Ctrl+E")); | ||||
|         action = contextMenu.addAction(SavegameWidget::tr("&Remove"), this, &ProfileInterface::deleteSelectedR); | ||||
|         action->setShortcut(QKeySequence::fromString("Ctrl+Del")); | ||||
|         contextMenu.addSeparator(); | ||||
|         if (!picWidget->isSelected()) { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Select"), picWidget, SLOT(pictureSelected())); | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Select"), picWidget, &SnapmaticWidget::pictureSelected); | ||||
|         } | ||||
|         else { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Deselect"), picWidget, SLOT(pictureSelected())); | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Deselect"), picWidget, &SnapmaticWidget::pictureSelected); | ||||
|         } | ||||
|         if (selectedCount != widgets.count()) { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("Select &All"), picWidget, SLOT(selectAllWidgets()), QKeySequence::fromString("Ctrl+A")); | ||||
|             action = contextMenu.addAction(SnapmaticWidget::tr("Select &All"), picWidget, &SnapmaticWidget::selectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+A")); | ||||
|         } | ||||
|         if (selectedCount != 0) { | ||||
|             contextMenu.addAction(SnapmaticWidget::tr("&Deselect All"), picWidget, SLOT(deselectAllWidgets()), QKeySequence::fromString("Ctrl+D")); | ||||
|             action = contextMenu.addAction(SnapmaticWidget::tr("&Deselect All"), picWidget, &SnapmaticWidget::deselectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+D")); | ||||
|         } | ||||
|         contextMenuOpened = true; | ||||
|         contextMenu.exec(ev->globalPos()); | ||||
|         contextMenuOpened = false; | ||||
|         QTimer::singleShot(0, this, SLOT(hoverProfileWidgetCheck())); | ||||
|         QTimer::singleShot(0, this, &ProfileInterface::hoverProfileWidgetCheck); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -1721,55 +1733,67 @@ void ProfileInterface::contextMenuTriggeredSGD(QContextMenuEvent *ev) | |||
|     QMenu contextMenu(sgdWidget); | ||||
|     const int selectedCount = selectedWidgets(); | ||||
|     if (contentMode < 20 || selectedCount == 0) { | ||||
|         contextMenu.addAction(SavegameWidget::tr("&View"), sgdWidget, SLOT(on_cmdView_clicked())); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Export"), sgdWidget, SLOT(on_cmdCopy_clicked())); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Remove"), sgdWidget, SLOT(on_cmdDelete_clicked())); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&View"), sgdWidget, &SavegameWidget::on_cmdView_clicked); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Export"), sgdWidget, &SavegameWidget::on_cmdCopy_clicked); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Remove"), sgdWidget, &SavegameWidget::on_cmdDelete_clicked); | ||||
|         contextMenu.addSeparator(); | ||||
|         if (!sgdWidget->isSelected()) { | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Select"), sgdWidget, SLOT(savegameSelected())); | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Select"), sgdWidget, &SavegameWidget::savegameSelected); | ||||
|         } | ||||
|         else { | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Deselect"), sgdWidget, SLOT(savegameSelected())); | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Deselect"), sgdWidget, &SavegameWidget::savegameSelected); | ||||
|         } | ||||
|         if (selectedCount != widgets.count()) { | ||||
|             contextMenu.addAction(SavegameWidget::tr("Select &All"), sgdWidget, SLOT(selectAllWidgets()), QKeySequence::fromString("Ctrl+A")); | ||||
|             QAction *action = contextMenu.addAction(SavegameWidget::tr("Select &All"), sgdWidget, &SavegameWidget::selectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+A")); | ||||
|         } | ||||
|         if (selectedCount != 0) { | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Deselect All"), sgdWidget, SLOT(deselectAllWidgets()), QKeySequence::fromString("Ctrl+D")); | ||||
|             QAction *action = contextMenu.addAction(SavegameWidget::tr("&Deselect All"), sgdWidget, &SavegameWidget::deselectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+D")); | ||||
|         } | ||||
|         contextMenuOpened = true; | ||||
|         contextMenu.exec(ev->globalPos()); | ||||
|         contextMenuOpened = false; | ||||
|         QTimer::singleShot(0, this, SLOT(hoverProfileWidgetCheck())); | ||||
|         QTimer::singleShot(0, this, &ProfileInterface::hoverProfileWidgetCheck); | ||||
|     } | ||||
|     else { | ||||
|         QMenu editMenu(SnapmaticWidget::tr("Edi&t"), sgdWidget); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "&Qualify as Avatar"), this, SLOT(massToolQualify()), QKeySequence::fromString("Shift+Q")); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "Change &Players..."), this, SLOT(massToolPlayers()), QKeySequence::fromString("Shift+P")); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "Change &Crew..."), this, SLOT(massToolCrew()), QKeySequence::fromString("Shift+C")); | ||||
|         editMenu.addAction(QApplication::translate("UserInterface", "Change &Title..."), this, SLOT(massToolTitle()), QKeySequence::fromString("Shift+T")); | ||||
|         QAction *action = editMenu.addAction(QApplication::translate("UserInterface", "&Qualify as Avatar"), this, &ProfileInterface::massToolQualify); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+Q")); | ||||
|         action = editMenu.addAction(QApplication::translate("UserInterface", "Change &Players..."), this, &ProfileInterface::massToolPlayers); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+P")); | ||||
|         action = editMenu.addAction(QApplication::translate("UserInterface", "Change &Crew..."), this, &ProfileInterface::massToolCrew); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+C")); | ||||
|         action = editMenu.addAction(QApplication::translate("UserInterface", "Change &Title..."), this, &ProfileInterface::massToolTitle); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+T")); | ||||
|         editMenu.addSeparator(); | ||||
|         editMenu.addAction(SnapmaticWidget::tr("Show &In-game"), this, SLOT(enableSelected()), QKeySequence::fromString("Shift+E")); | ||||
|         editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), this, SLOT(disableSelected()), QKeySequence::fromString("Shift+D")); | ||||
|         action = editMenu.addAction(SnapmaticWidget::tr("Show &In-game"), this, &ProfileInterface::enableSelected); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+E")); | ||||
|         action = editMenu.addAction(SnapmaticWidget::tr("Hide &In-game"), this, &ProfileInterface::disableSelected); | ||||
|         action->setShortcut(QKeySequence::fromString("Shift+D")); | ||||
|         contextMenu.addMenu(&editMenu); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Export"), this, SLOT(exportSelected()), QKeySequence::fromString("Ctrl+E")); | ||||
|         contextMenu.addAction(SavegameWidget::tr("&Remove"), this, SLOT(deleteSelectedR()), QKeySequence::fromString("Ctrl+Del")); | ||||
|         action = contextMenu.addAction(SavegameWidget::tr("&Export"), this, &ProfileInterface::exportSelected); | ||||
|         action->setShortcut(QKeySequence::fromString("Ctrl+E")); | ||||
|         action = contextMenu.addAction(SavegameWidget::tr("&Remove"), this, &ProfileInterface::deleteSelectedR); | ||||
|         action->setShortcut(QKeySequence::fromString("Ctrl+Del")); | ||||
|         contextMenu.addSeparator(); | ||||
|         if (!sgdWidget->isSelected()) | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Select"), sgdWidget, SLOT(savegameSelected())); | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Select"), sgdWidget, &SavegameWidget::savegameSelected); | ||||
|         else { | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Deselect"), sgdWidget, SLOT(savegameSelected())); | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Deselect"), sgdWidget, &SavegameWidget::savegameSelected); | ||||
|         } | ||||
|         if (selectedCount != widgets.count()) { | ||||
|             contextMenu.addAction(SavegameWidget::tr("Select &All"), sgdWidget, SLOT(selectAllWidgets()), QKeySequence::fromString("Ctrl+A")); | ||||
|             action = contextMenu.addAction(SavegameWidget::tr("Select &All"), sgdWidget, &SavegameWidget::selectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+A")); | ||||
|         } | ||||
|         if (selectedCount != 0) { | ||||
|             contextMenu.addAction(SavegameWidget::tr("&Deselect All"), sgdWidget, SLOT(deselectAllWidgets()), QKeySequence::fromString("Ctrl+D")); | ||||
|             action = contextMenu.addAction(SavegameWidget::tr("&Deselect All"), sgdWidget, &SavegameWidget::deselectAllWidgets); | ||||
|             action->setShortcut(QKeySequence::fromString("Ctrl+D")); | ||||
|         } | ||||
|         contextMenuOpened = true; | ||||
|         contextMenu.exec(ev->globalPos()); | ||||
|         contextMenuOpened = false; | ||||
|         QTimer::singleShot(0, this, SLOT(hoverProfileWidgetCheck())); | ||||
|         QTimer::singleShot(0, this, &ProfileInterface::hoverProfileWidgetCheck); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,6 @@ | |||
| #include "ProfileLoader.h" | ||||
| #include "SavegameData.h" | ||||
| #include "CrewDatabase.h" | ||||
| #include "wrapper.h" | ||||
| #include <QStringBuilder> | ||||
| #include <QVector> | ||||
| #include <QString> | ||||
|  | @ -29,9 +28,9 @@ | |||
| #include <QDir> | ||||
| #include <QList> | ||||
| #else | ||||
| #include "sys/types.h" | ||||
| #include "sys/stat.h" | ||||
| #include "dirent.h" | ||||
| #include <sys/types.h> | ||||
| #include <sys/stat.h> | ||||
| #include <dirent.h> | ||||
| #endif | ||||
| 
 | ||||
| ProfileLoader::ProfileLoader(QString profileFolder, CrewDatabase *crewDB, QObject *parent) : QThread(parent), profileFolder(profileFolder), crewDB(crewDB) | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| /*****************************************************************************
 | ||||
| * gta5view Grand Theft Auto V Profile Viewer | ||||
| * Copyright (C) 2016-2017 Syping | ||||
| * Copyright (C) 2016-2023 Syping | ||||
| * | ||||
| * This program is free software: you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | ||||
|  | @ -44,15 +44,17 @@ public: | |||
|     void retranslate(); | ||||
|     ~SavegameWidget(); | ||||
| 
 | ||||
| private slots: | ||||
| public slots: | ||||
|     void on_cmdView_clicked(); | ||||
|     void on_cmdCopy_clicked(); | ||||
|     void on_cmdDelete_clicked(); | ||||
|     void on_cbSelected_stateChanged(int arg1); | ||||
|     void savegameSelected(); | ||||
|     void selectAllWidgets(); | ||||
|     void deselectAllWidgets(); | ||||
| 
 | ||||
| private slots: | ||||
|     void on_cbSelected_stateChanged(int arg1); | ||||
| 
 | ||||
| protected: | ||||
|     void mouseDoubleClickEvent(QMouseEvent *ev); | ||||
|     void mouseReleaseEvent(QMouseEvent *ev); | ||||
|  |  | |||
|  | @ -21,7 +21,6 @@ | |||
| #include "SnapmaticPicture.h" | ||||
| #include "PlayerListDialog.h" | ||||
| #include "StringParser.h" | ||||
| #include "wrapper.h" | ||||
| #include "AppEnv.h" | ||||
| #include "config.h" | ||||
| #include <QStringBuilder> | ||||
|  | @ -42,11 +41,7 @@ SnapmaticEditor::SnapmaticEditor(CrewDatabase *crewDB, ProfileDatabase *profileD | |||
|     ui(new Ui::SnapmaticEditor) | ||||
| { | ||||
|     // Set Window Flags
 | ||||
| #if QT_VERSION >= 0x050900 | ||||
|     setWindowFlag(Qt::WindowContextHelpButtonHint, false); | ||||
| #else | ||||
|     setWindowFlags(windowFlags()^Qt::WindowContextHelpButtonHint); | ||||
| #endif | ||||
| 
 | ||||
|     ui->setupUi(this); | ||||
|     ui->cmdCancel->setDefault(true); | ||||
|  | @ -236,7 +231,7 @@ void SnapmaticEditor::setSnapmaticTitle(const QString &title) | |||
|         snapmaticTitle = title; | ||||
|     } | ||||
|     QString editStr = QString("<a href=\"g5e://edittitle\" style=\"text-decoration: none;\">%1</a>").arg(tr("Edit")); | ||||
|     QString titleStr = tr("Title: %1 (%2)").arg(StringParser::escapeString(snapmaticTitle), editStr); | ||||
|     QString titleStr = tr("Title: %1 (%2)").arg(snapmaticTitle.toHtmlEscaped(), editStr); | ||||
|     ui->labTitle->setText(titleStr); | ||||
|     if (SnapmaticPicture::verifyTitle(snapmaticTitle)) { | ||||
|         ui->labAppropriate->setText(tr("Appropriate: %1").arg(QString("<span style=\"color: green\">%1</span>").arg(tr("Yes", "Yes, should work fine")))); | ||||
|  | @ -244,25 +239,21 @@ void SnapmaticEditor::setSnapmaticTitle(const QString &title) | |||
|     else { | ||||
|         ui->labAppropriate->setText(tr("Appropriate: %1").arg(QString("<span style=\"color: red\">%1</span>").arg(tr("No", "No, could lead to issues")))); | ||||
|     } | ||||
| #ifndef Q_OS_ANDROID | ||||
|     ui->gbValues->resize(ui->gbValues->width(), ui->gbValues->heightForWidth(ui->gbValues->width())); | ||||
|     ui->frameWidget->resize(ui->gbValues->width(), ui->frameWidget->heightForWidth(ui->frameWidget->width())); | ||||
|     if (heightForWidth(width()) > height()) | ||||
|         resize(width(), heightForWidth(width())); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| void SnapmaticEditor::setSnapmaticCrew(const QString &crew) | ||||
| { | ||||
|     QString editStr = QString("<a href=\"g5e://editcrew\" style=\"text-decoration: none;\">%1</a>").arg(tr("Edit")); | ||||
|     QString crewStr = tr("Crew: %1 (%2)").arg(StringParser::escapeString(crew), editStr); | ||||
|     QString crewStr = tr("Crew: %1 (%2)").arg(crew.toHtmlEscaped(), editStr); | ||||
|     ui->labCrew->setText(crewStr); | ||||
| #ifndef Q_OS_ANDROID | ||||
|     ui->gbValues->resize(ui->gbValues->width(), ui->gbValues->heightForWidth(ui->gbValues->width())); | ||||
|     ui->frameWidget->resize(ui->gbValues->width(), ui->frameWidget->heightForWidth(ui->frameWidget->width())); | ||||
|     if (heightForWidth(width()) > height()) | ||||
|         resize(width(), heightForWidth(width())); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| QString SnapmaticEditor::returnCrewName(int crewID_) | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| /*****************************************************************************
 | ||||
| * gta5view Grand Theft Auto V Profile Viewer | ||||
| * Copyright (C) 2016-2017 Syping | ||||
| * Copyright (C) 2016-2023 Syping | ||||
| * | ||||
| * This program is free software: you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | ||||
|  | @ -53,24 +53,26 @@ public: | |||
|     void retranslate(); | ||||
|     ~SnapmaticWidget(); | ||||
| 
 | ||||
| private slots: | ||||
| public slots: | ||||
|     void on_cmdView_clicked(); | ||||
|     void on_cmdCopy_clicked(); | ||||
|     void on_cmdExport_clicked(); | ||||
|     void on_cmdDelete_clicked(); | ||||
|     void on_cbSelected_stateChanged(int arg1); | ||||
|     void adjustTextColor(); | ||||
|     void pictureSelected(); | ||||
|     void selectAllWidgets(); | ||||
|     void deselectAllWidgets(); | ||||
|     void dialogNextPictureRequested(); | ||||
|     void dialogPreviousPictureRequested(); | ||||
|     void makePictureVisibleSlot(); | ||||
|     void makePictureHiddenSlot(); | ||||
|     void editSnapmaticProperties(); | ||||
|     void editSnapmaticRawJson(); | ||||
|     void editSnapmaticImage(); | ||||
|     void openMapViewer(); | ||||
| 
 | ||||
| private slots: | ||||
|     void on_cbSelected_stateChanged(int arg1); | ||||
|     void adjustTextColor(); | ||||
|     void dialogNextPictureRequested(); | ||||
|     void dialogPreviousPictureRequested(); | ||||
|     void snapmaticUpdated(); | ||||
|     void customSignal(QString signal); | ||||
| 
 | ||||
|  |  | |||
|  | @ -27,15 +27,6 @@ | |||
| #include <QList> | ||||
| #include <QDir> | ||||
| 
 | ||||
| QString StringParser::escapeString(const QString &toEscape) | ||||
| { | ||||
| #if QT_VERSION >= 0x050000 | ||||
|     return toEscape.toHtmlEscaped(); | ||||
| #else | ||||
|     return Qt::escape(toEscape); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| QString StringParser::convertBuildedString(const QString &buildedStr) | ||||
| { | ||||
|     QString outputStr = buildedStr; | ||||
|  |  | |||
|  | @ -25,7 +25,6 @@ | |||
| class StringParser | ||||
| { | ||||
| public: | ||||
|     static QString escapeString(const QString &toEscape); | ||||
|     static QString convertBuildedString(const QString &buildedStr); | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -305,9 +305,7 @@ UserInterface::UserInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, D | |||
| 
 | ||||
|     // DPI calculation
 | ||||
|     qreal screenRatio = AppEnv::screenRatio(); | ||||
| #ifndef Q_QS_ANDROID | ||||
|     resize(625 * screenRatio, 500 * screenRatio); | ||||
| #endif | ||||
|     ui->vlUserInterface->setSpacing(6 * screenRatio); | ||||
|     ui->vlUserInterface->setContentsMargins(9 * screenRatio, 9 * screenRatio, 9 * screenRatio, 9 * screenRatio); | ||||
| } | ||||
|  | @ -496,12 +494,7 @@ void UserInterface::on_actionAbout_gta5sync_triggered() | |||
|     AboutDialog *aboutDialog = new AboutDialog(this); | ||||
|     aboutDialog->setWindowIcon(windowIcon()); | ||||
|     aboutDialog->setModal(true); | ||||
| #ifdef Q_OS_ANDROID | ||||
|     // Android ...
 | ||||
|     aboutDialog->showMaximized(); | ||||
| #else | ||||
|     aboutDialog->show(); | ||||
| #endif | ||||
|     aboutDialog->exec(); | ||||
|     delete aboutDialog; | ||||
| } | ||||
|  | @ -544,12 +537,7 @@ void UserInterface::on_actionOptions_triggered() | |||
|     QObject::connect(optionsDialog, SIGNAL(settingsApplied(int, bool)), this, SLOT(settingsApplied(int, bool))); | ||||
| 
 | ||||
|     optionsDialog->setModal(true); | ||||
| #ifdef Q_OS_ANDROID | ||||
|     // Android ...
 | ||||
|     optionsDialog->showMaximized(); | ||||
| #else | ||||
|     optionsDialog->show(); | ||||
| #endif | ||||
|     optionsDialog->exec(); | ||||
| 
 | ||||
|     delete optionsDialog; | ||||
|  | @ -606,7 +594,7 @@ bool UserInterface::openFile(QString selectedFile, bool warn) | |||
| { | ||||
|     QString selectedFileName = QFileInfo(selectedFile).fileName(); | ||||
|     if (QFile::exists(selectedFile)) { | ||||
|         if (selectedFileName.left(4) == "PGTA" || selectedFileName.right(4) == ".g5e") { | ||||
|         if (selectedFileName.startsWith("PGTA5") || selectedFileName.startsWith("PRDR3") || selectedFileName.endsWith(".g5e")) { | ||||
|             SnapmaticPicture *picture = new SnapmaticPicture(selectedFile); | ||||
|             if (picture->readingPicture()) { | ||||
|                 openSnapmaticFile(picture); | ||||
|  | @ -676,14 +664,9 @@ void UserInterface::openSnapmaticFile(SnapmaticPicture *picture) | |||
|     QObject::connect(threadDB, SIGNAL(crewNameUpdated()), &picDialog, SLOT(crewNameUpdated())); | ||||
|     QObject::connect(threadDB, SIGNAL(playerNameUpdated()), &picDialog, SLOT(playerNameUpdated())); | ||||
| 
 | ||||
| #ifdef Q_OS_ANDROID | ||||
|     // Android optimization should be put here
 | ||||
|     picDialog.showMaximized(); | ||||
| #else | ||||
|     picDialog.show(); | ||||
|     picDialog.setMinimumSize(picDialog.size()); | ||||
|     picDialog.setMaximumSize(picDialog.size()); | ||||
| #endif | ||||
| 
 | ||||
|     picDialog.exec(); | ||||
| } | ||||
|  | @ -693,12 +676,7 @@ void UserInterface::openSavegameFile(SavegameData *savegame) | |||
|     SavegameDialog sgdDialog(this); | ||||
|     sgdDialog.setSavegameData(savegame, savegame->getSavegameFileName(), true); | ||||
|     sgdDialog.setModal(true); | ||||
| #ifdef Q_OS_ANDROID | ||||
|     // Android optimization should be put here
 | ||||
|     sgdDialog.showMaximized(); | ||||
| #else | ||||
|     sgdDialog.show(); | ||||
| #endif | ||||
|     sgdDialog.exec(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,30 +0,0 @@ | |||
| /*****************************************************************************
 | ||||
| * gta5view Grand Theft Auto V Profile Viewer | ||||
| * Copyright (C) 2021 Syping | ||||
| * | ||||
| * This program is free software: you can redistribute it and/or modify | ||||
| * it under the terms of the GNU General Public License as published by | ||||
| * the Free Software Foundation, either version 3 of the License, or | ||||
| * (at your option) any later version. | ||||
| * | ||||
| * This program is distributed in the hope that it will be useful, | ||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| * GNU General Public License for more details. | ||||
| * | ||||
| * You should have received a copy of the GNU General Public License | ||||
| * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| *****************************************************************************/ | ||||
| 
 | ||||
| #ifndef WRAPPER_H | ||||
| #define WRAPPER_H | ||||
| 
 | ||||
| #if QT_VERSION < 0x050700 | ||||
| #if __cplusplus > 201703L | ||||
| #define qAsConst(x) std::as_const(x) | ||||
| #else | ||||
| #define qAsConst | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| #endif // WRAPPER_H
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue