Compare commits
20 Commits
v2.0.4
..
6.0_alpha6
| Author | SHA1 | Date | |
|---|---|---|---|
| 0823ec1137 | |||
| 1c4ebcccd1 | |||
| 9fd7e99274 | |||
| bf567146d8 | |||
| 3bade98d2f | |||
| bd03359d79 | |||
| 89b4218853 | |||
| f9f479588f | |||
| 40e81af6c6 | |||
| 10db33e21e | |||
| 78cb2bc641 | |||
| 0c67ad480c | |||
| 141bff5dd3 | |||
| ae8f851b06 | |||
| 65d3f78a14 | |||
| f2fbc7463b | |||
| 91626a9c87 | |||
| 858a70fe82 | |||
| 3200be221c | |||
| 452059cb18 |
@@ -1,16 +0,0 @@
|
||||
# Build files and dirs
|
||||
build*
|
||||
|
||||
# KDevelop and other IDE-specific project files
|
||||
*.kdev*
|
||||
|
||||
# Doxygen files
|
||||
apidocs/
|
||||
kmess.tag
|
||||
|
||||
# Mac stuff
|
||||
.DS_Store
|
||||
finkbuild
|
||||
|
||||
# ./configure script stuff
|
||||
Makefile
|
||||
@@ -1,3 +0,0 @@
|
||||
[submodule "contrib/isf-qt"]
|
||||
path = contrib/isf-qt
|
||||
url = git://gitorious.org/kmess/libisf-qt.git
|
||||
@@ -66,6 +66,7 @@
|
||||
Lauri Võsandi <v6sa@hotmail.com>
|
||||
Mihkel Tõnnov <mihhkel@gmail.com>
|
||||
Rivo Laks <rivolaks@hot.ee>
|
||||
Timo Tambet <ttambet@gmail.com>
|
||||
|
||||
Finnish:
|
||||
|
||||
@@ -82,6 +83,8 @@
|
||||
Andrea Blankenstijn <darkan9el@gmail.com>
|
||||
Barthe Guillaume <gu_barthe@yahoo.fr>
|
||||
Scias <shining.scias@gmail.com>
|
||||
Grégory Bellier <gregory.bellier@gmail.com>
|
||||
Anthony Rey <gnuk@mailoo.org>
|
||||
|
||||
Galician:
|
||||
|
||||
@@ -112,7 +115,7 @@
|
||||
|
||||
Japanese:
|
||||
|
||||
Daniel E. Moctezuma <shinsen27@gmail.com>
|
||||
Daniel E. Moctezuma <dmoctezuma@kmess.org>
|
||||
|
||||
Korean:
|
||||
|
||||
@@ -245,6 +248,13 @@
|
||||
- Internationalization fixes
|
||||
- Drag'n'drop of images into display pictures
|
||||
|
||||
Francesco Nwokeka
|
||||
- Now Listening toggle button above the contact list.
|
||||
|
||||
Timo Tambet <ttambet@gmail.com>
|
||||
- Contact Changed and Group Changed notifications.
|
||||
- Contact added user dialog tabbing
|
||||
|
||||
KMerlin <http://kmerlin.olsd.de/>
|
||||
- Inspiration and assorted code
|
||||
|
||||
|
||||
@@ -1,267 +1,101 @@
|
||||
PROJECT( kmess )
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(kmess VERSION 6.0.0 LANGUAGES C CXX)
|
||||
|
||||
#### System checks ####
|
||||
find_package(ECM REQUIRED NO_MODULE)
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
${ECM_MODULE_PATH}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
|
||||
# To add checks, see in one or more of these paths
|
||||
# /usr/share/cmake/Modules
|
||||
# /usr/share/kde4/apps/cmake/modules
|
||||
# /usr/share/apps/cmake
|
||||
set(BUILD_WITH_QT6 ON CACHE BOOL "Build against Qt 6" FORCE)
|
||||
set(QT_DEFAULT_MAJOR_VERSION 6)
|
||||
|
||||
# Check for cmake, same as minimum for KDE 4.0.0
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 2.4.5 )
|
||||
include(KDEInstallDirs)
|
||||
include(KDECMakeSettings)
|
||||
include(KDECompilerSettings NO_POLICY_SCOPE)
|
||||
|
||||
# Check for KDE 4
|
||||
FIND_PACKAGE( KDE4 REQUIRED )
|
||||
INCLUDE( KDE4Defaults )
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Core5Compat DBus Gui Multimedia Network Test WebEngineWidgets Widgets Xml)
|
||||
find_package(KF6 REQUIRED COMPONENTS
|
||||
Codecs
|
||||
Completion
|
||||
Config
|
||||
ConfigWidgets
|
||||
CoreAddons
|
||||
Crash
|
||||
DBusAddons
|
||||
IdleTime
|
||||
I18n
|
||||
IconThemes
|
||||
KIO
|
||||
Notifications
|
||||
NotifyConfig
|
||||
Parts
|
||||
Service
|
||||
Solid
|
||||
StatusNotifierItem
|
||||
TextWidgets
|
||||
WidgetsAddons
|
||||
WindowSystem
|
||||
Wallet
|
||||
XmlGui
|
||||
)
|
||||
|
||||
# Make sure the rest still works
|
||||
IF( NOT KDE4_FOUND )
|
||||
# The macro's MACRO_LOG_FEATURE, MACRO_OPTIONAL_FIND_PACKAGE, MACRO_BOOL_TO_01
|
||||
# are part of the KDE cmake modules, so these can't be used now.
|
||||
find_package(LibXml2 REQUIRED)
|
||||
find_package(LibXslt REQUIRED)
|
||||
find_package(GCrypt REQUIRED)
|
||||
|
||||
MESSAGE( FATAL_ERROR "\n"
|
||||
" The KDE Development Platform was not found.\n"
|
||||
" \n"
|
||||
" You will need this package and the matching development package.\n"
|
||||
" Usually the package names for this library are:\n"
|
||||
" on Debian and Ubuntu: 'kdebase-runtime' and 'kdelibs5-dev'\n"
|
||||
" on openSUSE: 'kdebase4-runtime' and 'libkde4-devel'\n"
|
||||
" \n"
|
||||
" Please refer to the KMess board for more info,\n"
|
||||
" and specially to this guide: http://trac.kmess.org/wiki/Compiling%20KMess" )
|
||||
ENDIF( NOT KDE4_FOUND )
|
||||
set(ISFQT_IS_BUNDLED TRUE)
|
||||
set(USE_BUNDLED_LIBRARIES ISFQT)
|
||||
add_subdirectory(contrib/isf-qt)
|
||||
|
||||
# Check for libxml2
|
||||
FIND_PACKAGE( LibXml2 )
|
||||
MACRO_LOG_FEATURE( LIBXML2_FOUND "LibXML2" "Libraries used to develop XML-aware applications" "http://www.xmlsoft.org/" TRUE ""
|
||||
"Required for the chat styles system.
|
||||
* You will need this package and the matching development package: for example, 'libxml2' and 'libxml2-dev' or 'libxml2-devel'.
|
||||
* Usually the package names for this library are:
|
||||
on Debian and Ubuntu: 'libxml2' and 'libxml2-dev'
|
||||
on openSUSE: 'libxml2' and 'libxml2-devel'
|
||||
* Please refer to the KMess board for more info,
|
||||
and specially to this guide: http://trac.kmess.org/wiki/Compiling%20KMess" )
|
||||
option(KMESS_DISABLE_LIKEBACK "Disable the old LikeBack feedback UI" ON)
|
||||
if(KMESS_DISABLE_LIKEBACK)
|
||||
set(KMESS_DISABLE_LIKEBACK 1)
|
||||
else()
|
||||
set(KMESS_DISABLE_LIKEBACK 0)
|
||||
endif()
|
||||
|
||||
# Check for libxslt
|
||||
FIND_PACKAGE( LibXslt )
|
||||
MACRO_LOG_FEATURE( LIBXSLT_FOUND "LibXSLT" "A library to transform XML into other formats" "http://www.xmlsoft.org/XSLT" TRUE ""
|
||||
"Required for the chat styles system.
|
||||
* Usually the package names for this library are:
|
||||
on Debian and Ubuntu: 'libxslt' and 'libxslt1-dev'
|
||||
on openSUSE: 'libxslt' and 'libxslt-devel'
|
||||
* Please refer to the KMess board for more info,
|
||||
and specially to this guide: http://trac.kmess.org/wiki/Compiling%20KMess" )
|
||||
set(KMESS_VERSION "6.0_alpha6")
|
||||
set(KMESS_ENABLE_DEBUG_OUTPUT 0)
|
||||
set(KMESS_BUILT_DEBUGFULL FALSE)
|
||||
set(HAVE_LIBISFQT 1)
|
||||
set(HAVE_NEW_TRAY 1)
|
||||
|
||||
# Add cmake directory to the MODULE_PATH, so cmake can find GCrypt
|
||||
SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} $ENV{CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
# Check for GCrypt
|
||||
FIND_PACKAGE( GCrypt )
|
||||
IF( NOT GCRYPT_FOUND )
|
||||
MACRO_LOG_FEATURE( GCRYPT_FOUND "GCrypt" "A library to encrypt messages with various cyphers" "http://www.gnupg.org/" TRUE ""
|
||||
"It is required for the Live Messenger login process.
|
||||
* Usually the package names for this library are:
|
||||
on Debian and Ubuntu: 'libgcrypt' and 'libgcrypt11-dev'
|
||||
on openSUSE: 'libgcrypt' and 'libgcrypt-devel'
|
||||
on Fedora: 'gcrypt' and 'gcrypt-devel'
|
||||
* Please refer to the KMess board for more info,
|
||||
and specially to this guide: http://trac.kmess.org/wiki/Compiling%20KMess" )
|
||||
ELSE()
|
||||
MESSAGE( STATUS "Looking for GCrypt - found" )
|
||||
ENDIF()
|
||||
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_NO_URL_CAST_FROM_STRING)
|
||||
|
||||
# Check for XScreenSaver extension
|
||||
OPTION( WANT_XSCREENSAVER "Build with X11 screensaver auto-away support" ON )
|
||||
IF( WANT_XSCREENSAVER )
|
||||
MACRO_BOOL_TO_01( X11_Xscreensaver_FOUND HAVE_XSCREENSAVER )
|
||||
MACRO_OPTIONAL_FIND_PACKAGE(X11)
|
||||
IF( X11_FOUND )
|
||||
MACRO_LOG_FEATURE( X11_Xscreensaver_FOUND "XScreenSaver" "X11 extension used to check idle state" "" FALSE ""
|
||||
"Required for the auto-away feature.
|
||||
* Usually the package names for this library are:
|
||||
on Debian and Ubuntu: 'libxss-dev'
|
||||
on openSUSE: 'xorg-x11-libs'
|
||||
* Please refer to the KMess board for more info,
|
||||
and specially to this guide: http://trac.kmess.org/wiki/Compiling%20KMess" )
|
||||
ELSE( X11_FOUND )
|
||||
MESSAGE( STATUS "NOTE: The auto-away feature is not supported on this platform yet." )
|
||||
ENDIF( X11_FOUND )
|
||||
ENDIF( WANT_XSCREENSAVER )
|
||||
# Compatibility variables kept for old subdirectory install rules while the
|
||||
# source tree is being ported away from KDE4-era CMake.
|
||||
set(BIN_INSTALL_DIR ${KDE_INSTALL_BINDIR})
|
||||
set(CONFIG_INSTALL_DIR ${KDE_INSTALL_CONFDIR})
|
||||
set(DATA_INSTALL_DIR ${KDE_INSTALL_DATADIR})
|
||||
set(HTML_INSTALL_DIR ${KDE_INSTALL_DOCBUNDLEDIR})
|
||||
set(ICON_INSTALL_DIR ${KDE_INSTALL_ICONDIR})
|
||||
set(LOCALE_INSTALL_DIR ${KDE_INSTALL_LOCALEDIR})
|
||||
set(PLUGIN_INSTALL_DIR ${KDE_INSTALL_PLUGINDIR})
|
||||
set(SERVICES_INSTALL_DIR ${KDE_INSTALL_KSERVICESDIR})
|
||||
set(SHARE_INSTALL_PREFIX ${KDE_INSTALL_DATADIR})
|
||||
set(SOUND_INSTALL_DIR ${KDE_INSTALL_SOUNDDIR})
|
||||
set(XDG_APPS_INSTALL_DIR ${KDE_INSTALL_APPDIR})
|
||||
|
||||
# Check for libkonq
|
||||
# QUIET is to fix compiling on systems like Debian Lenny, which don't have FindLibKonq.cmake
|
||||
# (for an optional feature, we don't want that to be fatal)
|
||||
MACRO_OPTIONAL_FIND_PACKAGE( LibKonq QUIET )
|
||||
MACRO_LOG_FEATURE( LIBKONQ_FOUND "LibKonq" "Integration with Konqueror context menu" "http://www.kde.org/" FALSE ""
|
||||
"This is an optional feature.
|
||||
* Usually the package names for this library are:
|
||||
on Debian and Ubuntu: 'libkonq5' and 'libkonq5-dev'
|
||||
on openSUSE: 'libkonq5' and 'libkonq-devel'
|
||||
* Please refer to the KMess board for more info,
|
||||
and specially to this guide: http://trac.kmess.org/wiki/Compiling%20KMess" )
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/config-kmess.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/config-kmess.h)
|
||||
|
||||
# Check for libisf-qt
|
||||
MACRO_OPTIONAL_FIND_PACKAGE( IsfQt QUIET )
|
||||
MACRO_LOG_FEATURE( ISFQT_FOUND "LibISF-Qt" "Library to manage Microsoft's Mobile Ink" "http://www.kmess.org/" FALSE ""
|
||||
"Support to send handwriting messages in a format compatible with Windows Live Messenger.
|
||||
In absence of an installed isf-qt version, the bundled version will be compiled.")
|
||||
MACRO_BOOL_TO_01( ISFQT_FOUND HAVE_LIBISFQT ) # For config-kmess.h.in
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${LIBXML2_INCLUDE_DIR}
|
||||
${LIBXSLT_INCLUDE_DIR}
|
||||
${GCRYPT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Check for KNotificationItem. KDE 4.3.1 and later have it integrated in kdelibs/experimental.
|
||||
# It will be available by default in 4.4.
|
||||
IF( ${KDE_VERSION} VERSION_LESS 4.3.70 ) # KDE trunk has a higher version number than this.
|
||||
MACRO_OPTIONAL_FIND_PACKAGE(LibKNotificationItem-1)
|
||||
MACRO_LOG_FEATURE( LIBKNOTIFICATIONITEM-1_FOUND "LibKNotificationItem-1" "The experimental new KDE systray library" "http://www.kde.org" FALSE ""
|
||||
"LibKNotificationItem-1 is the experimental new KDE systray library. It will be included
|
||||
by default in KDE 4.4 and is available for use in KDE 4.3.1 and above." )
|
||||
MACRO_BOOL_TO_01( LIBKNOTIFICATIONITEM-1_FOUND HAVE_NEW_TRAY )
|
||||
ELSE()
|
||||
SET( HAVE_NEW_TRAY 1 )
|
||||
ENDIF()
|
||||
|
||||
# Display the dependency collection results
|
||||
MACRO_DISPLAY_FEATURE_LOG()
|
||||
|
||||
|
||||
|
||||
#### Configure build ####
|
||||
|
||||
INCLUDE( MacroLibrary )
|
||||
INCLUDE( KDE4Defaults )
|
||||
|
||||
IF( NOT ISFQT_FOUND )
|
||||
# isf-qt is not installed on the system.
|
||||
# use the bundled version.
|
||||
SET( ISFQT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/isf-qt/include )
|
||||
SET( ISFQT_LIBRARIES isf-qt )
|
||||
|
||||
SET( USE_BUNDLED_LIBRARIES ${USE_BUNDLED_LIBRARIES} ISFQT )
|
||||
SET( HAVE_LIBISFQT 1 )
|
||||
SET( ISFQT_FOUND TRUE )
|
||||
ENDIF( NOT ISFQT_FOUND )
|
||||
|
||||
ADD_DEFINITIONS( ${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
|
||||
|
||||
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${LIBXML2_INCLUDE_DIR} )
|
||||
|
||||
|
||||
#### Define the app version number ####
|
||||
|
||||
# Switch between the following two commands to force using a predefined version number
|
||||
# EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get-git-version.sh OUTPUT_VARIABLE KMESS_VERSION )
|
||||
SET( KMESS_VERSION "2.0.4" )
|
||||
|
||||
|
||||
#### Define compiler flags ####
|
||||
|
||||
# Tune the debug build with even more flags
|
||||
# also see FindKDE4Internal.cmake for more defaults
|
||||
IF( CMAKE_COMPILER_IS_GNUCXX )
|
||||
# skipped: -ansi -pendantic -Wfatal-errors -Wold-style-cast -Wconversion
|
||||
SET( CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall" )
|
||||
SET( CMAKE_CXX_FLAGS_DEBUGFULL "-O0 -g3 -fno-inline -Wall -Woverloaded-virtual -Wsign-compare -Wundef" )
|
||||
# the -fvisibility option makes symbols also visible to the KDE backtrace dumper, but
|
||||
# the MinGW gcc doesn't seem to understand it well, so only add it if we're not on win32
|
||||
IF( NOT WIN32 )
|
||||
SET( CMAKE_CXX_FLAGS_DEBUGFULL "${CMAKE_CXX_FLAGS_DEBUGFULL} -fvisibility=default" )
|
||||
ENDIF( NOT WIN32 )
|
||||
ENDIF( CMAKE_COMPILER_IS_GNUCXX )
|
||||
|
||||
|
||||
# Define the default build type
|
||||
# Possible values:
|
||||
# - none
|
||||
# - release
|
||||
# - debug
|
||||
# - debugfull (even fewer optimisations)
|
||||
# - relwithdebinfo (release with debug info)
|
||||
# - minsizerel (minsize release)
|
||||
# Uncomment the next line to always force building in full debug mode
|
||||
# SET( CMAKE_BUILD_TYPE debugfull )
|
||||
|
||||
# Enable the KMess debug output when compiling a debug build
|
||||
IF( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
|
||||
SET( KMESS_ENABLE_DEBUG_OUTPUT "1" )
|
||||
ELSE( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
|
||||
SET( KMESS_ENABLE_DEBUG_OUTPUT "0" )
|
||||
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
|
||||
|
||||
|
||||
# Change symbol visibility, to obtain clearer KDE backtraces
|
||||
SET( __KDE_HAVE_GCC_VISIBILITY 0 )
|
||||
|
||||
# Disable LikeBack if not needed
|
||||
IF( KMESS_DISABLE_LIKEBACK EQUAL 1 )
|
||||
SET( KMESS_DISABLE_LIKEBACK "1" )
|
||||
ELSE( KMESS_DISABLE_LIKEBACK EQUAL 1 )
|
||||
SET( KMESS_DISABLE_LIKEBACK "0" )
|
||||
ENDIF( KMESS_DISABLE_LIKEBACK EQUAL 1 )
|
||||
|
||||
# Set a default installation path
|
||||
IF( NOT CMAKE_INSTALL_PREFIX )
|
||||
SET( CMAKE_INSTALL_PREFIX "/usr" )
|
||||
ENDIF( NOT CMAKE_INSTALL_PREFIX )
|
||||
|
||||
IF( CMAKE_USE_CPACK EQUAL 1 )
|
||||
MESSAGE( STATUS "Enabling the CPack package target..." )
|
||||
# source: http://www.vtk.org/Wiki/CMake:Packaging_With_CPack
|
||||
INCLUDE( InstallRequiredSystemLibraries )
|
||||
# the installer will be named ${PACKAGENAME}-{VERSIONMAJOR}.{VERSIONMINOR}.{VERSIONPATCH}-win32.exe.
|
||||
# the installer will say "Welcome to the ${INSTALL_DIRECTORY} Setup Wizard and install to ${INSTALL_DIRECTORY} too, and
|
||||
# put the program in start menu under the ${INSTALL_DIRECTORY} name.
|
||||
# it will ask if ${PACKAGENAME} should be put in PATH.
|
||||
SET( CPACK_PACKAGE_NAME "KMess" )
|
||||
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "KMess (package description)" )
|
||||
SET( CPACK_PACKAGE_VENDOR "The KMess team" )
|
||||
SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README" )
|
||||
SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING" )
|
||||
SET( CPACK_PACKAGE_VERSION_MAJOR "1" )
|
||||
SET( CPACK_PACKAGE_VERSION_MINOR "0" )
|
||||
SET( CPACK_PACKAGE_VERSION_PATCH "0" )
|
||||
SET( CPACK_PACKAGE_INSTALL_DIRECTORY "KMess" )
|
||||
IF( WIN32 AND NOT UNIX )
|
||||
# There is a bug in NSI that does not handle full unix paths properly. Make
|
||||
# sure there is at least one set of four (4) backslashes.
|
||||
SET( CPACK_GENERATOR "NSIS" )
|
||||
SET( CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/data/icons\\\\hi32-app-kmess.png" )
|
||||
SET( CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\kmess.exe" )
|
||||
SET( CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} KMess (display name)" )
|
||||
SET( CPACK_NSIS_HELP_LINK "http:\\\\\\\\kmess.org" )
|
||||
SET( CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\kmess.org" )
|
||||
SET( CPACK_NSIS_CONTACT "project@kmess.org" )
|
||||
SET( CPACK_NSIS_MODIFY_PATH ON )
|
||||
ELSE( WIN32 AND NOT UNIX )
|
||||
SET( CPACK_STRIP_FILES "bin/kmess" )
|
||||
SET( CPACK_SOURCE_STRIP_FILES "" )
|
||||
ENDIF( WIN32 AND NOT UNIX )
|
||||
|
||||
SET( CPACK_PACKAGE_EXECUTABLES "kmess" "KMess" )
|
||||
INCLUDE( CPack )
|
||||
ENDIF( CMAKE_USE_CPACK EQUAL 1 )
|
||||
|
||||
#### Other settings ####
|
||||
|
||||
# Generate config-kmess.h
|
||||
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/config-kmess.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kmess.h )
|
||||
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
|
||||
# continue in directories
|
||||
ADD_SUBDIRECTORY( po )
|
||||
ADD_SUBDIRECTORY( data )
|
||||
ADD_SUBDIRECTORY( doc )
|
||||
ADD_SUBDIRECTORY( src )
|
||||
|
||||
IF( LIBKONQ_FOUND )
|
||||
ADD_SUBDIRECTORY( src/utils/kmess-send )
|
||||
ENDIF( LIBKONQ_FOUND )
|
||||
|
||||
IF( USE_BUNDLED_LIBRARIES MATCHES "ISFQT" )
|
||||
ADD_SUBDIRECTORY( contrib/isf-qt )
|
||||
ENDIF( )
|
||||
|
||||
|
||||
# Also add the tests if compiling in development mode
|
||||
IF( CMAKE_BUILD_TYPE STREQUAL debugfull AND KMESS_DEBUG_OUTPUT EQUAL 1 )
|
||||
ADD_SUBDIRECTORY( tests )
|
||||
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull AND KMESS_DEBUG_OUTPUT EQUAL 1 )
|
||||
add_subdirectory(po)
|
||||
add_subdirectory(data)
|
||||
add_subdirectory(src)
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
@@ -1,5 +1,133 @@
|
||||
--- 2.0.6.2 released ---
|
||||
|
||||
2011-11-26 (Dmoctezuma)
|
||||
* Follow Location redirects, MS seems to have moved some accounts
|
||||
to other servers. (patch by Lekensteyn)
|
||||
|
||||
2011-04-12 (Sjors)
|
||||
* Apply a patch by Francesco Nwokeka, fixing a part of #480 by moving
|
||||
file transfer settings into its own tab in the settings screen.
|
||||
* Include Phonon headers correctly.
|
||||
|
||||
2011-04-10 (Ruben)
|
||||
* Fixed XML for DBus interface
|
||||
|
||||
2011-04-03 (Dmoctezuma)
|
||||
* Updated email address.
|
||||
|
||||
2011-03-14 (Dmoctezuma)
|
||||
* Updated Japanese translation.
|
||||
|
||||
2011-02-27 (Dmoctezuma)
|
||||
* Updated Japanese translation.
|
||||
|
||||
2011-02-25 (Adam)
|
||||
* Fix bug where KMess would fail to build on relwithdebinfo builds when
|
||||
--enable-debug-output was set
|
||||
|
||||
--- 2.0.6.1 released ---
|
||||
|
||||
2011-02-16 (Adam)
|
||||
* Fix yet another login bug caused because our initial profile data no
|
||||
longer includes a language preference.
|
||||
|
||||
--- 2.0.6 released ---
|
||||
|
||||
2011-01-13 (Adam)
|
||||
* Fix bug where KMess couldn't login due to badly formed URL commands.
|
||||
|
||||
2011-01-08 (Valerio)
|
||||
* Fixed crash when taking any action in the Contact Added User dialog.
|
||||
Also removed an unnecessary signal-bouncing slot.
|
||||
* Fixed a dangling pointer issue when the Contact Added User dialog was
|
||||
shown, closed and shown again.
|
||||
|
||||
2011-01-05 (Adam)
|
||||
* Add new widget, FaderWidget, which smoothly fades between the initial view
|
||||
and the contact list. Disable by setting NoFadeEffect to true under the
|
||||
MainWindow section of kmessrc.
|
||||
|
||||
2011-01-02 (Pano)
|
||||
* Merged an updated Japanese translation by Daniel E. Moctezuma.
|
||||
* Merged an updated Spanish translation by Daniel E. Moctezuma.
|
||||
* Merged an updated German translation.
|
||||
|
||||
2010-12-24 (Adam)
|
||||
* Fix retrieval of roaming display picture.
|
||||
|
||||
2010-12-23 (Adam)
|
||||
* Fix a problem where roaming service profile data was invalid.
|
||||
|
||||
2010-12-13 (Valerio)
|
||||
* Fixed "Visit Link" context-menu icon in chat. Thanks to IRC's agostino for the
|
||||
heads-up.
|
||||
|
||||
2010-11-16 (Adam)
|
||||
* (Finally) merged in a modified patch by Timo Tambet that groups all
|
||||
"contact added user" windows as tabs under a single dialog.
|
||||
|
||||
--- 2.0.5 released ---
|
||||
|
||||
2010-10-23 (Valerio)
|
||||
* Added new chats to the log records, no need to logout to see the chat logs of
|
||||
the current session anymore.
|
||||
* Made the HTTP connection timer fix from yesterday to compile with Qt < 4.7.
|
||||
* Fixed building with certain compiler configurations.
|
||||
|
||||
2010-10-22 (Valerio)
|
||||
* Show user's display picture in chat by default.
|
||||
* Fixed HTTP connection timers, now midnight and clock skews don't cause any
|
||||
more the HTTP rate limiter to fail.
|
||||
|
||||
2010-10-16 (Valerio)
|
||||
* Integrated Chat History with the Chat Window:
|
||||
- added a menu item and toolbar action, showing a menu containing the current
|
||||
tab's contacts;
|
||||
- added a context menu entry in the Contacts Panel.
|
||||
* Removed some unused code in ContactFrame.
|
||||
* Fixed logging in with long passwords (17+ characters). The Live servers don't
|
||||
accept those, hehehe.
|
||||
|
||||
2010-10-16 (Adam)
|
||||
* Fix the parsing of offline IM messages.
|
||||
|
||||
2010-09-19 (Adam)
|
||||
* Fix a signal issue in MsnNotificationConnection, thanks Timo Tambet
|
||||
|
||||
2010-09-10 (Pano)
|
||||
* Merged an updated Traditional Chinese translation by Yen-chou Chen.
|
||||
|
||||
2010-09-03 (Adam)
|
||||
* Fix a crash caused when the contacts widget was deleted twice in a chat window.
|
||||
|
||||
2010-09-02 (Sjors)
|
||||
* Add <html> tag to status notification messages so HTML is stripped correctly
|
||||
by knotify.
|
||||
|
||||
2010-08-13 (Pano)
|
||||
* Merged an updated Estonian translation by Timo Tambet.
|
||||
|
||||
2010-08-13 (Pano)
|
||||
* Merged an updated Hungarian translation by József Makay.
|
||||
|
||||
2010-08-11 (Adam)
|
||||
* Merge modified patch by Timo Tambet that gives notifications for address
|
||||
book changes (contact and group changes).
|
||||
|
||||
2010-08-05 (Adam)
|
||||
* Bump version number to 2.0.5dev
|
||||
|
||||
2010-08-05 (Sjors)
|
||||
* Made the SOAP request waiter its own object instead of a QTimer::singleShot
|
||||
because now it can be stopped if logging in fails, fixing a crash.
|
||||
|
||||
2010-08-04 (Pano)
|
||||
* Merged an updated French translation by Anthony Rey.
|
||||
|
||||
--- 2.0.4 released ---
|
||||
|
||||
2010-07-25 (Adam)
|
||||
* Merge fix for ticket #524, thanks to Timo Tambert
|
||||
* Fix ticket #524, thanks to Timo Tambet
|
||||
|
||||
2010-07-24 (Adam)
|
||||
* Properly handle non-messenger Hotmail contacts that appear on our address book.
|
||||
@@ -53,6 +181,10 @@
|
||||
* Fixed the ability to drag'n'drop into the message editor a received Ink drawing, and an issue with
|
||||
the Ink editor button when doing so.
|
||||
|
||||
2010-06-29 (Valerio)
|
||||
* Added a class to autonomously manage the chat logs retrieval.
|
||||
* Rewritten the Chat History dialog, now using a calendar to list dates with available chat logs.
|
||||
|
||||
2010-06-27 (Pano)
|
||||
* Merged an updated Traditional Chinese translation by the Tryneeds-Chinese Translation Platform.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#---------------------------------------------------------------------------
|
||||
DOXYFILE_ENCODING = UTF-8
|
||||
PROJECT_NAME = KMess
|
||||
PROJECT_NUMBER = 2.0.4
|
||||
PROJECT_NUMBER = 2.0.6.2
|
||||
OUTPUT_DIRECTORY = ./apidocs
|
||||
CREATE_SUBDIRS = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
KMess Feature list
|
||||
========================
|
||||
- 2.0.4 -
|
||||
New system tray icon when KMess is loaded onto KDE 4.4+.
|
||||
Improved support for notifications on Mac.
|
||||
Added a button on the contact list for quick "now listening" toggling.
|
||||
Ability to drag and drop drawings into the editor to re-send them.
|
||||
|
||||
- 2.0.3 -
|
||||
Setting your friendly name and personal message by clicking on their labels in the contact list.
|
||||
A display of the unread email count in the system tray tooltip.
|
||||
|
||||
@@ -1,42 +1,84 @@
|
||||
Changes between KMess Git and 2.0.6.2:
|
||||
--------------------------------------
|
||||
|
||||
- None yet
|
||||
|
||||
Changes between KMess 2.0.6.2 and 2.0.6.1:
|
||||
------------------------------------------
|
||||
|
||||
- Follow redirects, fixing connection issue. Thanks to Lekensteyn.
|
||||
- Moved file transfer settings into own tab.
|
||||
- updated Japanese translation by Daniel E. Moctezuma.
|
||||
|
||||
Changes between KMess 2.0.6.1 and 2.0.6:
|
||||
----------------------------------------
|
||||
|
||||
- fix bug where KMess couldn't login due to missing language preference information.
|
||||
|
||||
Changes between KMess 2.0.6 and 2.0.5:
|
||||
--------------------------------------
|
||||
|
||||
- fix bug where KMess couldn't login due to badly formed URL commands.
|
||||
- fixed crash when taking any action in the Contact Added User dialog.
|
||||
- fixed a possible crash when using the Contact Added User dialog.
|
||||
- Added a fading effect when switching between the initial view and the contact list.
|
||||
- fixed retrieval of display pictures from online MSN storage.
|
||||
- fixed a problem where roaming service profile data was invalid.
|
||||
- fixed "Visit Link" context-menu icon in chat. Thanks to IRC's agostino.
|
||||
- improved Contact Added User dialog with tabs. Thanks ti Timo Tambet.
|
||||
- updated Japanese translation by Daniel E. Moctezuma.
|
||||
- updated Spanish translation by Daniel E. Moctezuma.
|
||||
- updated German translation.
|
||||
|
||||
|
||||
Changes between KMess 2.0.5 and 2.0.4:
|
||||
--------------------------------------
|
||||
|
||||
- added Chat History integration with the Chat Window, with a menu item, toolbar
|
||||
action, and a context menu item.
|
||||
- added KDE notifications for contact and group changes (Patch by Timo Tambet).
|
||||
- fixed a crash due to changes by Microsoft in how Offline Messages are sent.
|
||||
- fixed a possible crash during login.
|
||||
- fixed a crash when closing a chat window.
|
||||
- fixed logging in with long passwords (17+ characters). MSN cuts them to 16, hehehe.
|
||||
- removed all HTML from KDE notifications to fix weird text cutting problems.
|
||||
- updated French translation by Anthony Rey.
|
||||
- updated Estonian translation by Timo Tambet.
|
||||
- updated Hungarian translation by József Makay.
|
||||
- updated Traditional Chinese translation by Yen-chou Chen.
|
||||
|
||||
Changes between KMess 2.0.4 and 2.0.3:
|
||||
--------------------------------------
|
||||
- added ability to drag and drop drawings into the message editor to be re-sent.
|
||||
- added support for the new KDE 4.4+ system tray icon.
|
||||
- added a toggle button for "now listening" to the contact list.
|
||||
- added displaying the currently playing song above the contact list, even while appearing offline.
|
||||
|
||||
- added a tip text on the contact list's search bar (Patch by Timo Tambet).
|
||||
- added support for a new ISF-Qt feature, PNG fortification, allowing to drag
|
||||
and drop handwriting drawings into the message editor to be edited.
|
||||
- added support for notifications on the Mac.
|
||||
- added a toggle button for Now Listening to the contact list (Patch by Francesco Nwokeka).
|
||||
- added Galician translation by Indalecio Freiría Santos.
|
||||
- removed the "contact does not have you on their contact list" text from the tool tips,
|
||||
as this feature is currently broken (the servers report incorrect data).
|
||||
- fixed "contact added you" dialogs from appearing when they should not.
|
||||
- fixed sending messages only containing whitespace.
|
||||
- fixed pressing Enter to send a drawing worked even when nothing was in the drawing.
|
||||
- fixed the ability to drag'n'drop into the message editor a received Ink drawing.
|
||||
- fixed dimensions of the display picture in the contacts dock.
|
||||
- fixed chat history box, now it respects the "Show contacts emails instead of friendly names" option.
|
||||
- fixed ignoring non-messenger contacts, who are not supported by KMess 2.0.x .
|
||||
- fixed retrieving display pictures from the server.
|
||||
- fixed building KMess from Fedora 13.
|
||||
- fixed compatibility with KDE 4.5 .
|
||||
- fixed error at login when the user had a new display picture to download.
|
||||
- fixed multiple copies of a single DP were appearing in the "set previous
|
||||
display picture" dialog and the contact properties dialog.
|
||||
- fixed bug in Now Listening when querying MPRIS-compatible media players.
|
||||
- fixed account properties updating in some cases.
|
||||
- fixed "Log in Automatically" option saving in some cases.
|
||||
- fixed bug where the status was set to "Idle" upon waking up from sleep or disconnection.
|
||||
- fixed the application icon under Windows and Mac.
|
||||
- improved the contact list to be sorted by status, then alphabetically.
|
||||
- improved notifications support on Mac.
|
||||
- updated Traditional Chinese translation by Yen-chou Chen and the Tryneeds-Chinese Translation Platform.
|
||||
- fixed invalid characters in contact frame tooltips.
|
||||
- fixed "Contact Added User" dialog pop-ups, appearing for already added contacts.
|
||||
- fixed the application icon resolution.
|
||||
- fixed log in failure, due to a mismanaged remote display picture reception.
|
||||
- fixed URL when retrieving display pictures from MSN.
|
||||
- fixed saving account properties.
|
||||
- fixed removal and blocking of contacts.
|
||||
- fixed saving the automatic login option.
|
||||
- fixed status changing bugs when disconnecting or waking up from sleep.
|
||||
- improved compatibility with KDE 4.5.
|
||||
- improved the Chat History dialog, now using a calendar to list dates with available chat logs.
|
||||
- improved contact list sorting, now done by status, then alphabetically (Patch by dah_ at the boards).
|
||||
- improved management of unknown contacts.
|
||||
- improved widget sizes and behavior on the contact list.
|
||||
- updated the system tray widget to the new KDE 4.3+ one.
|
||||
- updated Japanese translation by Daniel E. Moctezuma.
|
||||
- updated Brazilian Portuguese translation by Morris Arozi Moraes.
|
||||
- updated French translation by Grégory Bellier.
|
||||
- updated German translation.
|
||||
- updated Dutch translation by Heimen Stoffels.
|
||||
- updated Dutch translation by Heimen Stoffels.
|
||||
- updated Japanese translation by Daniel E. Moctezuma.
|
||||
- updated German translation by Panagiotis Papadopoulos.
|
||||
- updated Catalan translation by Adrià Arrufat.
|
||||
- updated Traditional Chinese translation by the Tryneeds-Chinese Translation Platform.
|
||||
- updated French translation by Grégory Bellier.
|
||||
- updated Brazilian Portuguese translation by Morris Arozi Moraes.
|
||||
- updated Traditional Chinese translation by Yen-chou Chen.
|
||||
|
||||
Changes between KMess 2.0.3 and 2.0.2:
|
||||
--------------------------------------
|
||||
@@ -77,8 +119,7 @@ Changes between KMess 2.0.2 and 2.0.1:
|
||||
Changes between KMess 2.0.1 and 2.0:
|
||||
--------------------------------------
|
||||
- added a "Log in automatically" checkbox to the initial view (patch by Camille Begue).
|
||||
- added ability to open the chat history dialog when not connected
|
||||
(patch by Camille Begue).
|
||||
- added ability to open the chat history dialog when not connected (patch by Camille Begue).
|
||||
- added Test Server support.
|
||||
- added shortcut checking of added/edited emoticons for invalid characters.
|
||||
- added usage of smooth pixmap scaling for display pictures in the contact list.
|
||||
|
||||
@@ -63,6 +63,17 @@ To build a TGZ package for Slackware, run:
|
||||
|
||||
|
||||
|
||||
Licensing
|
||||
=========
|
||||
|
||||
We provide along with KMess some Oxygen icons which are usually bundled with Kopete.
|
||||
They are released under LGPL 3.0 (see http://www.oxygen-icons.org/).
|
||||
See COPYING_ICONS for full license text.
|
||||
|
||||
The remainder of KMess is released under the GPL2+ . See COPYING for full license text.
|
||||
|
||||
|
||||
|
||||
More Information
|
||||
================
|
||||
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
/* Define if debug output should be enabled */
|
||||
#define KMESS_DEBUG ${KMESS_ENABLE_DEBUG_OUTPUT}
|
||||
|
||||
/* Define what the build type of KMess is */
|
||||
#cmakedefine KMESS_BUILT_DEBUGFULL ${KMESS_BUILD_DEBUGFULL}
|
||||
|
||||
/* Define the fallback prefix */
|
||||
#define KMESS_PREFIX "${CMAKE_INSTALL_PREFIX}"
|
||||
|
||||
@@ -24,4 +27,4 @@
|
||||
#define KMESS_ENABLE_INK ${HAVE_LIBISFQT}
|
||||
|
||||
/* Define whether we have the new system tray */
|
||||
#cmakedefine HAVE_NEW_TRAY
|
||||
#cmakedefine HAVE_NEW_TRAY
|
||||
|
||||
@@ -7,19 +7,30 @@ appver="`egrep 'SET.*KMESS_VERSION' CMakeLists.txt | sed -e 's/.*"\([^"]*\)".*/\
|
||||
date="`date +%Y%m%d`"
|
||||
|
||||
# Make sure we have the right repository
|
||||
if [ ! -f kmess.kdevelop ]; then
|
||||
if [ ! -f kmess.kdev4 ]; then
|
||||
/bin/echo -n "git (unknown)"
|
||||
exit
|
||||
fi
|
||||
|
||||
# display app version if git isn't installed.
|
||||
if [ ! -x `which git` ]; then
|
||||
# Display normal version if git is not installed
|
||||
if [ ! -x `which git 2>/dev/null` ]; then
|
||||
/bin/echo -n "$appver"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Display subversion version if this is a working copy
|
||||
gitver=`git rev-parse HEAD`
|
||||
gitname=`LANG=C git describe --all HEAD 2>/dev/null | sed -e 's:^heads/::g'`
|
||||
gitver=`LANG=C git rev-parse --short HEAD 2>/dev/null`
|
||||
|
||||
# display last 8 digits of HEAD SHA-1 + date
|
||||
/bin/echo -n "$appver-git (${gitver:0:8} >= $date)"
|
||||
# see if this is not a repository.
|
||||
if [ -z "$gitver" ]; then
|
||||
if [ -z "$KMESS_VER" ]; then
|
||||
/bin/echo -n "$appver";
|
||||
else
|
||||
/bin/echo -n "$KMESS_VER";
|
||||
fi
|
||||
exit;
|
||||
fi
|
||||
|
||||
# display subversion version and date
|
||||
/bin/echo -n "$appver-git ($gitname@$gitver >= $date)"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
PROJECT( isf-qt )
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 2.6 )
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 3.16 )
|
||||
PROJECT( isf-qt LANGUAGES CXX )
|
||||
|
||||
|
||||
#### Main switches ####
|
||||
@@ -38,7 +38,7 @@ SET( ISFQT_VERSION "1.0dev" )
|
||||
|
||||
#### Inclusions ####
|
||||
|
||||
FIND_PACKAGE( Qt4 REQUIRED )
|
||||
FIND_PACKAGE( Qt6 REQUIRED COMPONENTS Core Core5Compat Gui Widgets )
|
||||
|
||||
OPTION( WANT_GIF "Enable support for reading and writing Fortified-GIF images" ON )
|
||||
IF( WANT_GIF )
|
||||
@@ -129,4 +129,3 @@ IF( NOT ISFQT_IS_BUNDLED )
|
||||
INSTALL( FILES cmake/FindIsfQt.cmake
|
||||
DESTINATION ${CMAKE_ROOT}/Modules )
|
||||
ENDIF()
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef ISFQT_QMATRIX_COMPAT_H
|
||||
#define ISFQT_QMATRIX_COMPAT_H
|
||||
|
||||
#include <QTransform>
|
||||
|
||||
using QMatrix = QTransform;
|
||||
|
||||
#endif
|
||||
@@ -105,7 +105,7 @@ namespace Isf
|
||||
PenType penType();
|
||||
void save( QIODevice&, bool = false );
|
||||
void setDrawing( Isf::Drawing* );
|
||||
virtual QSize sizeHint() const;
|
||||
QSize sizeHint() const override;
|
||||
|
||||
public slots:
|
||||
void clear();
|
||||
@@ -115,11 +115,11 @@ namespace Isf
|
||||
void setPenType( PenType );
|
||||
|
||||
protected: // protected methods
|
||||
void mousePressEvent( QMouseEvent* );
|
||||
void mouseMoveEvent( QMouseEvent* );
|
||||
void mouseReleaseEvent( QMouseEvent* );
|
||||
void paintEvent( QPaintEvent* );
|
||||
void resizeEvent( QResizeEvent* );
|
||||
void mousePressEvent( QMouseEvent* ) override;
|
||||
void mouseMoveEvent( QMouseEvent* ) override;
|
||||
void mouseReleaseEvent( QMouseEvent* ) override;
|
||||
void paintEvent( QPaintEvent* ) override;
|
||||
void resizeEvent( QResizeEvent* ) override;
|
||||
|
||||
private: // private methods
|
||||
void drawLineTo( const QPoint& );
|
||||
|
||||
@@ -29,8 +29,10 @@ SET( ISFQT_PUBLIC_HEADERS
|
||||
)
|
||||
|
||||
SET( ISFQT_LIBS
|
||||
${QT_QTCORE_LIBRARY}
|
||||
${QT_QTGUI_LIBRARY}
|
||||
Qt6::Core
|
||||
Qt6::Core5Compat
|
||||
Qt6::Gui
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
SET( ISFQT_RCCS
|
||||
@@ -45,11 +47,11 @@ ENDIF( GIF_FOUND )
|
||||
|
||||
#### Compilation ####
|
||||
|
||||
QT4_WRAP_CPP( MOC_SRCS ../include/isfinkcanvas.h )
|
||||
QT6_WRAP_CPP( MOC_SRCS ../include/isfinkcanvas.h )
|
||||
|
||||
QT4_ADD_RESOURCES( ISFQT_RCC_SRCS ${ISFQT_RCCS} )
|
||||
QT6_ADD_RESOURCES( ISFQT_RCC_SRCS ${ISFQT_RCCS} )
|
||||
|
||||
INCLUDE_DIRECTORIES( ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
|
||||
# Do not install the library if we're bundling it into an application
|
||||
IF( ISFQT_IS_BUNDLED )
|
||||
|
||||
@@ -131,14 +131,14 @@ namespace Isf
|
||||
{
|
||||
}
|
||||
/// Quick comparison operator
|
||||
bool operator ==( const AttributeSet& other )
|
||||
bool operator ==( const AttributeSet& other ) const
|
||||
{
|
||||
return color == other.color
|
||||
&& flags == other.flags
|
||||
&& penSize == other.penSize;
|
||||
}
|
||||
/// Quick comparison operator
|
||||
bool operator !=( const AttributeSet& other )
|
||||
bool operator !=( const AttributeSet& other ) const
|
||||
{
|
||||
return color != other.color
|
||||
|| flags != other.flags
|
||||
|
||||
@@ -341,7 +341,7 @@ Drawing& Stream::readerPng( const QByteArray& pngRawBytes, bool decodeFromBase64
|
||||
#ifdef ISFQT_DEBUG_VERBOSE
|
||||
qDebug() << "Picture data is valid: checking for the ISF data tag...";
|
||||
#endif
|
||||
isfData = imageData.text( "application/x-ms-ink" ).toAscii();
|
||||
isfData = imageData.text( "application/x-ms-ink" ).toLatin1();
|
||||
|
||||
if( ! isfData.isEmpty() )
|
||||
{
|
||||
@@ -381,7 +381,7 @@ bool Stream::supportsGif()
|
||||
*/
|
||||
QByteArray Stream::writer( const Drawing& drawing, bool encodeToBase64 )
|
||||
{
|
||||
if( &drawing == 0 || drawing.isNull() || drawing.error() != ISF_ERROR_NONE )
|
||||
if( drawing.isNull() || drawing.error() != ISF_ERROR_NONE )
|
||||
{
|
||||
#ifdef ISFQT_DEBUG
|
||||
qDebug() << "The drawing was not valid!";
|
||||
@@ -478,18 +478,20 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
|
||||
// Initialise the gif variables
|
||||
QBuffer gifData;
|
||||
GifFileType* gifImage = NULL;
|
||||
ColorMapObject* cmap = NULL;
|
||||
int height = isfImage.height();
|
||||
int width = isfImage.width();
|
||||
int numColors = 0;
|
||||
bool gifError = true;
|
||||
GifFileType* gifImage = NULL;
|
||||
ColorMapObject* cmap = NULL;
|
||||
int height = isfImage.height();
|
||||
int width = isfImage.width();
|
||||
int colorCount = 0;
|
||||
int numColors = 0;
|
||||
int gifErrorCode = 0;
|
||||
bool gifError = true;
|
||||
|
||||
// Convert the image to GIF using libgif
|
||||
|
||||
// Open the gif file
|
||||
gifData.open( QIODevice::WriteOnly );
|
||||
gifImage = EGifOpen( (void*)&gifData, GifWriteToByteArray );
|
||||
gifImage = EGifOpen( (void*)&gifData, GifWriteToByteArray, &gifErrorCode );
|
||||
if( gifImage == 0 )
|
||||
{
|
||||
qWarning() << "Couldn't initialize gif library!";
|
||||
@@ -497,21 +499,22 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
}
|
||||
|
||||
// Create the color map
|
||||
numColors = ( isfImage.numColors() << 2 );
|
||||
if( numColors > 256 )
|
||||
colorCount = isfImage.colorCount();
|
||||
numColors = 2;
|
||||
while( numColors < colorCount && numColors < 256 )
|
||||
{
|
||||
numColors = 256;
|
||||
numColors <<= 1;
|
||||
}
|
||||
|
||||
cmap = MakeMapObject( numColors, NULL );
|
||||
if( cmap == 0 && isfImage.numColors() > 1 )
|
||||
cmap = GifMakeMapObject( numColors, NULL );
|
||||
if( cmap == 0 && colorCount > 1 )
|
||||
{
|
||||
qWarning() << "Couldn't create map object for gif conversion (colors:" << isfImage.numColors() << ")!";
|
||||
qWarning() << "Couldn't create map object for gif conversion (colors:" << colorCount << ")!";
|
||||
goto writeError;
|
||||
}
|
||||
|
||||
// Fill in the color map with the colors in the image color table
|
||||
for( int i = 0; i < isfImage.numColors(); ++i )
|
||||
for( int i = 0; i < colorCount && i < numColors; ++i )
|
||||
{
|
||||
const QRgb &color( isfImage.color( i ) );
|
||||
cmap->Colors[i].Red = qRed ( color );
|
||||
@@ -543,7 +546,7 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
// Write every scanline
|
||||
for( int line = 0; line < height; ++line )
|
||||
{
|
||||
if( EGifPutLine( gifImage, isfImage.scanLine( line ), width ) == GIF_ERROR )
|
||||
if( EGifPutLine( gifImage, reinterpret_cast<GifPixelType*>( isfImage.scanLine( line ) ), width ) == GIF_ERROR )
|
||||
{
|
||||
qWarning() << "EGifPutLine failed at scanline" << line
|
||||
<< "(height:" << isfImage.height()
|
||||
@@ -576,9 +579,15 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
else
|
||||
{
|
||||
// Write the extension
|
||||
if( EGifPutExtensionFirst( gifImage, COMMENT_EXT_FUNC_CODE, MAX_GIF_BYTE, isfData.left( MAX_GIF_BYTE ).data() ) == GIF_ERROR )
|
||||
if( EGifPutExtensionLeader( gifImage, COMMENT_EXT_FUNC_CODE ) == GIF_ERROR )
|
||||
{
|
||||
qWarning() << "EGifPutExtensionFirst failed!";
|
||||
qWarning() << "EGifPutExtensionLeader failed!";
|
||||
goto writeError;
|
||||
}
|
||||
|
||||
if( EGifPutExtensionBlock( gifImage, MAX_GIF_BYTE, isfData.left( MAX_GIF_BYTE ).constData() ) == GIF_ERROR )
|
||||
{
|
||||
qWarning() << "EGifPutExtensionBlock failed!";
|
||||
goto writeError;
|
||||
}
|
||||
|
||||
@@ -590,9 +599,9 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
// Write all the full data blocks
|
||||
while( length >= MAX_GIF_BYTE )
|
||||
{
|
||||
if( EGifPutExtensionNext( gifImage, 0, MAX_GIF_BYTE, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR )
|
||||
if( EGifPutExtensionBlock( gifImage, MAX_GIF_BYTE, isfData.mid( pos, MAX_GIF_BYTE ).constData() ) == GIF_ERROR )
|
||||
{
|
||||
qWarning() << "EGifPutExtensionNext failed!";
|
||||
qWarning() << "EGifPutExtensionBlock failed!";
|
||||
goto writeError;
|
||||
}
|
||||
|
||||
@@ -603,19 +612,17 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
// Write the last block
|
||||
if( length > 0 )
|
||||
{
|
||||
if( EGifPutExtensionLast( gifImage, 0, length, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR )
|
||||
if( EGifPutExtensionBlock( gifImage, length, isfData.mid( pos, MAX_GIF_BYTE ).constData() ) == GIF_ERROR )
|
||||
{
|
||||
qWarning() << "EGifPutExtensionLast (n) failed!";
|
||||
qWarning() << "EGifPutExtensionBlock (tail) failed!";
|
||||
goto writeError;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
if( EGifPutExtensionTrailer( gifImage ) == GIF_ERROR )
|
||||
{
|
||||
if( EGifPutExtensionLast( gifImage, 0, 0, 0 ) == GIF_ERROR )
|
||||
{
|
||||
qWarning() << "EGifPutExtensionLast (0) failed!";
|
||||
goto writeError;
|
||||
}
|
||||
qWarning() << "EGifPutExtensionTrailer failed!";
|
||||
goto writeError;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -623,13 +630,19 @@ QByteArray Stream::writerGif( const Drawing& drawing, bool encodeToBase64 )
|
||||
|
||||
writeError:
|
||||
// Clean up the GIF converter etc
|
||||
EGifCloseFile( gifImage );
|
||||
FreeMapObject( cmap );
|
||||
if( gifImage != 0 && EGifCloseFile( gifImage, &gifErrorCode ) == GIF_ERROR )
|
||||
{
|
||||
gifError = true;
|
||||
}
|
||||
if( cmap != 0 )
|
||||
{
|
||||
GifFreeMapObject( cmap );
|
||||
}
|
||||
gifData.close();
|
||||
|
||||
if( gifError )
|
||||
{
|
||||
qWarning() << "GIF error code:" << GifLastError();
|
||||
qWarning() << "GIF error code:" << gifErrorCode << GifErrorString( gifErrorCode );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -704,5 +717,3 @@ QByteArray Stream::writerPng( const Drawing& drawing, bool encodeToBase64 )
|
||||
return imageBytes.data();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <IsfQtDrawing>
|
||||
|
||||
#include <QPainter>
|
||||
#include <QPainterPath>
|
||||
#include <QPixmap>
|
||||
|
||||
#include <cmath>
|
||||
@@ -726,4 +727,3 @@ void Drawing::updateBoundingRect()
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "isfqt-internal.h"
|
||||
|
||||
#include <QPainterPath>
|
||||
#include <QVector>
|
||||
|
||||
|
||||
using namespace Isf;
|
||||
@@ -169,7 +170,7 @@ void Stroke::bezierCalculateControlPoints()
|
||||
}
|
||||
|
||||
// right hand side vector.
|
||||
double rhs[n];
|
||||
QVector<double> rhs( n );
|
||||
|
||||
// set RHS x values
|
||||
for( int i = 1; i < n-1; i++ )
|
||||
@@ -181,8 +182,8 @@ void Stroke::bezierCalculateControlPoints()
|
||||
rhs[n-1] = ( 8 * bezierKnots_[n-1].x() + bezierKnots_[n].x() ) / 2.0;
|
||||
|
||||
// get the first ctl points x values.
|
||||
double x[n];
|
||||
bezierGetFirstControlPoints( rhs, x, n );
|
||||
QVector<double> x( n );
|
||||
bezierGetFirstControlPoints( rhs.data(), x.data(), n );
|
||||
|
||||
|
||||
// now set RHS y-values.
|
||||
@@ -194,8 +195,8 @@ void Stroke::bezierCalculateControlPoints()
|
||||
rhs[0] = bezierKnots_[0].y() + 2 * bezierKnots_[1].y();
|
||||
rhs[n-1] = ( 8 * bezierKnots_[n-1].y() + bezierKnots_[n].y() ) / 2.0;
|
||||
|
||||
double y[n];
|
||||
bezierGetFirstControlPoints( rhs, y, n );
|
||||
QVector<double> y( n );
|
||||
bezierGetFirstControlPoints( rhs.data(), y.data(), n );
|
||||
|
||||
// now fill the output QList.
|
||||
for( int i = 0; i < n; i++ )
|
||||
@@ -226,7 +227,7 @@ void Stroke::bezierCalculateControlPoints()
|
||||
void Stroke::bezierGetFirstControlPoints( double rhs[], double* xOut, int n )
|
||||
{
|
||||
double* x = xOut; // solution vector.
|
||||
double tmp[n]; // temp workspace.
|
||||
QVector<double> tmp( n ); // temp workspace.
|
||||
|
||||
double b = 2.0;
|
||||
x[0] = rhs[0] / b;
|
||||
@@ -513,5 +514,3 @@ QMatrix* Stroke::transform()
|
||||
{
|
||||
return transform_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -406,7 +406,7 @@ IsfError TagsParser::parseUnsupported( StreamData* streamData, const QString& ta
|
||||
*/
|
||||
IsfError TagsParser::parseCustomTag( StreamData* streamData, Drawing* drawing, quint64 tagIndex )
|
||||
{
|
||||
quint64 tag = tagIndex - FIRST_CUSTOM_TAG_ID;
|
||||
quint64 tag = tagIndex - static_cast<quint64>( FIRST_CUSTOM_TAG_ID );
|
||||
|
||||
// Find if we have this tag registered in the GUID table
|
||||
if( tag >= (quint64)drawing->guids_.count() )
|
||||
@@ -427,8 +427,8 @@ IsfError TagsParser::parseCustomTag( StreamData* streamData, Drawing* drawing, q
|
||||
|
||||
// String values
|
||||
if(
|
||||
guid == "{96E9B229-B657-DA4F-BFFD-F54DBA4C35F9}" // Unknown meaning, name?
|
||||
|| guid == "{7C8E448A-390F-D94C-BB52-71FDA3221674}" // Unknown meaning, surname?
|
||||
guid == QUuid( "{96E9B229-B657-DA4F-BFFD-F54DBA4C35F9}" ) // Unknown meaning, name?
|
||||
|| guid == QUuid( "{7C8E448A-390F-D94C-BB52-71FDA3221674}" ) // Unknown meaning, surname?
|
||||
)
|
||||
{
|
||||
// TODO: WTF is the first char for? Its value is always "0x08"
|
||||
@@ -438,7 +438,7 @@ IsfError TagsParser::parseCustomTag( StreamData* streamData, Drawing* drawing, q
|
||||
|
||||
foreach( quint64 item, data )
|
||||
{
|
||||
string.append( (quint8)item );
|
||||
string.append( QChar( static_cast<quint8>( item ) ) );
|
||||
}
|
||||
|
||||
#ifdef ISFQT_DEBUG
|
||||
@@ -1136,7 +1136,7 @@ IsfError TagsParser::parseTransformation( StreamData* streamData, Drawing* drawi
|
||||
float dx = Compress::decodeFloat( dataSource );
|
||||
float dy = Compress::decodeFloat( dataSource );
|
||||
|
||||
transform->setMatrix( scaleX, scaleY, shearX, shearY, dx, dy );
|
||||
transform->setMatrix( scaleX, shearX, 0, shearY, scaleY, 0, dx, dy, 1 );
|
||||
|
||||
#ifdef ISFQT_DEBUG_VERBOSE
|
||||
qDebug() << "- Transformation details - "
|
||||
@@ -1611,5 +1611,3 @@ QByteArray TagsParser::analyzePayload( StreamData* streamData, const quint64 pay
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -46,7 +46,3 @@ void TestAlgorithms::testDataSource()
|
||||
|
||||
|
||||
QTEST_MAIN(TestAlgorithms)
|
||||
|
||||
|
||||
|
||||
#include "test_algorithms.moc"
|
||||
|
||||
@@ -132,7 +132,3 @@ void TestIsfDrawing::readTestIsfData( const QString& filename, QByteArray& byteA
|
||||
|
||||
|
||||
QTEST_MAIN(TestIsfDrawing)
|
||||
|
||||
|
||||
|
||||
#include "test_isfdrawing.moc"
|
||||
|
||||
@@ -261,7 +261,3 @@ void TestMultibyteCoding::floatDecode()
|
||||
|
||||
|
||||
QTEST_MAIN(TestMultibyteCoding)
|
||||
|
||||
|
||||
|
||||
#include "test_multibyte_coding.moc"
|
||||
|
||||
@@ -84,7 +84,3 @@ void TestPngFortification::testDecode()
|
||||
|
||||
|
||||
QTEST_MAIN(TestPngFortification)
|
||||
|
||||
|
||||
|
||||
#include "test_png_fortification.moc"
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -4,5 +4,11 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Classic-compact.xsl Classic-compact.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic-compact/ )
|
||||
install(
|
||||
FILES
|
||||
Classic-compact.xsl
|
||||
Classic-compact.css
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Classic-compact/
|
||||
)
|
||||
|
||||
|
||||
@@ -67,6 +67,19 @@ div.conversation
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remaining markup is done inline in the .xsl file.
|
||||
|
||||
@@ -27,6 +27,36 @@
|
||||
omit-xml-declaration="yes"
|
||||
encoding="utf-8" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div style="margin:2em;padding:.5em;border:1px solid #dce6ff;font-size:larger;color:purple;text-align:center;" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Normal chat message.
|
||||
This is used to process individual chat messages.
|
||||
|
||||
@@ -4,5 +4,11 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Classic.xsl Classic.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic/ )
|
||||
install(
|
||||
FILES
|
||||
Classic.xsl
|
||||
Classic.css
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Classic/
|
||||
)
|
||||
|
||||
|
||||
@@ -67,6 +67,19 @@ div.conversation
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remaining markup is done inline in the .xsl file.
|
||||
*/
|
||||
|
||||
@@ -27,6 +27,36 @@
|
||||
indent="no"
|
||||
omit-xml-declaration="yes" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div style="margin:2em;padding:.5em;border:1px solid #dce6ff;font-size:larger;color:purple;text-align:center;" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Normal chat message.
|
||||
This is used to process individual chat messages.
|
||||
|
||||
@@ -4,5 +4,11 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Colourful-Enclosed.xsl Colourful-Enclosed.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Colourful-Enclosed/ )
|
||||
install(
|
||||
FILES
|
||||
Colourful-Enclosed.xsl
|
||||
Colourful-Enclosed.css
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Colourful-Enclosed/
|
||||
)
|
||||
|
||||
|
||||
@@ -214,3 +214,16 @@ div.conversation
|
||||
color: purple;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
<xsl:param name="csspath" select="'Colourful-Enclosed.css'" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for the page body
|
||||
-->
|
||||
@@ -68,6 +78,24 @@
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div class="conversation" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for normal messages
|
||||
|
||||
@@ -4,5 +4,11 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Dim.xsl Dim.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Dim/ )
|
||||
install(
|
||||
FILES
|
||||
Dim.xsl
|
||||
Dim.css
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Dim/
|
||||
)
|
||||
|
||||
|
||||
@@ -200,3 +200,18 @@ div.conversation
|
||||
margin-bottom: 1em;
|
||||
color: purple;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
<xsl:param name="csspath" select="'Dim.css'" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for the page body
|
||||
-->
|
||||
@@ -68,6 +78,24 @@
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div class="conversation" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for normal messages
|
||||
-->
|
||||
|
||||
@@ -4,5 +4,11 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Efficient.xsl Efficient.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Efficient/ )
|
||||
install(
|
||||
FILES
|
||||
Efficient.xsl
|
||||
Efficient.css
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Efficient/
|
||||
)
|
||||
|
||||
|
||||
@@ -271,3 +271,19 @@ div.conversation
|
||||
font-size: larger;
|
||||
color: purple;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
<xsl:param name="csspath" select="'Efficient.css'" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for the page body
|
||||
-->
|
||||
@@ -68,6 +78,24 @@
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div class="conversation" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for normal messages
|
||||
-->
|
||||
|
||||
@@ -4,5 +4,17 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Fresh-dark.xsl Fresh-dark.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh-dark/ )
|
||||
|
||||
install(
|
||||
FILES
|
||||
Fresh-dark.xsl
|
||||
Fresh-dark.css
|
||||
bg_gravatar.gif
|
||||
bg_gravatar_rtl.gif
|
||||
bg_gravatar_gray.gif
|
||||
bg_gravatar_gray_rtl.gif
|
||||
buddy_icon.png
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Fresh-dark/
|
||||
)
|
||||
|
||||
|
||||
@@ -300,3 +300,28 @@ div.conversation
|
||||
font-size: larger;
|
||||
color: #bb0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.history .avatar
|
||||
{
|
||||
background-image: url("bg_gravatar_gray.gif");
|
||||
}
|
||||
|
||||
.history .rtl .avatar
|
||||
{
|
||||
background-image: url("bg_gravatar_gray_rtl.gif");
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,16 @@
|
||||
<xsl:param name="csspath" select="'Fresh-dark.css'" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for the page body
|
||||
-->
|
||||
@@ -69,6 +79,24 @@
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div class="conversation" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for normal messages
|
||||
-->
|
||||
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -4,5 +4,16 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES Fresh.xsl Fresh.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh/ )
|
||||
install(
|
||||
FILES
|
||||
Fresh.xsl
|
||||
Fresh.css
|
||||
bg_gravatar.gif
|
||||
bg_gravatar_rtl.gif
|
||||
bg_gravatar_gray.gif
|
||||
bg_gravatar_gray_rtl.gif
|
||||
buddy_icon.png
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Fresh/
|
||||
)
|
||||
|
||||
|
||||
@@ -52,7 +52,6 @@ dl, dt, dd
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* general message layout and colors.
|
||||
*/
|
||||
@@ -300,3 +299,27 @@ div.conversation
|
||||
color: purple;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.history .avatar
|
||||
{
|
||||
background-image: url("bg_gravatar_gray.gif");
|
||||
}
|
||||
|
||||
.history .rtl .avatar
|
||||
{
|
||||
background-image: url("bg_gravatar_gray_rtl.gif");
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
<xsl:param name="csspath" select="'Fresh.css'" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for the page body
|
||||
-->
|
||||
@@ -68,6 +78,24 @@
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div class="conversation" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for normal messages
|
||||
-->
|
||||
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
@@ -4,21 +4,22 @@ include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
########### install files ###############
|
||||
|
||||
set(kmess_pure_FILES
|
||||
Pure.css
|
||||
Pure.xsl
|
||||
arrow0.png
|
||||
arrow1.png
|
||||
clock.png
|
||||
contact.png
|
||||
corner-bl.png
|
||||
corner-br.png
|
||||
corner-tl.png
|
||||
corner-tr.png
|
||||
important.png
|
||||
myself.png
|
||||
system.png
|
||||
)
|
||||
|
||||
install( FILES ${kmess_pure_FILES} DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Pure/ )
|
||||
install(
|
||||
FILES
|
||||
Pure.css
|
||||
Pure.xsl
|
||||
arrow0.png
|
||||
arrow1.png
|
||||
clock.png
|
||||
contact.png
|
||||
corner-bl.png
|
||||
corner-br.png
|
||||
corner-tl.png
|
||||
corner-tr.png
|
||||
important.png
|
||||
myself.png
|
||||
system.png
|
||||
DESTINATION
|
||||
${DATA_INSTALL_DIR}/kmess/styles/Pure/
|
||||
)
|
||||
|
||||
|
||||
@@ -338,3 +338,19 @@ div.conversation
|
||||
font-size: larger;
|
||||
color: purple;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Style overrides for chat history messages
|
||||
*/
|
||||
.history {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
.history * {
|
||||
color: #444;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
<xsl:param name="csspath" select="'Pure.css'" />
|
||||
|
||||
|
||||
<!--
|
||||
Template for the chat history
|
||||
-->
|
||||
<xsl:template match="history">
|
||||
<div class="history">
|
||||
<xsl:apply-templates />
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for the page body
|
||||
-->
|
||||
@@ -68,6 +78,24 @@
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Template for conversation headers
|
||||
-->
|
||||
<xsl:template match="header">
|
||||
<div class="{body/@dir}">
|
||||
<div class="conversation" dir="{body/@dir}">
|
||||
<div class="conversationLabel" dir="{body/@dir}">
|
||||
<xsl:text kmess:translate="true"> Conversation time: </xsl:text>
|
||||
</div>
|
||||
<div class="conversationDate" dir="{body/@dir}">
|
||||
<xsl:value-of select="date"/>
|
||||
<xsl:text>   </xsl:text>
|
||||
<xsl:value-of select="time"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<!--
|
||||
Template for normal messages
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,14 +1,16 @@
|
||||
|
||||
KDE4_INSTALL_ICONS( ${ICON_INSTALL_DIR} )
|
||||
|
||||
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 )
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -49,8 +49,20 @@ Comment=You have received a new email
|
||||
Sound=kmess_msg.ogg
|
||||
Action=Sound|Popup|Taskbar
|
||||
|
||||
[Event/contact changed]
|
||||
Name=Contact Changed
|
||||
Comment=A contact was changed (added, deleted, unblocked, changed group, etc).
|
||||
Sound=kmess_msg.ogg
|
||||
Action=Sound|Popup|Taskbar
|
||||
|
||||
[Event/group changed]
|
||||
Name=Group Changed
|
||||
Comment=A group was changed (added, deleted, renamed).
|
||||
Sound=kmess_msg.ogg
|
||||
Action=Sound|Popup|Taskbar
|
||||
|
||||
[Event/status]
|
||||
Name=KMess and Network Status
|
||||
Comment=Information on network and application status
|
||||
Sound=KDE-Sys-Special.ogg
|
||||
Action=Sound|Popup
|
||||
Action=Sound|Popup
|
||||
@@ -16,9 +16,11 @@ SET( kmess_PICS
|
||||
online.png
|
||||
onthephone.png
|
||||
unknown.png
|
||||
contact_food_overlay.png
|
||||
contact_phone_overlay.png
|
||||
contact_away_overlay.png
|
||||
contact_busy_overlay.png
|
||||
contact_food_overlay.png
|
||||
contact_invisible_overlay.png
|
||||
contact_phone_overlay.png
|
||||
)
|
||||
|
||||
INSTALL( FILES ${kmess_PICS} DESTINATION ${DATA_INSTALL_DIR}/kmess/pics )
|
||||
|
||||
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 348 B |
@@ -1,5 +1,3 @@
|
||||
|
||||
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
|
||||
|
||||
add_subdirectory( en )
|
||||
|
||||
# Documentation still uses the old KDE4 handbook macro. It will be ported
|
||||
# once the application target itself configures and compiles with KF6.
|
||||
|
||||
@@ -2172,7 +2172,7 @@
|
||||
<member>Vincenzo Reale (More Italian) <email>smart2128@baslug.org</email></member>
|
||||
<member>Andrea Decorte (More Italian) <email>adecorte@gmail.com</email></member>
|
||||
|
||||
<member>Daniel E. Moctezuma (Japanese) <email>shinsen27@gmail.com</email></member>
|
||||
<member>Daniel E. Moctezuma (Japanese) <email>dmoctezuma@kmess.org</email></member>
|
||||
|
||||
<member>Park Dong Cheon (Korean) <email>pdc@kaist.ac.kr</email></member>
|
||||
|
||||
|
||||
@@ -16,9 +16,12 @@ ELSE( NOT GETTEXT_MSGFMT_EXECUTABLE )
|
||||
FOREACH( _poFile ${PO_FILES} )
|
||||
GET_FILENAME_COMPONENT( _lang ${_poFile} NAME_WE )
|
||||
SET( _gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo )
|
||||
ADD_CUSTOM_COMMAND( TARGET translations
|
||||
ADD_CUSTOM_COMMAND( OUTPUT ${_gmoFile}
|
||||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${_poFile}
|
||||
DEPENDS ${_poFile})
|
||||
DEPENDS ${_poFile}
|
||||
VERBATIM )
|
||||
ADD_CUSTOM_TARGET( translation_${_lang} DEPENDS ${_gmoFile} )
|
||||
ADD_DEPENDENCIES( translations translation_${_lang} )
|
||||
INSTALL( FILES ${_gmoFile} DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES/ RENAME ${catalogname}.mo )
|
||||
ENDFOREACH( _poFile ${PO_FILES} )
|
||||
|
||||
|
||||
@@ -10,9 +10,10 @@ msgstr ""
|
||||
"Project-Id-Version: zh_TW\n"
|
||||
"Report-Msgid-Bugs-To: http://www.kmess.org/board/\n"
|
||||
"POT-Creation-Date: 2010-05-03 21:06+0200\n"
|
||||
"PO-Revision-Date: 2010-07-17 03:53+0800\n"
|
||||
"PO-Revision-Date: 2010-09-10 08:34+0800\n"
|
||||
"Last-Translator: Yen-chou Chen <yenchou.mse90@nctu.edu.tw>\n"
|
||||
"Language-Team: Chinese Traditional <zh-l10n@linux.org.tw>\n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@@ -2719,7 +2720,7 @@ msgstr "Francesco Nwokeka"
|
||||
|
||||
#: main.cpp:183
|
||||
msgid "Now Listening toggle button above the contact list."
|
||||
msgstr "在聯絡人清單上方的現正收聽按鈕"
|
||||
msgstr "現正收聽按鈕位於聯絡人清單上方"
|
||||
|
||||
#: main.cpp:186
|
||||
msgid "Inspiration and assorted code"
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
|
||||
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${GCRYPT_INCLUDE_DIRS} )
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${GCRYPT_INCLUDE_DIRS})
|
||||
|
||||
########### next target ###############
|
||||
|
||||
SET(kmess_SOURCES
|
||||
chat/chathistorymanager.cpp
|
||||
chat/chathistorywriter.cpp
|
||||
chat/chatmaster.cpp
|
||||
chat/chatmessagestyle.cpp
|
||||
chat/chatmessageview.cpp
|
||||
@@ -28,6 +30,7 @@ SET(kmess_SOURCES
|
||||
dialogs/awaymessagedialog.cpp
|
||||
dialogs/chathistorydialog.cpp
|
||||
dialogs/contactaddeduserdialog.cpp
|
||||
dialogs/contactaddeduserwidget.cpp
|
||||
dialogs/contactentry.cpp
|
||||
dialogs/contactpropertiesdialog.cpp
|
||||
dialogs/invitedialog.cpp
|
||||
@@ -76,6 +79,7 @@ SET(kmess_SOURCES
|
||||
notification/contactstatusnotification.cpp
|
||||
notification/notificationmanager.cpp
|
||||
notification/newemailnotification.cpp
|
||||
notification/addressbooknotifications.cpp
|
||||
settings/accountpage.cpp
|
||||
settings/accountsettingsdialog.cpp
|
||||
settings/accountsmanagerpage.cpp
|
||||
@@ -83,6 +87,7 @@ SET(kmess_SOURCES
|
||||
settings/chatloggingpage.cpp
|
||||
settings/chatstylepage.cpp
|
||||
settings/emoticonspage.cpp
|
||||
settings/filetransfersettingspage.cpp
|
||||
settings/globalsettingsdialog.cpp
|
||||
settings/miscellaneouspage.cpp
|
||||
utils/crashhandler.cpp
|
||||
@@ -98,6 +103,7 @@ SET(kmess_SOURCES
|
||||
utils/xautolock.cpp
|
||||
utils/xmlfunctions.cpp
|
||||
utils/gradientelidelabel.cpp
|
||||
utils/faderwidget.cpp
|
||||
account.cpp
|
||||
accountaction.cpp
|
||||
accountsmanager.cpp
|
||||
@@ -125,7 +131,7 @@ SET(kmess_UI_FILES
|
||||
dialogs/addemoticondialog.ui
|
||||
dialogs/awaymessagedialog.ui
|
||||
dialogs/chathistorydialog.ui
|
||||
dialogs/contactaddeduserdialog.ui
|
||||
dialogs/contactaddeduserwidget.ui
|
||||
dialogs/transferentry.ui
|
||||
dialogs/transferwindow.ui
|
||||
dialogs/contactentry.ui
|
||||
@@ -139,23 +145,50 @@ SET(kmess_UI_FILES
|
||||
settings/chatloggingpage.ui
|
||||
settings/chatstylepage.ui
|
||||
settings/emoticonspage.ui
|
||||
settings/filetransfersettingspage.ui
|
||||
settings/miscellaneouspage.ui
|
||||
utils/inlineeditlabel.ui
|
||||
)
|
||||
|
||||
SET(kmess_LIBS
|
||||
${KDE4_KDECORE_LIBS}
|
||||
${KDE4_KDEUI_LIBS}
|
||||
${KDE4_KIO_LIBS}
|
||||
${KDE4_KHTML_LIBS}
|
||||
${KDE4_KNOTIFYCONFIG_LIBS}
|
||||
${KDE4_KNEWSTUFF2_LIBS}
|
||||
${KDE4_PHONON_LIBS}
|
||||
${KDE4_SOLID_LIBS}
|
||||
Qt6::Core
|
||||
Qt6::Core5Compat
|
||||
Qt6::DBus
|
||||
Qt6::Gui
|
||||
Qt6::Multimedia
|
||||
Qt6::Network
|
||||
Qt6::Test
|
||||
Qt6::WebEngineWidgets
|
||||
Qt6::Widgets
|
||||
Qt6::Xml
|
||||
isf-qt
|
||||
KF6::ConfigCore
|
||||
KF6::ConfigGui
|
||||
KF6::ConfigWidgets
|
||||
KF6::Codecs
|
||||
KF6::Completion
|
||||
KF6::CoreAddons
|
||||
KF6::Crash
|
||||
KF6::DBusAddons
|
||||
KF6::IdleTime
|
||||
KF6::I18n
|
||||
KF6::IconThemes
|
||||
KF6::KIOCore
|
||||
KF6::KIOWidgets
|
||||
KF6::Notifications
|
||||
KF6::NotifyConfig
|
||||
KF6::Parts
|
||||
KF6::Service
|
||||
KF6::Solid
|
||||
KF6::StatusNotifierItem
|
||||
KF6::TextWidgets
|
||||
KF6::WidgetsAddons
|
||||
KF6::WindowSystem
|
||||
KF6::Wallet
|
||||
KF6::XmlGui
|
||||
${LIBXML2_LIBRARIES}
|
||||
${LIBXSLT_LIBRARIES}
|
||||
${GCRYPT_LIBRARIES}
|
||||
${QT_QTTEST_LIBRARY}
|
||||
)
|
||||
|
||||
IF( ${GIF_FOUND} )
|
||||
@@ -163,10 +196,7 @@ IF( ${GIF_FOUND} )
|
||||
SET( kmess_LIBS ${kmess_LIBS} ${GIF_LIBRARIES} )
|
||||
ENDIF( ${GIF_FOUND} )
|
||||
|
||||
IF( ISFQT_FOUND )
|
||||
INCLUDE_DIRECTORIES( ${ISFQT_INCLUDE_DIR} )
|
||||
SET( kmess_LIBS ${kmess_LIBS} ${ISFQT_LIBRARIES} )
|
||||
ENDIF( ISFQT_FOUND )
|
||||
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/contrib/isf-qt/include )
|
||||
|
||||
# If LikeBack is enabled, compile it
|
||||
IF( NOT ${KMESS_DISABLE_LIKEBACK} EQUAL 1 )
|
||||
@@ -185,16 +215,8 @@ if(APPLE)
|
||||
set(kmess_SOURCES ${kmess_SOURCES} notification/macnotification.cpp)
|
||||
endif(APPLE)
|
||||
|
||||
#new system tray spec - optional
|
||||
IF( HAVE_NEW_TRAY )
|
||||
SET( kmess_SOURCES ${kmess_SOURCES}
|
||||
notification/newsystemtraywidget.cpp )
|
||||
INCLUDE_DIRECTORIES( ${KNOTIFICATIONITEM_INCLUDE_DIR} )
|
||||
SET( kmess_LIBS ${kmess_LIBS} ${KNOTIFICATIONITEM_LIBRARIES} )
|
||||
ELSE()
|
||||
SET( kmess_SOURCES ${kmess_SOURCES}
|
||||
notification/systemtraywidget.cpp )
|
||||
ENDIF()
|
||||
SET( kmess_SOURCES ${kmess_SOURCES}
|
||||
notification/newsystemtraywidget.cpp )
|
||||
|
||||
# If we're compiling in debug mode:
|
||||
IF( ${KMESS_ENABLE_DEBUG_OUTPUT} EQUAL 1 )
|
||||
@@ -211,30 +233,18 @@ IF( ${KMESS_ENABLE_DEBUG_OUTPUT} EQUAL 1 )
|
||||
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull )
|
||||
ENDIF( ${KMESS_ENABLE_DEBUG_OUTPUT} EQUAL 1 )
|
||||
|
||||
# Add XScreensaver library for away-idle detection.
|
||||
IF( X11_Xscreensaver_FOUND )
|
||||
SET(kmess_LIBS ${kmess_LIBS} ${X11_Xscreensaver_LIB} ${X11_LIBRARIES} )
|
||||
ENDIF( X11_Xscreensaver_FOUND )
|
||||
|
||||
# Set our new shiny KDE debug number to be the default
|
||||
add_definitions( -DKDE_DEFAULT_DEBUG_AREA=5130 )
|
||||
|
||||
# Define the app icon for Windows / Mac OS
|
||||
SET( kmess_SRCS )
|
||||
KDE4_ADD_APP_ICON( kmess_SRCS ../data/icons/hi*-app-kmess.png )
|
||||
SET( kmess_SOURCES ${kmess_SOURCES} ${kmess_SRCS} )
|
||||
|
||||
# Create a DBus adapter from XML file
|
||||
QT4_ADD_DBUS_ADAPTOR( kmess_SOURCES utils/kmessdbus.xml utils/kmessdbus.h KMessDBus )
|
||||
qt_add_dbus_adaptor( kmess_DBUS_SRCS utils/kmessdbus.xml utils/kmessdbus.h KMessDBus )
|
||||
|
||||
# Define all files
|
||||
KDE4_ADD_UI_FILES( kmess_SOURCES ${kmess_UI_FILES} )
|
||||
KDE4_ADD_EXECUTABLE( kmess ${kmess_SOURCES} )
|
||||
qt_wrap_ui( kmess_UI_SRCS ${kmess_UI_FILES} )
|
||||
add_executable( kmess ${kmess_SOURCES} ${kmess_UI_SRCS} ${kmess_DBUS_SRCS} )
|
||||
target_include_directories( kmess PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
|
||||
# Link to final executable
|
||||
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 )
|
||||
|
||||
@@ -19,17 +19,17 @@
|
||||
|
||||
#include "contact/msnobject.h"
|
||||
#include "utils/kmessconfig.h"
|
||||
#include "utils/kmessshared.h"
|
||||
#include "accountsmanager.h"
|
||||
#include "kmessdebug.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QRegExp>
|
||||
#include <QRegularExpression>
|
||||
|
||||
#include <KConfigGroup>
|
||||
|
||||
#include <KGlobal>
|
||||
#include <KLocale>
|
||||
#include <KStandardDirs>
|
||||
#include <KLocalizedString>
|
||||
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT
|
||||
@@ -54,7 +54,7 @@ Account::Account()
|
||||
friendlyName_( i18n("Your name"), false ), // Do not parse this name, CurrentAccount is not ready when initializing
|
||||
guestAccount_(true),
|
||||
groupFollowupMessages_(true),
|
||||
handle_( i18n("you@hotmail.com") ),
|
||||
handle_( i18n("you@escargot.chat") ),
|
||||
hideNotificationsWhenBusy_(true),
|
||||
idleTime_(5),
|
||||
initialStatus_(STATUS_ONLINE),
|
||||
@@ -67,7 +67,7 @@ Account::Account()
|
||||
savePassword_(false),
|
||||
shakeNudge_(true),
|
||||
showAllowedContacts_(false),
|
||||
showChatUserPicture_(false),
|
||||
showChatUserPicture_(true),
|
||||
showContactEmail_(false),
|
||||
showContactListBird_(true),
|
||||
showEmail_(true),
|
||||
@@ -120,7 +120,7 @@ Account::~Account()
|
||||
delete msnObject_;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_GENERAL
|
||||
kDebug() << "DESTROYED. [handle=" << handle_ << "]";
|
||||
kmDebug() << "DESTROYED. [handle=" << handle_ << "]";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ Account::~Account()
|
||||
void Account::copyAccount( const Account *account )
|
||||
{
|
||||
#ifdef KMESSDEBUG_ACCOUNT_GENERAL
|
||||
kDebug() << "Copying account data...";
|
||||
kmDebug() << "Copying account data...";
|
||||
#endif
|
||||
|
||||
// This method is used to clone the settings of an Account to the CurrentAccount,
|
||||
@@ -649,7 +649,7 @@ int Account::getListPictureSize() const
|
||||
// Return the path to the current display picture
|
||||
const QString Account::getPicturePath( bool fallBack ) const
|
||||
{
|
||||
static QString defaultPicture( KGlobal::dirs()->findResource( "data", "kmess/pics/kmesspic.png" ) );
|
||||
static QString defaultPicture( KMessShared::findResource( "data", "kmess/pics/kmesspic.png" ) );
|
||||
|
||||
// Return the picture path if the user has selected to show it; else return an empty string
|
||||
if( ! showPicture_ )
|
||||
@@ -726,7 +726,27 @@ bool Account::isGuestAccount() const
|
||||
// Validate a contact email
|
||||
bool Account::isValidEmail( QString email )
|
||||
{
|
||||
return email.contains( QRegExp( "^[A-Z0-9._%\\-]+@(?:[A-Z0-9\\-]+\\.)+[A-Z]{2,4}$", Qt::CaseInsensitive ) );
|
||||
static const QRegularExpression emailPattern(
|
||||
"^[A-Z0-9._%\\-]+@(?:[A-Z0-9\\-]+\\.)+[A-Z]{2,}$",
|
||||
QRegularExpression::CaseInsensitiveOption );
|
||||
return emailPattern.match( email ).hasMatch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Validate a Messenger handle
|
||||
bool Account::isValidHandle( QString handle )
|
||||
{
|
||||
handle = handle.trimmed();
|
||||
if( isValidEmail( handle ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static const QRegularExpression escargotNamePattern(
|
||||
"^[A-Z0-9._%\\-]{1,64}$",
|
||||
QRegularExpression::CaseInsensitiveOption );
|
||||
return escargotNamePattern.match( handle ).hasMatch();
|
||||
}
|
||||
|
||||
|
||||
@@ -788,7 +808,7 @@ void Account::readProperties( const QString &handle )
|
||||
savePassword_ = profileGroup.readEntry( "savePassword", false );
|
||||
shakeNudge_ = profileGroup.readEntry( "shakeNudge", true );
|
||||
showAllowedContacts_ = profileGroup.readEntry( "showAllowed", false );
|
||||
showChatUserPicture_ = profileGroup.readEntry( "showChatUserPicture", false );
|
||||
showChatUserPicture_ = profileGroup.readEntry( "showChatUserPicture", true );
|
||||
showContactEmail_ = profileGroup.readEntry( "showContactEmail", false );
|
||||
showContactListBird_ = profileGroup.readEntry( "showContactListBird", true );
|
||||
showEmail_ = profileGroup.readEntry( "showEmail", true );
|
||||
@@ -821,17 +841,17 @@ void Account::readProperties( const QString &handle )
|
||||
dirty_ = false;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Resetting 'dirty' to false.";
|
||||
kmDebug() << "Resetting 'dirty' to false.";
|
||||
#endif
|
||||
|
||||
// If a chat style is removed, fall back to the default.
|
||||
// This default is "Fresh" as of 1.5 final, to improve the first impression a user gets.
|
||||
// The previous "Default" theme has been renamed to "Classic".
|
||||
// This code also makes the migration from 1.5-pre2 to 1.5 (and beyond) easier.
|
||||
if( KGlobal::dirs()->findResource( "data", "kmess/styles/" + chatStyle_ + '/' + chatStyle_ + ".xsl" ).isEmpty() )
|
||||
if( KMessShared::findResource( "data", "kmess/styles/" + chatStyle_ + '/' + chatStyle_ + ".xsl" ).isEmpty() )
|
||||
{
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Auto-corrected chat & setting, setting 'dirty' to true.";
|
||||
kmDebug() << "Auto-corrected chat & setting, setting 'dirty' to true.";
|
||||
#endif
|
||||
|
||||
// Fall back to our new default.
|
||||
@@ -849,12 +869,12 @@ void Account::saveProperties()
|
||||
// Protect against unwanted usage
|
||||
if( guestAccount_ )
|
||||
{
|
||||
kWarning() << "Application attempted to save a guest account!";
|
||||
kmWarning() << "Application attempted to save a guest account!";
|
||||
return;
|
||||
}
|
||||
if( deleted_ )
|
||||
{
|
||||
kWarning() << "Application attempted to save the deleted account again!";
|
||||
kmWarning() << "Application attempted to save the deleted account again!";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -864,7 +884,7 @@ void Account::saveProperties()
|
||||
if ( dirty_ )
|
||||
{
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Account " << handle_ << " is 'dirty', save properties.";
|
||||
kmDebug() << "Account " << handle_ << " is 'dirty', save properties.";
|
||||
#endif
|
||||
|
||||
// Write new settings
|
||||
@@ -941,7 +961,7 @@ void Account::saveProperties()
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
else
|
||||
{
|
||||
kDebug() << "Account " << handle_ << " is NOT 'dirty', don't save properties.";
|
||||
kmDebug() << "Account " << handle_ << " is NOT 'dirty', don't save properties.";
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -988,7 +1008,7 @@ void Account::setContactListOptions( bool showNowListening, bool showContactEmai
|
||||
if( showNowListening_ != showNowListening )
|
||||
{
|
||||
#ifdef KMESSDEBUG_ACCOUNT_GENERAL
|
||||
kDebug() << "Now listening settings changed, notifying listeners.";
|
||||
kmDebug() << "Now listening settings changed, notifying listeners.";
|
||||
#endif
|
||||
|
||||
showNowListening_ = showNowListening;
|
||||
@@ -997,7 +1017,7 @@ void Account::setContactListOptions( bool showNowListening, bool showContactEmai
|
||||
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1011,7 +1031,7 @@ void Account::setAutoreplyMessage( const QString& autoreplyMessage)
|
||||
autoreplyMessage_ = autoreplyMessage;
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1079,7 +1099,7 @@ void Account::setAutoreplyMessage( const QString& autoreplyMessage)
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1107,7 +1127,7 @@ void Account::setChatLoggingInformation( bool saveChats, bool saveChatsToFile, A
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1123,7 +1143,7 @@ void Account::setContactListDisplayMode( ContactListDisplayMode displayMode )
|
||||
emit changedViewMode();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1142,7 +1162,7 @@ void Account::setEmailInformation( bool showEmail, bool showOtherFolders )
|
||||
emit changedEmailDisplaySettings();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1171,7 +1191,7 @@ void Account::setFont( const QFont& font )
|
||||
emit changedFontSettings();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1187,7 +1207,7 @@ void Account::setFontColor( const QString& fontColor )
|
||||
emit changedFontSettings();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1216,7 +1236,7 @@ void Account::setFontInformation( const QFont& font, const QString &fontColor, c
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1237,7 +1257,7 @@ void Account::setEmoticonStyle( const QString& emoticonStyle )
|
||||
// Tell the account settings changed and need to be saved
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1258,7 +1278,7 @@ void Account::setFriendlyName(const QString& newName)
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1290,7 +1310,7 @@ void Account::setInitialStatus( Status status )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1311,7 +1331,7 @@ void Account::setListPictureSize( int mode )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1351,7 +1371,7 @@ void Account::setLoginInformation( QString handle, QString friendlyName, QString
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1379,7 +1399,7 @@ void Account::setPersonalMessage(const QString& newMessage)
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1401,7 +1421,7 @@ void Account::setPicturePath( const QString& picturePath )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1420,7 +1440,7 @@ void Account::setOriginalPicturePath( const QString& picturePath )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1448,7 +1468,7 @@ void Account::setSavePassword( bool savePassword )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1463,7 +1483,7 @@ void Account::setShowAllowedContacts( bool showAllowedContacts )
|
||||
emit changedDisplaySettings();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1483,7 +1503,7 @@ void Account::setShowChatUserPicture( bool showChatUserPicture )
|
||||
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -1503,7 +1523,7 @@ void Account::setShowContactListBird( bool showBird )
|
||||
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -1523,7 +1543,7 @@ void Account::setShowEmptyGroups( bool showEmptyGroups )
|
||||
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1541,7 +1561,7 @@ void Account::setShowHistoryBox( bool showHistoryBox )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1554,7 +1574,7 @@ void Account::setShowNowListening( bool showNowListening )
|
||||
emit changedNowListeningSettings();
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_GENERAL
|
||||
kDebug() << "Setting 'showNowListening' to " << showNowListening;
|
||||
kmDebug() << "Setting 'showNowListening' to " << showNowListening;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1569,7 +1589,7 @@ void Account::setShowOfflineContacts( bool showOfflineContacts )
|
||||
emit changedDisplaySettings();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1585,7 +1605,7 @@ void Account::setShowRemovedContacts( bool showRemovedContacts )
|
||||
emit changedDisplaySettings();
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1604,7 +1624,7 @@ void Account::setShowSearchBar( bool showSearchBar )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1622,7 +1642,7 @@ void Account::setShowSessionInfo( bool showSessionInfo )
|
||||
dirty_ = true;
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1654,7 +1674,7 @@ void Account::setStatusOptions( bool useIdleTimer, int idleTime, bool hideNotifi
|
||||
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1684,7 +1704,7 @@ void Account::setUseAutologin( bool useAutologin)
|
||||
useAutologin_ = useAutologin;
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1697,7 +1717,7 @@ void Account::setUseEmoticons( bool useEmoticons)
|
||||
useEmoticons_ = useEmoticons;
|
||||
dirty_ = true;
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
emit changedChatStyleSettings();
|
||||
}
|
||||
@@ -1726,7 +1746,7 @@ void Account::setShowPicture( bool showPicture )
|
||||
updateMsnObject();
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_DIRTY
|
||||
kDebug() << "Setting 'dirty' to true.";
|
||||
kmDebug() << "Setting 'dirty' to true.";
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1752,13 +1772,13 @@ void Account::updateMsnObject()
|
||||
if( picturePath != displayPicturePath_ )
|
||||
{
|
||||
#ifdef KMESSDEBUG_ACCOUNT_MSNOBJECT
|
||||
kDebug() << "Replacing picture" << displayPicturePath_ << "with" << picturePath;
|
||||
kmDebug() << "Replacing picture" << displayPicturePath_ << "with" << picturePath;
|
||||
#endif
|
||||
displayPicturePath_ = picturePath;
|
||||
}
|
||||
|
||||
#ifdef KMESSDEBUG_ACCOUNT_MSNOBJECT
|
||||
kDebug() << "Show the picture?" << showPicture_ << "- Set picture path:" << displayPicturePath_;
|
||||
kmDebug() << "Show the picture?" << showPicture_ << "- Set picture path:" << displayPicturePath_;
|
||||
#endif
|
||||
|
||||
if ( showPicture_ )
|
||||
@@ -1774,7 +1794,7 @@ void Account::updateMsnObject()
|
||||
}
|
||||
else
|
||||
{
|
||||
kWarning() << "Picture could not be loaded: " << displayPicturePath_;
|
||||
kmWarning() << "Picture could not be loaded: " << displayPicturePath_;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1782,12 +1802,8 @@ void Account::updateMsnObject()
|
||||
if( oldMsnString != newMsnString )
|
||||
{
|
||||
#ifdef KMESSDEBUG_ACCOUNT_MSNOBJECT
|
||||
kDebug() << "result is: '" << newMsnString << "'";
|
||||
kmDebug() << "result is: '" << newMsnString << "'";
|
||||
#endif
|
||||
emit changedMsnObject();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "account.moc"
|
||||
|
||||
@@ -57,8 +57,7 @@ class Account : public QObject
|
||||
/// Available chat exporting formats
|
||||
enum ChatExportFormat
|
||||
{
|
||||
EXPORT_XML /// Export the chat to XML
|
||||
, EXPORT_HTML /// Export the chat to HTML
|
||||
EXPORT_HTML /// Export the chat to HTML
|
||||
, EXPORT_TEXT /// Export the chat to text
|
||||
};
|
||||
// Contact List view organization constants
|
||||
@@ -286,6 +285,8 @@ class Account : public QObject
|
||||
public: // Static public members
|
||||
// Validate a contact email
|
||||
static bool isValidEmail( QString email );
|
||||
// Validate a Messenger handle. Escargot/NINA can also use plain usernames.
|
||||
static bool isValidHandle( QString handle );
|
||||
|
||||
protected: // Protected methods
|
||||
// Update the email-supported state (protected method)
|
||||
|
||||