aboutsummaryrefslogtreecommitdiffstats
path: root/src/kvilib
diff options
context:
space:
mode:
authorGravatar Fabio Bas2023-10-05 17:50:54 +0200
committerGravatar ctrlaltca2023-10-18 10:26:35 +0200
commit2d1bc24d6b6b032dc7db5a2ef7e63bcef43fd511 (patch)
tree9181ee4ba29dc99e652f0ff07d4f95642607c4f4 /src/kvilib
parentMisc Qt6 port for slightly changed class names and method signatures (diff)
downloadKVIrc-2d1bc24d6b6b032dc7db5a2ef7e63bcef43fd511.tar.gz
KVIrc-2d1bc24d6b6b032dc7db5a2ef7e63bcef43fd511.tar.bz2
KVIrc-2d1bc24d6b6b032dc7db5a2ef7e63bcef43fd511.zip
Changes that will need to be reworked.
QFont changed the weight scale in Qt6, in order to use them we'd need to fix all configuration files in all themes. QStreamConverter only supports Utf8/16/32 and Latin1 before Qt6.5. Stick to qt5compat's QTextCodec by now
Diffstat (limited to 'src/kvilib')
-rw-r--r--src/kvilib/ext/KviStringConversion.cpp13
-rw-r--r--src/kvilib/file/KviFileUtils.cpp25
2 files changed, 31 insertions, 7 deletions
diff --git a/src/kvilib/ext/KviStringConversion.cpp b/src/kvilib/ext/KviStringConversion.cpp
index 8b8e557ea..b12a1ef84 100644
--- a/src/kvilib/ext/KviStringConversion.cpp
+++ b/src/kvilib/ext/KviStringConversion.cpp
@@ -226,7 +226,13 @@ namespace KviStringConversion
void toString(const QFont & font, QString & szBuffer)
{
QString szFamily(font.family());
- szBuffer = QString::asprintf("%s,%d,%d,%d", szFamily.toUtf8().data(), font.pointSize(), font.styleHint(), font.weight());
+ szBuffer = QString::asprintf("%s,%d,%d,%d", szFamily.toUtf8().data(), font.pointSize(), font.styleHint(),
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
+ font.weight()
+#else
+ font.legacyWeight()
+#endif
+ );
QString szOptions;
if(font.bold())
szOptions.append('b');
@@ -266,8 +272,11 @@ namespace KviStringConversion
buffer.setStyleHint((QFont::StyleHint)i);
i = weight.toInt(&bOk);
if(bOk && (i >= 0))
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
buffer.setWeight(i);
-
+#else
+ buffer.setLegacyWeight(i);
+#endif
buffer.setBold(str.contains("b"));
buffer.setItalic(str.contains("i"));
buffer.setUnderline(str.contains("u"));
diff --git a/src/kvilib/file/KviFileUtils.cpp b/src/kvilib/file/KviFileUtils.cpp
index 283bdc501..755557912 100644
--- a/src/kvilib/file/KviFileUtils.cpp
+++ b/src/kvilib/file/KviFileUtils.cpp
@@ -34,7 +34,11 @@
#include <QString>
#include <QStringList>
#include <QtGlobal>
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
#include <QTextCodec>
+#else
+#include <QStringConverter>
+#endif
#include <QTextStream>
namespace KviFileUtils
@@ -263,7 +267,13 @@ namespace KviFileUtils
KviFile f(szPath);
if(!f.open(QFile::WriteOnly | (bAppend ? QFile::Append : QFile::Truncate)))
return false;
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
QByteArray szTmp = QTextCodec::codecForLocale()->fromUnicode(szData);
+#else
+ QStringEncoder enc = QStringEncoder(QStringConverter::Latin1);
+ QByteArray szTmp = enc.encode(szData);
+#endif
+
if(f.write(szTmp.data(), szTmp.length()) != ((unsigned int)(szTmp.length())))
return false;
return true;
@@ -326,14 +336,16 @@ namespace KviFileUtils
bool readLine(QFile * pFile, QString & szBuffer, bool bUtf8)
{
QTextStream stream(pFile);
- // By default, QTextCodec::codecForLocale() is used, and automatic unicode detection is enabled.
- if(bUtf8)
- stream.setCodec(QTextCodec::codecForMib(106));
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
/*
* Name: UTF-8
* MIBenum: 106
* from: http://www.iana.org/assignments/character-sets
*/
+ stream.setCodec(bUtf8 ? QTextCodec::codecForMib(106) : QTextCodec::codecForLocale());
+#else
+ stream.setEncoding(bUtf8 ? QStringConverter::Utf8 : QStringConverter::Latin1);
+#endif
szBuffer = stream.readLine();
return !szBuffer.isNull();
}
@@ -341,9 +353,12 @@ namespace KviFileUtils
bool readLines(QFile * pFile, QStringList & buffer, int iStartLine, int iCount, bool bUtf8)
{
QTextStream stream(pFile);
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
//please read comments in the readLine(...) method
- if(bUtf8)
- stream.setCodec(QTextCodec::codecForMib(106));
+ stream.setCodec(bUtf8 ? QTextCodec::codecForMib(106) : QTextCodec::codecForLocale());
+#else
+ stream.setEncoding(bUtf8 ? QStringConverter::Utf8 : QStringConverter::Latin1);
+#endif
for(int i = 0; i < iStartLine; i++)
stream.readLine();