Skip to content

Commit

Permalink
Port to (and require) Qt 5.15. Drop KDE4 support, fix KDE5 (#2541)
Browse files Browse the repository at this point in the history
* Port to (and require) Qt 5.15. Drop KDE4 support, implement KDE5 support where needed.
---------

Co-authored-by: Fabio Bas <fabio.bas@officineinformatiche.net>
  • Loading branch information
ctrlaltca and Fabio Bas committed Jul 7, 2023
1 parent 018ba7b commit 2829217
Show file tree
Hide file tree
Showing 111 changed files with 391 additions and 701 deletions.
12 changes: 5 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ endif()
# Check for Qt5
############################################################################

find_package(Qt5Widgets)
find_package(Qt5Widgets 5.15)
if(Qt5Widgets_FOUND)
set(CMAKE_STATUS_QT_VERSION "${Qt5Widgets_VERSION_STRING}")
set(qt5_kvirc_modules)
Expand Down Expand Up @@ -521,17 +521,15 @@ if(WANT_KDE)
XmlGui # KMainWindow
WindowSystem # KWindowSystem
Notifications # KNotification
Service # KToolInvocation
Service # KService, KApplicationTrader
KIO # KTerminalLauncherJob, KIO/ApplicationLauncherJob
Parts # KParts
)

if(KF5_FOUND)
set(CMAKE_RESULT_USING_KDE true)
#include_directories(${KDE4_INCLUDES})
#add_definitions(${KDE4_DEFINITIONS})
set(COMPILE_KDE_SUPPORT 1)
# There seems to be no portable way to figure out if KDE version is 4 or 5
set(COMPILE_KDE5_SUPPORT 1)
list(APPEND LIBS KF5::CoreAddons KF5::I18n KF5::XmlGui KF5::WindowSystem KF5::Notifications KF5::Service)
list(APPEND LIBS KF5::CoreAddons KF5::I18n KF5::XmlGui KF5::WindowSystem KF5::Notifications KF5::Service KF5::KIOCore KF5::KIOGui KF5::KIOWidgets KF5::Parts)
set(CMAKE_STATUS_KDE_SUPPORT "Yes")
if(DEFINED KF5_VERSION)
set(CMAKE_STATUS_KDE_VERSION ${KF5_VERSION})
Expand Down
5 changes: 0 additions & 5 deletions cmake/kvi_sysconfig.h.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,7 @@
#cmakedefine COMPILE_IPV6_SUPPORT 1
#cmakedefine COMPILE_PSEUDO_TRANSPARENCY 1
#cmakedefine COMPILE_ENCHANT_SUPPORT 1
// Do we use KDE at all?
#cmakedefine COMPILE_KDE_SUPPORT 1
// Using KDE4 ? Implies COMPILE_KDE_SUPPORT
#cmakedefine COMPILE_KDE4_SUPPORT 1
// Using KDE5 ? Implies COMPILE_KDE_SUPPORT
#cmakedefine COMPILE_KDE5_SUPPORT 1
#cmakedefine COMPILE_WEBKIT_SUPPORT 1
#cmakedefine COMPILE_DBUS_SUPPORT 1
#cmakedefine COMPILE_ZLIB_SUPPORT 1
Expand Down
4 changes: 2 additions & 2 deletions src/kvilib/ext/KviCommandFormatter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ namespace KviCommandFormatter

void unindent(QString & szBuffer)
{
QStringList list = szBuffer.split("\n", QString::KeepEmptyParts);
QStringList list = szBuffer.split("\n", Qt::KeepEmptyParts);

while(hasLeadingChars(list, QChar('\t')) || hasLeadingChars(list, QChar(' ')))
trimLeading(list);
Expand Down Expand Up @@ -199,7 +199,7 @@ namespace KviCommandFormatter

void indent(QString & szBuffer)
{
QStringList list = szBuffer.split("\n", QString::KeepEmptyParts);
QStringList list = szBuffer.split("\n", Qt::KeepEmptyParts);

addLeading(list, QChar('\t'));
//szBuffer = list.join("\n"); join implementation sux :D
Expand Down
6 changes: 3 additions & 3 deletions src/kvilib/ext/KviStringConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ namespace KviStringConversion

void toString(const QRect & rValue, QString & szBuffer)
{
szBuffer.sprintf("%d,%d,%d,%d", rValue.x(), rValue.y(), rValue.width(), rValue.height());
szBuffer = QString::asprintf("%d,%d,%d,%d", rValue.x(), rValue.y(), rValue.width(), rValue.height());
}

bool fromString(const QString & szValue, QRect & buffer)
Expand Down Expand Up @@ -195,7 +195,7 @@ namespace KviStringConversion

void toString(const KviMessageTypeSettings & mValue, QString & szBuffer)
{
szBuffer.sprintf("%d,%u,%u,%d,%d", mValue.m_iPixId, mValue.m_cForeColor, mValue.m_cBackColor, mValue.m_bLogEnabled, mValue.m_iLevel);
szBuffer = QString::asprintf("%d,%u,%u,%d,%d", mValue.m_iPixId, mValue.m_cForeColor, mValue.m_cBackColor, mValue.m_bLogEnabled, mValue.m_iLevel);
}

bool fromString(const QString & szValue, KviMessageTypeSettings & buffer)
Expand Down Expand Up @@ -226,7 +226,7 @@ namespace KviStringConversion
void toString(const QFont & font, QString & szBuffer)
{
QString szFamily(font.family());
szBuffer.sprintf("%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(), font.weight());
QString szOptions;
if(font.bold())
szOptions.append('b');
Expand Down
2 changes: 1 addition & 1 deletion src/kvilib/net/KviNetUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ namespace KviNetUtils
#ifndef HAVE_INET_ATON
QString szAddr = szStringIp.simplified();
quint32 iAddr = 0;
QStringList ipv4 = szAddr.split(".", QString::KeepEmptyParts, Qt::CaseInsensitive);
QStringList ipv4 = szAddr.split(".", Qt::KeepEmptyParts, Qt::CaseInsensitive);
if(ipv4.count() == 4)
{
int i = 0;
Expand Down
10 changes: 0 additions & 10 deletions src/kvilib/tal/KviTalApplication.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,17 @@

#include "KviTalApplication.h"

#if defined(COMPILE_KDE4_SUPPORT)
KviTalApplication::KviTalApplication(int &, char **)
: KApplication()
{
}
#else //!defined(COMPILE_KDE4_SUPPORT)
KviTalApplication::KviTalApplication(int & iArgc, char ** ppcArgv)
: QApplication(iArgc, ppcArgv)
{
// Session management has been broken by source incompatible changes.
QObject::connect(this, SIGNAL(commitDataRequest(QSessionManager &)), this, SLOT(commitData(QSessionManager &)));
}
#endif //!defined(COMPILE_KDE4_SUPPORT)

KviTalApplication::~KviTalApplication()
= default;

void KviTalApplication::commitData(QSessionManager & manager)
{
saveConfiguration();
#if defined(COMPILE_KDE4_SUPPORT)
KApplication::commitData(manager);
#endif //defined(COMPILE_KDE4_SUPPORT)
}
10 changes: 0 additions & 10 deletions src/kvilib/tal/KviTalApplication.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,8 @@
* \brief Toolkit Abstraction Layer: application class
*/

#if defined(COMPILE_KDE4_SUPPORT)

#include <KApplication>
class KVILIB_API KviTalApplication : public KApplication

#else //!defined(COMPILE_KDE4_SUPPORT)

// Either no KDE or KDE5 (which uses QApplication)
#include <QApplication>
class KVILIB_API KviTalApplication : public QApplication

#endif //!defined(COMPILE_KDE4_SUPPORT)
{
Q_OBJECT
public:
Expand Down
50 changes: 2 additions & 48 deletions src/kvilib/tal/KviTalFileDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,55 +24,19 @@

#include "KviTalFileDialog.h"

#if defined(COMPILE_KDE4_SUPPORT)

KviTalFileDialog::KviTalFileDialog(const QString & szDirName, const QString & szFilter, QWidget * pParent, const char *, bool)
: KFileDialog(KUrl(szDirName), szFilter, pParent)
{
//clearWFlags(WDestructiveClose);
}

#else //!defined(COMPILE_KDE4_SUPPORT))

KviTalFileDialog::KviTalFileDialog(const QString & szDirName, const QString & szFilter, QWidget * pParent, const char *, bool bModal)
: QFileDialog(pParent, "", szDirName, szFilter)
{
setModal(bModal);
}

#endif //!defined(COMPILE_KDE4_SUPPORT))

KviTalFileDialog::~KviTalFileDialog()
= default;

void KviTalFileDialog::setFileMode(FileMode m)
{
switch(m)
{
#if defined(COMPILE_KDE4_SUPPORT)
case AnyFile:
setMode(KFile::File | KFile::LocalOnly);
setOperationMode(Saving);
break;
case ExistingFile:
setMode(KFile::File | KFile::ExistingOnly | KFile::LocalOnly);
setOperationMode(Opening);
break;
case ExistingFiles:
setMode(KFile::Files | KFile::ExistingOnly | KFile::LocalOnly);
setOperationMode(Opening);
break;
case Directory:
setMode(KFile::Directory);
break;
case DirectoryOnly:
setMode(KFile::Directory);
break;
default:
setMode(KFile::File | KFile::LocalOnly);
setOperationMode(Saving);
break;
#else //!defined(COMPILE_KDE4_SUPPORT)
case AnyFile:
QFileDialog::setFileMode(QFileDialog::AnyFile);
setAcceptMode(QFileDialog::AcceptSave);
Expand All @@ -87,21 +51,11 @@ void KviTalFileDialog::setFileMode(FileMode m)
QFileDialog::setFileMode(QFileDialog::Directory);
break;
case DirectoryOnly:
QFileDialog::setFileMode(QFileDialog::DirectoryOnly);
QFileDialog::setOption(ShowDirsOnly, true);
break;
default:
QFileDialog::setFileMode(QFileDialog::AnyFile);
setAcceptMode(QFileDialog::AcceptSave);
break;
#endif //!defined(COMPILE_KDE4_SUPPORT)
}
}

void KviTalFileDialog::setDirectory(const QString & szDirectory)
{
#if defined(COMPILE_KDE4_SUPPORT)
setUrl(KUrl(szDirectory));
#else //!defined(COMPILE_KDE4_SUPPORT)
QFileDialog::setDirectory(szDirectory);
#endif //!defined(COMPILE_KDE4_SUPPORT)
}
}
24 changes: 0 additions & 24 deletions src/kvilib/tal/KviTalFileDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,8 @@
* \brief Toolkit Abstraction Layer: filedialog class
*/

#if defined(COMPILE_KDE4_SUPPORT)

#include <KFileDialog>
class KVILIB_API KviTalFileDialog : public KFileDialog

#else //!defined(COMPILE_KDE4_SUPPORT)

// no KDE or KDE5 (which has no KFileDialog)

#include <QFileDialog>
class KVILIB_API KviTalFileDialog : public QFileDialog

#endif //!defined(COMPILE_KDE4_SUPPORT)
{
Q_OBJECT
public:
Expand Down Expand Up @@ -94,13 +83,6 @@ class KVILIB_API KviTalFileDialog : public QFileDialog
*/
void setFileMode(FileMode m);

/**
* \brief Sets the current directory
* \param szDirectory The directory
* \return void
*/
void setDirectory(const QString & szDirectory);

/**
* \brief Returns an existing directory selected by the user
* \param szDir The directory to display
Expand All @@ -110,13 +92,7 @@ class KVILIB_API KviTalFileDialog : public QFileDialog
*/
static QString getExistingDirectoryPath(const QString & szDir = QString(), const QString & szCaption = QString(), QWidget * pParent = nullptr)
{
#if defined(COMPILE_KDE4_SUPPORT)
// QFileDialog allows making new directories...kfiledialog not :/
return KFileDialog::getExistingDirectory(KUrl(szDir), pParent, szCaption);
//return getExistingDirectory(dir,parent,caption);
#else //!defined(COMPILE_KDE4_SUPPORT)
return getExistingDirectory(pParent, szCaption, szDir);
#endif //!defined(COMPILE_KDE4_SUPPORT)
};
};

Expand Down
4 changes: 2 additions & 2 deletions src/kvilib/tal/KviTalListWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ int KviTalListWidgetText::height(const KviTalListWidget * lb) const

int KviTalListWidgetText::width(const KviTalListWidget * lb) const
{
int w = lb ? lb->fontMetrics().width(text()) + 6 : 0;
int w = lb ? lb->fontMetrics().horizontalAdvance(text()) + 6 : 0;
return qMax(w, QApplication::globalStrut().width());
}

Expand Down Expand Up @@ -183,7 +183,7 @@ int KviTalListWidgetPixmap::width(const KviTalListWidget * lb) const
{
if(text().isEmpty())
return qMax(pm.width() + 6, QApplication::globalStrut().width());
return qMax(pm.width() + lb->fontMetrics().width(text()) + 6,
return qMax(pm.width() + lb->fontMetrics().horizontalAdvance(text()) + 6,
QApplication::globalStrut().width());
}

Expand Down
12 changes: 0 additions & 12 deletions src/kvilib/tal/KviTalMenuBar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,6 @@

#include "KviTalMenuBar.h"

#ifdef COMPILE_KDE4_SUPPORT

KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName)
: KMenuBar(pParent)
{
setWindowTitle(pcName);
}

#else //!COMPILE_KDE4_SUPPORT

KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName)
#ifdef COMPILE_ON_MAC
// global menubar must have 0 as its parent
Expand All @@ -44,7 +34,5 @@ KviTalMenuBar::KviTalMenuBar(QWidget * pParent, const char * pcName)
{
}

#endif //!COMPILE_KDE4_SUPPORT

KviTalMenuBar::~KviTalMenuBar()
= default;
10 changes: 0 additions & 10 deletions src/kvilib/tal/KviTalMenuBar.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,9 @@
* \brief Toolkit Abstraction Layer: menubar class
*/

#ifdef COMPILE_KDE4_SUPPORT

#include <kmenubar.h>

class KVILIB_API KviTalMenuBar : public KMenuBar

#else //!COMPILE_KDE4_SUPPORT

#include <QMenuBar>

class KVILIB_API KviTalMenuBar : public QMenuBar

#endif //!COMPILE_KDE4_SUPPORT
{
Q_OBJECT
public:
Expand Down
Loading

0 comments on commit 2829217

Please sign in to comment.