Finish porting. Seems to work, but no thorough testing has been performed qt5transition
authorunc0rr
Wed, 24 Jan 2018 22:20:10 +0100
branchqt5transition
changeset 12897 fc47fc4af6bd
parent 12896 8869b5256720
child 13158 99dd144f0a54
Finish porting. Seems to work, but no thorough testing has been performed
QTfrontend/CMakeLists.txt
QTfrontend/main.cpp
QTfrontend/model/ammoSchemeModel.cpp
QTfrontend/model/playerslistmodel.cpp
QTfrontend/net/hwmap.cpp
QTfrontend/net/netudpwidget.cpp
QTfrontend/net/newnetclient.cpp
QTfrontend/net/proto.h
QTfrontend/ui/dialog/upload_video.cpp
QTfrontend/ui/page/pageadmin.cpp
QTfrontend/ui/page/pagenet.cpp
QTfrontend/ui/page/pageroomslist.cpp
QTfrontend/ui/page/pagevideos.cpp
QTfrontend/ui/widget/about.cpp
QTfrontend/ui/widget/chatwidget.cpp
QTfrontend/ui/widget/feedbackdialog.cpp
QTfrontend/ui/widget/keybinder.cpp
QTfrontend/ui/widget/mapContainer.cpp
QTfrontend/util/FileEngine.h
--- a/QTfrontend/CMakeLists.txt	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/CMakeLists.txt	Wed Jan 24 22:20:10 2018 +0100
@@ -1,5 +1,7 @@
 find_package(Qt5 COMPONENTS Core Gui Network Svg Xml OpenGL)
 
+include_directories(${Qt5Core_PRIVATE_INCLUDE_DIRS})
+
 include(CheckLibraryExists)
 
 find_package(SDL2 REQUIRED)
--- a/QTfrontend/main.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/main.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -20,7 +20,6 @@
 
 #include <QTranslator>
 #include <QLocale>
-#include <QPlastiqueStyle>
 #include <QRegExp>
 #include <QMap>
 #include <QSettings>
@@ -252,7 +251,7 @@
     splash.show();
 #endif
 
-    app.setStyle(new QPlastiqueStyle());
+    //app.setStyle(new QPlastiqueStyle());
 
     QDateTime now = QDateTime::currentDateTime();
     srand(now.toTime_t());
@@ -332,7 +331,7 @@
 
             // Fallback to current input locale if "C" locale is returned
             if(cc == "C")
-                cc = HWApplication::keyboardInputLocale().name();
+                cc = HWApplication::inputMethod()->locale().name();
         }
 
         // Load locale files into translators
--- a/QTfrontend/model/ammoSchemeModel.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/model/ammoSchemeModel.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -569,7 +569,7 @@
             << QVariant()              // scriptparam    43
             ;
 
-	QList<QVariant> construction;
+  QList<QVariant> construction;
     construction
             << predefSchemesNames[10]  // name           0
             << QVariant(false)         // fortsmode      1
@@ -617,7 +617,7 @@
             << QVariant()              // scriptparam    43
             ;
 
-	QList<QVariant> hedgeeditor;
+  QList<QVariant> hedgeeditor;
     hedgeeditor
             << predefSchemesNames[11]  // name           0
             << QVariant(false)         // fortsmode      1
@@ -664,9 +664,9 @@
             << QVariant(0)             // world edge     42
             << QVariant()              // scriptparam    43
             ;
-			
- 
-			
+
+
+
     schemes.append(defaultScheme);
     schemes.append(proMode);
     schemes.append(shoppa);
@@ -896,10 +896,12 @@
         return;
     }
 
+    beginResetModel();
+
     cfg[cfg.size()-1] = cfg[cfg.size()-1].mid(1);
 
     for(int i = 0; i < cfg.size(); ++i)
         netScheme[i] = QVariant(cfg[i]);
 
-    reset();
+    endResetModel();
 }
--- a/QTfrontend/model/playerslistmodel.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/model/playerslistmodel.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -309,10 +309,10 @@
     }
 
     if(index.data(Ignore).toBool())
-        setData(index, Qt::gray, Qt::ForegroundRole);
+        setData(index, QColor(Qt::gray), Qt::ForegroundRole);
     else
     if(index.data(Friend).toBool())
-        setData(index, Qt::green, Qt::ForegroundRole);
+        setData(index, QColor(Qt::green), Qt::ForegroundRole);
     else
         setData(index, QBrush(QColor(0xff, 0xcc, 0x00)), Qt::ForegroundRole);
 }
--- a/QTfrontend/net/hwmap.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/net/hwmap.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -79,7 +79,7 @@
     {
         quint8 *buf = (quint8*) readbuffer.constData();
         QImage im(buf, 256, 128, QImage::Format_Mono);
-        im.setNumColors(2);
+        im.setColorCount(2);
 
         QPixmap px(QSize(256, 128));
         QPixmap pxres(px.size());
--- a/QTfrontend/net/netudpwidget.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/net/netudpwidget.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -33,15 +33,19 @@
 
 void HWNetUdpModel::updateList()
 {
-    games.clear();
+  beginResetModel();
+
+  games.clear();
 
-    reset();
+  endResetModel();
 
-    pUdpSocket->writeDatagram("hedgewars client", QHostAddress::Broadcast, NETGAME_DEFAULT_PORT);
+  pUdpSocket->writeDatagram("hedgewars client", QHostAddress::Broadcast, NETGAME_DEFAULT_PORT);
 }
 
 void HWNetUdpModel::onClientRead()
 {
+    beginResetModel();
+
     while (pUdpSocket->hasPendingDatagrams())
     {
         QByteArray datagram;
@@ -60,7 +64,7 @@
         }
     }
 
-    reset();
+    endResetModel();
 }
 
 QVariant HWNetUdpModel::data(const QModelIndex &index,
--- a/QTfrontend/net/newnetclient.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/net/newnetclient.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -242,7 +242,7 @@
 void HWNewNet::SendPasswordHash(const QString & hash)
 {
     // don't send it immediately, only store and check if server asked us for a password
-    m_passwordHash = hash.toAscii();
+    m_passwordHash = hash.toLatin1();
 
     maybeSendPassword();
 }
@@ -271,7 +271,7 @@
     if (lst[0] == "ERROR")
     {
         if (lst.size() == 2)
-            emit Error(HWApplication::translate("server", lst[1].toAscii().constData()));
+            emit Error(HWApplication::translate("server", lst[1].toLatin1().constData()));
         else
             emit Error("Unknown error");
         return;
@@ -280,7 +280,7 @@
     if (lst[0] == "WARNING")
     {
         if (lst.size() == 2)
-            emit Warning(HWApplication::translate("server", lst[1].toAscii().constData()));
+            emit Warning(HWApplication::translate("server", lst[1].toLatin1().constData()));
         else
             emit Warning("Unknown warning");
         return;
@@ -447,7 +447,7 @@
         while(flags.size() > 1)
         {
             flags.remove(0, 1);
-            char c = flags[0].toAscii();
+            char c = flags[0].toLatin1();
             bool inRoom = (netClientState == InRoom || netClientState == InGame);
 
             switch(c)
@@ -673,7 +673,7 @@
         }
         m_game_connected = false;
         Disconnect();
-        emit disconnected(HWApplication::translate("server", lst[1].toAscii().constData()));
+        emit disconnected(HWApplication::translate("server", lst[1].toLatin1().constData()));
         return;
     }
 
@@ -727,7 +727,7 @@
             }
             for(int i = 1; i < lst.size(); ++i)
             {
-                QByteArray em = QByteArray::fromBase64(lst[i].toAscii());
+                QByteArray em = QByteArray::fromBase64(lst[i].toLatin1());
                 emit FromNet(em);
             }
             return;
@@ -1155,18 +1155,18 @@
         return;
 
     QString hash = QCryptographicHash::hash(
-                m_clientSalt.toAscii()
-                .append(m_serverSalt.toAscii())
+                m_clientSalt.toLatin1()
+                .append(m_serverSalt.toLatin1())
                 .append(m_passwordHash)
-                .append(cProtoVer->toAscii())
+                .append(cProtoVer->toLatin1())
                 .append("!hedgewars")
                 , QCryptographicHash::Sha1).toHex();
 
     m_serverHash = QCryptographicHash::hash(
-                m_serverSalt.toAscii()
-                .append(m_clientSalt.toAscii())
+                m_serverSalt.toLatin1()
+                .append(m_clientSalt.toLatin1())
                 .append(m_passwordHash)
-                .append(cProtoVer->toAscii())
+                .append(cProtoVer->toLatin1())
                 .append("!hedgewars")
                 , QCryptographicHash::Sha1).toHex();
 
--- a/QTfrontend/net/proto.h	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/net/proto.h	Wed Jan 24 22:20:10 2018 +0100
@@ -22,7 +22,7 @@
 #include <QByteArray>
 #include <QString>
 #include <QStringList>
-
+#include <QObject>
 
 class HWProto : public QObject
 {
--- a/QTfrontend/ui/dialog/upload_video.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/dialog/upload_video.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -38,7 +38,7 @@
 
 // User-agent string used in http requests.
 // Don't make it a global varibale - crash on linux because of cVersionString
-#define USER_AGENT ("Hedgewars-QtFrontend/" + *cVersionString).toAscii()
+#define USER_AGENT ("Hedgewars-QtFrontend/" + *cVersionString).toLatin1()
 
 // This is developer key obtained from http://code.google.com/apis/youtube/dashboard/
 // If you are reusing this code outside Hedgewars, don't use this developer key,
@@ -193,7 +193,7 @@
 
     QString account(QUrl::toPercentEncoding(leAccount->text()));
     QString pass(QUrl::toPercentEncoding(lePassword->text()));
-    QByteArray data = QString("Email=%1&Passwd=%2&service=youtube&source=Hedgewars").arg(account).arg(pass).toAscii();
+    QByteArray data = QString("Email=%1&Passwd=%2&service=youtube&source=Hedgewars").arg(account).arg(pass).toUtf8();
 
     QNetworkReply *reply = netManager->post(request, data);
     connect(reply, SIGNAL(finished()), this, SLOT(authFinished()));
@@ -246,7 +246,7 @@
         return;
     }
 
-    QByteArray auth = ("GoogleLogin auth=" + authToken).toAscii();
+    QByteArray auth = ("GoogleLogin auth=" + authToken).toLatin1();
 
     // We have authenticated, now we can send metadata and start upload
     // Documentation is here: https://developers.google.com/youtube/2.0/developers_guide_protocol_resumable_uploads#Resumable_uploads
--- a/QTfrontend/ui/page/pageadmin.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/page/pageadmin.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -98,7 +98,7 @@
                               << tr("Expiration")
                               << tr("Reason")
                     );
-        twBans->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch);
+        twBans->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
         twBans->setEditTriggers(QAbstractItemView::NoEditTriggers);
         twBans->setSelectionBehavior(QAbstractItemView::SelectRows);
         twBans->setSelectionMode(QAbstractItemView::SingleSelection);
--- a/QTfrontend/ui/page/pagenet.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/page/pagenet.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -99,7 +99,7 @@
 {
     tvServersList->setModel(new HWNetUdpModel(tvServersList));
 
-    tvServersList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
+    tvServersList->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
 
     static_cast<HWNetServersModel *>(tvServersList->model())->updateList();
 
--- a/QTfrontend/ui/page/pageroomslist.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/page/pageroomslist.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -154,7 +154,7 @@
     roomsList = new RoomTableView(this);
     roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
     roomsList->verticalHeader()->setVisible(false);
-    roomsList->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
+    roomsList->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
     roomsList->setAlternatingRowColors(true);
     roomsList->setShowGrid(false);
     roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
@@ -587,7 +587,7 @@
 
     h->setSortIndicatorShown(true);
     h->setSortIndicator(RoomsListModel::StateColumn, Qt::AscendingOrder);
-    h->setResizeMode(RoomsListModel::NameColumn, QHeaderView::Stretch);
+    h->setSectionResizeMode(RoomsListModel::NameColumn, QHeaderView::Stretch);
 
     if (!restoreHeaderState())
     {
--- a/QTfrontend/ui/page/pagevideos.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/page/pagevideos.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -133,8 +133,8 @@
         filesTable->setMinimumWidth(400);
 
         QHeaderView * header = filesTable->horizontalHeader();
-        header->setResizeMode(vcName, QHeaderView::ResizeToContents);
-        header->setResizeMode(vcSize, QHeaderView::Fixed);
+        header->setSectionResizeMode(vcName, QHeaderView::ResizeToContents);
+        header->setSectionResizeMode(vcSize, QHeaderView::Fixed);
         header->resizeSection(vcSize, 100);
         header->setStretchLastSection(true);
 
@@ -851,7 +851,7 @@
 
 static QString unprotectPass(QString str)
 {
-    QByteArray array = QByteArray::fromBase64(str.toAscii());
+    QByteArray array = QByteArray::fromBase64(str.toLatin1());
     for (int i = 0; i < array.size(); i++)
         array[i] = array[i] ^ 0xC4 ^ i;
     return QString::fromUtf8(array);
--- a/QTfrontend/ui/widget/about.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/widget/about.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -26,6 +26,7 @@
 #include <QMessageBox>
 #include <QNetworkReply>
 #include <QDebug>
+#include <QMimeData>
 #include "hwconsts.h"
 #include "SDLInteraction.h"
 #include "SDL.h"
--- a/QTfrontend/ui/widget/chatwidget.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/widget/chatwidget.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -32,6 +32,7 @@
 #include <QSortFilterProxyModel>
 #include <QMenu>
 #include <QScrollBar>
+#include <QMimeData>
 
 #include "DataManager.h"
 #include "hwconsts.h"
@@ -312,7 +313,7 @@
     else if (link.scheme() == "hwnick")
     {
         // decode nick
-        QString nick = QString::fromUtf8(QByteArray::fromBase64(link.encodedQuery()));
+        QString nick = QString::fromUtf8(QByteArray::fromBase64(link.query(QUrl::FullyDecoded).toLatin1()));
         QModelIndexList mil = chatNicks->model()->match(chatNicks->model()->index(0, 0), Qt::DisplayRole, nick);
 
         bool isOffline = (mil.size() < 1);
@@ -374,10 +375,10 @@
 {
     if (nickname != m_userNick)
         return QString("<a href=\"hwnick://?%1\" class=\"nick\">%2</a>").arg(
-                   QString(nickname.toUtf8().toBase64())).arg(Qt::escape(nickname));
+                   QString(nickname.toUtf8().toBase64())).arg(nickname.toHtmlEscaped());
 
     // unlinked nick (if own one)
-    return QString("<span class=\"nick\">%1</span>").arg(Qt::escape(nickname));
+    return QString("<span class=\"nick\">%1</span>").arg(nickname.toHtmlEscaped());
 }
 
 const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http(s)?://)?(www\\.)?((([^/:?&#]+\\.)?hedgewars\\.org|code\\.google\\.com|googlecode\\.com|hh\\.unit22\\.org)(/[^ ]*)?)");
@@ -399,7 +400,7 @@
 
 QString HWChatWidget::messageToHTML(const QString & message)
 {
-    QString formattedStr = Qt::escape(message);
+    QString formattedStr = message.toHtmlEscaped();
     // link some urls
     formattedStr = formattedStr.replace(URLREGEXP, "<a href=\"http\\2://\\4\">\\4</a>");
     return formattedStr;
@@ -606,9 +607,9 @@
 {
     addLine("msg_PlayerInfo", QString(" >>> %1 - <span class=\"ipaddress\">%2</span> <span class=\"version\">%3</span> <span class=\"location\">%4</span>")
         .arg(linkedNick(nick))
-        .arg(Qt::escape(ip == "[]"?"":ip))
-        .arg(Qt::escape(version))
-        .arg(Qt::escape(roomInfo))
+        .arg(QString(ip == "[]"?"":ip).toHtmlEscaped())
+        .arg(version.toHtmlEscaped())
+        .arg(roomInfo.toHtmlEscaped())
     );
 }
 
--- a/QTfrontend/ui/widget/feedbackdialog.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/widget/feedbackdialog.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -20,7 +20,7 @@
 #include <QLineEdit>
 #include <QTextBrowser>
 #include <QLabel>
-#include <QHttp>
+#include <QNetworkAccessManager>
 #include <QSysInfo>
 #include <QDebug>
 #include <QBuffer>
@@ -474,7 +474,7 @@
             this, SLOT(finishedSlot(QNetworkReply*)));
 
     QNetworkRequest header(QUrl("https://hedgewars.org/feedback/?submit"));
-    header.setRawHeader("Content-Length", QString::number(body.size()).toAscii());
+    header.setRawHeader("Content-Length", QString::number(body.size()).toLatin1());
     header.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
 
     nam->post(header, body);
--- a/QTfrontend/ui/widget/keybinder.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/widget/keybinder.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -154,7 +154,7 @@
             curTable = new QTableWidget(0, 2);
             curTable->verticalHeader()->setVisible(false);
             curTable->horizontalHeader()->setVisible(false);
-            curTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
+            curTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
             curTable->verticalHeader()->setDefaultSectionSize(rowHeight);
             curTable->setShowGrid(false);
             curTable->setStyleSheet("QTableWidget { border: none; } ");
--- a/QTfrontend/ui/widget/mapContainer.cpp	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/ui/widget/mapContainer.cpp	Wed Jan 24 22:20:10 2018 +0100
@@ -984,7 +984,7 @@
 {
     m_theme = selectedTheme = current.data(ThemeModel::ActualNameRole).toString();
     m_themeID = current.row();
-    QIcon icon = qVariantValue<QIcon>(current.data(Qt::DecorationRole));
+    QIcon icon = current.data(Qt::DecorationRole).value<QIcon>();
     //QSize iconSize = icon.actualSize(QSize(65535, 65535));
     //btnTheme->setFixedHeight(64);
     //btnTheme->setIconSize(iconSize);
--- a/QTfrontend/util/FileEngine.h	Wed Jan 24 21:05:34 2018 +0100
+++ b/QTfrontend/util/FileEngine.h	Wed Jan 24 22:20:10 2018 +0100
@@ -1,9 +1,7 @@
 #ifndef _FileEngine_h
 #define _FileEngine_h
 
-#include <QAbstractFileEngine>
-#include <QAbstractFileEngineHandler>
-#include <QAbstractFileEngineIterator>
+#include <private/qabstractfileengine_p.h>
 #include <QDateTime>
 
 #include "physfs.h"