diff --git a/CMakeLists.txt b/CMakeLists.txt index 90ef1fb..127ae00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,11 +8,13 @@ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +set(BUILD_WITH_QT6 ON CACHE BOOL "Build against Qt 6" FORCE) +set(QT_DEFAULT_MAJOR_VERSION 6) + include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) -set(QT_DEFAULT_MAJOR_VERSION 6) find_package(Qt6 REQUIRED COMPONENTS Core Core5Compat DBus Gui Multimedia Network Test WebEngineWidgets Widgets Xml) find_package(KF6 REQUIRED COMPONENTS Codecs diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 030d4cf..83fb30d 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -6,5 +6,6 @@ ADD_SUBDIRECTORY( emoticons ) ADD_SUBDIRECTORY( chatstyles ) INSTALL( FILES kmesschatstyles.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) -INSTALL( FILES kmess.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kmess ) -INSTALL( FILES kmess.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +INSTALL( FILES kmess.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR} ) +INSTALL( FILES kmess.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} + RENAME org.kmess.kmess.desktop ) diff --git a/data/icons/CMakeLists.txt b/data/icons/CMakeLists.txt index d6ef8ab..fe445e0 100644 --- a/data/icons/CMakeLists.txt +++ b/data/icons/CMakeLists.txt @@ -1,12 +1,16 @@ -SET( KMESS_ICON_INSTALL_DIR ${DATA_INSTALL_DIR}/kmess/icons/hicolor/16x16 ) - # If Likeback is enabled, install the needed icons IF( NOT ${KMESS_DISABLE_LIKEBACK} EQUAL 1 ) - INSTALL( FILES likeback_bug.png DESTINATION ${KMESS_ICON_INSTALL_DIR}/actions ) - INSTALL( FILES likeback_dislike.png DESTINATION ${KMESS_ICON_INSTALL_DIR}/actions ) - INSTALL( FILES likeback_feature.png DESTINATION ${KMESS_ICON_INSTALL_DIR}/actions ) - INSTALL( FILES likeback_like.png DESTINATION ${KMESS_ICON_INSTALL_DIR}/actions ) + INSTALL( FILES likeback_bug.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/16x16/actions ) + INSTALL( FILES likeback_dislike.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/16x16/actions ) + INSTALL( FILES likeback_feature.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/16x16/actions ) + INSTALL( FILES likeback_like.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/16x16/actions ) ENDIF( NOT ${KMESS_DISABLE_LIKEBACK} EQUAL 1 ) -INSTALL( FILES kmess-shadow.png DESTINATION ${KMESS_ICON_INSTALL_DIR}/apps ) +INSTALL( FILES hi16-app-kmess.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/16x16/apps RENAME kmess.png ) +INSTALL( FILES hi22-app-kmess.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/22x22/apps RENAME kmess.png ) +INSTALL( FILES hi32-app-kmess.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/32x32/apps RENAME kmess.png ) +INSTALL( FILES hi48-app-kmess.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/48x48/apps RENAME kmess.png ) +INSTALL( FILES hi64-app-kmess.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/64x64/apps RENAME kmess.png ) +INSTALL( FILES hi128-app-kmess.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/128x128/apps RENAME kmess.png ) +INSTALL( FILES kmess-shadow.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/256x256/apps ) diff --git a/data/kmess.desktop b/data/kmess.desktop index 36caed2..a0eb6a1 100644 --- a/data/kmess.desktop +++ b/data/kmess.desktop @@ -1,14 +1,15 @@ [Desktop Entry] Name=KMess -Exec=kmess -caption "%c" %i +Exec=kmess Icon=kmess Type=Application DocPath=kmess/index.html -Terminal=0 +Terminal=false Categories=Qt;KDE;Network;InstantMessaging; +StartupWMClass=kmess Comment=Live Messenger Client for KDE -Comment[de]=Live-Messenger-Klon für KDE 4 -Comment[nl]=MSN Messenger Kloon voor KDE 4 +Comment[de]=Live-Messenger-Client für KDE +Comment[nl]=Live Messenger-client voor KDE GenericName=Live Messenger Client GenericName[af]=Irc Kliënt GenericName[ar]=عميل MSN @@ -67,4 +68,3 @@ GenericName[xx]=xxMSN Clientxx GenericName[zh_CN]=MSN 客户程序 GenericName[zh_TW]=MSN 客戶端程式 GenericName[zu]=Umthengi we MSN - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0773ec5..e2f155b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -245,5 +245,5 @@ TARGET_LINK_LIBRARIES( kmess ${kmess_LIBS} ) INSTALL( TARGETS kmess DESTINATION ${BIN_INSTALL_DIR}) -INSTALL( FILES chat/chatwindowui.rc DESTINATION ${DATA_INSTALL_DIR}/kmess ) -INSTALL( FILES kmessinterfaceui.rc DESTINATION ${DATA_INSTALL_DIR}/kmess ) +INSTALL( FILES chat/chatwindowui.rc DESTINATION ${KDE_INSTALL_KXMLGUIDIR}/kmess ) +INSTALL( FILES kmessinterfaceui.rc DESTINATION ${KDE_INSTALL_KXMLGUIDIR}/kmess ) diff --git a/src/initialview.cpp b/src/initialview.cpp index 7cec6aa..9a42777 100644 --- a/src/initialview.cpp +++ b/src/initialview.cpp @@ -122,10 +122,12 @@ InitialView::InitialView( QWidget *parent ) this, SLOT ( slotConnectClicked() ) ); connect( rememberAccountCheckBox_, SIGNAL( stateChanged(int) ), this, SLOT ( rememberAccountStateChanged(int) ) ); - connect( forgottenPasswordLabel_, SIGNAL( leftClickedUrl(const QString&) ), - this, SLOT ( slotClickedUrl(const QString&) ) ); - connect( newAccountLabel_, SIGNAL( leftClickedUrl(const QString&) ), - this, SLOT ( slotClickedUrl(const QString&) ) ); + connect( forgottenPasswordLabel_, &KUrlLabel::leftClickedUrl, this, [this]() { + slotClickedUrl( forgottenPasswordLabel_->url() ); + } ); + connect( newAccountLabel_, &KUrlLabel::leftClickedUrl, this, [this]() { + slotClickedUrl( newAccountLabel_->url() ); + } ); connect( statusLabel_, SIGNAL( linkActivated(const QString&) ), this, SLOT ( slotClickedUrl(const QString&) ) ); connect( rememberPasswordCheckBox_, SIGNAL( stateChanged(int) ), diff --git a/src/kmess.cpp b/src/kmess.cpp index 277477c..e0ca150 100644 --- a/src/kmess.cpp +++ b/src/kmess.cpp @@ -1376,8 +1376,9 @@ bool KMess::initChatMaster() msnNotificationConnection_, SLOT ( blockContact(QString) ) ); connect( chatMaster_, SIGNAL( unblockContact(QString) ), msnNotificationConnection_, SLOT ( unblockContact(QString) ) ); - connect( chatMaster_, SIGNAL( addContact(QString) ), - msnNotificationConnection_, SLOT ( addNewContact(QString, const QStringList) ) ); + connect( chatMaster_, &ChatMaster::addContact, msnNotificationConnection_, [this]( const QString &handle ) { + msnNotificationConnection_->addNewContact( handle ); + } ); connect( chatMaster_, SIGNAL( removeContact(QString,bool) ), msnNotificationConnection_, SLOT ( removeContact(QString,bool) ) ); connect( chatMaster_, SIGNAL( allowContact(QString) ), @@ -1506,7 +1507,8 @@ bool KMess::initNotifications() // Add check whether the 'eventsrc' file can be found. // The warning is a bit obtruisive, but should help to user to fix the problem. - if( KMessShared::findResource( "data", "kmess/kmess.notifyrc" ).isNull() ) + if( KMessShared::findResource( "data", "knotifications6/kmess.notifyrc" ).isNull() + && KMessShared::findResource( "data", "kmess/kmess.notifyrc" ).isNull() ) { QString dirs( KMessShared::findResourceDirs( "data", QString() ).join("/kmess
") ); if( ! dirs.isEmpty() ) diff --git a/src/kmessinterface.cpp b/src/kmessinterface.cpp index 6ca1d53..4c3ce34 100644 --- a/src/kmessinterface.cpp +++ b/src/kmessinterface.cpp @@ -207,7 +207,7 @@ void KMessInterface::createMenus() // Add shortcut for Search in ContactList - showSearchAction_->setShortcut( QKeySequence::fromString( tr( "Ctrl+f" ) ) ); + actionCollection()->setDefaultShortcut( showSearchAction_, QKeySequence::fromString( tr( "Ctrl+f" ) ) ); // Disable the context menu, because there's no selection on start contextMenuAction_->setEnabled( false ); @@ -223,9 +223,9 @@ void KMessInterface::createMenus() this, SLOT ( changeStatus(QAction*) ) ); // Connect slots to signals for "View" menu - connect( viewMode_, SIGNAL( triggered(int) ), + connect( viewMode_, SIGNAL( indexTriggered(int) ), this, SLOT ( changeViewMode(int) ) ); - connect( listPictureSize_, SIGNAL( triggered(int) ), + connect( listPictureSize_, SIGNAL( indexTriggered(int) ), this, SLOT ( changedListPictureSize(int) ) ); connect( showAllowedAction_, SIGNAL( triggered(bool) ), this, SLOT ( toggleShowAllowed(bool) ) ); diff --git a/src/kmessview.cpp b/src/kmessview.cpp index d797a8d..2d08cb6 100644 --- a/src/kmessview.cpp +++ b/src/kmessview.cpp @@ -729,8 +729,8 @@ bool KMessView::initContactPopup() // Create the signal mappers needed to assign all actions to the move/copy contact slots contactCopyMapper_ = new QSignalMapper( this ); contactMoveMapper_ = new QSignalMapper( this ); - connect( contactCopyMapper_, SIGNAL(mapped(const QString&)), this, SLOT(slotForwardCopyContact(const QString&)) ); - connect( contactMoveMapper_, SIGNAL(mapped(const QString&)), this, SLOT(slotForwardMoveContact(const QString&)) ); + connect( contactCopyMapper_, SIGNAL(mappedString(const QString&)), this, SLOT(slotForwardCopyContact(const QString&)) ); + connect( contactMoveMapper_, SIGNAL(mappedString(const QString&)), this, SLOT(slotForwardMoveContact(const QString&)) ); // Initialize the sub menus to copy/move contacts copyContactToGroup_ = new KActionMenu( i18n("&Copy to Group"), this ); diff --git a/src/main.cpp b/src/main.cpp index 9824b85..044fc0a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,7 @@ #include #include +#include @@ -41,6 +42,8 @@ int main(int argc, char *argv[]) // Create the application before KAboutData and QCommandLineParser, as required by KF6. KMessApplication kmessApp( argc, argv ); + kmessApp.setDesktopFileName( "org.kmess.kmess" ); + kmessApp.setWindowIcon( QIcon::fromTheme( QStringLiteral( "kmess" ) ) ); KLocalizedString::setApplicationDomain( "kmess" ); // Init about dialog. diff --git a/src/network/extra/directconnectionbase.cpp b/src/network/extra/directconnectionbase.cpp index 7d99034..dbd27be 100644 --- a/src/network/extra/directconnectionbase.cpp +++ b/src/network/extra/directconnectionbase.cpp @@ -412,7 +412,7 @@ bool DirectConnectionBase::openConnection( const QString &ipAddress, const quint this, SLOT ( slotSocketDisconnected() )); connect( socket_, SIGNAL( readyRead() ), this, SLOT ( slotSocketDataReceived() )); - connect( socket_, SIGNAL( error(QAbstractSocket::SocketError) ), + connect( socket_, SIGNAL( errorOccurred(QAbstractSocket::SocketError) ), this, SLOT ( slotSocketError(QAbstractSocket::SocketError) )); // Indicate we'll become a direct-connection client. @@ -661,7 +661,7 @@ void DirectConnectionBase::slotAcceptConnection() this, SLOT ( slotSocketDisconnected() )); connect( socket_, SIGNAL( readyRead() ), this, SLOT ( slotSocketDataReceived() )); - connect( socket_, SIGNAL( error(QAbstractSocket::SocketError) ), + connect( socket_, SIGNAL( errorOccurred(QAbstractSocket::SocketError) ), this, SLOT ( slotSocketError(QAbstractSocket::SocketError) )); // Inform there is a connection diff --git a/src/network/msnsockettcp.cpp b/src/network/msnsockettcp.cpp index d98f10d..9b34405 100644 --- a/src/network/msnsockettcp.cpp +++ b/src/network/msnsockettcp.cpp @@ -80,7 +80,7 @@ MsnSocketTcp::MsnSocketTcp( ServerType serverType ) this, SLOT ( slotHostFound() ) ); connect( socket_, SIGNAL( readyRead() ), this, SLOT ( slotSocketDataReceived() ) ); - connect( socket_, SIGNAL( error(QAbstractSocket::SocketError) ), + connect( socket_, SIGNAL( errorOccurred(QAbstractSocket::SocketError) ), this, SLOT ( slotSocketError(QAbstractSocket::SocketError) ) ); connect( socket_, SIGNAL( proxyAuthenticationRequired(const QNetworkProxy&,QAuthenticator*) ), this, SLOT ( proxyAuthenticate(const QNetworkProxy&,QAuthenticator*) ) );