Compare commits

..

1 Commits

Author SHA1 Message Date
Mario Fetka a899084e37 Import release 2.0beta1 2009-03-23 23:26:37 +00:00
373 changed files with 147541 additions and 68476 deletions
+160 -66
View File
@@ -1,4 +1,5 @@
Developers:
-- Developers --
Mike K. Bennett <mkb137@users.sourceforge.net>
Michael Curtis <mdcurtis@users.sourceforge.net>
Jan Toenjes <jan.toenjes@web.de>
@@ -6,48 +7,138 @@ Developers:
Richard Conway <richardconway@users.sourceforge.net>
Valerio Pilo <amroth@coldshock.net>
Antonio Nastasi <sifcenter@gmail.com>
Ruben Vandamme <vandammeru@gmail.com>
Translations:
Arabic - Mohamed Aser <mohasr@link.net>
Youssef Chahibi <chahibi@gmail.com>
Brazilian Portuguese - Mauricio Rother <mauricio@digicomm.com.br>
Catalan - Jaume Cornadó <jaumec@lleida.net>
Chinese (Simplified) - Lin Haoxiang <linhaoxiang@hotmail.com>
Liu Sizhuang <chinatslsz@hotmail.com>
Chinese (Traditional) - Yen-chou Chen <yenchou.mse90@nctu.edu.tw>
Danish - Lars Sommer <admin@lasg.dk>
Pascal d'Hermilly <pascal@tipisoft.dk>
Dutch - Arend van Beelen Jr. <arend@auton.nl>
Diederik van der Boor <vdboor@codingdomain.com>
Jaap Woldringh <jjh.woldringh@planet.nl>
Estonian - Jyri Toomessoo <nuubik@hotmail.com>
Finnish - Markus Vuori <markus@vuoret.net>
Joonas Niilola <juippis@roskakori.org>
Jussi Timperi <jussi.timperi@gmail.com>
French - Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Andrea Blankenstijn <darkan9el@gmail.com>
German - Jan Tönjes <jan.toenjes@web.de>
Hungarian - Páder Rezsõ <rezso@rezso.net>
Italian - David Vignoni <dvgn@libero.it>
Valerio Pilo <amroth@coldshock.net>
Vincenzo Reale <smart2128@baslug.org>
Korean - Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal - Øyvind Sæther <oyvind@sather.tk>
Slovenian - Matjaž kaše <kase@g-kabel.si>
Spanish - Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Alejandro Araiza Alvarado <mebrelith@gmail.com>
Jaume Corbí <jaume4@gmail.com>
Christian Kaiser <k39@users.sourceforge.net>
Swedish - Christian Lundgren <zeflunk@gmail.com>
Thai - Rachan Hongpairote <rachanh@yahoo.com>
Turkish - Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
Uğur Çetin <ugur.jnmbk@gmail.com>
-- Translations --
Translations Maintainer:
Panagiotis Papadopoulos <pano_90@gmx.net>
Arabic:
Mohamed Aser <mohasr@link.net>
Youssef Chahibi <chahibi@gmail.com>
Brazilian Portuguese:
Mauricio Rother <mauricio@digicomm.com.br>
Leonel Freire <leonelfreire@gmail.com>
Maurício Arozi Moraes
Catalan:
Jaume Cornadó <jaumec@lleida.net>
Chinese (Simplified):
Lin Haoxiang <linhaoxiang@hotmail.com>
Liu Sizhuang <chinatslsz@hotmail.com>
Cheng Yang <yangzju@gmail.com>
Chinese (Traditional):
Yen-chou Chen <yenchou.mse90@nctu.edu.tw>
Tryneeds-Chinese Translation Platform <http://tryneeds.westart.tw/tryneeds>
Danish:
Lars Sommer <admin@lasg.dk>
Pascal d'Hermilly <pascal@tipisoft.dk>
Dutch:
Arend van Beelen Jr. <arend@auton.nl>
Diederik van der Boor <vdboor@codingdomain.com>
Jaap Woldringh <jjh.woldringh@planet.nl>
Elve <elve@savage-elve.net>
Sander Pientka <cumulus0007@gmail.com>
Estonian:
Jyri Toomessoo <nuubik@hotmail.com>
Finnish:
Markus Vuori <markus@vuoret.net>
Joonas Niilola <juippis@roskakori.org>
Jussi Timperi <jussi.timperi@gmail.com>
French:
Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Andrea Blankenstijn <darkan9el@gmail.com>
Barthe Guillaume <gu_barthe@yahoo.fr>
German:
Jan Tönjes <jan.toenjes@web.de>
Panagiotis Papadopoulos <pano_90@gmx.net>
Greek:
Panagiotis Papadopoulos <pano_90@gmx.net>
Dimitrios Glentadakis <dglent@gmail.com>
Hungarian:
Páder Rezső <rezso@rezso.net>
Pauli Henrik <henrik.pauli@drangolin.net>
Italian:
David Vignoni <dvgn@libero.it>
Valerio Pilo <amroth@coldshock.net>
Vincenzo Reale <smart2128@baslug.org>
Korean:
Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal:
Øyvind Sæther <oyvind@sather.tk>
Serbian:
Zoran Milovanović <provalisam@gmail.com>
Slovak:
Rastislav Krupanský <ra100@atlas.sk>
Slovenian:
Matjaž kaše <kase@g-kabel.si>
Spanish:
Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Alejandro Araiza Alvarado <mebrelith@gmail.com>
Jaume Corbí <jaume4@gmail.com>
Christian Kaiser <k39@users.sourceforge.net>
Juan Pablo González Tognarelli <jotapesan@gmail.com>
Alexis Daniel Medina Medina <alexismedina@gmail.com>
Swedish:
Christian Lundgren <zeflunk@gmail.com>
Mattias Newzella <newzella@gmail.com>
Thai:
Rachan Hongpairote <rachanh@yahoo.com>
Turkish:
Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
Uğur Çetin <ugur.jnmbk@gmail.com>
-- Thanks to --
Also tranks to:
Jan Tönjes <jan.toenjes@web.de>
- testing, documentation, web master, project management, etc
@@ -84,6 +175,34 @@ Also tranks to:
Damien Sandras <dsandras@seconix.com>
- GnomeMeeting developer
Liu Sizhuang <chinatslsz@hotmail.com>
- P4-Context field support
Guido Solinas <whereismwhite@gmail.com>
- Pictures in contact list code
- Contact client info
- Chat font zoom
Pedro Ferreira <pedro.ferreira@fe.up.pt>
- File transfer thumbnails
Matteo Nardi <91.matteo@gmail.com>
- KWallet support
Adam Goossens <fontknocker@gmail.com>
- Notifications blocking option
- Winks disabling option
- Last message date feature
Sjors Gielen <dazjorz@dazjorz.com>
- IRC-like commands in the chat window
Andrea Decorte <adecorte@gmail.com>
- Group selection in 'contact added user' dialog
Dario Freddi <drf_av@users.sourceforge.net>
- Chat history dialog
KMerlin <http://kmerlin.olsd.de/>
- Inspiration and assorted code
@@ -99,29 +218,4 @@ Also tranks to:
- Close-to-tray icon screenshot code
Amarok
- Custom crash handler implementation
Liu Sizhuang <chinatslsz@hotmail.com>
- P4-Context field support
Guido Solinas <whereismwhite@gmail.com>
- Pictures in contact list code
- Contact client info
- Chat font zoom
Pedro Ferreira <pedro.ferreira@fe.up.pt>
- File transfer thumbnails
Ruben Vandamme <vandammeru@gmail.com>
- Basic DBus support
- Tab closing message
- Menu hiding shortcut
- Toolbars lock
Matteo Nardi <91.matteo@gmail.com>
- KWallet support
Adam Goossens <fontknocker@gmail.com>
- Notifications blocking option
- Winks disabling option
- Last message date feature
- Custom crash handler implementation
+80 -11
View File
@@ -3,9 +3,10 @@ PROJECT( kmess )
#### System checks ####
# To add checks, see
# 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
# Check for cmake, same as minimum for KDE 4.0.0
CMAKE_MINIMUM_REQUIRED( VERSION 2.4.5 )
@@ -14,18 +15,77 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.4.5 )
FIND_PACKAGE( KDE4 REQUIRED )
# Check for libxml2
FIND_PACKAGE( LibXml2 REQUIRED )
MACRO_OPTIONAL_FIND_PACKAGE( LibXml2 )
MACRO_LOG_FEATURE( LIBXML2_FOUND "LibXML2" "Libraries used to develop XML applications" "http://xmlsoft.org" FALSE "" "Required for the chat styles system." )
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, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are on Ubuntu: 'libxml2' and 'libxml2-dev', and on openSUSE: 'libxml2' and 'libxml2-devel'.
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for libxslt
FIND_PACKAGE( LibXslt REQUIRED )
MACRO_OPTIONAL_FIND_PACKAGE( LibXslt )
MACRO_LOG_FEATURE( LIBXSLT_FOUND "LibXSLT" "A library to transform XML files into other XML files" "http://xmlsoft.org/XSLT" FALSE "" "Required for the chat styles system." )
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.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are on Ubuntu: 'libxslt' and 'libxslt-dev', and on openSUSE: 'libxslt' and 'libxslt-devel'.
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for qca2
FIND_PACKAGE( QCA2 )
MACRO_LOG_FEATURE( QCA2_FOUND "QCA 2" "A cryptographic library written in Qt to access various encryption methods" "http://delta.affinix.com/qca/" TRUE ""
" Required for the Windows Live Messenger login process.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are on Ubuntu: 'libqca2' and 'libqca2-dev', and on openSUSE: 'libqca2' and 'libqca2-devel'.
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# As far as I know, it is impossible to find out if the required QCA plugin for OpenSSL is installed:
# so we need to ask QCA itself it it's got such a plugin. Pretty darned unportable stuff.
IF( QCA2_FOUND )
IF( UNIX )
EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/check-qca2-ossl.sh OUTPUT_VARIABLE HAS_QCA2_OSSL_PLUGIN )
IF( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
SET( QCA2_OSSL_PLUGIN_FOUND TRUE )
ELSE( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
SET( QCA2_OSSL_PLUGIN_FOUND FALSE )
ENDIF( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
MACRO_LOG_FEATURE( QCA2_OSSL_PLUGIN_FOUND "QCA 2 - OpenSSL Plugin" "OpenSSL interaction library for QCA2" "http://delta.affinix.com/qca/" TRUE ""
" Required for the Windows Live Messenger login process.
* This package should have been installed along QCA2: if you have QCA2 installed
but still see this message, your distribution probably packages it separately.
Ubuntu does this; the package name is 'libqca2-plugin-ossl'.
* Please refer to the KMess forum for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
ELSE( UNIX )
# TODO: Find another *portable* way to detect the OSSL plugin.
MESSAGE( STATUS "NOTE: The qca2 OpenSSL can't be detected on this platform yet. Make sure you have it installed." )
ENDIF( UNIX )
ENDIF( QCA2_FOUND )
# Check for XScreenSaver extension
MACRO_BOOL_TO_01( X11_Xscreensaver_FOUND HAVE_XSCREENSAVER )
MACRO_LOG_FEATURE( X11_Xscreensaver_FOUND "XScreenSaver" "X11 extension used to check idle state" "" FALSE "" "Required for the auto-away feature." )
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 Ubuntu, 'libxss-dev' and on openSUSE, 'xorg-x11-libs'.
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
ELSE( X11_FOUND )
MESSAGE( STATUS "NOTE: The auto-away feature is not supported on this platform yet." )
ENDIF( X11_FOUND )
# 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 ""
" Optional context menu integration with Konqueror.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are on Ubuntu: 'libkonq5' and 'libkonq5-dev', and on openSUSE: 'libkonq5' and 'libkonq-devel'.
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Display the dependency collection results
MACRO_DISPLAY_FEATURE_LOG()
#### Configure build ####
@@ -42,7 +102,7 @@ INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${LIBXM
# Switch between the following two commands to force using a predefined version number
# EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get-svn-version.sh OUTPUT_VARIABLE KMESS_VERSION )
SET( KMESS_VERSION "2.0alpha2" )
SET( KMESS_VERSION "2.0beta1" )
#### Define compiler flags ####
@@ -50,9 +110,9 @@ SET( KMESS_VERSION "2.0alpha2" )
# 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
# 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 -Wconversion" )
SET( CMAKE_CXX_FLAGS_DEBUGFULL "-O0 -g3 -fno-inline -Wall -Woverloaded-virtual -Wsign-compare -Wundef -fvisibility=default" )
ENDIF( CMAKE_COMPILER_IS_GNUCXX )
@@ -75,6 +135,9 @@ ELSE( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
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 )
# Set a default value for relocatable binary support
IF( KMESS_ENABLE_BINRELOC EQUAL 1 )
SET( KMESS_ENABLE_BINRELOC "1" )
@@ -83,6 +146,12 @@ ELSE( KMESS_ENABLE_BINRELOC EQUAL 1 )
ENDIF( KMESS_ENABLE_BINRELOC EQUAL 1 )
# Enable the experimental webcam connection if needed
IF( NOT DEFINED KMESS_ENABLE_WEBCAM )
SET( KMESS_ENABLE_WEBCAM "0" )
ENDIF( NOT DEFINED KMESS_ENABLE_WEBCAM )
# Set a default installation path
IF( NOT CMAKE_INSTALL_PREFIX )
SET( CMAKE_INSTALL_PREFIX "/usr" )
+1395 -6
View File
File diff suppressed because it is too large Load Diff
+34 -34
View File
@@ -5,7 +5,7 @@
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = KMess
PROJECT_NUMBER = 2.0-alpha2
PROJECT_NUMBER = 2.0-beta1
OUTPUT_DIRECTORY = ./apidocs
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
@@ -25,8 +25,8 @@ ABBREVIATE_BRIEF = "The $name class" \
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
@@ -35,7 +35,7 @@ DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 2
ALIASES =
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
@@ -73,13 +73,13 @@ GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = NO
SHOW_DIRECTORIES = NO
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
@@ -89,7 +89,7 @@ WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
@@ -104,13 +104,13 @@ EXCLUDE = *.moc \
*.moc.h
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */build*/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
@@ -128,7 +128,7 @@ VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 4
IGNORE_PREFIX =
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
@@ -144,8 +144,8 @@ GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
@@ -163,8 +163,8 @@ LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
@@ -176,8 +176,8 @@ GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
@@ -190,8 +190,8 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
@@ -203,37 +203,37 @@ GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = KMESSTEST \
KMESS_NETWORK_WINDOW
EXPAND_AS_DEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
TAGFILES =
GENERATE_TAGFILE = kmess.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
DOT_FONTNAME = FreeSans
DOT_FONTPATH =
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
@@ -246,8 +246,8 @@ CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
@@ -255,6 +255,6 @@ DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
+1
View File
@@ -26,6 +26,7 @@ Support for KDE's KWallet, to store in a secure way the accounts passwords.
Automatic detection of network connection and disconnection.
Option to block notifications when the status is set to Busy.
Option to disable displaying of received winks.
Automatic reconnection to MSN after unwanted disconnections.
- 1.5.1 -
Contact's MSN client detection.
+128 -26
View File
@@ -1,44 +1,146 @@
Changes between KMess SVN and 2.0-alpha2:
Changes between KMess SVN and 2.0-beta1:
--------------------------------------
- None yet.
Changes between KMess 2.0-beta1 and 2.0-alpha2:
--------------------------------------
- added support to start chats while you're invisible.
- added automatic reconnection after unwanted disconnections.
- added IRC like command handling in the chat window (/away, etc..)
- added 'Send with KMess' menu item to Konqueror context menu's.
- added verbose status message when KMess fallbacks to the HTTP connection.
- added contact emoticon blacklist, to block annoying custom emoticons from contacts.
- added Likeback support to collect user feedback, ported from Basket of KDE 3.
- added support to configure the toolbars and menus in the chat window.
- added contact list export dialog.
- added close button in the contact list search box.
- added context menu to the contact list, to open the contact menu with the left mouse too.
- added confirmation dialogs when the menu gets hidden with Ctrl+M.
- added confirmation dialogs when deleting custom emoticons.
- added confirmation dialogs when deleting old display pictures.
- added filtering options to the file transfer window, to show downloads/uploads only.
- added Greek translation by Panagiotis Papadopoulos.
- added Serbian translation by Zoran Milovanović.
- added Slovak translation by Rastislav Krupanský.
- improved protocol support, upgraded the server core protocol to MSNP15.
- improved user interface of the main login dialog, added links.
- improved overall user interface with further fine tuning.
- improved KDE session restoring; KMess will reconnect if you were connected at logout.
- improved chat notifications to be compatible with the new Plasma notifications of KDE 4.2.
- improved emoticon panels; users can choose between message editors or permanent sidebar panels.
- improved painting controls for the Ink handwriting.
- improved chat logging support (support XML, TXT output) in preparation of a chat logging browser.
- improved chat autoscroll feature.
- improved chat window status bar.
- improved several English messages in the user interface.
- improved reporting of error messages, using notifications for warnings.
- improved cmake detection of libqca2-plugin-ossl package for Ubuntu.
- changed contact sidebar, clicking the contact always shows the context menu.
- fixed multiple bugs with automatic reconnecting.
- fixed blocked login view when there is no network connection.
- fixed saving passwords when the 'save password' account option is off.
- fixed saving passwords when KWallet is not supported, or the user refused to use it.
- fixed contact list group expanding/collapsing with incremental search.
- fixed contact list sorting and grouping.
- fixed context menu to chat with a blocked/offline/allowed contact.
- fixed double error box when adding a non-existing contact to the list.
- fixed chat window focus issues.
- fixed chat tabs for contacts with HTML characters in their name.
- fixed chat tabs for contacts with long names.
- fixed chat tabs being displayed when tabbed chatting is disabled.
- fixed chat messages displayed in the wrong tab.
- fixed chat message wordwrapping for long unbreakable words.
- fixed chat spell checker setting, the setting was not remembered correctly.
- fixed typing messages for tabbed chats.
- fixed adding custom emoticons from the chat window sidebar.
- fixed and improved shortcut keys to switch between chat tabs, start a chat, etc...
- fixed layouting issue in the Classic Compact chat style.
- fixed displaying a 'contact left chat' message twice if there was no conversation in between.
- fixed unclickable display picture in the chat if the contact is offline.
- fixed invalid dates being displayed for contact properties.
- fixed updating the chat windows after an emoticon theme is changed.
- fixed updating the chat style preview when "Group follow up messages" is toggled.
- fixed start folder of the file browser for account pictures.
- fixed displaying the filename for files transferred with the old MSNFTP protocol.
- fixed cancel link not being removed when a file transfer invitation hit the timeout
- fixed notification default settings.
- fixed missing nudge event in the notification settings.
- fixed missing detection of "Windows Media Center" in the list of known MSN clients.
- fixed now listening icon, using a common icon now.
- fixed now listening support, added support for all MPris-compatible players.
- fixed inconsistent order of the artist and track title in now Listening information.
- fixed position of the red circle in the system tray screenshot.
- fixed protocol support of group chats.
- fixed protocol support of the MSN-HTTP fallback.
- fixed protocol support of MSNP2P by Windows Live Messenger 2009, should fix picture/emoticon transfers.
- fixed protocol support of MSN Plus! markup, displaying contact names incorrectly at various places.
- fixed protocol support for resetting your Personal Message, was not recognized by Windows Live Messenger 2009.
- fixed displaying of Offline-IM messages, wrong sender was displayed when receiving many messages.
- fixed error handling for SOAP protocol errors.
- fixed "view profile" pages with updated MSN website.
- fixed crashes in the contact list model code.
- fixed a crash when receiving MSN Plus! predefined messages.
- fixed a crash with receiving files with the old MSNFTP protocol.
- fixed an assertion crashing KMess caused by read-only configuration files with a KDE 4 debug build.
- fixed compiling issues with KDE 4.0, 'KDE on Windows' and MinGW32.
- fixed compiler warnings.
- fixed adblock icons showing up by the embedded KHTMLPart component in the chat window.
- fixed network code to use QNetworkAccessManager, this should give us proper Proxy support.
- fixed browser invocation code, using KToolInvocation to have instant invocation.
- fixed issues with network detection if Solid/NetworkManager is not available.
- fixed removed translator name entries in the .po files; some languages appear to have translated names.
- removed custom notification settings in favour of KNotify settings in the global settings panel.
- updated English handbook by Heimen Stoffels.
- updated Brazilian Portuguese translation by Leonel Freire.
- updated Dutch translation by Elvse and Sander Pientka.
- updated French translation by Barthe Guillaume.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Panagiotis Papadopoulos, Dimitrios Glentadakis.
- updated Hungarian translation by Pauli Henrik.
- updated Italian translation.
- updated Norsk Bokmal translation by Øyvind Sæther.
- updated Simplified Chinese translation by Cheng Yang.
- updated Spanish translation by Alexis Daniel Medina Medina, Juan Pablo González Tognarelli.
- updated Swedish translation by Mattias Newzella.
- updated Traditional Chinese translation by Yen-chou Chen, the Tryneeds-Chinese Translation Platform.
Changes between KMess 2.0-alpha2 and 2.0-alpha:
--------------------------------------
- added connecting over HTTP, to deal with corporate firewalls which only allow connections to browse the web.
- added an history box in the contact list, to display recent contact events.
- added tabbed chatting support!
- added offline messaging functionality.
- added an application-wide settings dialog.
- added an account manager in the application-wide settings.
- added ability to search the contacts in contact list.
- added the ability to send huge messages.
- added option to copy the music a contact is listening to the clipboard.
- added option to choose the browser and e-mail client used to open Web links.
- added tabbed chatting support.
- added the ability to send ink messages.
- added a little button on the notification popups to allow closing them, other than the right-click.
- added an option to choose a default directory where to put all received files.
- added option to choose the interval of ports used for fast file transfers.
- added ability to keep short notes for each contact.
- added the support to send ink messages.
- added the support to send huge messages.
- added full MSN Plus text-formatting support in chat and in the contact list.
- added a DBus remote control interface, to enable interaction with KMess from other applications.
- added options to switch a contact between groups from that contact's properties dialog.
- added dialog to choose a previously set display picture for the account.
- added a dark chat style suitable for use with dark KDE color themes.
- added option to choose the dimensions of the contact list pictures.
- added KWallet support to store in a secure way the passwords of the saved accounts.
- added application-wide settings dialog, which includes an account manager.
- added option to choose the interval of ports used for fast file transfers.
- added option to change the groups of a contact from the contact's properties dialog.
- added option to choose a previously set display picture for the account.
- added option to choose the dimensions of the pictures in the contact list.
- added option to specify where received files will be downloaded to.
- added option to display all offline contacts in a single group ("mixed" group mode).
- added option to hide currently empty groups.
- added option to display online contacts divided by group along with offline contacts all grouped in the offline group.
- added detection of network connection availability.
- added option to block notifications when the status is set to Busy.
- added option to disable displaying of received winks.
- added the date of the last received message from a contact.
- added option to choose a default directory where to put all received files.
- added option to choose the browser and e-mail client used to open Web links.
- added copy menu entry for the music a contact is listening.
- added a dark chat style suitable for use with dark KDE color themes.
- added ability to keep short notes for each contact.
- added a search box in the contact list.
- added an history box in the contact list, which displays recent contact events.
- added a close button on the notification popups (for people who don't know about right-click to close).
- added a DBus remote control interface, to enable interaction with KMess from other applications.
- added KWallet support to store in a secure way the passwords of the saved accounts.
- added detection of network connection availability, using Solid.
- added tracking of the 'last seen' and 'last chat message' dates for a contact.
- improved reporting of error messages.
- improved the user interface of many dialogs.
- improved the Now Playing support with Amarok 2 support. Amarok 1.4 is still supported.
- improved the way the file transfer messages are displayed within the chat.
- improved the auto-message feature by displaying the automessage more often.
- improved the file transfer messages within the chat.
- improved the auto-message feature, displays the automessage more often.
- fixed displaying old contact names and no personal messages after login.
- fixed loading emoticon themes containing non-PNG picture files.
- fixed compatibility and styling issues with dark KDE color schemes.
@@ -67,7 +169,7 @@ Changes between KMess 1.5.2 and 1.5.1:
- fixed displaying old contact names after login.
- fixed enabled auto-away settings if the XScreenSaver extension was not found.
- fixed a bug which caused a disconnection when setting an extremely long nickname.
- fixed a bug which discarded saved settings for an account when quitting and when just disconnecting.
- fixed a bug which discarded saved settings for an account when quitting and when just disconnecting.
- fixed a bug which prevented non-PNG emoticon themes from loading.
- fixed a crash in debug builds for unknown contacts.
- fixed a possible crash in the passive popups.
+7 -6
View File
@@ -2,11 +2,12 @@
About KMess:
============
KMess is a MSN Messenger clone for Linux. It enables Linux users
to chat with friends online who are using MSN Messenger in
Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger
specific features and an easy-to-use interface.
KMess is a Windows Live Messenger client for Linux. It enables
Linux, Mac and even Windows users to chat with friends online
who are using the official Messenger client for Windows. The
strengths of KMess are its integration with the KDE desktop
environment, its focus on Live Messenger specific features
and an easy-to-use interface.
Like many Linux and KDE applications, KMess is free software.
The licensing terms are the GNU General Public License.
@@ -90,7 +91,7 @@ Try the following switches to change the build.
-D KMESS_ENABLE_BINRELOC=[1,0]
Enable support for binary relocatable binaries. This allows the binary
to find it's resource files whatevery directory it is installed in.
to find it's resource files whatever directory it is installed in.
-G "MinGW Makefiles"
+36 -34
View File
@@ -1,12 +1,14 @@
Please note this file is replaced by an online Trac installation.
Our trac installation can be found at: http://trac.kmess.org/
Please note that this file has been replaced by an online project management tool,
and all information here can be completely outdated.
Our new project management site can be found at: http://trac.kmess.org/
If you're looking for junior jobs, you may also contact us
at the KMess help forums.
at the KMess help forums: http://kmess.org/board/
Thanks
- The KMess team
@@ -16,7 +18,6 @@ To do:
Unfinished new features:
___ Invite contacts for a new chat session when the current chat is used for file transfers.
___ Invite contacts for a new chat session when the current chat has multiple participants (display dialog to choose the contact).
___ Change mouse cursor when hovering over the "personal status message" widget, make non-active background color less dark.
___ Lookup all "TODO" items in the code.
Unfinished protocol features:
@@ -35,7 +36,6 @@ Junior jobs:
___ Improve wink playing, include preview, offer "play" button (also see other showWink() issues). Also fixes issues when chat is started with a wink.
___ Implement phone settings (PRP and BPR fields).
___ Implement privacy settings (GTC and BLP fields, messages like "can't chat with invited contact" because not in the AL).
___ Add the ability to select another browser for opened links, instead of the kde's default browser.
... And if you're up for a challenge, you could try one of the "Low priority protocol features" below too.
... Or try to implement a new MSN feature (see "Future ideas" section).
@@ -44,14 +44,11 @@ ___ Fix repeated picture transfer invitations when contact declines or aborts th
___ Automatically clean up the displaypics folder, and msnpicture-alias-##.png images that are older then 1 month.
___ Add detection for NAK responses to file transfer invitations
___ Improve performance of restyling the chat window: combine xml to one string.
___ Contact list items flicker, specially when there are a lot of contacts.
Low-priority features:
___ Improve wink processing messages of `cabextract` output in ChatWindow::showWink().
___ When chat window closes, inform user the file transfers will also abort.
___ See what happens when there is a picture transfer in a multi-chat, and one of the chats becomes buzy.
___ Improve the parsing of *bold* /italics/ and _underline_, so http:/website/ does not become italic and avoid mangling <a href="http://website/"> to <a href="http:/<i>/website/</i>">.
___ Disable cut/copy for the password line (InitialViewInterface, not using KPasswordEdit because it disables too much).
___ See what happens when there is a picture transfer in a multi-chat, and one of the chats becomes busy.
___ When opening chat windows, shift their position to make them cascade.
Low-priority code changes:
@@ -60,11 +57,6 @@ ___ Only allow plugins/non-local files temporary when displaying winks?
___ Implement Application::attachToChat(..) feature to improve aborting?
___ Create a WinkArchive class for the code in ChatWindow::showWink().
___ Include contact meta-data in receivedMessage() call of ChatWindow::showWink().
___ Use kdWarning() instead of kdDebug() << "WARNING", for warning messages.
___ Use if(KMESS_NULL(..)) checks instead of current if(.. != 0) { .. }
___ Move utility classes to a separate folder.
___ Put TcpConnectionBase under MsnConnection.
___ Remove all #includes for <kdebug.h> and replace it with "kmessdebug.h" (watch for inclusions from subdirs)
Low-priority protocol features:
___ Support adding contacts to multiple groups.
@@ -79,21 +71,8 @@ ___ Leave a P2PApplication half-open to receive a final error message.
___ Use "URL PERSON/PROFILE" settings.
Wishes by users for 1.5:
___ Compact sidebar list as described in http://www.kmess.org/board/viewtopic.php?t=460
(make it optional, let the user choose between "no", "compact", "full")
___ Maybe: improve chat window layout like http://kde-apps.org/content/show.php?content=24461
(looks more clean, though it's a bit kmerlin like though, and the current pictures list is not that bad for multi-chat) - Being worked on
___ Group off-line contacts in one single group.
___ Group chats: use more compact contact frame.
___ Account menu's: only show submenu when there are multiple accounts.
___ XMMS2 now listening: http://www.kmess.org/board/viewtopic.php?t=1569 (use relaytool from autopackage.org for that).
Wishes by users for 1.6:
___ Tabbed chats.
Open for discussion:
___ Order of the title in the main window, account before or after. Should distinguish from the chat windows though.
Implemented for 1.5:
_Y_ Implement text/x-clientcaps message and MsnObject name to advertise KMess to other third-party messengers.
_Y_ Add a checkbox to the settingspanel to disable the shaking window effect.
@@ -166,6 +145,36 @@ _N_ "Who has me in his/hers contact list?" dialog (allowed/removed groups alread
_N_ Include the network-window as "--with-network-window" if the network-window-code displays traffic nicer.
Implemented for 2.0:
_Y_ Account menu's: only show submenu when there are multiple accounts.
_Y_ Add the ability to select another browser for opened links, instead of the kde's default browser.
_Y_ Change mouse cursor when hovering over the "personal status message" widget, make non-active background color less dark.
_Y_ Compact sidebar list as described in http://www.kmess.org/board/viewtopic.php?t=460
(make it optional, let the user choose between "no", "compact", "full")
_Y_ Contact list items flicker, specially when there are a lot of contacts.
_Y_ Disable cut/copy for the password line (InitialViewInterface, not using KPasswordEdit because it disables too much).
_Y_ Group chats: use more compact contact frame.
_Y_ Group off-line contacts in one single group.
_Y_ Improve the parsing of *bold* /italics/ and _underline_, so http:/website/ does not become italic and avoid mangling
<a href="http://website/"> to <a href="http:/<i>/website/</i>">.
(looks more clean, though it's a bit kmerlin like though, and the current pictures list is not that bad for multi-chat) - Being worked on
_Y_ Maybe: improve chat window layout like http://kde-apps.org/content/show.php?content=24461
_Y_ Move utility classes to a separate folder.
_Y_ Order of the title in the main window, account before or after. Should distinguish from the chat windows though.
_Y_ Put TcpConnectionBase under MsnConnection.
_Y_ Remove all #includes for <kdebug.h> and replace it with "kmessdebug.h" (watch for inclusions from subdirs)
_Y_ See what happens when there is a picture transfer in a multi-chat, and one of the chats becomes buzy.
_Y_ Tabbed chats.
_Y_ Use if(KMESS_NULL(..)) checks instead of current if(.. != 0) { .. }
_Y_ Use kdWarning() instead of kdDebug() << "WARNING", for warning messages.
_Y_ Add HTTP connection method.
_Y_ Add Ink support?
_Y_ Upgrade to MSNP14, but not until the protocol is fully understood! (it has some radical changes).
_Y_ Update contact properties edit dialog, icon button for contact icon.
_Y_ Browse/view the contact picture cache (include meta data, like contact handle and date/time)
_Y_ GetHotNewStuff (as of KDE 3.4, either support it through a KPart, or wait for KDE 4 conversion)
_Y_ KWallet integration
Future ideas:
@@ -180,13 +189,10 @@ ___ Implement STUN support, also for Connection-Type field, see http://en.wikipe
___ Add voice (SIP) support
___ Add Voice clips support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=11505&t=11437
___ Add webcam (RTP) support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=9837&t=9837
___ Add Ink support?
___ Fix msn remote desktop invitation support (context field with user/pass)
___ Add HTTP connection method.
___ Implement MSN Spaces integration
___ Implement MSN Games support (ActicitiesCollection : public QPtrList<Activity>)
___ Implement shared folders.
___ Upgrade to MSNP14, but not until the protocol is fully understood! (it has some radical changes).
Invitation support:
___ Check whether gnomemeeting, krdc exists before starting/acceping a session
@@ -194,12 +200,8 @@ ___ Support Konference for netmeeting invitations as well.
___ Detect whether gnomemeeting or konference exists before starting a netmeeting session.
Interface features:
___ Update contact properties edit dialog, icon button for contact icon.
___ Browse/view the contact picture cache (include meta data, like contact handle and date/time)
___ Show an icon overlay for contact connected with webmessenger.msn.com / MSN Mobile
___ Add contact icon (purple?) for unknown contacts added by others in a multi-chat session.
KDE Integration:
___ KDE-IM bridge (http://developer.kde.org/documentation/library/cvs-api/interfaces/html/classKIMIface.html)
___ GetHotNewStuff (as of KDE 3.4, either support it through a KPart, or wait for KDE 4 conversion)
___ KWallet integration
+3 -3
View File
@@ -4,7 +4,7 @@
RootName: @kmess.sourceforge.net/kmess:$SOFTWAREVERSION
DisplayName: KMess
ShortName: kmess
SoftwareVersion: 2.0alpha2
SoftwareVersion: 2.0beta1
Maintainer: The KMess Developers
Packager: Diederik van der Boor
Summary: MSN Messenger client for KDE
@@ -44,8 +44,8 @@ echo "*" | import
[Prepare]
# KDE 4.0 is the minimum requirement after the port to KDE4
require @kde.org/kdelibs 4.0
# KDE 4.1 is the minimum requirement for KMess 2
require @kde.org/kdelibs 4.1
# flash and cabextract are used for winks.
playWinks="1"
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
QCATOOL_EXEC=$(which qcatool2 2>/dev/null)
if [ ! -x "$QCATOOL_EXEC" ]; then
echo 0
exit
fi
qcatool2 plugins | grep -q qca-ossl && echo 1 || echo 0
+3
View File
@@ -22,3 +22,6 @@
/* Define if you have KPhone installed (for SIP voice chat) (currently unused) */
/* #define HAS_KPHONE 1 */
/* Define whether to enable MSN webcam support (HIGHLY EXPERIMENTAL) */
#define ENABLE_WEBCAM ${KMESS_ENABLE_WEBCAM}
+5 -1
View File
@@ -23,7 +23,11 @@ svnver=`LANG=C svnversion`
# see if this is not a repository.
if [ "$svnver" = "exported" ]; then
echo -n "$appver";
if [ -z "$KMESS_VER" ]; then
echo -n "$appver";
else
echo -n "$KMESS_VER";
fi
exit;
fi
Vendored
+13 -1
View File
@@ -37,6 +37,7 @@ fi
PREFIX=$DEFAULT_PREFIX
BUILD_TYPE="relwithdebinfo"
BUILD_DIR="build"
REAL_BUILD_DIR=""
DEBUG=0
BINRELOC=0
@@ -129,11 +130,12 @@ function run_cmake
# and switch so build messages are ok.
test -e "$BUILD_DIR" || mkdir "$BUILD_DIR" || exit 1
cd "$BUILD_DIR"
REAL_BUILD_DIR=`pwd`
# debug about cmake
echo "configuring KMess $KMESS_VER"
echo "checking build directory"
echo "running cmake from `pwd`"
echo "running cmake from $REAL_BUILD_DIR"
echo "command: cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \ "
echo " -D CMAKE_BUILD_TYPE=$BUILD_TYPE \ "
echo " -D KMESS_DEBUG_OUTPUT=$DEBUG \ "
@@ -183,6 +185,16 @@ function cmake_ok
# Build type: $BUILD_TYPE
# Build directory: $BUILD_DIR
#
#
# cmake command:
#
# cd \"$REAL_BUILD_DIR\"
# cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \\
# -D CMAKE_BUILD_TYPE=$BUILD_TYPE \\
# -D KMESS_DEBUG_OUTPUT=$DEBUG \\
# -D KMESS_ENABLE_BINRELOC=$BINRELOC \\
# \"$SRC_DIR\"
#
" > $makefile
for target in $targets; do
+3 -2
View File
@@ -5,5 +5,6 @@ ADD_SUBDIRECTORY( sounds )
ADD_SUBDIRECTORY( emoticons )
ADD_SUBDIRECTORY( chatstyles )
INSTALL( FILES kmess.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kmess )
INSTALL( FILES kmess.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
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} )
@@ -55,6 +55,18 @@ div.notification .filename {
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding-bottom: 0.5em;
border-bottom: 1px solid gray;
color: purple;
}
/**
* Remaining markup is done inline in the .xsl file.
@@ -42,8 +42,8 @@
<span dir="{from/contact/displayName/@dir}">
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="from/contact/displayName/@dir='ltr'">float:left; clear:both; padding-right: 0.3em;</xsl:when>
<xsl:otherwise>float:right; clear:both; padding-left: 0.3em;</xsl:otherwise>
<xsl:when test="from/contact/displayName/@dir='ltr'">padding-right: 0.3em;</xsl:when>
<xsl:otherwise>padding-left: 0.3em;</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
+11
View File
@@ -55,6 +55,17 @@ div.notification .filename {
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding-bottom: 0.5em;
border-bottom: 1px solid gray;
color: purple;
}
/**
* Remaining markup is done inline in the .xsl file.
@@ -195,3 +195,16 @@ img.customEmoticonPlaceholder
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 3em 2em 2em 2em;
padding: 0.5em;
border: 1px solid grey;
color: purple;
text-align: center;
}
+11
View File
@@ -183,3 +183,14 @@ img.customEmoticonPlaceholder
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin-top: 3em;
margin-bottom: 1em;
color: purple;
}
+14
View File
@@ -251,3 +251,17 @@ img.customEmoticonPlaceholder
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
padding: 0;
margin-left: 6em;
margin-top: 3em;
margin-bottom: 1.5em;
font-size: larger;
color: purple;
}
+13
View File
@@ -281,3 +281,16 @@ img.customEmoticonPlaceholder
padding: 0;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding: 0.5em;
border: 1px solid #000500;
font-size: larger;
color: #bb0;
}
+14
View File
@@ -280,3 +280,17 @@ img.customEmoticonPlaceholder
padding: 0;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 3em 2em 2em 2em;
padding: 0.5em;
border: 1px solid #dce6ff;
font-size: larger;
color: purple;
text-align: center;
}
+13
View File
@@ -319,3 +319,16 @@ img.customEmoticonPlaceholder
padding: 10px;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1.5em 1.5em 1.5em;
padding: 0.5em;
border: 1px solid #e1e1e1;
font-size: larger;
color: purple;
}
-4
View File
@@ -226,10 +226,6 @@
<string>(bah)</string>
</emoticon>
<emoticon file="goat">
<string>(nah)</string>
</emoticon>
<emoticon file="bat">
<string>:[</string>
<string>:-[</string>
+12 -1
View File
@@ -1,4 +1,15 @@
KDE4_INSTALL_ICONS( ${ICON_INSTALL_DIR} )
INSTALL( FILES gnomemeeting.png DESTINATION ${DATA_INSTALL_DIR}/kmess/icons/hicolor/16x16/apps )
SET( KMESS_ICON_INSTALL_DIR ${DATA_INSTALL_DIR}/kmess/icons/hicolor/16x16 )
# If we're compiling in debug mode, also add the LikeBack icons
IF( ${KMESS_ENABLE_DEBUG_OUTPUT} 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 )
ENDIF( ${KMESS_ENABLE_DEBUG_OUTPUT} EQUAL 1 )
INSTALL( FILES gnomemeeting.png DESTINATION ${KMESS_ICON_INSTALL_DIR}/apps )
Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

+2 -2
View File
@@ -8,7 +8,7 @@ DocPath=kmess/index.html
Terminal=0
Categories=Qt;KDE;Network;InstantMessaging;
Comment=MSN Messenger Clone for KDE 4
Comment[de]=MSN Messenger Clone für KDE 4
Comment[de]=MSN-Messenger-Klon für KDE 4
Comment[nl]=MSN Messenger Kloon voor KDE 4
GenericName=MSN Client
GenericName[af]=Irc Kliënt
@@ -20,7 +20,7 @@ GenericName[ca]=Client MSN
GenericName[cs]=MSN klient
GenericName[cy]=Dibynnydd MSN
GenericName[da]=MSN-klient
GenericName[de]=MSN Programm
GenericName[de]=MSN-Programm
GenericName[el]=Πελάτης MSN
GenericName[eo]=MSN-kliento
GenericName[es]=Cliente de MSN
+18 -6
View File
@@ -7,34 +7,46 @@ Comment=KMess Messenger Client
Name=Contact Online
Comment=A contact has come online
Sound=kmess_logon.ogg
Action=Sound|Taskbar
Action=Sound|Popup
[Event/contact status]
Name=Contact Status
Comment=A contact has changed its MSN status
Sound=kmess_logon.ogg
Action=Sound|Taskbar
Action=
[Event/contact offline]
Name=Contact Offline
Comment=A contact has gone offline
Sound=kmess_logoff.ogg
Action=Sound|Taskbar
Action=Sound|Popup
[Event/chat start]
Name=Chat Start
Comment=A contact has started a chat with you
Sound=kmess_chat.ogg
Action=Taskbar
Action=Sound|Popup|Taskbar
[Event/new message]
Name=New Message
Comment=You received a message from a contact
Sound=kmess_chat.ogg
Action=Taskbar
Action=Sound|Popup|Taskbar
[Event/nudge]
Name=Nudge
Comment=A contact requires your attention
Sound=KDE-Im-Nudge.ogg
Action=Sound|Popup|Taskbar
[Event/new email]
Name=New Email
Comment=You have received a new email
Sound=kmess_msg.ogg
Action=Sound|Taskbar
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
+4
View File
@@ -0,0 +1,4 @@
[KNewStuff2]
ProvidersUrl=http://kmess.org/newstuff/chatstyles/providers.xml
TargetDir=kmess/styles
Uncompress=true
+2 -2
View File
@@ -8,9 +8,9 @@ SET( kmess_PICS
emoticons.png
empty.png
invisible.png
kmesslogo.png
kmesslogo2.png
kmesspic.png
kmessstrip1.png
kmessstrip2.png
lunch.png
offline.png
online.png
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

+515 -434
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+1 -1
View File
@@ -1,6 +1,6 @@
Begin4
Title: KMess
Version: 2.0alpha2
Version: 2.0beta1
Entered-date: 2005-05-05
Description: A MSN Messenger / Windows Live Messenger client for KDE
Keywords: KDE X11 desktop MSN Messenger
+4 -4
View File
@@ -13,8 +13,8 @@
# PACKAGE SETTINGS
#
%define kmess_version 2.0alpha2
%define kmess_tar_version 2.0alpha2
%define kmess_version 2.0beta1
%define kmess_tar_version 2.0beta1
%define rpm_release 1
%define with_debug 0
%define doc_files AUTHORS COPYING FEATURES INSTALL NEWS README TODO
@@ -294,9 +294,9 @@ mkdir "${RPM_BUILD_ROOT}" # required by some distro's, slackware for always bui
%{name}: MSN Messenger in Windows or Mac OS. The strength of KMess is it's
%{name}: integration with the KDE desktop environment, focus on MSN Messenger
%{name}: specific features and an easy-to-use interface.
%{name}:
%{name}:
%{name}: Package Created By: KMess development team
%{name}:
%{name}:
END
%endif
##' fix syntax for vim
+4282 -2191
View File
File diff suppressed because it is too large Load Diff
+4158 -2154
View File
File diff suppressed because it is too large Load Diff
+4398 -2148
View File
File diff suppressed because it is too large Load Diff
+4561 -2976
View File
File diff suppressed because it is too large Load Diff
+5785
View File
File diff suppressed because it is too large Load Diff
+5170 -2678
View File
File diff suppressed because it is too large Load Diff
+4151 -2148
View File
File diff suppressed because it is too large Load Diff
+4371 -2174
View File
File diff suppressed because it is too large Load Diff
+4544 -2507
View File
File diff suppressed because it is too large Load Diff
+4450 -2712
View File
File diff suppressed because it is too large Load Diff
+4741 -2681
View File
File diff suppressed because it is too large Load Diff
+3586 -1946
View File
File diff suppressed because it is too large Load Diff
+4118 -2113
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -3,13 +3,13 @@
# List all the languages
#langs="`find . -name '*.po' -printf '%P ' `"
langs="`find . -name '*.po' | sort | xargs `"
langs="${langs//.po/}"
# Merge kmess.pot messages for each language
# (same as "cd po; make merge" if you have the Makefiles
# generated in the same folder Makefile.in lives)
for lang in $langs
do
lang=`basename $lang .po`
echo $lang
mv "$lang.po" "$lang.po.bak"
msgmerge -o "$lang.po" "$lang.po.bak" "kmess.pot" && rm "$lang.po.bak"
+4185 -2178
View File
File diff suppressed because it is too large Load Diff
+4664 -3073
View File
File diff suppressed because it is too large Load Diff
+4826 -2817
View File
File diff suppressed because it is too large Load Diff
+6432
View File
File diff suppressed because it is too large Load Diff
+4177 -2125
View File
File diff suppressed because it is too large Load Diff
+6029
View File
File diff suppressed because it is too large Load Diff
+4880 -2624
View File
File diff suppressed because it is too large Load Diff
+4164 -2102
View File
File diff suppressed because it is too large Load Diff
+4356 -2131
View File
File diff suppressed because it is too large Load Diff
+4385 -2327
View File
File diff suppressed because it is too large Load Diff
+4180 -2774
View File
File diff suppressed because it is too large Load Diff
+55 -22
View File
@@ -1,5 +1,5 @@
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${QCA2_INCLUDE_DIR} )
########### next target ###############
@@ -10,17 +10,16 @@ SET(kmess_SOURCES
chat/chatview.cpp
chat/chat.cpp
chat/chatwindow.cpp
chat/contactaction.cpp
chat/contactframe.cpp
chat/contactsidebar.cpp
chat/emoticonsidebar.cpp
chat/contactswidget.cpp
chat/emoticonswidget.cpp
chat/inkedit.cpp
chat/chatstatusbar.cpp
chat/xsltransformation.cpp
chat/winkswidget.cpp
contact/contactbase.cpp
contact/contact.cpp
contact/contactextension.cpp
contact/contactlist.cpp
contact/contactlistmodelitem.cpp
contact/group.cpp
contact/invitedcontact.cpp
contact/msnobject.cpp
@@ -28,11 +27,18 @@ SET(kmess_SOURCES
dialogs/addcontactdialog.cpp
dialogs/addemoticondialog.cpp
dialogs/awaymessagedialog.cpp
dialogs/chathistorydialog.cpp
dialogs/contactaddeduserdialog.cpp
dialogs/contactentry.cpp
dialogs/contactpropertiesdialog.cpp
dialogs/invitedialog.cpp
dialogs/listexportdialog.cpp
dialogs/userpicturesdialog.cpp
dialogs/transferentry.cpp
dialogs/transferwindow.cpp
model/contactlist.cpp
model/contactlistmodelitem.cpp
model/contactlistmodelfilter.cpp
network/chatinformation.cpp
network/chatmessage.cpp
network/mimemessage.cpp
@@ -64,11 +70,14 @@ SET(kmess_SOURCES
network/extra/directconnectionpool.cpp
network/extra/msndirectconnection.cpp
network/extra/msnftpconnection.cpp
network/extra/msnwebcamconnection.cpp
network/extra/p2pfragmenttracker.cpp
network/soap/addressbookservice.cpp
network/soap/httpsoapconnection.cpp
network/soap/msnappdirectoryservice.cpp
network/soap/offlineimservice.cpp
network/soap/passportloginservice.cpp
network/soap/roamingservice.cpp
network/soap/soapmessage.cpp
network/upnp/igdcontrolpoint.cpp
network/upnp/layer3forwardingservice.cpp
@@ -81,13 +90,11 @@ SET(kmess_SOURCES
notification/contactstatusnotification.cpp
notification/notificationmanager.cpp
notification/newemailnotification.cpp
notification/passivepopup.cpp
notification/passivepopupview.cpp
notification/passivepopupwidget.cpp
notification/systemtraywidget.cpp
settings/accountpage.cpp
settings/accountsettingsdialog.cpp
settings/accountsmanagerpage.cpp
settings/alertspage.cpp
settings/contactlistpage.cpp
settings/chatloggingpage.cpp
settings/chatstylepage.cpp
settings/emoticonspage.cpp
@@ -97,6 +104,8 @@ SET(kmess_SOURCES
utils/idletimer.cpp
utils/kmessconfig.cpp
utils/kmessdbus.cpp
utils/kmessdbusadaptor.cpp
utils/kmessdbusdatatypes.cpp
utils/kmessshared.cpp
utils/nowlisteningclient.cpp
utils/richtextparser.cpp
@@ -106,8 +115,6 @@ SET(kmess_SOURCES
account.cpp
accountaction.cpp
accountsmanager.cpp
contactlistviewdelegate.cpp
contactlistmodelfilter.cpp
currentaccount.cpp
emoticon.cpp
emoticonmanager.cpp
@@ -117,31 +124,33 @@ SET(kmess_SOURCES
kmess.cpp
kmessdebug.cpp
kmessinterface.cpp
kmesstest.cpp
kmessview.cpp
kmessviewdelegate.cpp
main.cpp
systemtraywidget.cpp
)
SET(kmess_UI_FILES
initialview.ui
kmessview.ui
chat/chatview.ui
chat/chatwindow.ui
chat/contactframe.ui
chat/contactswidget.ui
chat/inkedit.ui
dialogs/addcontactdialog.ui
dialogs/addemoticondialog.ui
dialogs/awaymessagedialog.ui
dialogs/chathistorydialog.ui
dialogs/contactaddeduserdialog.ui
dialogs/transferentry.ui
dialogs/transferwindow.ui
dialogs/contactentry.ui
dialogs/contactpropertiesdialog.ui
dialogs/invitedialog.ui
dialogs/listexportdialog.ui
dialogs/userpicturesdialog.ui
notification/passivepopupview.ui
settings/accountpage.ui
settings/accountsmanagerpage.ui
settings/alertspage.ui
settings/contactlistpage.ui
settings/chatloggingpage.ui
settings/chatstylepage.ui
settings/emoticonspage.ui
@@ -154,20 +163,39 @@ SET(kmess_LIBS
${KDE4_KIO_LIBS}
${KDE4_KHTML_LIBS}
${KDE4_KNOTIFYCONFIG_LIBS}
${KDE4_KNEWSTUFF2_LIBS}
${LIBXML2_LIBRARIES}
${LIBXSLT_LIBRARIES}
${QCA2_LIBRARIES}
${QT_QTTEST_LIBRARY}
)
# If we're compiling in debug mode:
IF( ${KMESS_ENABLE_DEBUG_OUTPUT} )
IF( ${KMESS_ENABLE_DEBUG_OUTPUT} EQUAL 1 )
# Enable the Network Window
SET(kmess_SOURCES ${kmess_SOURCES} dialogs/networkwindow.cpp)
SET(kmess_UI_FILES ${kmess_UI_FILES} dialogs/networkwindow.ui)
# Enable the Null Socket
SET(kmess_SOURCES ${kmess_SOURCES} network/msnsocketnull.cpp)
# Enable the testing class
SET(kmess_SOURCES ${kmess_SOURCES} kmesstest.cpp)
# Enable the old parser
SET(kmess_SOURCES ${kmess_SOURCES} ../tests/old_richtextparser.cpp)
# Enable the Models tester
IF( CMAKE_BUILD_TYPE STREQUAL debugfull )
SET( kmess_SOURCES ${kmess_SOURCES} ../tests/modeltest/modeltest.cpp )
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull )
ENDIF( ${KMESS_ENABLE_DEBUG_OUTPUT} )
# Enable LikeBack
SET( kmess_SOURCES ${kmess_SOURCES}
utils/likeback/likeback.cpp
utils/likeback/likebackbar.cpp
utils/likeback/likebackdialog.cpp )
SET( kmess_UI_FILES ${kmess_UI_FILES}
utils/likeback/likebackbar.ui
utils/likeback/likebackdialog.ui )
ENDIF( ${KMESS_ENABLE_DEBUG_OUTPUT} EQUAL 1 )
# Enable BinReloc for Autopackage support. Also requires libpthread
IF( UNIX AND KMESS_ENABLE_BINRELOC EQUAL 1 )
@@ -183,9 +211,6 @@ ENDIF( X11_Xscreensaver_FOUND )
# Define the app icon for Windows / Mac OS
KDE4_ADD_APP_ICON( kmess_SOURCES ../data/icons/hi*-app-kmess.png )
# Define DBus adaptor for org.kmess.remoteControl
QT4_ADD_DBUS_ADAPTOR( kmess_SOURCES 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} )
@@ -194,3 +219,11 @@ KDE4_ADD_EXECUTABLE( kmess ${kmess_SOURCES} )
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 )
IF( LIBKONQ_FOUND )
ADD_SUBDIRECTORY( utils/kmess-send )
ENDIF( LIBKONQ_FOUND )
+407 -334
View File
File diff suppressed because it is too large Load Diff
+75 -65
View File
@@ -47,13 +47,20 @@ class Account : public QObject
friend class KMessTest;
public: // Public methods
public: // Public enumerations
// Directory structure constants
enum ChatDirectoryStructure { SINGLEDIRECTORY = 0
, BYYEAR = 1
, BYMONTH = 2
, BYDAY = 3
};
/// Available chat exporting formats
enum ChatExportFormat
{
EXPORT_XML /// Export the chat to XML
, EXPORT_HTML /// Export the chat to HTML
, EXPORT_TEXT /// Export the chat to text
};
// Contact List view organization constants
enum ContactListDisplayMode
{
@@ -62,14 +69,13 @@ class Account : public QObject
, VIEW_MIXED
};
public: // Public methods
// The constructor
Account();
// The destructor
virtual ~Account();
// Copy an account
virtual void copyAccount( const Account *account );
// Copy an account's user-interface, not settings, changable properties
void copyAccountUISettings( const Account *account );
// Set the account as deleted
void setDeleted();
// Read the auto-reply message.
@@ -100,36 +106,28 @@ class Account : public QObject
Status getInitialStatus() const;
// Returns display mode used to show pictures in contact list.
int getListPictureSize() const;
// Return the time popup windows are shown.
const int& getNotificationDuration() const;
// Return if popup notifications will be shown for contacts which come online.
bool getNotifyContactsOnline() const;
// Return if popup notifications will be shown for contacts which change their msn status.
bool getNotifyContactsStatus() const;
// Return if popup notifications will be shown for contacts which start a chat with you.
bool getNotifyContactsChatStart() const;
// Return if popup notifications will be shown for all received chat messages.
bool getNotifyContactsChatMessages() const;
// Return if popup notifications will be shown for contacts which go offline.
bool getNotifyContactsOffline() const;
// Return if popup notifications will be shown for mail incoming in the Inbox.
bool getNotifyInboxEmails() const;
// Return if popup notifications will be shown for mail incoming in other folders.
bool getNotifyOtherEmails() const;
// Return the user's password
QString getPassword() const;
// Return the personal message
QString getPersonalMessage( FormattingMode mode = STRING_CLEANED ) const;
// Return whether or not to save chats.
// Return whether or not to save chats
bool getSaveChats() const;
// Return whether or not to save chats to external files
bool getSaveChatsToFile() const;
// Return the format in which chats will be saved
ChatExportFormat getSaveChatsFormat() const;
// Return the base directory to which chats are saved.
const QString& getSaveChatPath() const;
// Return the code of the structure used to save chats.
const int& getSavedChatDirectoryStructure() const;
// Read whether or not allowed contacts are shown.
bool getShowAllowedContacts() const;
// Read whether to show the user picture in chat windows
bool getShowChatUserPicture() const;
// Read whether the email information should be shown in the main view.
bool getShowEmail() const;
// Read whether to show the contact list background image
bool getShowContactListBird() const;
// Read the selected emoticon's list number
const QString& getEmoticonStyle() const;
// Read whether to hide notifications when busy
@@ -138,8 +136,12 @@ class Account : public QObject
bool getSavePassword() const;
// Read whether the chat window should shake when a nudge is received or sent.
bool getShakeNudge() const;
// Read whether or not to show the email of contacts in the contact list instead of their friendly name
bool getShowContactEmail() const;
// Read whether empty groups are shown
bool getShowEmptyGroups() const;
// Read whether or not to show the contact list history box
bool getShowHistoryBox() const;
// Read whether offline contacts should be shown.
bool getShowOfflineContacts() const;
// Read property of bool showMessageTime.
@@ -150,14 +152,20 @@ class Account : public QObject
bool getShowOtherFolders() const;
// Read whether or not removed (reverse) contacts are shown.
bool getShowRemovedContacts() const;
// Read whether or not the sidebar should be shown in chats
bool getShowSidebar() const;
// Read whether or not we need to show a search bar in the contact list
bool getShowSearchBar() const;
// Read whether or not to show join/part messages in chat
bool getShowSessionInfo() const;
// Read whether to show winks
bool getShowWinks() const;
// Read the way the chats will be grouped together
int getTabbedChatMode() const;
// Return the a temporary password for the account for login attempts from the initialview dialog
const QString & getTemporaryPassword() const;
// Returns whether to show seconds in message timestamp
bool getTimestampShowSeconds() const;
// Returns whether to show date in message timestamp
bool getTimestampShowDate() const;
// Return whether or not to autologin with this profile.
bool getUseAutologin() const;
// Return whether or not to enable MSN Plus! formatting in chat
@@ -176,6 +184,8 @@ class Account : public QObject
bool getShowPicture() const;
// Return the path to the *current* display picture
const QString getPicturePath() const;
// Return location of the display picture original
const QString getOriginalPicturePath() const;
// Returns the string representation of the MsnObject
const QString getMsnObjectString() const;
// Whether the account is marked to be deleted
@@ -192,16 +202,16 @@ class Account : public QObject
void saveProperties();
// The login succeeded with the new password. Save the temporary password as new account password.
void saveTemporaryPassword();
// Set alert information
void setAlertsInformation( bool useIdleTimer, int idleTime, bool shakeNudge, bool showNowListening, bool showWinks );
// Set the auto-reply message.
void setAutoreplyMessage( const QString& autoreplyMessage);
// Set chat information
void setChatInformation( bool useContactFont, bool useEmoticons, bool useFontEffects, bool useListFormatting, bool useChatFormatting, bool showMessageTime, bool groupFollowupMessages, int tabbedChatMode, const QString& chatStyle );
void setChatInformation( bool useContactFont, bool useEmoticons, bool showWinks, bool useFontEffects, bool useChatFormatting, bool shakeNudge, bool showMessageTime, bool timestampShowDate, bool timestampShowSeconds, bool groupFollowupMessages, int tabbedChatMode, const QString& chatStyle );
// Set chat logging information
void setChatLoggingInformation( bool saveChats, const QString& saveChatPath, const int& directoryStructure );
void setChatLoggingInformation( bool saveChats, bool saveChatsToFile, ChatExportFormat saveChatsFormat, const QString& saveChatPath, int directoryStructure );
// Set how contacts are shown, by group, by online/offline, or mixed.
void setContactListDisplayMode( ContactListDisplayMode displayMode );
// Set contact list appearance options
void setContactListOptions( bool showNowListening, bool showContactEmail, bool useListFormatting );
// Set email information
void setEmailInformation( bool showEmail, bool showOtherFolders );
// Set the font
@@ -223,41 +233,35 @@ class Account : public QObject
// change the personal message
void setPersonalMessage( const QString& newMessage );
// Set basic account data
void setLoginInformation( QString handle, QString friendlyName, QString password = "" );
// Set notification alerts information
void setNotificationsInformation( bool doNotifyContactsOnline, bool doNotifyContactsStatus,
bool doNotifyContactsChatStart, bool doNotifyContactsChatMessages,
bool doNotifyContactsOffline, bool doNotifyInboxEmails, bool doNotifyOtherEmails, int notificationDuration, bool hideWhenBusy );
// Set whether to show popup notifications when contacts come online.
void setNotifyContactsOnline( bool doNotifyContactsOnline );
// Set whether to show popup notifications when contacts change their msn status.
void setNotifyContactsStatus( bool doNotifyContactsStatus );
// Set whether to show popup notifications when contacts start a chat with you.
void setNotifyContactsChatStart( bool doNotifyContactsChatStart );
// Set whether to show popup notifications for all received chat messages.
void setNotifyContactsChatMessages( bool doNotifyContactsChatMessages );
// Set whether to show popup notifications when contacts go offline.
void setNotifyContactsOffline( bool doNotifyContactsOffline );
// Set whether to show popup notifications for mail incoming in the Inbox.
void setNotifyInboxEmails( bool doNotifyInboxEmails );
// Set whether to show popup notifications for mail incoming in other folders.
void setNotifyOtherEmails( bool doNotifyOtherEmails );
void setLoginInformation( QString handle, QString friendlyName, QString password = QString() );
// Set the account's login password
void setPassword( const QString &password );
// Set the display picture file
void setPicturePath( const QString& picturePath );
// Save the location of the display picture original
void setOriginalPicturePath( const QString& picturePath );
// Set if the password must be stored
void setSavePassword( bool savePassword );
// Set whether or not allowed contacts are shown.
void setShowAllowedContacts( bool showAllowedContacts );
// Set whether to show the user picture in chat windows
void setShowChatUserPicture( bool showChatUserPicture );
// Set whether to show the contact list background image
void setShowContactListBird( bool showBird );
// Set whether or not to show the contact list history box
void setShowHistoryBox( bool showHistoryBox );
// Set whether empty groups are shown
void setShowEmptyGroups( bool showEmptyGroups );
// Set whether offline contacts should be shown.
void setShowOfflineContacts( bool showOfflineContacts );
// Set whether or not removed (reverse) contacts are shown.
void setShowRemovedContacts( bool showRemovedContacts );
// Set whether or not the sidebar should be shown in chats
void setShowSidebar( bool showSidebar );
// Set whether or not we need to show a search bar in the contact list at login
void setShowSearchBar( bool showSearchBar );
// Set the status options
void setStatusOptions( bool useIdleTimer, int idleTime, bool hideNotificationsWhenBusy );
// Set whether or not to show join/part messages in chat
void setShowSessionInfo( bool showSessionInfo );
// Set the way the chats will be grouped together
void setTabbedChatMode( int tabbedChatMode );
// Set a temporary password for the account for login attempts from the initialview dialog
@@ -298,20 +302,8 @@ class Account : public QObject
bool dirty_;
// Path of the display picture set by the user
QString displayPicturePath_;
// Show a notification when contacts come online?
bool doNotifyContactsOnline_;
// Show a notification when contacts change their status?
bool doNotifyContactsStatus_;
// Show a notification when contacts start a chat?
bool doNotifyContactsChatStart_;
// Show a notification everywhen contacts send you messages?
bool doNotifyContactsChatMessages_;
// Show a notification when contacts go offline?
bool doNotifyContactsOffline_;
// Show a notification when receiving new mail in the inbox?
bool doNotifyInboxEmails_;
// Show a notification when receiving new mail in other folders?
bool doNotifyOtherEmails_;
// Path of the display picture original
QString originalDisplayPicturePath_;
// Whether the user can receive email notifications (hotmail.com or msn.com account)
bool emailSupported_;
// The directory of a selected emoticon
@@ -345,6 +337,10 @@ class Account : public QObject
QString saveChatPath_;
// Whether or not to save chat files.
bool saveChats_;
// Whether or not to save chat files to external files
bool saveChatsToFile_;
// The format to use to save chat files
ChatExportFormat saveChatsFormat_;
// Whether saved chats are organized by year, month, day, or all in a single directory
int savedChatDirectoryStructure_;
// If the password must be stored
@@ -353,6 +349,12 @@ class Account : public QObject
bool shakeNudge_;
// Whether or not allowed contacts should be visible.
bool showAllowedContacts_;
// Whether or not to show our display picture in chat
bool showChatUserPicture_;
// Whether or not to show the email of contacts in the contact list instead of their friendly name
bool showContactEmail_;
// Whether to show the contact list background image
bool showContactListBird_;
// Whether or not to show any email notifications (the user may not
// have a hotmail account).
bool showEmail_;
@@ -368,14 +370,22 @@ class Account : public QObject
bool showOtherFolders_;
// Whether or not removed (or reverse) contacts should be visible.
bool showRemovedContacts_;
// Whether or not the sidebar should be shown in chats
bool showSidebar_;
// Whether or not to show the history box
bool showHistoryBox_;
// Whether or not to show the search bar at login
bool showSearchBar_;
// Whether or not to show join/part messages in chat
bool showSessionInfo_;
// whether to show winks
bool showWinks_;
// The state of the tabbed chatting feature
int tabbedChatMode_;
// A temporary password for the account for login attempts from the initialview dialog
QString temporaryPassword_;
// Whether to show seconds in message timestamps
bool timestampShowSeconds_;
// Whether to show date in message timestamps
bool timestampShowDate_;
// Whether or not to autologin with this user.
bool useAutologin_;
// Whether or not the contact's font should be forced to some value.
@@ -402,6 +412,8 @@ class Account : public QObject
signals: // Public signals
// Signal that the chat style settings have been changed
void changedChatStyleSettings();
// Signal that the contact list settings have been changed
void changedContactListOptions();
// Signal that group/contact display settings have been changed
void changedDisplaySettings();
// Signal that the user changed email display settings
@@ -422,8 +434,6 @@ class Account : public QObject
void changedTimerSettings();
// Signal that the view mode has changed
void changedViewMode();
// Signal that tray notifications settings were changed
void changedNotificationsSettings();
};
#endif
+1 -1
View File
@@ -27,7 +27,7 @@ AccountAction::AccountAction(Account *account, QWidget *parent )
: KAction(parent),
account_(account)
{
setObjectName( "AccountAction[" + account->getHandle() + "]" );
setObjectName( "AccountAction[" + account->getHandle() + ']' );
// The idea is to have an action that sends the account when its
// normal "activated" signal is sent.
+1 -1
View File
@@ -39,7 +39,7 @@ class AccountAction : public KAction
public:
// The constructor
AccountAction( Account *account, QWidget *parent = 0 );
explicit AccountAction( Account *account, QWidget *parent = 0 );
// The destructor
~AccountAction();
+236 -67
View File
@@ -25,7 +25,9 @@
#include <QDir>
#include <KConfig>
#include <KLocale>
#include <KMessageBox>
#ifdef KMESSDEBUG_ACCOUNTSMANAGER
@@ -45,6 +47,8 @@ AccountsManager* AccountsManager::instance_(0);
AccountsManager::AccountsManager()
: passwordManager_( 0 )
{
// Load the saved accounts from disk and create them
readProperties();
}
@@ -56,6 +60,9 @@ AccountsManager::~AccountsManager()
qDeleteAll( accounts_ );
accounts_.clear();
// Delete the password manager instance
delete passwordManager_;
#ifdef KMESSDEBUG_ACCOUNTSMANAGER
kDebug() << "DESTROYED.";
#endif
@@ -81,10 +88,12 @@ void AccountsManager::addAccount( Account *account )
// An account's settings have been changed
void AccountsManager::changeAccount( Account *account, QString oldHandle, QString oldFriendlyName )
{
QString newHandle = account->getHandle();
if( KMESS_NULL( account ) ) return;
QString newHandle( account->getHandle() );
// We're saving settings for a new account
if( ! accounts_.contains( account ) )
if( getAccountByHandle( oldHandle ) == 0 )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER
kDebug() << "Saving settings for new account" << newHandle;
@@ -100,20 +109,6 @@ void AccountsManager::changeAccount( Account *account, QString oldHandle, QStrin
}
#endif
CurrentAccount *currentAccount = CurrentAccount::instance();
// If it's the current account that has been changed, copy the account settings there
if( newHandle == currentAccount->getHandle() )
{
// Copy the account settings to the current account
#ifdef KMESSDEBUG_ACCOUNTSMANAGER
kDebug() << "Copying modified Account settings to CurrentAccount.";
#endif
currentAccount->copyAccount( account );
}
// If the account is set to use autologin, make sure that all other accounts do not
if( ! account->isDeleted() && account->getUseAutologin() )
{
@@ -133,7 +128,7 @@ void AccountsManager::changeAccount( Account *account, QString oldHandle, QStrin
kDebug() << "Moving account dir from" << oldHandle << "to" << newHandle;
#endif
QString accountsPath = KMessConfig::instance()->getAccountsDirectory();
QString accountsPath( KMessConfig::instance()->getAccountsDirectory() );
QDir accountsDir( accountsPath );
@@ -161,6 +156,12 @@ void AccountsManager::changeAccount( Account *account, QString oldHandle, QStrin
// Verify is there is a saved account with the specified handle
bool AccountsManager::contains( Account *account ) const
{
if( account == CurrentAccount::instance() )
{
kWarning() << "Called contains() on the current account!";
return true;
}
return accounts_.contains( account );
}
@@ -173,19 +174,15 @@ void AccountsManager::deleteAccount( Account *account )
emit accountDeleted( account );
QString handle = account->getHandle();
QString handle( account->getHandle() );
KMessApplication *kmessApp = static_cast<KMessApplication*>( kapp );
if( ( handle == CurrentAccount::instance()->getHandle() ) && kmessApp->getContactListWindow()->isConnected() )
if( kmessApp->getContactListWindow()->isConnected()
&& CurrentAccount::instance()->getHandle() == handle )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER
kDebug() << "Not deleting account " << handle << " yet.";
kDebug() << "Cannot delete current account:" << handle;
#endif
// Already delete account data.
// NOTE: when more classes have an Account* object, consider creating a setDeleted(true)
// method, and let deleteAccountData() fire a deleteAccount(this) signal.
account->setDeleted();
return;
}
@@ -223,6 +220,11 @@ void AccountsManager::destroy()
// Return the account for a given handle
Account *AccountsManager::getAccountByHandle( const QString &handle )
{
if( handle.isEmpty() )
{
return 0;
}
foreach( Account *account, accounts_ )
{
if( account->getHandle() == handle )
@@ -264,11 +266,8 @@ void AccountsManager::initializePasswordManager( bool block )
{
// Open KWallet (synchronously - blocks KMess until the password is given)
passwordManager_ = KWallet::Wallet::openWallet( KWallet::Wallet::LocalWallet(), wId, KWallet::Wallet::Synchronous );
if( passwordManager_ == 0 )
{
kWarning() << "Opening KWallet failed!";
return;
}
// Call the slot manually
slotWalletOpen( true );
return;
}
@@ -276,14 +275,18 @@ void AccountsManager::initializePasswordManager( bool block )
{
// Open KWallet (asynchronously - the slot will be called when - and if - the wallet will be open)
passwordManager_ = KWallet::Wallet::openWallet( KWallet::Wallet::LocalWallet(), wId, KWallet::Wallet::Asynchronous );
connect( passwordManager_, SIGNAL( walletOpened(bool) ),
this, SLOT ( slotWalletOpen(bool) ) );
}
// An internal KWallet error has occurred
if( passwordManager_ == 0 )
{
kWarning() << "Opening KWallet failed!";
if( passwordManager_ )
{
connect( passwordManager_, SIGNAL( walletOpened(bool) ),
this, SLOT ( slotWalletOpen(bool) ) );
}
else
{
// If the wallet service is not available, initialize the plain text password storage
slotWalletOpen( false );
return;
}
}
}
@@ -292,22 +295,53 @@ void AccountsManager::initializePasswordManager( bool block )
// Read the passwords from the just opened wallet
void AccountsManager::slotWalletOpen( bool success )
{
if( ! success )
KConfigGroup passwordGroup( KMessConfig::instance()->getGlobalConfig( "Passwords" ) );
QStringList passwordAccountList( passwordGroup.keyList() );
if( ! success || passwordManager_ == 0 )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Wallet opening failed, aborting.";
kDebug() << "Wallet opening failed, falling back to plain text passwords.";
QStringList readPasswords;
#endif
// First delete the manager, as it won't be needed anymore
delete passwordManager_;
passwordManager_ = 0;
// Read the passwords from the KMess config file
foreach( const QString &accountHandle, passwordAccountList )
{
Account *account = getAccountByHandle( accountHandle );
// Skip passwords for invalid and deleted accounts, and remove them too
if( account == 0 )
{
passwordGroup.deleteEntry( accountHandle );
continue;
}
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
readPasswords << accountHandle;
#endif
account->setPassword( passwordGroup.readEntry( accountHandle, QString() ) );
}
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Passwords have been read for accounts" << readPasswords <<", emitting ready signal.";
#endif
emit passwordsReady();
return;
}
// Opening the wallet has failed, due to the user entering a wrong wallet password for example
if( passwordManager_ == 0 || ! passwordManager_->isOpen() )
if( ! passwordManager_->isOpen() )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Opening KWallet failed, ref is" << passwordManager_;
kDebug() << "Opening KWallet failed!";
#endif
return;
}
@@ -327,8 +361,100 @@ void AccountsManager::slotWalletOpen( bool success )
return;
}
// Wallet is open: verify if the user has any useable plaintext password set.
// If so, ask if they should be deleted or copied to the wallet :)
if( ! passwordAccountList.isEmpty() )
{
bool hasValidAccounts = false;
foreach( const QString &accountHandle, passwordAccountList )
{
Account *account = getAccountByHandle( accountHandle );
// Skip passwords for invalid and deleted accounts, and remove them too
if( account == 0 )
{
passwordGroup.deleteEntry( accountHandle );
continue;
}
hasValidAccounts = true;
}
// There are some accounts passwords. Ask the user
if( hasValidAccounts )
{
int res = KMessageBox::questionYesNoCancel( 0,
i18n( "<html>Some insecure account passwords have been found.<br />"
"Do you want to import the passwords to the KDE Wallet "
"named '%1', keep the insecure passwords, or delete "
"them permanently?<br /><br />"
"<i>Note: it is not recommended to use insecure passwords "
"if the KDE Wallet is available, because your passwords "
"will be easily readable in the KMess configuration files.</i></html>",
KWallet::Wallet::LocalWallet() ),
i18nc( "Dialog box caption", "Secure Password Storage" ),
KGuiItem( i18nc( "Dialog button: Import passwords to a KDE wallet",
"Import" ),
"document-import" ), // Yes option
KGuiItem( i18nc( "Dialog button: Delete insecure passwords",
"Delete" ),
"edit-delete-shred" ), // No option
KGuiItem( i18nc( "Dialog button: Keep insecure passwords",
"Keep" ),
"mail-mark-notjunk" ), // Cancel option
"insecurePasswordsDetected" );
switch( res )
{
case KMessageBox::Yes:
// Import passwords to the wallet, and remove the plaintext ones
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Importing plaintext passwords to the wallet.";
#endif
foreach( const QString &accountHandle, passwordAccountList )
{
Account *account = getAccountByHandle( accountHandle );
if( account != 0 )
{
passwordManager_->writePassword( accountHandle, passwordGroup.readEntry( accountHandle, QString() ) );
passwordGroup.deleteEntry( accountHandle );
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Imported password for account:" << accountHandle;
#endif
}
}
break;
case KMessageBox::No:
// Only delete the plain text passwords
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Deleting plain text account passwords.";
#endif
foreach( const QString &accountHandle, passwordAccountList )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Deleting plaintext password for account:" << accountHandle;
#endif
passwordGroup.deleteEntry( accountHandle );
}
break;
case KMessageBox::Cancel:
// Do nothing (useful if you wish to postpone the decision)
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "No action against plaintext passwords will be taken now.";
#endif
break;
}
}
}
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "KWallet successfully opened, reading passwords.";
QStringList readPasswords;
#endif
QString password;
@@ -338,18 +464,20 @@ void AccountsManager::slotWalletOpen( bool success )
{
if( passwordManager_->readPassword( account->getHandle(), password ) != 0 || password.isEmpty() )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Couldn't read password for account" << account->getHandle();
#endif
continue;
}
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
readPasswords << account->getHandle();
#endif
account->setPassword( password );
}
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Passwords have been read, emitting ready signal.";
kDebug() << "Passwords have been read for accounts" << readPasswords <<", emitting ready signal.";
#endif
emit passwordsReady();
return;
@@ -381,7 +509,7 @@ void AccountsManager::readProperties()
QStringList accountList( KMessConfig::instance()->getAccountsList() );
// Add each one of the saved accounts to the internal list
foreach( QString handle, accountList )
foreach( const QString &handle, accountList )
{
if( Account::isValidEmail( handle ) )
{
@@ -423,6 +551,13 @@ void AccountsManager::showAccountSettings( Account *account, QWidget *parentWind
bool isCurrentAccount = ( account->getHandle() == currentAccount->getHandle() );
bool isConnectedCurrentAccount = isCurrentAccount && ( kmess->isConnected() );
// If we are changing the current account, directly change the CurrentAccount object
// instead of the stored account object
if( isConnectedCurrentAccount )
{
account = currentAccount;
}
// Show the settings dialog
AccountSettingsDialog *accountSettingsDialog = AccountSettingsDialog::instance( parentWindow );
@@ -431,14 +566,6 @@ void AccountsManager::showAccountSettings( Account *account, QWidget *parentWind
connect( accountSettingsDialog, SIGNAL( changedSettings(Account*,QString,QString) ),
this, SLOT ( changeAccount(Account*,QString,QString) ) );
// If it's the current account, copy some UI settings from the current account to the account
if( isConnectedCurrentAccount )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER
kDebug() << "Copying UI settings from CurrentAccount to the Account object.";
#endif
account->copyAccountUISettings( currentAccount );
}
accountSettingsDialog->loadSettings( account, isConnectedCurrentAccount, startingPage );
accountSettingsDialog->show();
@@ -451,42 +578,84 @@ void AccountsManager::showAccountSettings( Account *account, QWidget *parentWind
void AccountsManager::storeAccountsPasswords()
{
QString handle;
QString password;
bool savePassword;
// If the user didn't activate the KWallet, do nothing as it isn't available now
if( passwordManager_ == 0 )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "KWallet is not ready, not saving passwords.";
kDebug() << "KWallet is not available: saving passwords in plain text.";
#endif
KConfigGroup passwordGroup( KMessConfig::instance()->getGlobalConfig( "Passwords" ) );
// Store the password for each account
foreach( const Account *account, accounts_ )
{
handle = account->getHandle();
if( passwordGroup.hasKey( handle ) )
{
// If the password should not be saved, then delete any already saved password
if( account->getSavePassword() == false || account->getPassword().isEmpty() )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Password for account" << handle << "removed";
#endif
passwordGroup.deleteEntry( handle );
continue;
}
}
else
{
// Save the password only if it wasn't already
passwordGroup.writeEntry( handle, account->getPassword() );
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Password for account" << handle << "saved.";
#endif
}
}
return;
}
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
else
{
kDebug() << "KWallet is available: saving passwords in the user wallet.";
}
#endif
// Store the password for each account
foreach( Account *account, accounts_ )
{
handle = account->getHandle();
password = account->getPassword();
handle = account->getHandle();
savePassword = ( account->getSavePassword() && ! account->getPassword().isEmpty() );
// If the password is empty, delete the whole account entry from the wallet
if( passwordManager_->hasEntry( handle ) && password.isEmpty() )
if( passwordManager_->hasEntry( handle ) )
{
// If the password should not be saved, then delete any already saved password
if( savePassword == false )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Account" << handle << "removed from kwallet";
kDebug() << "Removing account" << handle << "from wallet";
#endif
passwordManager_->removeEntry( handle );
continue;
passwordManager_->removeEntry( handle );
continue;
}
}
// Store the password
if( passwordManager_->writePassword( handle, password ) != 0 )
// Store the password only if it wasn't already
else if( savePassword == true && passwordManager_->writePassword( handle, account->getPassword() ) != 0 )
{
#ifdef KMESSDEBUG_ACCOUNTSMANAGER_KWALLET
kDebug() << "Couldn't store password for account" << handle;
#endif
}
}
// Save the passwords to disk now
passwordManager_->sync();
}

Some files were not shown because too many files have changed in this diff Show More