migrated the codebase to Qt6 and fixed some compatibility issues

* used a Qt6 ported version of SortFilterProxyModel
* used an updated Qt6 compatible version of QXZing
* added a flag to windows linker to avoid WinMain problem of MSVCRTD
* renamed utils.cpp to utilities.cpp for avoiding confusion with the same file name in SortFilterProxyModel
This commit is contained in:
Mortie 2022-08-29 12:21:09 +04:30
parent 050d987d3b
commit 8c20a67cfa
140 changed files with 5924 additions and 214 deletions

View file

@ -104,7 +104,7 @@ void CFramelessWindow::addIgnoreWidget(QWidget* widget)
bool CFramelessWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::Windows7) {
return QMainWindow::nativeEvent(eventType, message, result);
return QMainWindow::nativeEvent(eventType, message, reinterpret_cast<qintptr*>(result));
}
//Workaround for known bug -> check Qt forum : https://forum.qt.io/topic/93141/qtablewidget-itemselectionchanged/13
@ -252,7 +252,7 @@ bool CFramelessWindow::nativeEvent(const QByteArray &eventType, void *message, l
return false;
}
default:
return QMainWindow::nativeEvent(eventType, message, result);
return QMainWindow::nativeEvent(eventType, message, reinterpret_cast<qintptr*>(result));
}
}
@ -280,7 +280,7 @@ QMargins CFramelessWindow::contentsMargins() const
}
void CFramelessWindow::getContentsMargins(int *left, int *top, int *right, int *bottom) const
{
QMainWindow::getContentsMargins(left,top,right,bottom);
getContentsMargins(left,top,right,bottom);
if (!(left&&top&&right&&bottom)) return;
if (isMaximized())
{

View file

@ -1,7 +1,7 @@
#include "NetworkSettingsLogic.h"
#include "defines.h"
#include "utils.h"
#include "utilities.h"
NetworkSettingsLogic::NetworkSettingsLogic(UiLogic *logic, QObject *parent):
PageLogicBase(logic, parent),
@ -21,14 +21,14 @@ void NetworkSettingsLogic::onUpdatePage()
void NetworkSettingsLogic::onLineEditDns1EditFinished(const QString &text)
{
if (ipAddressRegex().exactMatch(text)) {
if (ipAddressRegex().match(text).hasMatch()) {
m_settings.setPrimaryDns(text);
}
}
void NetworkSettingsLogic::onLineEditDns2EditFinished(const QString &text)
{
if (ipAddressRegex().exactMatch(text)) {
if (ipAddressRegex().match(text).hasMatch()) {
m_settings.setSecondaryDns(text);
}
}

View file

@ -13,7 +13,7 @@ class NetworkSettingsLogic : public PageLogicBase
AUTO_PROPERTY(QString, lineEditDns1Text)
AUTO_PROPERTY(QString, lineEditDns2Text)
READONLY_PROPERTY(QRegExp, ipAddressRegex)
READONLY_PROPERTY(QRegularExpression, ipAddressRegex)
public:
Q_INVOKABLE void onUpdatePage() override;

View file

@ -6,7 +6,7 @@
#include "QZXing.h"
#include "QZXingImageProvider.h"
#include "QZXingFilter.h"
//#include "QZXingFilter.h"
#include "ShareConnectionLogic.h"

View file

@ -5,7 +5,7 @@
#include "SitesLogic.h"
#include "VpnLogic.h"
#include "utils.h"
#include "utilities.h"
#include "vpnconnection.h"
#include <functional>
@ -56,7 +56,7 @@ void SitesLogic::onPushButtonAddCustomSitesClicked()
newSite.replace("http://", "");
newSite.replace("ftp://", "");
newSite = newSite.split("/", QString::SkipEmptyParts).first();
newSite = newSite.split("/", Qt::SkipEmptyParts).first();
}
const auto &cbProcess = [this, mode](const QString &newSite, const QString &ip) {

View file

@ -2,7 +2,7 @@
#include "core/errorstrings.h"
#include "configurators/ssh_configurator.h"
#include "../uilogic.h"
#include "utils.h"
#include "utilities.h"
#include <QFileDialog>
#include <QStandardPaths>
@ -200,7 +200,7 @@ bool StartPageLogic::importConnectionFromCode(QString code)
return importConnection(o);
}
o = QJsonDocument::fromBinaryData(ba).object();
o = QJsonDocument::fromJson(ba).object();
if (!o.isEmpty()) {
return importConnection(o);
}

View file

@ -3,6 +3,8 @@
#include "PageLogicBase.h"
#include <QRegExp>
class UiLogic;
class StartPageLogic : public PageLogicBase
@ -22,7 +24,7 @@ class StartPageLogic : public PageLogicBase
AUTO_PROPERTY(bool, pushButtonBackFromStartVisible)
AUTO_PROPERTY(bool, pushButtonConnectVisible)
READONLY_PROPERTY(QRegExp, ipAddressPortRegex)
READONLY_PROPERTY(QRegularExpression, ipAddressPortRegex)
public:
Q_INVOKABLE void onUpdatePage() override;

View file

@ -8,7 +8,7 @@
#include "core/servercontroller.h"
#include <functional>
#include "../../uilogic.h"
#include "utils.h"
#include "utilities.h"
#ifdef Q_OS_WINDOWS
#include <Windows.h>
@ -147,7 +147,7 @@ void OtherProtocolsLogic::onPushButtonSftpMountDriveClicked()
//#ifndef Q_OS_WIN
// args.replace("reconnect-orellinks", "");
//#endif
p->setArguments(args.split(" ", QString::SkipEmptyParts));
p->setArguments(args.split(" ", Qt::SkipEmptyParts));
p->start();
p->waitForStarted(50);
if (p->state() != QProcess::Running) {

View file

@ -7,7 +7,7 @@ import PageEnum 1.0
import PageType 1.0
import Qt.labs.platform 1.1
import Qt.labs.folderlistmodel 2.12
import QtQuick.Dialogs 1.1
import QtQuick.Dialogs
import "./"
import "Controls"
import "Pages"
@ -263,10 +263,10 @@ Window {
// y: (root.height - height) / 2
title: qsTr("Exit")
text: qsTr("Do you really want to quit?")
standardButtons: StandardButton.Yes | StandardButton.No
onYes: {
Qt.quit()
}
// standardButtons: StandardButton.Yes | StandardButton.No
// onYesClicked: {
// Qt.quit()
// }
visible: false
}
MessageDialog {

View file

@ -36,7 +36,7 @@
#include "debug.h"
#include "defines.h"
#include "uilogic.h"
#include "utils.h"
#include "utilities.h"
#include "vpnconnection.h"
#include <functional>

View file

@ -1,7 +1,7 @@
#ifndef UILOGIC_H
#define UILOGIC_H
#include <QRegExpValidator>
#include <QRegularExpressionValidator>
#include <QQmlEngine>
#include <functional>
#include <QKeyEvent>