From: Manuel Nickschas Date: Sat, 7 Feb 2015 16:57:26 +0000 (+0100) Subject: Merge pull request #97 from Bombe/focus-host-input X-Git-Tag: 0.12-beta1~24 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=695758015a80eb8c158a9ac4c0f1c0b547e70df3;hp=ac82870ae2e9f512f2f669504e9586a3dd2bd7ec Merge pull request #97 from Bombe/focus-host-input Set initial focus to host input widget. --- diff --git a/.travis.yml b/.travis.yml index defbb623..476319e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,4 +26,9 @@ script: - cd build - if [ "$QT_VERSION" = "qt4" ]; then cmake ..; fi - if [ "$QT_VERSION" = "qt5" ]; then source /opt/qt52/bin/qt52-env.sh && cmake -DUSE_QT5=ON ..; fi - - make \ No newline at end of file + - make + +matrix: + exclude: + - compiler: clang + env: QT_VERSION=qt4 diff --git a/CMakeLists.txt b/CMakeLists.txt index fc226659..2c2ff026 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ # General setup ##################################################################### -cmake_minimum_required(VERSION 2.8.9) +cmake_minimum_required(VERSION 2.8.9) # You'll need at least 2.8.12 for KDE Frameworks integration project(QuasselIRC) # Versions @@ -61,9 +61,17 @@ add_feature_info(WANT_CORE WANT_CORE "Build the core (server) binary") add_feature_info(WANT_QTCLIENT WANT_QTCLIENT "Build the client-only binary (requires a core to connect to)") add_feature_info(WANT_MONO WANT_MONO "Build the monolithic (all-in-one) binary") -# Whether to enable KDE integration (pulls in kdelibs and friends as a dependency); requires Qt4 for now -cmake_dependent_option(WITH_KDE "KDE4 integration" OFF "USE_QT4" OFF) -add_feature_info(WITH_KDE WITH_KDE "Enable KDE4 integration") +# Whether to enable KDE integration (work in progress for Qt5 / KDE Frameworks) +# Note that when building with Qt5, WITH_KDE enables integration with higher-tier KDE frameworks that +# require runtime support. We still optionally make use of certain Tier 1 frameworks even if WITH_KDE +# is disabled. +if (USE_QT4) + option(WITH_KDE "KDE4 integration" OFF) + add_feature_info(WITH_KDE WITH_KDE "Enable KDE4 integration") +else() + option(WITH_KDE "Integration with the KDE Frameworks runtime environment") + add_feature_info(WITH_KDE WITH_KDE "Integrate with the KDE Frameworks runtime environment") +endif() cmake_dependent_option(WITH_OXYGEN "Install Oxygen icon set (usually shipped with KDE)" ON "NOT WITH_KDE" OFF) if (NOT WITH_KDE) @@ -131,11 +139,7 @@ if (USE_QT5) add_definitions(-DHAVE_QT5) else() message(STATUS "Building for Qt4...") - if (BUILD_GUI) - set(QT_MIN_VERSION "4.6.0") - else() - set(QT_MIN_VERSION "4.4.0") - endif() + set(QT_MIN_VERSION "4.8.0") # Select a Qt installation here, if you don't want to use system Qt if(QT_PATH) @@ -144,6 +148,7 @@ else() endif() endif() + # Find package dependencies # # Note that you can forcefully disable optional packages @@ -224,6 +229,45 @@ if (USE_QT5) endif() add_feature_info("WITH_WEBKIT, QtWebKit and QtWebKitWidgets modules" Qt5WebKitWidgets_FOUND "Support showing previews for URLs in chat") + # KDE Frameworks + ################ + + if (WITH_KDE) + set(ecm_find_type "REQUIRED") + else() + # Even with KDE integration disabled, we optionally use tier1 frameworks if we find them + set(ecm_find_type "RECOMMENDED") + endif() + + # extra-cmake-modules + find_package(ECM NO_MODULE QUIET) + set_package_properties(ECM PROPERTIES TYPE ${ecm_find_type} + URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules" + DESCRIPTION "extra modules for CMake, maintained by the KDE project" + PURPOSE "Required to find KDE Frameworks components" + ) + + if (ECM_FOUND) + list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) + endif() + + if (WITH_KDE) + find_package(KF5CoreAddons QUIET) + set_package_properties(KF5CoreAddons PROPERTIES TYPE REQUIRED + URL "http://inqlude.org/libraries/kcoreaddons.html" + DESCRIPTION "framework for solving common problems such as caching, randomization, and more" + PURPOSE "Required for KDE Frameworks integration" + ) + + find_package(KF5TextWidgets QUIET) + set_package_properties(KF5TextWidgets PROPERTIES TYPE REQUIRED + URL "http://inqlude.org/libraries/ktextwidgets.html" + DESCRIPTION "framework providing an assortment of widgets for displaying and editing text" + PURPOSE "Allows to use extra features provided by KDE Frameworks in input widgets" + ) + + endif() + endif(BUILD_GUI) if (BUILD_CORE) find_package(Qt5Script QUIET) @@ -235,14 +279,12 @@ if (USE_QT5) DESCRIPTION "the database support module for Qt5" ) - # While QCA2 seems to support Qt5, it is not actually co-installable or distinguishable from the Qt4 version... - # In order to avoid linking against the Qt4 version (which is probably the one installed), disable this for now - #find_package(QCA2 QUIET) - #set_package_properties(QCA2 PROPERTIES TYPE RECOMMENDED - # URL "https://projects.kde.org/projects/kdesupport/qca" - # DESCRIPTION "Qt Cryptographic Architecture" - # PURPOSE "Required for encryption support" - #) + find_package(QCA2-QT5) + set_package_properties(QCA2-QT5 PROPERTIES TYPE RECOMMENDED + URL "https://projects.kde.org/projects/kdesupport/qca" + DESCRIPTION "Qt Cryptographic Architecture" + PURPOSE "Required for encryption support" + ) endif(BUILD_CORE) @@ -324,6 +366,7 @@ else(USE_QT5) ) endif(BUILD_GUI) + if (BUILD_CORE) find_package(QCA2 QUIET) @@ -366,31 +409,72 @@ if (NOT WIN32) endif() -# Various checks +# Additional compile settings ##################################################################### -if (NOT ZLIB_FOUND) - message(STATUS "zlib NOT found, using bundled miniz for compression") - if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) - message(STATUS "WARNING: This may be slow on 32 bit systems!") - endif() +# This sets -fPIC and friends if required by the installed Qt5 library +if (USE_QT5 AND Qt5_POSITION_INDEPENDENT_CODE) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) +endif() + +# Needed to compile with mingw without kde +if (MINGW AND NOT KDE4_FOUND) + add_definitions(-D_WIN32_WINNT=0x0500) + message(STATUS "Added _WIN32_WINNT=0x0500 definition for MinGW") + # workaround for bug in mingw gcc 4.0 + add_definitions(-U__STRICT_ANSI__) endif() +# Sanitize compiler flags - old versions of KDE set -ansi, which breaks -std=c++11 +if (CMAKE_COMPILER_IS_GNUCXX) + string(REPLACE "-ansi" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +endif() + + +# Setup KDE / KDE Frameworks +##################################################################### + +# We want to do this up here, so we have the necessary variables and defines set before +# compiling anything + if (KDE4_FOUND) - # We always use external icons for KDE4 support, since we use its iconloader rather than our own + # We always use external icons for KDE4 support, since we use its iconloader rather than Qt's set(EMBED_DATA OFF) # Better have the compile flags global, even for the core, to avoid problems with linking the mono client - add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) + add_definitions(-DHAVE_KDE -DHAVE_KDE4 ${KDE4_DEFINITIONS}) + set(WITH_KDE4 TRUE) +endif() + +if (USE_QT5 AND WITH_KDE) + # If KDE Frameworks are present, they're most probably providing Qt5 integration including icon loading + set(EMBED_DATA OFF) + + include(KDEInstallDirs) + include(KDECompilerSettings) + include(KDECMakeSettings) + + add_definitions(-DHAVE_KDE -DHAVE_KF5) + set(WITH_KF5 TRUE) +endif() + +# This needs to come after setting up KDE integration, so we can use KDE-specific paths +include(QuasselInstallDirs) + +# Various config-dependent checks and settings +##################################################################### + +if (NOT ZLIB_FOUND) + message(STATUS "zlib NOT found, using bundled miniz for compression") + if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) + message(STATUS "WARNING: This may be slow on 32 bit systems!") + endif() endif() # Check for SSL support in Qt # As there's no easy way to get Qt's configuration in particular for Qt5, let's just compile # a small test program checking the defines. This works for both Qt4 and Qt5. cmake_push_check_state(RESET) -if (Qt5_POSITION_INDEPENDENT_CODE) - set(CMAKE_POSITION_INDEPENDENT_CODE ON) -endif() set(CMAKE_REQUIRED_INCLUDES ${QT_INCLUDES} ${Qt5Core_INCLUDE_DIRS}) check_cxx_source_compiles(" #include \"qglobal.h\" @@ -414,96 +498,77 @@ endif() add_feature_info("Qt Linguist Tools" QT_LCONVERT_EXECUTABLE "Translation support for Quassel") -# Various settings -################## +if (EMBED_DATA) + message(STATUS "Embedding data files into the binary") +else() + message(STATUS "Installing data files separately") +endif() + +if (INDICATEQT_FOUND) + add_definitions(-DXDG_APPS_INSTALL_DIR=${CMAKE_INSTALL_APPDIR}) +endif() -# needed to compile with mingw without kde -if (MINGW AND NOT KDE4_FOUND) - add_definitions(-D_WIN32_WINNT=0x0500) - message(STATUS "Added _WIN32_WINNT=0x0500 definition for MinGW") -# workaround for bug in mingw gcc 4.0 - add_definitions(-U__STRICT_ANSI__) +if (NOT WIN32) + check_function_exists(umask HAVE_UMASK) + if(HAVE_UMASK) + add_definitions(-DHAVE_UMASK) + endif(HAVE_UMASK) endif() -# Now set up install locations; those are set by KDE if integration is enabled -if(NOT KDE4_FOUND) - if(WIN32) - set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CACHE FILEPATH "Install path for binaries") - set(DATA_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/apps CACHE FILEPATH "Install path for data files") - set(ICON_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/icons CACHE FILEPATH "Global icon install path") - set(XDG_APPS_INSTALL_DIR $ENV{APPDATA}/quassel-irc.org/share/applications CACHE FILEPATH "Install path for .desktop files") - else(WIN32) - set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin CACHE FILEPATH "Install path for binaries") - set(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/apps CACHE FILEPATH "Install path for data files") - set(ICON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/icons CACHE FILEPATH "Global icon install path") - set(XDG_APPS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/applications CACHE FILEPATH "Install path for .desktop files") - endif(WIN32) + +# Windows-specific stuff +##################################################################### + +if (WIN32) + link_libraries(imm32 winmm dbghelp Secur32) # missing by default :/ + if (MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DNOMINMAX") + set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt /DEFAULTLIB:msvcrt") + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt") + set(CMAKE_EXE_LINKER_FLAGS_DEBUGFULL "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") + link_libraries(Version dwmapi shlwapi) + if (USE_QT5) + set(QT_QTMAIN_LIBRARY Qt5::WinMain) + endif() + endif() + if(HAVE_SSL AND STATIC) + find_package(OpenSSL REQUIRED) + link_libraries(${OPENSSL_LIBRARIES} ${OPENSSL_EAY_LIBRARIES}) + endif() endif() -if(EMBED_DATA) - message(STATUS "Embedding data files into the binary") -else(EMBED_DATA) - message(STATUS "Installing data files separately") -endif(EMBED_DATA) -# RPATH needs to be set correctly -# Do this down here, since otherwise KDE wants to handle it itself, and fails -set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1) -set(CMAKE_BUILD_WITH_INSTALL_RPATH 1) +# Static builds (very much non-portable, so don't use -DSTATIC +# unless you know what you do!) +##################################################################### -# Set global buildflags -# This is very much non-portable, so don't use -DSTATIC until you know what -# you do. if(STATIC AND CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "-static-libgcc ${CMAKE_CXX_FLAGS}") - link_directories(${CMAKE_BINARY_DIR}/staticlibs) # override dynamic libs - if(HAVE_SSL) - set(QUASSEL_SSL_LIBRARIES ssl crypto) # these miss in static builds - endif(HAVE_SSL) -endif(STATIC AND CMAKE_COMPILER_IS_GNUCXX) - -if(WIN32) - link_libraries(imm32 winmm dbghelp Secur32) # missing by default :/ - if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DNOMINMAX") - set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBUGINFO "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt /DEFAULTLIB:msvcrt") - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:YES /NODEFAULTLIB:libcmt") - set(CMAKE_EXE_LINKER_FLAGS_DEBUGFULL "${CMAKE_EXE_LINKER_FLAGS_DEBUG}") - link_libraries(Version dwmapi shlwapi) - if(USE_QT5) - set(QT_QTMAIN_LIBRARY Qt5::WinMain) - endif(USE_QT5) - endif(MSVC) - if(HAVE_SSL AND STATIC) - find_package(OpenSSL REQUIRED) - link_libraries(${OPENSSL_LIBRARIES} ${OPENSSL_EAY_LIBRARIES}) - endif(HAVE_SSL AND STATIC) -endif(WIN32) - -if(INDICATEQT_FOUND) - add_definitions(-DXDG_APPS_INSTALL_DIR=${XDG_APPS_INSTALL_DIR}) + set(CMAKE_CXX_FLAGS "-static-libgcc ${CMAKE_CXX_FLAGS}") + link_directories(${CMAKE_BINARY_DIR}/staticlibs) # override dynamic libs + if (HAVE_SSL) + set(QUASSEL_SSL_LIBRARIES ssl crypto) # these miss in static builds + endif() endif() -if(NOT WIN32) - check_function_exists(umask HAVE_UMASK) - if(HAVE_UMASK) - add_definitions(-DHAVE_UMASK) - endif(HAVE_UMASK) -endif(NOT WIN32) # Generate version information from Git +##################################################################### + include(GetGitRevisionDescription) get_git_head_revision(GIT_REFSPEC GIT_HEAD) git_describe(GIT_DESCRIBE --long) # Sanitize things if we're not in a Git repo -if(NOT GIT_HEAD OR NOT GIT_DESCRIBE) +if (NOT GIT_HEAD OR NOT GIT_DESCRIBE) set(GIT_HEAD "") set(GIT_DESCRIBE "") endif() configure_file(version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY) +# Prepare the build +##################################################################### + # These variables will be added to the main targets (CORE, QTCLIENT, MONO) set(COMMON_DEPS ${RC_WIN32}) set(CORE_DEPS ) @@ -515,6 +580,7 @@ add_subdirectory(icons) add_subdirectory(pics) add_subdirectory(po) + # Set up and display feature summary ##################################################################### @@ -525,7 +591,7 @@ feature_summary(WHAT ALL # Finally, compile the sources # We want this after displaying the feature summary to avoid ugly -# CMake backtraces in case a required Qt5 modules misses +# CMake backtraces in case a required Qt5 module is missing ##################################################################### add_subdirectory(src) diff --git a/cmake/FindQCA2-QT5.cmake b/cmake/FindQCA2-QT5.cmake new file mode 100644 index 00000000..0d28590a --- /dev/null +++ b/cmake/FindQCA2-QT5.cmake @@ -0,0 +1,48 @@ +# - Try to find QCA2 (Qt Cryptography Architecture 2) for QT5 +# Once done this will define +# +# QCA2-QT5_FOUND - system has QCA2-QT5 +# QCA2-QT5_INCLUDE_DIR - the QCA2-QT5 include directory +# QCA2-QT5_LIBRARIES - the libraries needed to use QCA2-QT5 +# QCA2-QT5_DEFINITIONS - Compiler switches required for using QCA2-QT5 +# +# use pkg-config to get the directories and then use these values +# in the FIND_PATH() and FIND_LIBRARY() calls + +# Copyright (c) 2006, Michael Larouche, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +include(FindLibraryWithDebug) + +if (QCA2-QT5_INCLUDE_DIR AND QCA2-QT5_LIBRARIES) + + # in cache already + set(QCA2-QT5_FOUND TRUE) + +else (QCA2-QT5_INCLUDE_DIR AND QCA2-QT5_LIBRARIES) + + + if (NOT WIN32) + find_package(PkgConfig) + pkg_check_modules(PC_QCA2-QT5 QUIET qca2-qt5) + set(QCA2-QT5_DEFINITIONS ${PC_QCA2-QT5_CFLAGS_OTHER}) + endif (NOT WIN32) + + find_library_with_debug(QCA2-QT5_LIBRARIES + WIN32_DEBUG_POSTFIX d + NAMES qca-qt5 + HINTS ${PC_QCA2-QT5_LIBDIR} ${PC_QCA2-QT5_LIBRARY_DIRS} + ) + + find_path(QCA2-QT5_INCLUDE_DIR QtCrypto + HINTS ${PC_QCA2-QT5_INCLUDEDIR} ${PC_QCA2-QT5_INCLUDE_DIRS} + PATH_SUFFIXES QtCrypto) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(QCA2-QT5 DEFAULT_MSG QCA2-QT5_LIBRARIES QCA2-QT5_INCLUDE_DIR) + + mark_as_advanced(QCA2-QT5_INCLUDE_DIR QCA2-QT5_LIBRARIES) + +endif (QCA2-QT5_INCLUDE_DIR AND QCA2-QT5_LIBRARIES) diff --git a/cmake/QuasselInstallDirs.cmake b/cmake/QuasselInstallDirs.cmake new file mode 100644 index 00000000..9075a808 --- /dev/null +++ b/cmake/QuasselInstallDirs.cmake @@ -0,0 +1,65 @@ +# This file sets up install locations for Quassel +# +# (C) 2015 by the Quassel Project +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +# Setup install locations +##################################################################### + +# We support the CMake standard variables (CMAKE_INSTALL__DIR), +# which can be overridden on the command line. If KDE integration is enabled, +# we make use of its settings. + +if (NOT WITH_KDE) + if (WIN32) + # On Windows, we have to guess good paths + # We must check if the variables are already defined on the command line + if (NOT DEFINED CMAKE_INSTALL_BINDIR) + set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Install path for binaries") + endif() + if (NOT DEFINED CMAKE_INSTALL_DATADIR) + set(CMAKE_INSTALL_DATADIR "$ENV{APPDATA}/quassel-irc.org/share/apps" CACHE PATH "Install path for data files") + endif() + if (NOT DEFINED CMAKE_INSTALL_ICONDIR) + set(CMAKE_INSTALL_ICONDIR "$ENV{APPDATA}/quassel-irc.org/share/icons" CACHE PATH "Install path for icons") + endif() + if (NOT DEFINED CMAKE_INSTALL_APPDIR) + set(CMAKE_INSTALL_APPDIR "$ENV{APPDATA}/quassel-irc.org/share/applications" CACHE PATH "Install path for .desktop files") + endif() + else() + # This sets the standard variables; however it doesn't know about icons and apps + include(GNUInstallDirs) + + # Special treatment for paths relative to DATAROOTDIR, as found in GNUInstallDirs + if (NOT CMAKE_INSTALL_ICONDIR) + set(CMAKE_INSTALL_ICONDIR "" CACHE PATH "Install path for icons") + set(CMAKE_INSTALL_ICONDIR "${CMAKE_INSTALL_DATAROOTDIR}/icons") + endif() + if (NOT CMAKE_INSTALL_APPDIR) + set(CMAKE_INSTALL_APPDIR "" CACHE PATH "Install path for .desktop files") + set(CMAKE_INSTALL_APPDIR "${CMAKE_INSTALL_DATAROOTDIR}/applications") + endif() + endif() +else() + if (WITH_KDE4) + # FindKDE4Internal.cmake sets its own set of variables, however with deprecated names + if (NOT DEFINED CMAKE_INSTALL_BINDIR) + set(CMAKE_INSTALL_BINDIR "${BIN_INSTALL_DIR}" CACHE PATH "Install path for binaries") + endif() + if (NOT DEFINED CMAKE_INSTALL_DATADIR) + set(CMAKE_INSTALL_DATADIR "${DATA_INSTALL_DIR}" CACHE PATH "Install path for data files") + endif() + if (NOT DEFINED CMAKE_INSTALL_ICONDIR) + set(CMAKE_INSTALL_ICONDIR "${ICON_INSTALL_DIR}" CACHE PATH "Install path for icons") + endif() + if (NOT DEFINED CMAKE_INSTALL_APPDIR) + set(CMAKE_INSTALL_APPDIR "${XDG_APPS_INSTALL_DIR}" CACHE PATH "Install path for .desktop files") + endif() + endif() + + # KF5 does the correct thing, so we don't need to do anything + # We have already included KDEInstallDirs at this point. +endif() diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index e9f4a066..04b322b3 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,26 +1,26 @@ if (BUILD_GUI) if (KDE4_FOUND OR (UNIX AND NOT APPLE)) if (WANT_QTCLIENT) - install(FILES quasselclient.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) + install(FILES quasselclient.desktop DESTINATION ${CMAKE_INSTALL_APPDIR}) endif() if (WANT_MONO) - install(FILES quassel.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) + install(FILES quassel.desktop DESTINATION ${CMAKE_INSTALL_APPDIR}) endif() if (KDE4_FOUND) - install(FILES quassel.notifyrc DESTINATION ${DATA_INSTALL_DIR}/quassel) + install(FILES quassel.notifyrc DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel) endif() endif() if (EMBED_DATA) set(CLIENT_RCS ${CLIENT_RCS} ${CMAKE_CURRENT_SOURCE_DIR}/data.qrc PARENT_SCOPE) else() - install(FILES networks.ini DESTINATION ${DATA_INSTALL_DIR}/quassel) - install(DIRECTORY stylesheets DESTINATION ${DATA_INSTALL_DIR}/quassel) + install(FILES networks.ini DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel) + install(DIRECTORY stylesheets DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel) endif() if (NOT WIN32) - install(DIRECTORY scripts DESTINATION ${DATA_INSTALL_DIR}/quassel USE_SOURCE_PERMISSIONS) + install(DIRECTORY scripts DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel USE_SOURCE_PERMISSIONS) endif() endif() diff --git a/data/quassel.desktop b/data/quassel.desktop index 158b9b94..a067eb60 100644 --- a/data/quassel.desktop +++ b/data/quassel.desktop @@ -73,3 +73,4 @@ Icon=quassel TryExec=quassel Exec=quassel Categories=Qt;Network;Chat;IRCClient; +X-DBUS-ServiceName=org.quassel-irc.quassel diff --git a/data/quasselclient.desktop b/data/quasselclient.desktop index c11cffe9..5be24cec 100644 --- a/data/quasselclient.desktop +++ b/data/quasselclient.desktop @@ -72,3 +72,4 @@ Icon=quassel TryExec=quasselclient Exec=quasselclient Categories=Qt;Network;Chat;IRCClient; +X-DBUS-ServiceName=org.quassel-irc.quasselclient diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt index b9cc9a03..1a253537 100644 --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -1,56 +1,42 @@ # Install icons -# We put them in DATA_INSTALL_DIR rather than ICON_INSTALL_DIR, to avoid -# polluting the global namespace and to allow overriding +# +# We put the bundled oxygen icon theme in DATADIR rather than ICONDIR, +# in order to avoid conflicts. As we add this directory to XDG_DATA_DIRS at runtime, +# the bundled theme will be found by Qt only if there is no oxygen theme installed +# in system directories. +# +# The hicolor folder contains icons vital for the Quassel UI (such as in the channel and nick +# lists). It is installed into the system icon directory (in order to allow overriding) and +# additionally always embedded as a fallback resource. + +if (WANT_MONO OR WANT_QTCLIENT) + set(ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/hicolor.qrc) # always embed those + + if (EMBED_DATA) + if (WITH_OXYGEN) + message(STATUS "Embedding bundled Oxygen icons") + set(ICON_RCS ${ICON_RCS} ${CMAKE_CURRENT_SOURCE_DIR}/oxygen.qrc) + endif() + else() + install(DIRECTORY hicolor DESTINATION ${CMAKE_INSTALL_ICONDIR}) + if (WITH_OXYGEN) + message(STATUS "Installing bundled Oxygen icons") + install(DIRECTORY oxygen DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/icons) + endif() + endif() + + if (NOT WITH_OXYGEN) + message(STATUS "Not installing bundled Oxygen icons") + endif() -if(WANT_MONO OR WANT_QTCLIENT) - - # Figure out if we want to install KDE's icons - # Starting with KDE 4.3, they shouldn't be needed anymore - set(INSTALL_OXY true) - string(TOUPPER ${WITH_OXYGEN} OXY_UPPER) - if(NOT OXY_UPPER) - set(INSTALL_OXY false) - elseif(OXY_UPPER MATCHES "AUTO") - if(HAVE_KDE) - if(KDE_VERSION VERSION_GREATER 4.2.99) - set(INSTALL_OXY false) - endif(KDE_VERSION VERSION_GREATER 4.2.99) - endif(HAVE_KDE) - endif(NOT OXY_UPPER) - - if(INSTALL_OXY) - message(STATUS "Installing Oxygen icons") - else(INSTALL_OXY) - message(STATUS "Not installing Oxygen icons") - endif(INSTALL_OXY) - - if(EMBED_DATA) - set(ICON_RCS ${CMAKE_CURRENT_SOURCE_DIR}/hicolor.qrc ${CMAKE_CURRENT_SOURCE_DIR}/oxygen.qrc) - if(INSTALL_OXY) - set(ICON_RCS ${ICON_RCS} ${CMAKE_CURRENT_SOURCE_DIR}/oxygen_kde.qrc) - endif(INSTALL_OXY) set(CLIENT_RCS ${CLIENT_RCS} ${ICON_RCS} PARENT_SCOPE) - else(EMBED_DATA) - install(DIRECTORY hicolor DESTINATION ${ICON_INSTALL_DIR}) - install(DIRECTORY oxygen DESTINATION ${DATA_INSTALL_DIR}/quassel/icons) - if(INSTALL_OXY) - install(DIRECTORY oxygen_kde/ DESTINATION ${DATA_INSTALL_DIR}/quassel/icons/oxygen) - endif(INSTALL_OXY) - endif(EMBED_DATA) -endif(WANT_MONO OR WANT_QTCLIENT) +endif() # Application icon -# cmake-2.6.2 can't handle nested conditions -# if((UNIX AND NOT APPLE) OR HAVE_KDE) -if(HAVE_KDE OR UNIX) - if(HAVE_KDE OR NOT APPLE) - - install(FILES oxygen_kde/48x48/apps/quassel.png DESTINATION ${ICON_INSTALL_DIR}/hicolor/48x48/apps) - if(CMAKE_INSTALL_PREFIX STREQUAL "/usr") - install(FILES oxygen_kde/48x48/apps/quassel.png DESTINATION /usr/share/pixmaps) - endif(CMAKE_INSTALL_PREFIX STREQUAL "/usr") - -# endif((UNIX AND NOT APPLE) OR HAVE_KDE) - endif(HAVE_KDE OR NOT APPLE) -endif(HAVE_KDE OR UNIX) +if (HAVE_KDE OR (UNIX AND NOT APPLE)) + install(FILES hicolor/48x48/apps/quassel.png DESTINATION ${CMAKE_INSTALL_ICONDIR}/hicolor/48x48/apps) + if (CMAKE_INSTALL_PREFIX STREQUAL "/usr") + install(FILES hicolor/48x48/apps/quassel.png DESTINATION /usr/share/pixmaps) + endif() +endif() diff --git a/icons/README.Oxygen b/icons/README.Oxygen index fe160b5d..43c87096 100644 --- a/icons/README.Oxygen +++ b/icons/README.Oxygen @@ -1,15 +1,15 @@ -The icons found in oxygen and oxygen_kde are a stripped version of the Oxygen +The icons found in the oxygen directory are a stripped version of the Oxygen icon theme, part of KDE4, as found in KDE's svn. We have removed the parts of the theme we don't use in order to conserve space in our own repository and to make downloads smaller. The icons found here have been imported from: -svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase/runtime/pics/oxygen -Revision: 1017094 +svn://anonsvn.kde.org/home/kde/trunk/kdesupport/oxygen-icons +Revision: 1394510 We, the authors of Quassel IRC, do solely distribute this icon set (or parts thereof), we are not involved in creating/editing/maintaining it. Please see -the appropriate files, in particular AUTHORS and COPYING, in this directory. +the appropriate files, in particular AUTHORS and COPYING, in the oxygen directory. All icon files in this directory were copied verbatim and not modified by us. We would like to thank the Oxygen team for creating such terrific artwork, diff --git a/icons/hicolor.qrc b/icons/hicolor.qrc index cd5b9e89..2ad00b13 100644 --- a/icons/hicolor.qrc +++ b/icons/hicolor.qrc @@ -3,19 +3,24 @@ hicolor/16x16/apps/quassel.png hicolor/22x22/apps/quassel.png hicolor/32x32/apps/quassel.png - hicolor/48x48/apps/quassel.png - hicolor/64x64/apps/quassel.png - hicolor/128x128/apps/quassel.png + hicolor/48x48/apps/quassel.png + hicolor/64x64/apps/quassel.png + hicolor/128x128/apps/quassel.png hicolor/16x16/status/quassel-message.png hicolor/22x22/status/quassel-message.png hicolor/32x32/status/quassel-message.png - hicolor/48x48/status/quassel-message.png + hicolor/48x48/status/quassel-message.png hicolor/64x64/status/quassel-message.png hicolor/16x16/status/quassel-inactive.png hicolor/22x22/status/quassel-inactive.png hicolor/32x32/status/quassel-inactive.png - hicolor/48x48/status/quassel-inactive.png - hicolor/64x64/status/quassel-inactive.png - hicolor/128x128/status/quassel-inactive.png + hicolor/48x48/status/quassel-inactive.png + hicolor/64x64/status/quassel-inactive.png + hicolor/128x128/status/quassel-inactive.png + hicolor/16x16/status/irc-channel-joined.png + hicolor/16x16/status/irc-channel-parted.png + hicolor/16x16/actions/im-user.png + hicolor/16x16/actions/im-user-away.png + hicolor/16x16/actions/im-user-offline.png diff --git a/icons/oxygen_kde/16x16/actions/im-user-away.png b/icons/hicolor/16x16/actions/im-user-away.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/im-user-away.png rename to icons/hicolor/16x16/actions/im-user-away.png diff --git a/icons/oxygen_kde/16x16/actions/im-user-offline.png b/icons/hicolor/16x16/actions/im-user-offline.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/im-user-offline.png rename to icons/hicolor/16x16/actions/im-user-offline.png diff --git a/icons/oxygen_kde/16x16/actions/im-user.png b/icons/hicolor/16x16/actions/im-user.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/im-user.png rename to icons/hicolor/16x16/actions/im-user.png diff --git a/icons/oxygen/16x16/status/irc-channel-active.png b/icons/hicolor/16x16/status/irc-channel-joined.png similarity index 100% rename from icons/oxygen/16x16/status/irc-channel-active.png rename to icons/hicolor/16x16/status/irc-channel-joined.png diff --git a/icons/oxygen/16x16/status/irc-channel-inactive.png b/icons/hicolor/16x16/status/irc-channel-parted.png similarity index 100% rename from icons/oxygen/16x16/status/irc-channel-inactive.png rename to icons/hicolor/16x16/status/irc-channel-parted.png diff --git a/icons/oxygen/scalable/status/irc-channel-active.svgz b/icons/hicolor/scalable/status/irc-channel-joined.svgz similarity index 100% rename from icons/oxygen/scalable/status/irc-channel-active.svgz rename to icons/hicolor/scalable/status/irc-channel-joined.svgz diff --git a/icons/oxygen/scalable/status/irc-channel-inactive.svgz b/icons/hicolor/scalable/status/irc-channel-parted.svgz similarity index 100% rename from icons/oxygen/scalable/status/irc-channel-inactive.svgz rename to icons/hicolor/scalable/status/irc-channel-parted.svgz diff --git a/icons/import/blacklisted-icons b/icons/import/blacklisted-icons index d72687fc..43939180 100644 --- a/icons/import/blacklisted-icons +++ b/icons/import/blacklisted-icons @@ -1,4 +1,4 @@ quassel-inactive quassel-message -irc-channel-active -irc-channel-inactive +irc-channel-joined +irc-channel-parted diff --git a/icons/import/extra-icons b/icons/import/extra-icons index 5e3956de..40fce8f3 100644 --- a/icons/import/extra-icons +++ b/icons/import/extra-icons @@ -1 +1 @@ -quassel 16 22 32 48 64 128 +quassel diff --git a/icons/import/import_oxygen.pl b/icons/import/import_oxygen.pl index 9efc2606..c6132d01 100755 --- a/icons/import/import_oxygen.pl +++ b/icons/import/import_oxygen.pl @@ -20,56 +20,41 @@ use File::Find; my $oxygen = shift; my $source = "../src"; -my $quassel_icons = "oxygen"; -my $output = "oxygen_kde"; -my $qrcfile_quassel = "oxygen.qrc"; -my $qrcfile_kde = "oxygen_kde.qrc"; +my $output = "oxygen"; +my $qrcfile_kde = "oxygen.qrc"; my $extrafile = "import/extra-icons"; my $blacklistfile = "import/blacklisted-icons"; -my %sizes = ( - Desktop => 48, - Bar => 22, - MainBar => 22, - Small => 16, - Panel => 32, - Dialog => 22 -); - my %req_icons; +my %found_icons; my %blacklist; my %extra; # First, load the icon blacklist -# Format: icon-name 16 22 32 open BLACKLIST, "<$blacklistfile" or die "Could not open $blacklistfile\n"; while() { s/#.*//; - next unless my ($name, $sizes) = /([-\w]+)\s+(\d+(?:\s+\d+)*)?/; - $blacklist{$name} = $sizes; + next unless my ($name) = /([-\w]+)\s*/; + $blacklist{$name} = 1; } close BLACKLIST; # We now grep the source for things like SmallIcon("fubar") and generate size and name from that print "Grepping $source for requested icons...\n"; -my @results = `grep -r Icon\\(\\" $source`; +my @results = `grep -r QIcon::fromTheme\\(\\" $source`; foreach(@results) { - next unless my ($type, $name) = /\W+(\s|Desktop|Bar|MainBar|Small|Panel|Dialog)Icon\("([-\w]+)/; - $type = "Desktop" if $type =~ /\s+/; - my $size = $sizes{$type}; - $req_icons{$size}{$name} = 1 - unless exists $blacklist{$name} and ($blacklist{$name} == undef or $blacklist{$name} =~ /$size/); + next unless my ($name) = /\W+QIcon::fromTheme\(\"([-\w]+)/; + $req_icons{$name} = 1 + unless exists $blacklist{$name}; } # Add extra icons open EXTRA, "<$extrafile" or die "Could not open $extrafile\n"; while() { s/#.*//; - next unless my ($name, $sizes) = /([-\w]+)\s+(\d+(?:\s+\d+)*)/; - foreach(split /\s+/, $sizes) { - $req_icons{$_}{$name} = 1; - } + next unless my ($name) = /([-\w]+)\s*/; + $req_icons{$name} = 1; } close EXTRA; @@ -81,45 +66,52 @@ system("rm -rf $output"); my %scalables; print "Copying icons from $oxygen...\n"; -foreach my $size (keys %req_icons) { - my $sizestr = $size.'x'.$size; - opendir (BASEDIR, "$oxygen/$sizestr") or die "Could not open dir for size $size\n"; - foreach my $cat (readdir BASEDIR) { +opendir (BASEDIR, "$oxygen") or die "Could not open oxygen basedir\n"; +foreach my $sizestr (readdir BASEDIR) { + next unless $sizestr =~ /\d+x\d+/; + opendir (SIZEDIR, "$oxygen/$sizestr") or die "Could not open dir $sizestr\n"; + foreach my $cat (readdir SIZEDIR) { next if $cat eq '.' or $cat eq '..'; - system "mkdir -p $output/$sizestr/$cat" and die "Could not create category dir\n"; + #system "mkdir -p $output/$sizestr/$cat" and die "Could not create category dir\n"; system "mkdir -p $output/scalable/$cat" and die "Could not create category dir\n"; opendir (CATDIR, "$oxygen/$sizestr/$cat") or die "Could not open category dir\n"; foreach my $icon (readdir CATDIR) { $icon =~ s/\.png$//; - next unless exists $req_icons{$size}{$icon}; - $scalables{"$cat/$icon"} = 1; + next unless exists $req_icons{$icon}; + $scalables{$cat}{$icon} = 1; + system "mkdir -p $output/$sizestr/$cat" and die "Could not create category dir\n"; system "cp -a $oxygen/$sizestr/$cat/$icon.png $output/$sizestr/$cat" and die "Error while copying file $sizestr/$cat/$icon.png\n"; - # print "Copy: $oxygen/$sizestr/$cat/$icon.png\n"; - delete $req_icons{$size}{$icon}; + #print "Copy: $oxygen/$sizestr/$cat/$icon.png\n"; + $found_icons{$icon} = 1; } closedir CATDIR; } - closedir BASEDIR; + closedir SIZEDIR; } +closedir BASEDIR; # Copy scalables -foreach my $scalable (keys %scalables) { - system "cp -a $oxygen/scalable/$scalable.svgz $output/scalable/$scalable.svgz"; +foreach my $cat (keys %scalables) { + system "mkdir -p $output/scalable/$cat" and die "Could not create category dir\n"; + foreach my $scalable (keys %scalables{$cat}) { + system "cp -a $oxygen/scalable/$cat/$scalable.svgz $output/scalable/$cat/$scalable.svgz"; + } } # Warn if we have still icons left -foreach my $size (keys %req_icons) { - foreach my $missing (keys %{ $req_icons{$size} }) { - print "Warning: Missing icon $missing (size $size)\n"; - } +foreach my $icon (keys %req_icons) { + next if defined $found_icons{$icon}; + print "Warning: Missing icon $icon\n"; } # Generate .qrc my @file_list; -generate_qrc($quassel_icons, $qrcfile_quassel); generate_qrc($output, $qrcfile_kde); +# Copy license etc. +system "cp $oxygen/AUTHORS $oxygen/CONTRIBUTING $oxygen/COPYING $oxygen/index.theme $output/"; + print "Done.\n"; ######################################################################################## @@ -144,8 +136,6 @@ sub generate_qrc { sub push_icon_path { return unless /\.png$/; - my $alias = $File::Find::name; - $alias =~ s,^[^/]*(.*),$1,; - push @file_list, " $File::Find::name"; + push @file_list, " $File::Find::name"; } diff --git a/icons/oxygen.qrc b/icons/oxygen.qrc index b0261dab..3b019426 100644 --- a/icons/oxygen.qrc +++ b/icons/oxygen.qrc @@ -1,6 +1,290 @@ - oxygen/16x16/status/irc-channel-inactive.png - oxygen/16x16/status/irc-channel-active.png + oxygen/22x22/actions/irc-voice.png + oxygen/22x22/actions/go-next.png + oxygen/22x22/actions/im-user.png + oxygen/22x22/actions/im-ban-kick-user.png + oxygen/22x22/actions/application-exit.png + oxygen/22x22/actions/go-previous.png + oxygen/22x22/actions/list-remove-user.png + oxygen/22x22/actions/dialog-close.png + oxygen/22x22/actions/irc-close-channel.png + oxygen/22x22/actions/mail-message-new.png + oxygen/22x22/actions/media-playback-start.png + oxygen/22x22/actions/document-edit.png + oxygen/22x22/actions/show-menu.png + oxygen/22x22/actions/go-next-view.png + oxygen/22x22/actions/document-open.png + oxygen/22x22/actions/dialog-cancel.png + oxygen/22x22/actions/edit-delete.png + oxygen/22x22/actions/edit-clear-locationbar-ltr.png + oxygen/22x22/actions/edit-copy.png + oxygen/22x22/actions/list-add-user.png + oxygen/22x22/actions/network-disconnect.png + oxygen/22x22/actions/network-connect.png + oxygen/22x22/actions/irc-remove-operator.png + oxygen/22x22/actions/view-refresh.png + oxygen/22x22/actions/format-text-color.png + oxygen/22x22/actions/irc-unvoice.png + oxygen/22x22/actions/im-kick-user.png + oxygen/22x22/actions/irc-operator.png + oxygen/22x22/actions/configure-shortcuts.png + oxygen/22x22/actions/format-list-unordered.png + oxygen/22x22/actions/irc-join-channel.png + oxygen/22x22/actions/format-fill-color.png + oxygen/22x22/actions/help-about.png + oxygen/22x22/actions/list-add.png + oxygen/22x22/actions/format-text-italic.png + oxygen/22x22/actions/go-up.png + oxygen/22x22/actions/zoom-in.png + oxygen/22x22/actions/edit-clear-locationbar-rtl.png + oxygen/22x22/actions/tools-report-bug.png + oxygen/22x22/actions/im-user-offline.png + oxygen/22x22/actions/view-fullscreen.png + oxygen/22x22/actions/format-text-bold.png + oxygen/22x22/actions/zoom-out.png + oxygen/22x22/actions/flag-blue.png + oxygen/22x22/actions/document-encrypt.png + oxygen/22x22/actions/go-down.png + oxygen/22x22/actions/zoom-original.png + oxygen/22x22/actions/edit-rename.png + oxygen/22x22/actions/im-user-away.png + oxygen/22x22/actions/configure.png + oxygen/22x22/actions/format-text-underline.png + oxygen/22x22/actions/edit-find.png + oxygen/22x22/actions/im-ban-user.png + oxygen/22x22/actions/go-previous-view.png + oxygen/22x22/devices/network-wired.png + oxygen/22x22/apps/quassel.png + oxygen/22x22/status/dialog-information.png + oxygen/22x22/status/security-low.png + oxygen/22x22/status/user-away.png + oxygen/22x22/status/security-high.png + oxygen/32x32/actions/go-next-view.png + oxygen/32x32/actions/go-up.png + oxygen/32x32/actions/list-add.png + oxygen/32x32/actions/format-fill-color.png + oxygen/32x32/actions/go-next.png + oxygen/32x32/actions/im-user.png + oxygen/32x32/actions/go-previous-view.png + oxygen/32x32/actions/edit-copy.png + oxygen/32x32/actions/view-refresh.png + oxygen/32x32/actions/network-connect.png + oxygen/32x32/actions/zoom-out.png + oxygen/32x32/actions/im-ban-kick-user.png + oxygen/32x32/actions/application-exit.png + oxygen/32x32/actions/network-disconnect.png + oxygen/32x32/actions/list-remove-user.png + oxygen/32x32/actions/im-kick-user.png + oxygen/32x32/actions/irc-operator.png + oxygen/32x32/actions/edit-rename.png + oxygen/32x32/actions/edit-clear-locationbar-rtl.png + oxygen/32x32/actions/mail-message-new.png + oxygen/32x32/actions/document-edit.png + oxygen/32x32/actions/im-ban-user.png + oxygen/32x32/actions/document-open.png + oxygen/32x32/actions/format-list-unordered.png + oxygen/32x32/actions/dialog-cancel.png + oxygen/32x32/actions/format-text-italic.png + oxygen/32x32/actions/list-add-user.png + oxygen/32x32/actions/go-previous.png + oxygen/32x32/actions/flag-blue.png + oxygen/32x32/actions/irc-remove-operator.png + oxygen/32x32/actions/im-user-offline.png + oxygen/32x32/actions/view-fullscreen.png + oxygen/32x32/actions/configure.png + oxygen/32x32/actions/irc-close-channel.png + oxygen/32x32/actions/im-user-away.png + oxygen/32x32/actions/edit-find.png + oxygen/32x32/actions/media-playback-start.png + oxygen/32x32/actions/help-about.png + oxygen/32x32/actions/configure-shortcuts.png + oxygen/32x32/actions/irc-join-channel.png + oxygen/32x32/actions/zoom-in.png + oxygen/32x32/actions/edit-delete.png + oxygen/32x32/actions/irc-voice.png + oxygen/32x32/actions/format-text-underline.png + oxygen/32x32/actions/go-down.png + oxygen/32x32/actions/irc-unvoice.png + oxygen/32x32/actions/tools-report-bug.png + oxygen/32x32/actions/dialog-close.png + oxygen/32x32/actions/format-text-color.png + oxygen/32x32/actions/edit-clear-locationbar-ltr.png + oxygen/32x32/actions/zoom-original.png + oxygen/32x32/actions/format-text-bold.png + oxygen/32x32/actions/document-encrypt.png + oxygen/32x32/actions/show-menu.png + oxygen/32x32/devices/network-wired.png + oxygen/32x32/apps/quassel.png + oxygen/32x32/status/user-away.png + oxygen/32x32/status/dialog-information.png + oxygen/32x32/status/security-high.png + oxygen/32x32/status/security-low.png + oxygen/16x16/actions/edit-delete.png + oxygen/16x16/actions/im-user-offline.png + oxygen/16x16/actions/view-fullscreen.png + oxygen/16x16/actions/im-user.png + oxygen/16x16/actions/go-next.png + oxygen/16x16/actions/show-menu.png + oxygen/16x16/actions/list-add.png + oxygen/16x16/actions/edit-clear-locationbar-ltr.png + oxygen/16x16/actions/irc-unvoice.png + oxygen/16x16/actions/format-text-italic.png + oxygen/16x16/actions/dialog-close.png + oxygen/16x16/actions/edit-copy.png + oxygen/16x16/actions/irc-close-channel.png + oxygen/16x16/actions/zoom-out.png + oxygen/16x16/actions/irc-join-channel.png + oxygen/16x16/actions/format-list-unordered.png + oxygen/16x16/actions/zoom-original.png + oxygen/16x16/actions/go-next-view.png + oxygen/16x16/actions/irc-remove-operator.png + oxygen/16x16/actions/tools-report-bug.png + oxygen/16x16/actions/configure-shortcuts.png + oxygen/16x16/actions/edit-clear-locationbar-rtl.png + oxygen/16x16/actions/view-refresh.png + oxygen/16x16/actions/format-text-bold.png + oxygen/16x16/actions/media-playback-start.png + oxygen/16x16/actions/document-encrypt.png + oxygen/16x16/actions/format-text-color.png + oxygen/16x16/actions/edit-rename.png + oxygen/16x16/actions/im-kick-user.png + oxygen/16x16/actions/irc-operator.png + oxygen/16x16/actions/im-ban-user.png + oxygen/16x16/actions/go-previous-view.png + oxygen/16x16/actions/format-text-underline.png + oxygen/16x16/actions/flag-blue.png + oxygen/16x16/actions/network-connect.png + oxygen/16x16/actions/format-fill-color.png + oxygen/16x16/actions/document-edit.png + oxygen/16x16/actions/zoom-in.png + oxygen/16x16/actions/go-previous.png + oxygen/16x16/actions/configure.png + oxygen/16x16/actions/im-ban-kick-user.png + oxygen/16x16/actions/application-exit.png + oxygen/16x16/actions/document-open.png + oxygen/16x16/actions/list-remove-user.png + oxygen/16x16/actions/edit-find.png + oxygen/16x16/actions/dialog-cancel.png + oxygen/16x16/actions/go-down.png + oxygen/16x16/actions/list-add-user.png + oxygen/16x16/actions/mail-message-new.png + oxygen/16x16/actions/help-about.png + oxygen/16x16/actions/network-disconnect.png + oxygen/16x16/actions/irc-voice.png + oxygen/16x16/actions/go-up.png + oxygen/16x16/actions/im-user-away.png + oxygen/16x16/devices/network-wired.png + oxygen/16x16/apps/quassel.png + oxygen/16x16/status/security-low.png + oxygen/16x16/status/user-away.png + oxygen/16x16/status/security-high.png + oxygen/16x16/status/dialog-information.png + oxygen/64x64/actions/list-add-user.png + oxygen/64x64/actions/im-user-away.png + oxygen/64x64/actions/configure.png + oxygen/64x64/actions/im-user-offline.png + oxygen/64x64/actions/go-next.png + oxygen/64x64/actions/im-user.png + oxygen/64x64/actions/go-up.png + oxygen/64x64/actions/im-ban-kick-user.png + oxygen/64x64/actions/edit-find.png + oxygen/64x64/actions/application-exit.png + oxygen/64x64/actions/go-down.png + oxygen/64x64/actions/go-previous.png + oxygen/64x64/actions/im-ban-user.png + oxygen/64x64/actions/im-kick-user.png + oxygen/64x64/actions/document-edit.png + oxygen/64x64/actions/tools-report-bug.png + oxygen/64x64/devices/network-wired.png + oxygen/64x64/apps/quassel.png + oxygen/64x64/status/security-high.png + oxygen/64x64/status/security-low.png + oxygen/64x64/status/user-away.png + oxygen/64x64/status/dialog-information.png + oxygen/128x128/actions/mail-message-new.png + oxygen/128x128/actions/im-ban-kick-user.png + oxygen/128x128/actions/document-edit.png + oxygen/128x128/actions/im-user-offline.png + oxygen/128x128/actions/application-exit.png + oxygen/128x128/actions/im-user.png + oxygen/128x128/actions/go-next.png + oxygen/128x128/actions/im-kick-user.png + oxygen/128x128/actions/go-down.png + oxygen/128x128/actions/list-add-user.png + oxygen/128x128/actions/im-ban-user.png + oxygen/128x128/actions/go-previous.png + oxygen/128x128/actions/configure.png + oxygen/128x128/actions/tools-report-bug.png + oxygen/128x128/actions/im-user-away.png + oxygen/128x128/actions/go-up.png + oxygen/128x128/actions/edit-find.png + oxygen/128x128/devices/network-wired.png + oxygen/128x128/apps/quassel.png + oxygen/128x128/status/security-high.png + oxygen/128x128/status/security-low.png + oxygen/128x128/status/dialog-information.png + oxygen/48x48/actions/document-open.png + oxygen/48x48/actions/configure-shortcuts.png + oxygen/48x48/actions/go-next.png + oxygen/48x48/actions/im-user.png + oxygen/48x48/actions/flag-blue.png + oxygen/48x48/actions/dialog-cancel.png + oxygen/48x48/actions/list-add-user.png + oxygen/48x48/actions/configure.png + oxygen/48x48/actions/edit-find.png + oxygen/48x48/actions/irc-join-channel.png + oxygen/48x48/actions/edit-clear-locationbar-ltr.png + oxygen/48x48/actions/dialog-close.png + oxygen/48x48/actions/network-disconnect.png + oxygen/48x48/actions/list-add.png + oxygen/48x48/actions/irc-voice.png + oxygen/48x48/actions/format-list-unordered.png + oxygen/48x48/actions/media-playback-start.png + oxygen/48x48/actions/tools-report-bug.png + oxygen/48x48/actions/go-next-view.png + oxygen/48x48/actions/edit-rename.png + oxygen/48x48/actions/network-connect.png + oxygen/48x48/actions/irc-close-channel.png + oxygen/48x48/actions/go-up.png + oxygen/48x48/actions/format-text-bold.png + oxygen/48x48/actions/zoom-out.png + oxygen/48x48/actions/document-encrypt.png + oxygen/48x48/actions/im-ban-user.png + oxygen/48x48/actions/show-menu.png + oxygen/48x48/actions/help-about.png + oxygen/48x48/actions/view-refresh.png + oxygen/48x48/actions/format-text-italic.png + oxygen/48x48/actions/go-previous.png + oxygen/48x48/actions/zoom-original.png + oxygen/48x48/actions/go-previous-view.png + oxygen/48x48/actions/im-kick-user.png + oxygen/48x48/actions/edit-clear-locationbar-rtl.png + oxygen/48x48/actions/irc-operator.png + oxygen/48x48/actions/edit-copy.png + oxygen/48x48/actions/format-text-color.png + oxygen/48x48/actions/zoom-in.png + oxygen/48x48/actions/format-text-underline.png + oxygen/48x48/actions/im-ban-kick-user.png + oxygen/48x48/actions/application-exit.png + oxygen/48x48/actions/list-remove-user.png + oxygen/48x48/actions/im-user-offline.png + oxygen/48x48/actions/view-fullscreen.png + oxygen/48x48/actions/mail-message-new.png + oxygen/48x48/actions/go-down.png + oxygen/48x48/actions/edit-delete.png + oxygen/48x48/actions/format-fill-color.png + oxygen/48x48/actions/irc-remove-operator.png + oxygen/48x48/actions/irc-unvoice.png + oxygen/48x48/actions/document-edit.png + oxygen/48x48/actions/im-user-away.png + oxygen/48x48/devices/network-wired.png + oxygen/48x48/apps/quassel.png + oxygen/48x48/status/user-away.png + oxygen/48x48/status/dialog-information.png + oxygen/48x48/status/security-high.png + oxygen/48x48/status/security-low.png + oxygen/256x256/devices/network-wired.png + oxygen/256x256/apps/quassel.png diff --git a/icons/oxygen/128x128/actions/application-exit.png b/icons/oxygen/128x128/actions/application-exit.png new file mode 100644 index 00000000..32be6b3f Binary files /dev/null and b/icons/oxygen/128x128/actions/application-exit.png differ diff --git a/icons/oxygen/128x128/actions/configure.png b/icons/oxygen/128x128/actions/configure.png new file mode 100644 index 00000000..ecbb741d Binary files /dev/null and b/icons/oxygen/128x128/actions/configure.png differ diff --git a/icons/oxygen/128x128/actions/document-edit.png b/icons/oxygen/128x128/actions/document-edit.png new file mode 100644 index 00000000..76ff8ece Binary files /dev/null and b/icons/oxygen/128x128/actions/document-edit.png differ diff --git a/icons/oxygen/128x128/actions/edit-find.png b/icons/oxygen/128x128/actions/edit-find.png new file mode 100644 index 00000000..91238202 Binary files /dev/null and b/icons/oxygen/128x128/actions/edit-find.png differ diff --git a/icons/oxygen/128x128/actions/go-down.png b/icons/oxygen/128x128/actions/go-down.png new file mode 100644 index 00000000..262deb23 Binary files /dev/null and b/icons/oxygen/128x128/actions/go-down.png differ diff --git a/icons/oxygen/128x128/actions/go-next.png b/icons/oxygen/128x128/actions/go-next.png new file mode 100644 index 00000000..3e0c4247 Binary files /dev/null and b/icons/oxygen/128x128/actions/go-next.png differ diff --git a/icons/oxygen/128x128/actions/go-previous.png b/icons/oxygen/128x128/actions/go-previous.png new file mode 100644 index 00000000..88db1dc2 Binary files /dev/null and b/icons/oxygen/128x128/actions/go-previous.png differ diff --git a/icons/oxygen/128x128/actions/go-up.png b/icons/oxygen/128x128/actions/go-up.png new file mode 100644 index 00000000..02007f20 Binary files /dev/null and b/icons/oxygen/128x128/actions/go-up.png differ diff --git a/icons/oxygen/128x128/actions/im-ban-kick-user.png b/icons/oxygen/128x128/actions/im-ban-kick-user.png new file mode 100644 index 00000000..d6523fff Binary files /dev/null and b/icons/oxygen/128x128/actions/im-ban-kick-user.png differ diff --git a/icons/oxygen/128x128/actions/im-ban-user.png b/icons/oxygen/128x128/actions/im-ban-user.png new file mode 100644 index 00000000..3a8033f5 Binary files /dev/null and b/icons/oxygen/128x128/actions/im-ban-user.png differ diff --git a/icons/oxygen/128x128/actions/im-kick-user.png b/icons/oxygen/128x128/actions/im-kick-user.png new file mode 100644 index 00000000..4aa1fff9 Binary files /dev/null and b/icons/oxygen/128x128/actions/im-kick-user.png differ diff --git a/icons/oxygen/128x128/actions/im-user-away.png b/icons/oxygen/128x128/actions/im-user-away.png new file mode 100644 index 00000000..680ad12c Binary files /dev/null and b/icons/oxygen/128x128/actions/im-user-away.png differ diff --git a/icons/oxygen/128x128/actions/im-user-offline.png b/icons/oxygen/128x128/actions/im-user-offline.png new file mode 100644 index 00000000..9d9c0e5e Binary files /dev/null and b/icons/oxygen/128x128/actions/im-user-offline.png differ diff --git a/icons/oxygen/128x128/actions/im-user.png b/icons/oxygen/128x128/actions/im-user.png new file mode 100644 index 00000000..33095708 Binary files /dev/null and b/icons/oxygen/128x128/actions/im-user.png differ diff --git a/icons/oxygen/128x128/actions/list-add-user.png b/icons/oxygen/128x128/actions/list-add-user.png new file mode 100644 index 00000000..5d29c0f8 Binary files /dev/null and b/icons/oxygen/128x128/actions/list-add-user.png differ diff --git a/icons/oxygen/128x128/actions/mail-message-new.png b/icons/oxygen/128x128/actions/mail-message-new.png new file mode 100644 index 00000000..2f170fb2 Binary files /dev/null and b/icons/oxygen/128x128/actions/mail-message-new.png differ diff --git a/icons/oxygen/128x128/actions/tools-report-bug.png b/icons/oxygen/128x128/actions/tools-report-bug.png new file mode 100644 index 00000000..051e7389 Binary files /dev/null and b/icons/oxygen/128x128/actions/tools-report-bug.png differ diff --git a/icons/oxygen_kde/128x128/apps/quassel.png b/icons/oxygen/128x128/apps/quassel.png similarity index 100% rename from icons/oxygen_kde/128x128/apps/quassel.png rename to icons/oxygen/128x128/apps/quassel.png diff --git a/icons/oxygen/128x128/devices/network-wired.png b/icons/oxygen/128x128/devices/network-wired.png new file mode 100644 index 00000000..cbcf1b62 Binary files /dev/null and b/icons/oxygen/128x128/devices/network-wired.png differ diff --git a/icons/oxygen/128x128/status/dialog-information.png b/icons/oxygen/128x128/status/dialog-information.png new file mode 100644 index 00000000..fe7dd00e Binary files /dev/null and b/icons/oxygen/128x128/status/dialog-information.png differ diff --git a/icons/oxygen/128x128/status/security-high.png b/icons/oxygen/128x128/status/security-high.png new file mode 100644 index 00000000..34ac983a Binary files /dev/null and b/icons/oxygen/128x128/status/security-high.png differ diff --git a/icons/oxygen/128x128/status/security-low.png b/icons/oxygen/128x128/status/security-low.png new file mode 100644 index 00000000..7ba8312d Binary files /dev/null and b/icons/oxygen/128x128/status/security-low.png differ diff --git a/icons/oxygen_kde/16x16/actions/application-exit.png b/icons/oxygen/16x16/actions/application-exit.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/application-exit.png rename to icons/oxygen/16x16/actions/application-exit.png diff --git a/icons/oxygen_kde/16x16/actions/configure-shortcuts.png b/icons/oxygen/16x16/actions/configure-shortcuts.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/configure-shortcuts.png rename to icons/oxygen/16x16/actions/configure-shortcuts.png diff --git a/icons/oxygen_kde/16x16/actions/configure.png b/icons/oxygen/16x16/actions/configure.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/configure.png rename to icons/oxygen/16x16/actions/configure.png diff --git a/icons/oxygen_kde/16x16/actions/dialog-cancel.png b/icons/oxygen/16x16/actions/dialog-cancel.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/dialog-cancel.png rename to icons/oxygen/16x16/actions/dialog-cancel.png diff --git a/icons/oxygen/16x16/actions/dialog-close.png b/icons/oxygen/16x16/actions/dialog-close.png new file mode 100644 index 00000000..2c2f99eb Binary files /dev/null and b/icons/oxygen/16x16/actions/dialog-close.png differ diff --git a/icons/oxygen_kde/16x16/actions/document-edit.png b/icons/oxygen/16x16/actions/document-edit.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/document-edit.png rename to icons/oxygen/16x16/actions/document-edit.png diff --git a/icons/oxygen_kde/16x16/actions/document-encrypt.png b/icons/oxygen/16x16/actions/document-encrypt.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/document-encrypt.png rename to icons/oxygen/16x16/actions/document-encrypt.png diff --git a/icons/oxygen_kde/16x16/actions/document-open.png b/icons/oxygen/16x16/actions/document-open.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/document-open.png rename to icons/oxygen/16x16/actions/document-open.png diff --git a/icons/oxygen_kde/16x16/actions/edit-clear-locationbar-ltr.png b/icons/oxygen/16x16/actions/edit-clear-locationbar-ltr.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/edit-clear-locationbar-ltr.png rename to icons/oxygen/16x16/actions/edit-clear-locationbar-ltr.png diff --git a/icons/oxygen_kde/16x16/actions/edit-clear-locationbar-rtl.png b/icons/oxygen/16x16/actions/edit-clear-locationbar-rtl.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/edit-clear-locationbar-rtl.png rename to icons/oxygen/16x16/actions/edit-clear-locationbar-rtl.png diff --git a/icons/oxygen_kde/16x16/actions/edit-copy.png b/icons/oxygen/16x16/actions/edit-copy.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/edit-copy.png rename to icons/oxygen/16x16/actions/edit-copy.png diff --git a/icons/oxygen_kde/16x16/actions/edit-delete.png b/icons/oxygen/16x16/actions/edit-delete.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/edit-delete.png rename to icons/oxygen/16x16/actions/edit-delete.png diff --git a/icons/oxygen_kde/16x16/actions/edit-find.png b/icons/oxygen/16x16/actions/edit-find.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/edit-find.png rename to icons/oxygen/16x16/actions/edit-find.png diff --git a/icons/oxygen_kde/16x16/actions/edit-rename.png b/icons/oxygen/16x16/actions/edit-rename.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/edit-rename.png rename to icons/oxygen/16x16/actions/edit-rename.png diff --git a/icons/oxygen_kde/16x16/actions/flag-blue.png b/icons/oxygen/16x16/actions/flag-blue.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/flag-blue.png rename to icons/oxygen/16x16/actions/flag-blue.png diff --git a/icons/oxygen_kde/16x16/actions/format-fill-color.png b/icons/oxygen/16x16/actions/format-fill-color.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/format-fill-color.png rename to icons/oxygen/16x16/actions/format-fill-color.png diff --git a/icons/oxygen/16x16/actions/format-list-unordered.png b/icons/oxygen/16x16/actions/format-list-unordered.png new file mode 100644 index 00000000..076bf18a Binary files /dev/null and b/icons/oxygen/16x16/actions/format-list-unordered.png differ diff --git a/icons/oxygen_kde/16x16/actions/format-text-bold.png b/icons/oxygen/16x16/actions/format-text-bold.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/format-text-bold.png rename to icons/oxygen/16x16/actions/format-text-bold.png diff --git a/icons/oxygen_kde/16x16/actions/format-text-color.png b/icons/oxygen/16x16/actions/format-text-color.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/format-text-color.png rename to icons/oxygen/16x16/actions/format-text-color.png diff --git a/icons/oxygen_kde/16x16/actions/format-text-italic.png b/icons/oxygen/16x16/actions/format-text-italic.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/format-text-italic.png rename to icons/oxygen/16x16/actions/format-text-italic.png diff --git a/icons/oxygen_kde/16x16/actions/format-text-underline.png b/icons/oxygen/16x16/actions/format-text-underline.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/format-text-underline.png rename to icons/oxygen/16x16/actions/format-text-underline.png diff --git a/icons/oxygen_kde/16x16/actions/go-down.png b/icons/oxygen/16x16/actions/go-down.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/go-down.png rename to icons/oxygen/16x16/actions/go-down.png diff --git a/icons/oxygen_kde/16x16/actions/go-next-view.png b/icons/oxygen/16x16/actions/go-next-view.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/go-next-view.png rename to icons/oxygen/16x16/actions/go-next-view.png diff --git a/icons/oxygen_kde/16x16/actions/go-next.png b/icons/oxygen/16x16/actions/go-next.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/go-next.png rename to icons/oxygen/16x16/actions/go-next.png diff --git a/icons/oxygen_kde/16x16/actions/go-previous-view.png b/icons/oxygen/16x16/actions/go-previous-view.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/go-previous-view.png rename to icons/oxygen/16x16/actions/go-previous-view.png diff --git a/icons/oxygen_kde/16x16/actions/go-previous.png b/icons/oxygen/16x16/actions/go-previous.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/go-previous.png rename to icons/oxygen/16x16/actions/go-previous.png diff --git a/icons/oxygen_kde/16x16/actions/go-up.png b/icons/oxygen/16x16/actions/go-up.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/go-up.png rename to icons/oxygen/16x16/actions/go-up.png diff --git a/icons/oxygen_kde/16x16/actions/help-about.png b/icons/oxygen/16x16/actions/help-about.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/help-about.png rename to icons/oxygen/16x16/actions/help-about.png diff --git a/icons/oxygen_kde/16x16/actions/im-ban-kick-user.png b/icons/oxygen/16x16/actions/im-ban-kick-user.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/im-ban-kick-user.png rename to icons/oxygen/16x16/actions/im-ban-kick-user.png diff --git a/icons/oxygen_kde/16x16/actions/im-ban-user.png b/icons/oxygen/16x16/actions/im-ban-user.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/im-ban-user.png rename to icons/oxygen/16x16/actions/im-ban-user.png diff --git a/icons/oxygen_kde/16x16/actions/im-kick-user.png b/icons/oxygen/16x16/actions/im-kick-user.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/im-kick-user.png rename to icons/oxygen/16x16/actions/im-kick-user.png diff --git a/icons/oxygen/16x16/actions/im-user-away.png b/icons/oxygen/16x16/actions/im-user-away.png new file mode 100644 index 00000000..38c61ac6 Binary files /dev/null and b/icons/oxygen/16x16/actions/im-user-away.png differ diff --git a/icons/oxygen/16x16/actions/im-user-offline.png b/icons/oxygen/16x16/actions/im-user-offline.png new file mode 100644 index 00000000..ea10ab33 Binary files /dev/null and b/icons/oxygen/16x16/actions/im-user-offline.png differ diff --git a/icons/oxygen/16x16/actions/im-user.png b/icons/oxygen/16x16/actions/im-user.png new file mode 100644 index 00000000..1d3adc25 Binary files /dev/null and b/icons/oxygen/16x16/actions/im-user.png differ diff --git a/icons/oxygen_kde/16x16/actions/irc-close-channel.png b/icons/oxygen/16x16/actions/irc-close-channel.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/irc-close-channel.png rename to icons/oxygen/16x16/actions/irc-close-channel.png diff --git a/icons/oxygen_kde/16x16/actions/irc-join-channel.png b/icons/oxygen/16x16/actions/irc-join-channel.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/irc-join-channel.png rename to icons/oxygen/16x16/actions/irc-join-channel.png diff --git a/icons/oxygen_kde/16x16/actions/irc-operator.png b/icons/oxygen/16x16/actions/irc-operator.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/irc-operator.png rename to icons/oxygen/16x16/actions/irc-operator.png diff --git a/icons/oxygen_kde/16x16/actions/irc-remove-operator.png b/icons/oxygen/16x16/actions/irc-remove-operator.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/irc-remove-operator.png rename to icons/oxygen/16x16/actions/irc-remove-operator.png diff --git a/icons/oxygen_kde/16x16/actions/irc-unvoice.png b/icons/oxygen/16x16/actions/irc-unvoice.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/irc-unvoice.png rename to icons/oxygen/16x16/actions/irc-unvoice.png diff --git a/icons/oxygen_kde/16x16/actions/irc-voice.png b/icons/oxygen/16x16/actions/irc-voice.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/irc-voice.png rename to icons/oxygen/16x16/actions/irc-voice.png diff --git a/icons/oxygen/16x16/actions/list-add-user.png b/icons/oxygen/16x16/actions/list-add-user.png new file mode 100644 index 00000000..b413be26 Binary files /dev/null and b/icons/oxygen/16x16/actions/list-add-user.png differ diff --git a/icons/oxygen_kde/16x16/actions/list-add.png b/icons/oxygen/16x16/actions/list-add.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/list-add.png rename to icons/oxygen/16x16/actions/list-add.png diff --git a/icons/oxygen/16x16/actions/list-remove-user.png b/icons/oxygen/16x16/actions/list-remove-user.png new file mode 100644 index 00000000..6ac1d684 Binary files /dev/null and b/icons/oxygen/16x16/actions/list-remove-user.png differ diff --git a/icons/oxygen_kde/16x16/actions/mail-message-new.png b/icons/oxygen/16x16/actions/mail-message-new.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/mail-message-new.png rename to icons/oxygen/16x16/actions/mail-message-new.png diff --git a/icons/oxygen_kde/16x16/actions/media-playback-start.png b/icons/oxygen/16x16/actions/media-playback-start.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/media-playback-start.png rename to icons/oxygen/16x16/actions/media-playback-start.png diff --git a/icons/oxygen_kde/16x16/actions/network-connect.png b/icons/oxygen/16x16/actions/network-connect.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/network-connect.png rename to icons/oxygen/16x16/actions/network-connect.png diff --git a/icons/oxygen_kde/16x16/actions/network-disconnect.png b/icons/oxygen/16x16/actions/network-disconnect.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/network-disconnect.png rename to icons/oxygen/16x16/actions/network-disconnect.png diff --git a/icons/oxygen_kde/16x16/actions/show-menu.png b/icons/oxygen/16x16/actions/show-menu.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/show-menu.png rename to icons/oxygen/16x16/actions/show-menu.png diff --git a/icons/oxygen_kde/16x16/actions/tools-report-bug.png b/icons/oxygen/16x16/actions/tools-report-bug.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/tools-report-bug.png rename to icons/oxygen/16x16/actions/tools-report-bug.png diff --git a/icons/oxygen_kde/16x16/actions/view-fullscreen.png b/icons/oxygen/16x16/actions/view-fullscreen.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/view-fullscreen.png rename to icons/oxygen/16x16/actions/view-fullscreen.png diff --git a/icons/oxygen_kde/16x16/actions/view-refresh.png b/icons/oxygen/16x16/actions/view-refresh.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/view-refresh.png rename to icons/oxygen/16x16/actions/view-refresh.png diff --git a/icons/oxygen_kde/16x16/actions/zoom-in.png b/icons/oxygen/16x16/actions/zoom-in.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/zoom-in.png rename to icons/oxygen/16x16/actions/zoom-in.png diff --git a/icons/oxygen_kde/16x16/actions/zoom-original.png b/icons/oxygen/16x16/actions/zoom-original.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/zoom-original.png rename to icons/oxygen/16x16/actions/zoom-original.png diff --git a/icons/oxygen_kde/16x16/actions/zoom-out.png b/icons/oxygen/16x16/actions/zoom-out.png similarity index 100% rename from icons/oxygen_kde/16x16/actions/zoom-out.png rename to icons/oxygen/16x16/actions/zoom-out.png diff --git a/icons/oxygen_kde/16x16/apps/quassel.png b/icons/oxygen/16x16/apps/quassel.png similarity index 100% rename from icons/oxygen_kde/16x16/apps/quassel.png rename to icons/oxygen/16x16/apps/quassel.png diff --git a/icons/oxygen_kde/16x16/devices/network-wired.png b/icons/oxygen/16x16/devices/network-wired.png similarity index 100% rename from icons/oxygen_kde/16x16/devices/network-wired.png rename to icons/oxygen/16x16/devices/network-wired.png diff --git a/icons/oxygen_kde/16x16/status/dialog-information.png b/icons/oxygen/16x16/status/dialog-information.png similarity index 100% rename from icons/oxygen_kde/16x16/status/dialog-information.png rename to icons/oxygen/16x16/status/dialog-information.png diff --git a/icons/oxygen_kde/16x16/status/security-high.png b/icons/oxygen/16x16/status/security-high.png similarity index 100% rename from icons/oxygen_kde/16x16/status/security-high.png rename to icons/oxygen/16x16/status/security-high.png diff --git a/icons/oxygen_kde/16x16/status/security-low.png b/icons/oxygen/16x16/status/security-low.png similarity index 100% rename from icons/oxygen_kde/16x16/status/security-low.png rename to icons/oxygen/16x16/status/security-low.png diff --git a/icons/oxygen_kde/16x16/status/user-away.png b/icons/oxygen/16x16/status/user-away.png similarity index 100% rename from icons/oxygen_kde/16x16/status/user-away.png rename to icons/oxygen/16x16/status/user-away.png diff --git a/icons/oxygen/22x22/actions/application-exit.png b/icons/oxygen/22x22/actions/application-exit.png new file mode 100644 index 00000000..ed5f8b25 Binary files /dev/null and b/icons/oxygen/22x22/actions/application-exit.png differ diff --git a/icons/oxygen/22x22/actions/configure-shortcuts.png b/icons/oxygen/22x22/actions/configure-shortcuts.png new file mode 100644 index 00000000..391ba80c Binary files /dev/null and b/icons/oxygen/22x22/actions/configure-shortcuts.png differ diff --git a/icons/oxygen/22x22/actions/configure.png b/icons/oxygen/22x22/actions/configure.png new file mode 100644 index 00000000..45b8fae8 Binary files /dev/null and b/icons/oxygen/22x22/actions/configure.png differ diff --git a/icons/oxygen/22x22/actions/dialog-cancel.png b/icons/oxygen/22x22/actions/dialog-cancel.png new file mode 100644 index 00000000..c1adfc00 Binary files /dev/null and b/icons/oxygen/22x22/actions/dialog-cancel.png differ diff --git a/icons/oxygen_kde/22x22/actions/dialog-close.png b/icons/oxygen/22x22/actions/dialog-close.png similarity index 100% rename from icons/oxygen_kde/22x22/actions/dialog-close.png rename to icons/oxygen/22x22/actions/dialog-close.png diff --git a/icons/oxygen/22x22/actions/document-edit.png b/icons/oxygen/22x22/actions/document-edit.png new file mode 100644 index 00000000..3d8f3a31 Binary files /dev/null and b/icons/oxygen/22x22/actions/document-edit.png differ diff --git a/icons/oxygen/22x22/actions/document-encrypt.png b/icons/oxygen/22x22/actions/document-encrypt.png new file mode 100644 index 00000000..0f2c9b7b Binary files /dev/null and b/icons/oxygen/22x22/actions/document-encrypt.png differ diff --git a/icons/oxygen/22x22/actions/document-open.png b/icons/oxygen/22x22/actions/document-open.png new file mode 100644 index 00000000..317a3577 Binary files /dev/null and b/icons/oxygen/22x22/actions/document-open.png differ diff --git a/icons/oxygen/22x22/actions/edit-clear-locationbar-ltr.png b/icons/oxygen/22x22/actions/edit-clear-locationbar-ltr.png new file mode 100644 index 00000000..8d902d57 Binary files /dev/null and b/icons/oxygen/22x22/actions/edit-clear-locationbar-ltr.png differ diff --git a/icons/oxygen_kde/22x22/actions/edit-clear-locationbar-rtl.png b/icons/oxygen/22x22/actions/edit-clear-locationbar-rtl.png similarity index 100% rename from icons/oxygen_kde/22x22/actions/edit-clear-locationbar-rtl.png rename to icons/oxygen/22x22/actions/edit-clear-locationbar-rtl.png diff --git a/icons/oxygen/22x22/actions/edit-copy.png b/icons/oxygen/22x22/actions/edit-copy.png new file mode 100644 index 00000000..d34cdcd3 Binary files /dev/null and b/icons/oxygen/22x22/actions/edit-copy.png differ diff --git a/icons/oxygen/22x22/actions/edit-delete.png b/icons/oxygen/22x22/actions/edit-delete.png new file mode 100644 index 00000000..b0de61d2 Binary files /dev/null and b/icons/oxygen/22x22/actions/edit-delete.png differ diff --git a/icons/oxygen/22x22/actions/edit-find.png b/icons/oxygen/22x22/actions/edit-find.png new file mode 100644 index 00000000..1b7a2528 Binary files /dev/null and b/icons/oxygen/22x22/actions/edit-find.png differ diff --git a/icons/oxygen_kde/22x22/actions/edit-rename.png b/icons/oxygen/22x22/actions/edit-rename.png similarity index 100% rename from icons/oxygen_kde/22x22/actions/edit-rename.png rename to icons/oxygen/22x22/actions/edit-rename.png diff --git a/icons/oxygen/22x22/actions/flag-blue.png b/icons/oxygen/22x22/actions/flag-blue.png new file mode 100644 index 00000000..b37b97a0 Binary files /dev/null and b/icons/oxygen/22x22/actions/flag-blue.png differ diff --git a/icons/oxygen/22x22/actions/format-fill-color.png b/icons/oxygen/22x22/actions/format-fill-color.png new file mode 100644 index 00000000..e31f00e9 Binary files /dev/null and b/icons/oxygen/22x22/actions/format-fill-color.png differ diff --git a/icons/oxygen/22x22/actions/format-list-unordered.png b/icons/oxygen/22x22/actions/format-list-unordered.png new file mode 100644 index 00000000..d60c0f60 Binary files /dev/null and b/icons/oxygen/22x22/actions/format-list-unordered.png differ diff --git a/icons/oxygen/22x22/actions/format-text-bold.png b/icons/oxygen/22x22/actions/format-text-bold.png new file mode 100644 index 00000000..a5535e33 Binary files /dev/null and b/icons/oxygen/22x22/actions/format-text-bold.png differ diff --git a/icons/oxygen/22x22/actions/format-text-color.png b/icons/oxygen/22x22/actions/format-text-color.png new file mode 100644 index 00000000..98f61731 Binary files /dev/null and b/icons/oxygen/22x22/actions/format-text-color.png differ diff --git a/icons/oxygen/22x22/actions/format-text-italic.png b/icons/oxygen/22x22/actions/format-text-italic.png new file mode 100644 index 00000000..a50211f4 Binary files /dev/null and b/icons/oxygen/22x22/actions/format-text-italic.png differ diff --git a/icons/oxygen/22x22/actions/format-text-underline.png b/icons/oxygen/22x22/actions/format-text-underline.png new file mode 100644 index 00000000..e5113950 Binary files /dev/null and b/icons/oxygen/22x22/actions/format-text-underline.png differ diff --git a/icons/oxygen/22x22/actions/go-down.png b/icons/oxygen/22x22/actions/go-down.png new file mode 100644 index 00000000..63331a57 Binary files /dev/null and b/icons/oxygen/22x22/actions/go-down.png differ diff --git a/icons/oxygen/22x22/actions/go-next-view.png b/icons/oxygen/22x22/actions/go-next-view.png new file mode 100644 index 00000000..9eba071c Binary files /dev/null and b/icons/oxygen/22x22/actions/go-next-view.png differ diff --git a/icons/oxygen/22x22/actions/go-next.png b/icons/oxygen/22x22/actions/go-next.png new file mode 100644 index 00000000..aa7cbb91 Binary files /dev/null and b/icons/oxygen/22x22/actions/go-next.png differ diff --git a/icons/oxygen/22x22/actions/go-previous-view.png b/icons/oxygen/22x22/actions/go-previous-view.png new file mode 100644 index 00000000..40219e5d Binary files /dev/null and b/icons/oxygen/22x22/actions/go-previous-view.png differ diff --git a/icons/oxygen/22x22/actions/go-previous.png b/icons/oxygen/22x22/actions/go-previous.png new file mode 100644 index 00000000..8230340b Binary files /dev/null and b/icons/oxygen/22x22/actions/go-previous.png differ diff --git a/icons/oxygen/22x22/actions/go-up.png b/icons/oxygen/22x22/actions/go-up.png new file mode 100644 index 00000000..4459024e Binary files /dev/null and b/icons/oxygen/22x22/actions/go-up.png differ diff --git a/icons/oxygen/22x22/actions/help-about.png b/icons/oxygen/22x22/actions/help-about.png new file mode 100644 index 00000000..a5607bc7 Binary files /dev/null and b/icons/oxygen/22x22/actions/help-about.png differ diff --git a/icons/oxygen/22x22/actions/im-ban-kick-user.png b/icons/oxygen/22x22/actions/im-ban-kick-user.png new file mode 100644 index 00000000..180582c0 Binary files /dev/null and b/icons/oxygen/22x22/actions/im-ban-kick-user.png differ diff --git a/icons/oxygen/22x22/actions/im-ban-user.png b/icons/oxygen/22x22/actions/im-ban-user.png new file mode 100644 index 00000000..37712914 Binary files /dev/null and b/icons/oxygen/22x22/actions/im-ban-user.png differ diff --git a/icons/oxygen/22x22/actions/im-kick-user.png b/icons/oxygen/22x22/actions/im-kick-user.png new file mode 100644 index 00000000..f9f0eec9 Binary files /dev/null and b/icons/oxygen/22x22/actions/im-kick-user.png differ diff --git a/icons/oxygen/22x22/actions/im-user-away.png b/icons/oxygen/22x22/actions/im-user-away.png new file mode 100644 index 00000000..297e40cc Binary files /dev/null and b/icons/oxygen/22x22/actions/im-user-away.png differ diff --git a/icons/oxygen/22x22/actions/im-user-offline.png b/icons/oxygen/22x22/actions/im-user-offline.png new file mode 100644 index 00000000..49ec47cd Binary files /dev/null and b/icons/oxygen/22x22/actions/im-user-offline.png differ diff --git a/icons/oxygen/22x22/actions/im-user.png b/icons/oxygen/22x22/actions/im-user.png new file mode 100644 index 00000000..69de2e48 Binary files /dev/null and b/icons/oxygen/22x22/actions/im-user.png differ diff --git a/icons/oxygen/22x22/actions/irc-close-channel.png b/icons/oxygen/22x22/actions/irc-close-channel.png new file mode 100644 index 00000000..7a62ed21 Binary files /dev/null and b/icons/oxygen/22x22/actions/irc-close-channel.png differ diff --git a/icons/oxygen/22x22/actions/irc-join-channel.png b/icons/oxygen/22x22/actions/irc-join-channel.png new file mode 100644 index 00000000..557e2f10 Binary files /dev/null and b/icons/oxygen/22x22/actions/irc-join-channel.png differ diff --git a/icons/oxygen/22x22/actions/irc-operator.png b/icons/oxygen/22x22/actions/irc-operator.png new file mode 100644 index 00000000..a3707c49 Binary files /dev/null and b/icons/oxygen/22x22/actions/irc-operator.png differ diff --git a/icons/oxygen/22x22/actions/irc-remove-operator.png b/icons/oxygen/22x22/actions/irc-remove-operator.png new file mode 100644 index 00000000..a8ea3644 Binary files /dev/null and b/icons/oxygen/22x22/actions/irc-remove-operator.png differ diff --git a/icons/oxygen/22x22/actions/irc-unvoice.png b/icons/oxygen/22x22/actions/irc-unvoice.png new file mode 100644 index 00000000..abfe3f9d Binary files /dev/null and b/icons/oxygen/22x22/actions/irc-unvoice.png differ diff --git a/icons/oxygen/22x22/actions/irc-voice.png b/icons/oxygen/22x22/actions/irc-voice.png new file mode 100644 index 00000000..5bb2ebe5 Binary files /dev/null and b/icons/oxygen/22x22/actions/irc-voice.png differ diff --git a/icons/oxygen_kde/22x22/actions/list-add-user.png b/icons/oxygen/22x22/actions/list-add-user.png similarity index 100% rename from icons/oxygen_kde/22x22/actions/list-add-user.png rename to icons/oxygen/22x22/actions/list-add-user.png diff --git a/icons/oxygen/22x22/actions/list-add.png b/icons/oxygen/22x22/actions/list-add.png new file mode 100644 index 00000000..e029787c Binary files /dev/null and b/icons/oxygen/22x22/actions/list-add.png differ diff --git a/icons/oxygen_kde/22x22/actions/list-remove-user.png b/icons/oxygen/22x22/actions/list-remove-user.png similarity index 100% rename from icons/oxygen_kde/22x22/actions/list-remove-user.png rename to icons/oxygen/22x22/actions/list-remove-user.png diff --git a/icons/oxygen/22x22/actions/mail-message-new.png b/icons/oxygen/22x22/actions/mail-message-new.png new file mode 100644 index 00000000..543f1c50 Binary files /dev/null and b/icons/oxygen/22x22/actions/mail-message-new.png differ diff --git a/icons/oxygen/22x22/actions/media-playback-start.png b/icons/oxygen/22x22/actions/media-playback-start.png new file mode 100644 index 00000000..2820368e Binary files /dev/null and b/icons/oxygen/22x22/actions/media-playback-start.png differ diff --git a/icons/oxygen/22x22/actions/network-connect.png b/icons/oxygen/22x22/actions/network-connect.png new file mode 100644 index 00000000..b0c52967 Binary files /dev/null and b/icons/oxygen/22x22/actions/network-connect.png differ diff --git a/icons/oxygen/22x22/actions/network-disconnect.png b/icons/oxygen/22x22/actions/network-disconnect.png new file mode 100644 index 00000000..046b6014 Binary files /dev/null and b/icons/oxygen/22x22/actions/network-disconnect.png differ diff --git a/icons/oxygen/22x22/actions/show-menu.png b/icons/oxygen/22x22/actions/show-menu.png new file mode 100644 index 00000000..dca073fa Binary files /dev/null and b/icons/oxygen/22x22/actions/show-menu.png differ diff --git a/icons/oxygen/22x22/actions/tools-report-bug.png b/icons/oxygen/22x22/actions/tools-report-bug.png new file mode 100644 index 00000000..9e2c8e2e Binary files /dev/null and b/icons/oxygen/22x22/actions/tools-report-bug.png differ diff --git a/icons/oxygen/22x22/actions/view-fullscreen.png b/icons/oxygen/22x22/actions/view-fullscreen.png new file mode 100644 index 00000000..ceda8189 Binary files /dev/null and b/icons/oxygen/22x22/actions/view-fullscreen.png differ diff --git a/icons/oxygen/22x22/actions/view-refresh.png b/icons/oxygen/22x22/actions/view-refresh.png new file mode 100644 index 00000000..45b5535c Binary files /dev/null and b/icons/oxygen/22x22/actions/view-refresh.png differ diff --git a/icons/oxygen/22x22/actions/zoom-in.png b/icons/oxygen/22x22/actions/zoom-in.png new file mode 100644 index 00000000..8660d294 Binary files /dev/null and b/icons/oxygen/22x22/actions/zoom-in.png differ diff --git a/icons/oxygen/22x22/actions/zoom-original.png b/icons/oxygen/22x22/actions/zoom-original.png new file mode 100644 index 00000000..4eeacb1e Binary files /dev/null and b/icons/oxygen/22x22/actions/zoom-original.png differ diff --git a/icons/oxygen/22x22/actions/zoom-out.png b/icons/oxygen/22x22/actions/zoom-out.png new file mode 100644 index 00000000..23e2a76a Binary files /dev/null and b/icons/oxygen/22x22/actions/zoom-out.png differ diff --git a/icons/oxygen_kde/22x22/apps/quassel.png b/icons/oxygen/22x22/apps/quassel.png similarity index 100% rename from icons/oxygen_kde/22x22/apps/quassel.png rename to icons/oxygen/22x22/apps/quassel.png diff --git a/icons/oxygen/22x22/devices/network-wired.png b/icons/oxygen/22x22/devices/network-wired.png new file mode 100644 index 00000000..7e22be76 Binary files /dev/null and b/icons/oxygen/22x22/devices/network-wired.png differ diff --git a/icons/oxygen/22x22/status/dialog-information.png b/icons/oxygen/22x22/status/dialog-information.png new file mode 100644 index 00000000..a5607bc7 Binary files /dev/null and b/icons/oxygen/22x22/status/dialog-information.png differ diff --git a/icons/oxygen/22x22/status/security-high.png b/icons/oxygen/22x22/status/security-high.png new file mode 100644 index 00000000..80be8488 Binary files /dev/null and b/icons/oxygen/22x22/status/security-high.png differ diff --git a/icons/oxygen/22x22/status/security-low.png b/icons/oxygen/22x22/status/security-low.png new file mode 100644 index 00000000..daa1c4ac Binary files /dev/null and b/icons/oxygen/22x22/status/security-low.png differ diff --git a/icons/oxygen/22x22/status/user-away.png b/icons/oxygen/22x22/status/user-away.png new file mode 100644 index 00000000..f16d92b0 Binary files /dev/null and b/icons/oxygen/22x22/status/user-away.png differ diff --git a/icons/oxygen/256x256/apps/quassel.png b/icons/oxygen/256x256/apps/quassel.png new file mode 100644 index 00000000..7b0df4e5 Binary files /dev/null and b/icons/oxygen/256x256/apps/quassel.png differ diff --git a/icons/oxygen/256x256/devices/network-wired.png b/icons/oxygen/256x256/devices/network-wired.png new file mode 100644 index 00000000..ec7270f0 Binary files /dev/null and b/icons/oxygen/256x256/devices/network-wired.png differ diff --git a/icons/oxygen/32x32/actions/application-exit.png b/icons/oxygen/32x32/actions/application-exit.png new file mode 100644 index 00000000..dd76354c Binary files /dev/null and b/icons/oxygen/32x32/actions/application-exit.png differ diff --git a/icons/oxygen/32x32/actions/configure-shortcuts.png b/icons/oxygen/32x32/actions/configure-shortcuts.png new file mode 100644 index 00000000..1d8a3407 Binary files /dev/null and b/icons/oxygen/32x32/actions/configure-shortcuts.png differ diff --git a/icons/oxygen/32x32/actions/configure.png b/icons/oxygen/32x32/actions/configure.png new file mode 100644 index 00000000..c774740a Binary files /dev/null and b/icons/oxygen/32x32/actions/configure.png differ diff --git a/icons/oxygen/32x32/actions/dialog-cancel.png b/icons/oxygen/32x32/actions/dialog-cancel.png new file mode 100644 index 00000000..6ce79615 Binary files /dev/null and b/icons/oxygen/32x32/actions/dialog-cancel.png differ diff --git a/icons/oxygen/32x32/actions/dialog-close.png b/icons/oxygen/32x32/actions/dialog-close.png new file mode 100644 index 00000000..b049b688 Binary files /dev/null and b/icons/oxygen/32x32/actions/dialog-close.png differ diff --git a/icons/oxygen/32x32/actions/document-edit.png b/icons/oxygen/32x32/actions/document-edit.png new file mode 100644 index 00000000..c5883acb Binary files /dev/null and b/icons/oxygen/32x32/actions/document-edit.png differ diff --git a/icons/oxygen/32x32/actions/document-encrypt.png b/icons/oxygen/32x32/actions/document-encrypt.png new file mode 100644 index 00000000..353a22ca Binary files /dev/null and b/icons/oxygen/32x32/actions/document-encrypt.png differ diff --git a/icons/oxygen/32x32/actions/document-open.png b/icons/oxygen/32x32/actions/document-open.png new file mode 100644 index 00000000..8ba54411 Binary files /dev/null and b/icons/oxygen/32x32/actions/document-open.png differ diff --git a/icons/oxygen/32x32/actions/edit-clear-locationbar-ltr.png b/icons/oxygen/32x32/actions/edit-clear-locationbar-ltr.png new file mode 100644 index 00000000..023cfb80 Binary files /dev/null and b/icons/oxygen/32x32/actions/edit-clear-locationbar-ltr.png differ diff --git a/icons/oxygen/32x32/actions/edit-clear-locationbar-rtl.png b/icons/oxygen/32x32/actions/edit-clear-locationbar-rtl.png new file mode 100644 index 00000000..32b0666f Binary files /dev/null and b/icons/oxygen/32x32/actions/edit-clear-locationbar-rtl.png differ diff --git a/icons/oxygen/32x32/actions/edit-copy.png b/icons/oxygen/32x32/actions/edit-copy.png new file mode 100644 index 00000000..d4180c69 Binary files /dev/null and b/icons/oxygen/32x32/actions/edit-copy.png differ diff --git a/icons/oxygen/32x32/actions/edit-delete.png b/icons/oxygen/32x32/actions/edit-delete.png new file mode 100644 index 00000000..351659ba Binary files /dev/null and b/icons/oxygen/32x32/actions/edit-delete.png differ diff --git a/icons/oxygen/32x32/actions/edit-find.png b/icons/oxygen/32x32/actions/edit-find.png new file mode 100644 index 00000000..9b3fe6bc Binary files /dev/null and b/icons/oxygen/32x32/actions/edit-find.png differ diff --git a/icons/oxygen/32x32/actions/edit-rename.png b/icons/oxygen/32x32/actions/edit-rename.png new file mode 100644 index 00000000..5f089f58 Binary files /dev/null and b/icons/oxygen/32x32/actions/edit-rename.png differ diff --git a/icons/oxygen/32x32/actions/flag-blue.png b/icons/oxygen/32x32/actions/flag-blue.png new file mode 100644 index 00000000..9373e3d3 Binary files /dev/null and b/icons/oxygen/32x32/actions/flag-blue.png differ diff --git a/icons/oxygen/32x32/actions/format-fill-color.png b/icons/oxygen/32x32/actions/format-fill-color.png new file mode 100644 index 00000000..af5421e3 Binary files /dev/null and b/icons/oxygen/32x32/actions/format-fill-color.png differ diff --git a/icons/oxygen/32x32/actions/format-list-unordered.png b/icons/oxygen/32x32/actions/format-list-unordered.png new file mode 100644 index 00000000..09bca30f Binary files /dev/null and b/icons/oxygen/32x32/actions/format-list-unordered.png differ diff --git a/icons/oxygen/32x32/actions/format-text-bold.png b/icons/oxygen/32x32/actions/format-text-bold.png new file mode 100644 index 00000000..8949f44a Binary files /dev/null and b/icons/oxygen/32x32/actions/format-text-bold.png differ diff --git a/icons/oxygen/32x32/actions/format-text-color.png b/icons/oxygen/32x32/actions/format-text-color.png new file mode 100644 index 00000000..66fee9c8 Binary files /dev/null and b/icons/oxygen/32x32/actions/format-text-color.png differ diff --git a/icons/oxygen/32x32/actions/format-text-italic.png b/icons/oxygen/32x32/actions/format-text-italic.png new file mode 100644 index 00000000..b566b347 Binary files /dev/null and b/icons/oxygen/32x32/actions/format-text-italic.png differ diff --git a/icons/oxygen/32x32/actions/format-text-underline.png b/icons/oxygen/32x32/actions/format-text-underline.png new file mode 100644 index 00000000..7c8bd5b7 Binary files /dev/null and b/icons/oxygen/32x32/actions/format-text-underline.png differ diff --git a/icons/oxygen/32x32/actions/go-down.png b/icons/oxygen/32x32/actions/go-down.png new file mode 100644 index 00000000..b834f25a Binary files /dev/null and b/icons/oxygen/32x32/actions/go-down.png differ diff --git a/icons/oxygen/32x32/actions/go-next-view.png b/icons/oxygen/32x32/actions/go-next-view.png new file mode 100644 index 00000000..3bce02d4 Binary files /dev/null and b/icons/oxygen/32x32/actions/go-next-view.png differ diff --git a/icons/oxygen/32x32/actions/go-next.png b/icons/oxygen/32x32/actions/go-next.png new file mode 100644 index 00000000..c4da8a9a Binary files /dev/null and b/icons/oxygen/32x32/actions/go-next.png differ diff --git a/icons/oxygen/32x32/actions/go-previous-view.png b/icons/oxygen/32x32/actions/go-previous-view.png new file mode 100644 index 00000000..3ec011ef Binary files /dev/null and b/icons/oxygen/32x32/actions/go-previous-view.png differ diff --git a/icons/oxygen/32x32/actions/go-previous.png b/icons/oxygen/32x32/actions/go-previous.png new file mode 100644 index 00000000..68ed8a13 Binary files /dev/null and b/icons/oxygen/32x32/actions/go-previous.png differ diff --git a/icons/oxygen/32x32/actions/go-up.png b/icons/oxygen/32x32/actions/go-up.png new file mode 100644 index 00000000..86d1f71a Binary files /dev/null and b/icons/oxygen/32x32/actions/go-up.png differ diff --git a/icons/oxygen/32x32/actions/help-about.png b/icons/oxygen/32x32/actions/help-about.png new file mode 100644 index 00000000..ee59e170 Binary files /dev/null and b/icons/oxygen/32x32/actions/help-about.png differ diff --git a/icons/oxygen/32x32/actions/im-ban-kick-user.png b/icons/oxygen/32x32/actions/im-ban-kick-user.png new file mode 100644 index 00000000..68ae0813 Binary files /dev/null and b/icons/oxygen/32x32/actions/im-ban-kick-user.png differ diff --git a/icons/oxygen/32x32/actions/im-ban-user.png b/icons/oxygen/32x32/actions/im-ban-user.png new file mode 100644 index 00000000..e795d04d Binary files /dev/null and b/icons/oxygen/32x32/actions/im-ban-user.png differ diff --git a/icons/oxygen/32x32/actions/im-kick-user.png b/icons/oxygen/32x32/actions/im-kick-user.png new file mode 100644 index 00000000..1c8f5197 Binary files /dev/null and b/icons/oxygen/32x32/actions/im-kick-user.png differ diff --git a/icons/oxygen/32x32/actions/im-user-away.png b/icons/oxygen/32x32/actions/im-user-away.png new file mode 100644 index 00000000..c0d7e53b Binary files /dev/null and b/icons/oxygen/32x32/actions/im-user-away.png differ diff --git a/icons/oxygen/32x32/actions/im-user-offline.png b/icons/oxygen/32x32/actions/im-user-offline.png new file mode 100644 index 00000000..cace13e2 Binary files /dev/null and b/icons/oxygen/32x32/actions/im-user-offline.png differ diff --git a/icons/oxygen/32x32/actions/im-user.png b/icons/oxygen/32x32/actions/im-user.png new file mode 100644 index 00000000..02547411 Binary files /dev/null and b/icons/oxygen/32x32/actions/im-user.png differ diff --git a/icons/oxygen/32x32/actions/irc-close-channel.png b/icons/oxygen/32x32/actions/irc-close-channel.png new file mode 100644 index 00000000..9ab9ceee Binary files /dev/null and b/icons/oxygen/32x32/actions/irc-close-channel.png differ diff --git a/icons/oxygen/32x32/actions/irc-join-channel.png b/icons/oxygen/32x32/actions/irc-join-channel.png new file mode 100644 index 00000000..8dab9aae Binary files /dev/null and b/icons/oxygen/32x32/actions/irc-join-channel.png differ diff --git a/icons/oxygen/32x32/actions/irc-operator.png b/icons/oxygen/32x32/actions/irc-operator.png new file mode 100644 index 00000000..604a2790 Binary files /dev/null and b/icons/oxygen/32x32/actions/irc-operator.png differ diff --git a/icons/oxygen/32x32/actions/irc-remove-operator.png b/icons/oxygen/32x32/actions/irc-remove-operator.png new file mode 100644 index 00000000..1fcf97d5 Binary files /dev/null and b/icons/oxygen/32x32/actions/irc-remove-operator.png differ diff --git a/icons/oxygen/32x32/actions/irc-unvoice.png b/icons/oxygen/32x32/actions/irc-unvoice.png new file mode 100644 index 00000000..7a91fd25 Binary files /dev/null and b/icons/oxygen/32x32/actions/irc-unvoice.png differ diff --git a/icons/oxygen/32x32/actions/irc-voice.png b/icons/oxygen/32x32/actions/irc-voice.png new file mode 100644 index 00000000..606fefbf Binary files /dev/null and b/icons/oxygen/32x32/actions/irc-voice.png differ diff --git a/icons/oxygen/32x32/actions/list-add-user.png b/icons/oxygen/32x32/actions/list-add-user.png new file mode 100644 index 00000000..8aa98ec0 Binary files /dev/null and b/icons/oxygen/32x32/actions/list-add-user.png differ diff --git a/icons/oxygen/32x32/actions/list-add.png b/icons/oxygen/32x32/actions/list-add.png new file mode 100644 index 00000000..5724694a Binary files /dev/null and b/icons/oxygen/32x32/actions/list-add.png differ diff --git a/icons/oxygen/32x32/actions/list-remove-user.png b/icons/oxygen/32x32/actions/list-remove-user.png new file mode 100644 index 00000000..cfaa4e2b Binary files /dev/null and b/icons/oxygen/32x32/actions/list-remove-user.png differ diff --git a/icons/oxygen/32x32/actions/mail-message-new.png b/icons/oxygen/32x32/actions/mail-message-new.png new file mode 100644 index 00000000..a8fb51dd Binary files /dev/null and b/icons/oxygen/32x32/actions/mail-message-new.png differ diff --git a/icons/oxygen/32x32/actions/media-playback-start.png b/icons/oxygen/32x32/actions/media-playback-start.png new file mode 100644 index 00000000..71906857 Binary files /dev/null and b/icons/oxygen/32x32/actions/media-playback-start.png differ diff --git a/icons/oxygen/32x32/actions/network-connect.png b/icons/oxygen/32x32/actions/network-connect.png new file mode 100644 index 00000000..4e320205 Binary files /dev/null and b/icons/oxygen/32x32/actions/network-connect.png differ diff --git a/icons/oxygen/32x32/actions/network-disconnect.png b/icons/oxygen/32x32/actions/network-disconnect.png new file mode 100644 index 00000000..623c8e08 Binary files /dev/null and b/icons/oxygen/32x32/actions/network-disconnect.png differ diff --git a/icons/oxygen/32x32/actions/show-menu.png b/icons/oxygen/32x32/actions/show-menu.png new file mode 100644 index 00000000..fa358824 Binary files /dev/null and b/icons/oxygen/32x32/actions/show-menu.png differ diff --git a/icons/oxygen/32x32/actions/tools-report-bug.png b/icons/oxygen/32x32/actions/tools-report-bug.png new file mode 100644 index 00000000..c7ace707 Binary files /dev/null and b/icons/oxygen/32x32/actions/tools-report-bug.png differ diff --git a/icons/oxygen/32x32/actions/view-fullscreen.png b/icons/oxygen/32x32/actions/view-fullscreen.png new file mode 100644 index 00000000..e7758fe2 Binary files /dev/null and b/icons/oxygen/32x32/actions/view-fullscreen.png differ diff --git a/icons/oxygen/32x32/actions/view-refresh.png b/icons/oxygen/32x32/actions/view-refresh.png new file mode 100644 index 00000000..afa2a9d7 Binary files /dev/null and b/icons/oxygen/32x32/actions/view-refresh.png differ diff --git a/icons/oxygen/32x32/actions/zoom-in.png b/icons/oxygen/32x32/actions/zoom-in.png new file mode 100644 index 00000000..d90f8094 Binary files /dev/null and b/icons/oxygen/32x32/actions/zoom-in.png differ diff --git a/icons/oxygen/32x32/actions/zoom-original.png b/icons/oxygen/32x32/actions/zoom-original.png new file mode 100644 index 00000000..c243a32a Binary files /dev/null and b/icons/oxygen/32x32/actions/zoom-original.png differ diff --git a/icons/oxygen/32x32/actions/zoom-out.png b/icons/oxygen/32x32/actions/zoom-out.png new file mode 100644 index 00000000..e3eb0202 Binary files /dev/null and b/icons/oxygen/32x32/actions/zoom-out.png differ diff --git a/icons/oxygen_kde/32x32/apps/quassel.png b/icons/oxygen/32x32/apps/quassel.png similarity index 100% rename from icons/oxygen_kde/32x32/apps/quassel.png rename to icons/oxygen/32x32/apps/quassel.png diff --git a/icons/oxygen/32x32/devices/network-wired.png b/icons/oxygen/32x32/devices/network-wired.png new file mode 100644 index 00000000..2c49e920 Binary files /dev/null and b/icons/oxygen/32x32/devices/network-wired.png differ diff --git a/icons/oxygen/32x32/status/dialog-information.png b/icons/oxygen/32x32/status/dialog-information.png new file mode 100644 index 00000000..ee59e170 Binary files /dev/null and b/icons/oxygen/32x32/status/dialog-information.png differ diff --git a/icons/oxygen/32x32/status/security-high.png b/icons/oxygen/32x32/status/security-high.png new file mode 100644 index 00000000..95e73d93 Binary files /dev/null and b/icons/oxygen/32x32/status/security-high.png differ diff --git a/icons/oxygen/32x32/status/security-low.png b/icons/oxygen/32x32/status/security-low.png new file mode 100644 index 00000000..9ea49534 Binary files /dev/null and b/icons/oxygen/32x32/status/security-low.png differ diff --git a/icons/oxygen/32x32/status/user-away.png b/icons/oxygen/32x32/status/user-away.png new file mode 100644 index 00000000..233b124e Binary files /dev/null and b/icons/oxygen/32x32/status/user-away.png differ diff --git a/icons/oxygen/48x48/actions/application-exit.png b/icons/oxygen/48x48/actions/application-exit.png new file mode 100644 index 00000000..9ae1f1fb Binary files /dev/null and b/icons/oxygen/48x48/actions/application-exit.png differ diff --git a/icons/oxygen/48x48/actions/configure-shortcuts.png b/icons/oxygen/48x48/actions/configure-shortcuts.png new file mode 100644 index 00000000..59ec430a Binary files /dev/null and b/icons/oxygen/48x48/actions/configure-shortcuts.png differ diff --git a/icons/oxygen/48x48/actions/configure.png b/icons/oxygen/48x48/actions/configure.png new file mode 100644 index 00000000..71deb5a6 Binary files /dev/null and b/icons/oxygen/48x48/actions/configure.png differ diff --git a/icons/oxygen/48x48/actions/dialog-cancel.png b/icons/oxygen/48x48/actions/dialog-cancel.png new file mode 100644 index 00000000..fd285bc5 Binary files /dev/null and b/icons/oxygen/48x48/actions/dialog-cancel.png differ diff --git a/icons/oxygen/48x48/actions/dialog-close.png b/icons/oxygen/48x48/actions/dialog-close.png new file mode 100644 index 00000000..8d7f19f2 Binary files /dev/null and b/icons/oxygen/48x48/actions/dialog-close.png differ diff --git a/icons/oxygen/48x48/actions/document-edit.png b/icons/oxygen/48x48/actions/document-edit.png new file mode 100644 index 00000000..e8fe0972 Binary files /dev/null and b/icons/oxygen/48x48/actions/document-edit.png differ diff --git a/icons/oxygen/48x48/actions/document-encrypt.png b/icons/oxygen/48x48/actions/document-encrypt.png new file mode 100644 index 00000000..b80c2a6f Binary files /dev/null and b/icons/oxygen/48x48/actions/document-encrypt.png differ diff --git a/icons/oxygen/48x48/actions/document-open.png b/icons/oxygen/48x48/actions/document-open.png new file mode 100644 index 00000000..3432ed27 Binary files /dev/null and b/icons/oxygen/48x48/actions/document-open.png differ diff --git a/icons/oxygen/48x48/actions/edit-clear-locationbar-ltr.png b/icons/oxygen/48x48/actions/edit-clear-locationbar-ltr.png new file mode 100644 index 00000000..3e62098d Binary files /dev/null and b/icons/oxygen/48x48/actions/edit-clear-locationbar-ltr.png differ diff --git a/icons/oxygen/48x48/actions/edit-clear-locationbar-rtl.png b/icons/oxygen/48x48/actions/edit-clear-locationbar-rtl.png new file mode 100644 index 00000000..7257212b Binary files /dev/null and b/icons/oxygen/48x48/actions/edit-clear-locationbar-rtl.png differ diff --git a/icons/oxygen/48x48/actions/edit-copy.png b/icons/oxygen/48x48/actions/edit-copy.png new file mode 100644 index 00000000..d33b4363 Binary files /dev/null and b/icons/oxygen/48x48/actions/edit-copy.png differ diff --git a/icons/oxygen/48x48/actions/edit-delete.png b/icons/oxygen/48x48/actions/edit-delete.png new file mode 100644 index 00000000..394d3a73 Binary files /dev/null and b/icons/oxygen/48x48/actions/edit-delete.png differ diff --git a/icons/oxygen/48x48/actions/edit-find.png b/icons/oxygen/48x48/actions/edit-find.png new file mode 100644 index 00000000..bb95091c Binary files /dev/null and b/icons/oxygen/48x48/actions/edit-find.png differ diff --git a/icons/oxygen/48x48/actions/edit-rename.png b/icons/oxygen/48x48/actions/edit-rename.png new file mode 100644 index 00000000..bc5476d6 Binary files /dev/null and b/icons/oxygen/48x48/actions/edit-rename.png differ diff --git a/icons/oxygen/48x48/actions/flag-blue.png b/icons/oxygen/48x48/actions/flag-blue.png new file mode 100644 index 00000000..d8d891e7 Binary files /dev/null and b/icons/oxygen/48x48/actions/flag-blue.png differ diff --git a/icons/oxygen/48x48/actions/format-fill-color.png b/icons/oxygen/48x48/actions/format-fill-color.png new file mode 100644 index 00000000..39c6c674 Binary files /dev/null and b/icons/oxygen/48x48/actions/format-fill-color.png differ diff --git a/icons/oxygen/48x48/actions/format-list-unordered.png b/icons/oxygen/48x48/actions/format-list-unordered.png new file mode 100644 index 00000000..830243d2 Binary files /dev/null and b/icons/oxygen/48x48/actions/format-list-unordered.png differ diff --git a/icons/oxygen/48x48/actions/format-text-bold.png b/icons/oxygen/48x48/actions/format-text-bold.png new file mode 100644 index 00000000..d30b47eb Binary files /dev/null and b/icons/oxygen/48x48/actions/format-text-bold.png differ diff --git a/icons/oxygen/48x48/actions/format-text-color.png b/icons/oxygen/48x48/actions/format-text-color.png new file mode 100644 index 00000000..8ed346ba Binary files /dev/null and b/icons/oxygen/48x48/actions/format-text-color.png differ diff --git a/icons/oxygen/48x48/actions/format-text-italic.png b/icons/oxygen/48x48/actions/format-text-italic.png new file mode 100644 index 00000000..d286bc07 Binary files /dev/null and b/icons/oxygen/48x48/actions/format-text-italic.png differ diff --git a/icons/oxygen/48x48/actions/format-text-underline.png b/icons/oxygen/48x48/actions/format-text-underline.png new file mode 100644 index 00000000..2734a28a Binary files /dev/null and b/icons/oxygen/48x48/actions/format-text-underline.png differ diff --git a/icons/oxygen/48x48/actions/go-down.png b/icons/oxygen/48x48/actions/go-down.png new file mode 100644 index 00000000..780714b8 Binary files /dev/null and b/icons/oxygen/48x48/actions/go-down.png differ diff --git a/icons/oxygen/48x48/actions/go-next-view.png b/icons/oxygen/48x48/actions/go-next-view.png new file mode 100644 index 00000000..e5e05d66 Binary files /dev/null and b/icons/oxygen/48x48/actions/go-next-view.png differ diff --git a/icons/oxygen/48x48/actions/go-next.png b/icons/oxygen/48x48/actions/go-next.png new file mode 100644 index 00000000..6cbd4875 Binary files /dev/null and b/icons/oxygen/48x48/actions/go-next.png differ diff --git a/icons/oxygen/48x48/actions/go-previous-view.png b/icons/oxygen/48x48/actions/go-previous-view.png new file mode 100644 index 00000000..85bc2e36 Binary files /dev/null and b/icons/oxygen/48x48/actions/go-previous-view.png differ diff --git a/icons/oxygen/48x48/actions/go-previous.png b/icons/oxygen/48x48/actions/go-previous.png new file mode 100644 index 00000000..27413943 Binary files /dev/null and b/icons/oxygen/48x48/actions/go-previous.png differ diff --git a/icons/oxygen/48x48/actions/go-up.png b/icons/oxygen/48x48/actions/go-up.png new file mode 100644 index 00000000..7174fa8b Binary files /dev/null and b/icons/oxygen/48x48/actions/go-up.png differ diff --git a/icons/oxygen_kde/48x48/status/dialog-information.png b/icons/oxygen/48x48/actions/help-about.png similarity index 100% rename from icons/oxygen_kde/48x48/status/dialog-information.png rename to icons/oxygen/48x48/actions/help-about.png diff --git a/icons/oxygen_kde/48x48/actions/im-ban-kick-user.png b/icons/oxygen/48x48/actions/im-ban-kick-user.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/im-ban-kick-user.png rename to icons/oxygen/48x48/actions/im-ban-kick-user.png diff --git a/icons/oxygen_kde/48x48/actions/im-ban-user.png b/icons/oxygen/48x48/actions/im-ban-user.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/im-ban-user.png rename to icons/oxygen/48x48/actions/im-ban-user.png diff --git a/icons/oxygen_kde/48x48/actions/im-kick-user.png b/icons/oxygen/48x48/actions/im-kick-user.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/im-kick-user.png rename to icons/oxygen/48x48/actions/im-kick-user.png diff --git a/icons/oxygen/48x48/actions/im-user-away.png b/icons/oxygen/48x48/actions/im-user-away.png new file mode 100644 index 00000000..f28ba0d1 Binary files /dev/null and b/icons/oxygen/48x48/actions/im-user-away.png differ diff --git a/icons/oxygen/48x48/actions/im-user-offline.png b/icons/oxygen/48x48/actions/im-user-offline.png new file mode 100644 index 00000000..c7e33dbe Binary files /dev/null and b/icons/oxygen/48x48/actions/im-user-offline.png differ diff --git a/icons/oxygen_kde/48x48/actions/im-user.png b/icons/oxygen/48x48/actions/im-user.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/im-user.png rename to icons/oxygen/48x48/actions/im-user.png diff --git a/icons/oxygen_kde/48x48/actions/irc-close-channel.png b/icons/oxygen/48x48/actions/irc-close-channel.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/irc-close-channel.png rename to icons/oxygen/48x48/actions/irc-close-channel.png diff --git a/icons/oxygen_kde/48x48/actions/irc-join-channel.png b/icons/oxygen/48x48/actions/irc-join-channel.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/irc-join-channel.png rename to icons/oxygen/48x48/actions/irc-join-channel.png diff --git a/icons/oxygen_kde/48x48/actions/irc-operator.png b/icons/oxygen/48x48/actions/irc-operator.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/irc-operator.png rename to icons/oxygen/48x48/actions/irc-operator.png diff --git a/icons/oxygen_kde/48x48/actions/irc-remove-operator.png b/icons/oxygen/48x48/actions/irc-remove-operator.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/irc-remove-operator.png rename to icons/oxygen/48x48/actions/irc-remove-operator.png diff --git a/icons/oxygen_kde/48x48/actions/irc-unvoice.png b/icons/oxygen/48x48/actions/irc-unvoice.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/irc-unvoice.png rename to icons/oxygen/48x48/actions/irc-unvoice.png diff --git a/icons/oxygen_kde/48x48/actions/irc-voice.png b/icons/oxygen/48x48/actions/irc-voice.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/irc-voice.png rename to icons/oxygen/48x48/actions/irc-voice.png diff --git a/icons/oxygen/48x48/actions/list-add-user.png b/icons/oxygen/48x48/actions/list-add-user.png new file mode 100644 index 00000000..083f8046 Binary files /dev/null and b/icons/oxygen/48x48/actions/list-add-user.png differ diff --git a/icons/oxygen/48x48/actions/list-add.png b/icons/oxygen/48x48/actions/list-add.png new file mode 100644 index 00000000..af5b56e3 Binary files /dev/null and b/icons/oxygen/48x48/actions/list-add.png differ diff --git a/icons/oxygen/48x48/actions/list-remove-user.png b/icons/oxygen/48x48/actions/list-remove-user.png new file mode 100644 index 00000000..5bc6e086 Binary files /dev/null and b/icons/oxygen/48x48/actions/list-remove-user.png differ diff --git a/icons/oxygen_kde/48x48/actions/mail-message-new.png b/icons/oxygen/48x48/actions/mail-message-new.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/mail-message-new.png rename to icons/oxygen/48x48/actions/mail-message-new.png diff --git a/icons/oxygen/48x48/actions/media-playback-start.png b/icons/oxygen/48x48/actions/media-playback-start.png new file mode 100644 index 00000000..dbeee2bb Binary files /dev/null and b/icons/oxygen/48x48/actions/media-playback-start.png differ diff --git a/icons/oxygen_kde/48x48/actions/network-connect.png b/icons/oxygen/48x48/actions/network-connect.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/network-connect.png rename to icons/oxygen/48x48/actions/network-connect.png diff --git a/icons/oxygen_kde/48x48/actions/network-disconnect.png b/icons/oxygen/48x48/actions/network-disconnect.png similarity index 100% rename from icons/oxygen_kde/48x48/actions/network-disconnect.png rename to icons/oxygen/48x48/actions/network-disconnect.png diff --git a/icons/oxygen/48x48/actions/show-menu.png b/icons/oxygen/48x48/actions/show-menu.png new file mode 100644 index 00000000..4cde58f5 Binary files /dev/null and b/icons/oxygen/48x48/actions/show-menu.png differ diff --git a/icons/oxygen/48x48/actions/tools-report-bug.png b/icons/oxygen/48x48/actions/tools-report-bug.png new file mode 100644 index 00000000..239a43e3 Binary files /dev/null and b/icons/oxygen/48x48/actions/tools-report-bug.png differ diff --git a/icons/oxygen/48x48/actions/view-fullscreen.png b/icons/oxygen/48x48/actions/view-fullscreen.png new file mode 100644 index 00000000..aed8fc36 Binary files /dev/null and b/icons/oxygen/48x48/actions/view-fullscreen.png differ diff --git a/icons/oxygen/48x48/actions/view-refresh.png b/icons/oxygen/48x48/actions/view-refresh.png new file mode 100644 index 00000000..0b08b238 Binary files /dev/null and b/icons/oxygen/48x48/actions/view-refresh.png differ diff --git a/icons/oxygen/48x48/actions/zoom-in.png b/icons/oxygen/48x48/actions/zoom-in.png new file mode 100644 index 00000000..b99d3677 Binary files /dev/null and b/icons/oxygen/48x48/actions/zoom-in.png differ diff --git a/icons/oxygen/48x48/actions/zoom-original.png b/icons/oxygen/48x48/actions/zoom-original.png new file mode 100644 index 00000000..2f49354b Binary files /dev/null and b/icons/oxygen/48x48/actions/zoom-original.png differ diff --git a/icons/oxygen/48x48/actions/zoom-out.png b/icons/oxygen/48x48/actions/zoom-out.png new file mode 100644 index 00000000..f08f0947 Binary files /dev/null and b/icons/oxygen/48x48/actions/zoom-out.png differ diff --git a/icons/oxygen_kde/48x48/apps/quassel.png b/icons/oxygen/48x48/apps/quassel.png similarity index 100% rename from icons/oxygen_kde/48x48/apps/quassel.png rename to icons/oxygen/48x48/apps/quassel.png diff --git a/icons/oxygen/48x48/devices/network-wired.png b/icons/oxygen/48x48/devices/network-wired.png new file mode 100644 index 00000000..07333a12 Binary files /dev/null and b/icons/oxygen/48x48/devices/network-wired.png differ diff --git a/icons/oxygen/48x48/status/dialog-information.png b/icons/oxygen/48x48/status/dialog-information.png new file mode 100644 index 00000000..8f3a936d Binary files /dev/null and b/icons/oxygen/48x48/status/dialog-information.png differ diff --git a/icons/oxygen/48x48/status/security-high.png b/icons/oxygen/48x48/status/security-high.png new file mode 100644 index 00000000..fb54fd73 Binary files /dev/null and b/icons/oxygen/48x48/status/security-high.png differ diff --git a/icons/oxygen/48x48/status/security-low.png b/icons/oxygen/48x48/status/security-low.png new file mode 100644 index 00000000..9d5659f4 Binary files /dev/null and b/icons/oxygen/48x48/status/security-low.png differ diff --git a/icons/oxygen/48x48/status/user-away.png b/icons/oxygen/48x48/status/user-away.png new file mode 100644 index 00000000..3be2fce0 Binary files /dev/null and b/icons/oxygen/48x48/status/user-away.png differ diff --git a/icons/oxygen/64x64/actions/application-exit.png b/icons/oxygen/64x64/actions/application-exit.png new file mode 100644 index 00000000..c1549f49 Binary files /dev/null and b/icons/oxygen/64x64/actions/application-exit.png differ diff --git a/icons/oxygen/64x64/actions/configure.png b/icons/oxygen/64x64/actions/configure.png new file mode 100644 index 00000000..79f92de2 Binary files /dev/null and b/icons/oxygen/64x64/actions/configure.png differ diff --git a/icons/oxygen/64x64/actions/document-edit.png b/icons/oxygen/64x64/actions/document-edit.png new file mode 100644 index 00000000..a0ec6b7d Binary files /dev/null and b/icons/oxygen/64x64/actions/document-edit.png differ diff --git a/icons/oxygen/64x64/actions/edit-find.png b/icons/oxygen/64x64/actions/edit-find.png new file mode 100644 index 00000000..884bd5fe Binary files /dev/null and b/icons/oxygen/64x64/actions/edit-find.png differ diff --git a/icons/oxygen/64x64/actions/go-down.png b/icons/oxygen/64x64/actions/go-down.png new file mode 100644 index 00000000..c23774b6 Binary files /dev/null and b/icons/oxygen/64x64/actions/go-down.png differ diff --git a/icons/oxygen/64x64/actions/go-next.png b/icons/oxygen/64x64/actions/go-next.png new file mode 100644 index 00000000..31b2a6bb Binary files /dev/null and b/icons/oxygen/64x64/actions/go-next.png differ diff --git a/icons/oxygen/64x64/actions/go-previous.png b/icons/oxygen/64x64/actions/go-previous.png new file mode 100644 index 00000000..f53d410f Binary files /dev/null and b/icons/oxygen/64x64/actions/go-previous.png differ diff --git a/icons/oxygen/64x64/actions/go-up.png b/icons/oxygen/64x64/actions/go-up.png new file mode 100644 index 00000000..e44c37a9 Binary files /dev/null and b/icons/oxygen/64x64/actions/go-up.png differ diff --git a/icons/oxygen/64x64/actions/im-ban-kick-user.png b/icons/oxygen/64x64/actions/im-ban-kick-user.png new file mode 100644 index 00000000..4506f59e Binary files /dev/null and b/icons/oxygen/64x64/actions/im-ban-kick-user.png differ diff --git a/icons/oxygen/64x64/actions/im-ban-user.png b/icons/oxygen/64x64/actions/im-ban-user.png new file mode 100644 index 00000000..c3072efb Binary files /dev/null and b/icons/oxygen/64x64/actions/im-ban-user.png differ diff --git a/icons/oxygen/64x64/actions/im-kick-user.png b/icons/oxygen/64x64/actions/im-kick-user.png new file mode 100644 index 00000000..6268e822 Binary files /dev/null and b/icons/oxygen/64x64/actions/im-kick-user.png differ diff --git a/icons/oxygen/64x64/actions/im-user-away.png b/icons/oxygen/64x64/actions/im-user-away.png new file mode 100644 index 00000000..3f841bbd Binary files /dev/null and b/icons/oxygen/64x64/actions/im-user-away.png differ diff --git a/icons/oxygen/64x64/actions/im-user-offline.png b/icons/oxygen/64x64/actions/im-user-offline.png new file mode 100644 index 00000000..2b3bca33 Binary files /dev/null and b/icons/oxygen/64x64/actions/im-user-offline.png differ diff --git a/icons/oxygen/64x64/actions/im-user.png b/icons/oxygen/64x64/actions/im-user.png new file mode 100644 index 00000000..dd7d7a24 Binary files /dev/null and b/icons/oxygen/64x64/actions/im-user.png differ diff --git a/icons/oxygen/64x64/actions/list-add-user.png b/icons/oxygen/64x64/actions/list-add-user.png new file mode 100644 index 00000000..12f73ef8 Binary files /dev/null and b/icons/oxygen/64x64/actions/list-add-user.png differ diff --git a/icons/oxygen/64x64/actions/tools-report-bug.png b/icons/oxygen/64x64/actions/tools-report-bug.png new file mode 100644 index 00000000..b313d4d4 Binary files /dev/null and b/icons/oxygen/64x64/actions/tools-report-bug.png differ diff --git a/icons/oxygen_kde/64x64/apps/quassel.png b/icons/oxygen/64x64/apps/quassel.png similarity index 100% rename from icons/oxygen_kde/64x64/apps/quassel.png rename to icons/oxygen/64x64/apps/quassel.png diff --git a/icons/oxygen/64x64/devices/network-wired.png b/icons/oxygen/64x64/devices/network-wired.png new file mode 100644 index 00000000..2981c5b9 Binary files /dev/null and b/icons/oxygen/64x64/devices/network-wired.png differ diff --git a/icons/oxygen/64x64/status/dialog-information.png b/icons/oxygen/64x64/status/dialog-information.png new file mode 100644 index 00000000..c65f6163 Binary files /dev/null and b/icons/oxygen/64x64/status/dialog-information.png differ diff --git a/icons/oxygen/64x64/status/security-high.png b/icons/oxygen/64x64/status/security-high.png new file mode 100644 index 00000000..44da6b94 Binary files /dev/null and b/icons/oxygen/64x64/status/security-high.png differ diff --git a/icons/oxygen/64x64/status/security-low.png b/icons/oxygen/64x64/status/security-low.png new file mode 100644 index 00000000..d8ceb4be Binary files /dev/null and b/icons/oxygen/64x64/status/security-low.png differ diff --git a/icons/oxygen/64x64/status/user-away.png b/icons/oxygen/64x64/status/user-away.png new file mode 100644 index 00000000..0f133418 Binary files /dev/null and b/icons/oxygen/64x64/status/user-away.png differ diff --git a/icons/oxygen/AUTHORS b/icons/oxygen/AUTHORS index e35a25e7..415ac584 100644 --- a/icons/oxygen/AUTHORS +++ b/icons/oxygen/AUTHORS @@ -1,9 +1,8 @@ Oxygen Icon Theme has been developed by The Oxygen Team. Art Directors: -David Vignoni Nuno F. Pinheiro -David J. Miller +David Vignoni Naming Coordinator Jakob Petsovits @@ -15,9 +14,11 @@ Johann Ollivier Lapeyre Kenneth Wimer Nuno F. Pinheiro Riccardo Iaconelli +David J. Miller Thanks to: Lee Olson: Contributed drawing used in application-x-bittorent icon. Marco Aurélio "Coré": Improved audio-input-microphone icon. Matthias Kretz: Contributed "audio-input-line" device icon. Mauricio Piacentini : game icons mashup +Erlend Hamberg: "text-x-haskell" mimetype icon. diff --git a/icons/oxygen/CONTRIBUTING b/icons/oxygen/CONTRIBUTING index bbf20811..b68a7cc2 100644 --- a/icons/oxygen/CONTRIBUTING +++ b/icons/oxygen/CONTRIBUTING @@ -1,6 +1,6 @@ -If you'd like to help us make Oxygen or contribute in any way please join the irc channel #kde-artists on freenode.net or send a mail to the kde-artists mailing list (artists@kde.org). One of the teeam is almost always online. We'd love to to discuss the possiblity with you :-) +If you'd like to help us make Oxygen or contribute in any way please join the irc channel #oxygen on freenode.net or send a mail to the kde-artists mailing list (all@oxygen -icons.org) or (nuno@oxygen-icons.org). One of the teeam is almost always online. We'd love to to discuss the possiblity with you :-) -In order to coordinate the addition of icons to the theme itself, all artists should put their work in a dir labelled Oxygen/ARTIST_NAME (so, mine for instance is Oxygen/Ken/) this allows us to control not only the licensing of the theme but the compatability with the guidelines for creating Oxygen icons. +In order to coordinate the addition of icons to the theme itself, all external artists should send their work for review to one of the refered emails, they will be reviewd for licensing of the theme and the compatability with the guidelines for creating Oxygen icons. NOTE: Contributors should realize that the Oxygen icon theme mantainers can (and probably will) modify, delete, reuse contributed artwork. diff --git a/icons/oxygen/COPYING b/icons/oxygen/COPYING index c87ac56a..045b62e8 100644 --- a/icons/oxygen/COPYING +++ b/icons/oxygen/COPYING @@ -1,24 +1,25 @@ The Oxygen Icon Theme + Copyright (C) 2007 Nuno Pinheiro Copyright (C) 2007 David Vignoni + Copyright (C) 2007 David Miller Copyright (C) 2007 Johann Ollivier Lapeyre Copyright (C) 2007 Kenneth Wimer - Copyright (C) 2007 Nuno Fernades Pinheiro Copyright (C) 2007 Riccardo Iaconelli - Copyright (C) 2007 David Miller + and others This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public + modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . Clarification: @@ -46,3 +47,170 @@ Clarification: the use of elements of this art library in a GUI. kde-artists [at] kde.org + +----- + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + 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. diff --git a/icons/oxygen/index.theme b/icons/oxygen/index.theme new file mode 100644 index 00000000..f9c09f67 --- /dev/null +++ b/icons/oxygen/index.theme @@ -0,0 +1,497 @@ +[Icon Theme] +Name=Oxygen +Name[bs]=Oxygen +Name[ca]=Oxygen +Name[ca@valencia]=Oxygen +Name[cs]=Oxygen +Name[da]=Oxygen +Name[de]=Oxygen +Name[el]=Oxygen +Name[en_GB]=Oxygen +Name[es]=Oxígeno +Name[et]=Oxygen +Name[eu]=Oxygen +Name[fa]=اکسیژن +Name[fi]=Oxygen +Name[fr]=Oxygen +Name[gl]=Oxygen +Name[hu]=Oxygen +Name[it]=Oxygen +Name[kk]=Oxygen +Name[ko]=Oxygen +Name[mr]=ऑक्सीजन +Name[nb]=Oxygen +Name[nds]=Oxygen +Name[nl]=Oxygen +Name[pl]=Tlen +Name[pt]=Oxygen +Name[pt_BR]=Oxygen +Name[ro]=Oxygen +Name[ru]=Oxygen +Name[sk]=Oxygen +Name[sl]=Kisik +Name[sr]=Кисеоник +Name[sr@ijekavian]=Кисеоник +Name[sr@ijekavianlatin]=Kiseonik +Name[sr@latin]=Kiseonik +Name[sv]=Oxygen +Name[tr]=Oxygen +Name[ug]=ئوكسېگىن +Name[uk]=Oxygen +Name[x-test]=xxOxygenxx +Name[zh_CN]=Oxygen(氧气) +Name[zh_TW]=Oxygen + +Comment=Oxygen Team +Comment[bs]=Oxygen tim +Comment[ca]=Equip de l'Oxygen +Comment[ca@valencia]=Equip de l'Oxygen +Comment[cs]=Tým Oxygen +Comment[da]=Oxygen-holdet +Comment[de]=Oxygen-Team +Comment[el]=Ομάδα Oxygen +Comment[en_GB]=Oxygen Team +Comment[es]=Equipo Oxígeno +Comment[et]=Oxygeni meeskond +Comment[eu]=Oxygen taldea +Comment[fa]=تیم اکسیژن +Comment[fi]=Oxygenin kehitysryhmä +Comment[fr]=Équipe Oxygen +Comment[gl]=Equipo de Oxygen +Comment[hu]=Oxygen csapat +Comment[it]=La squadra di Oxygen +Comment[kk]=Oxygen тобы +Comment[ko]=Oxygen 팀 +Comment[mr]=ऑक्सीजन टीम +Comment[nb]=Oxygen-laget +Comment[nds]=Oxygen-Koppel +Comment[nl]=Oxygen-team +Comment[pl]=Zespół Oxygen +Comment[pt]=Equipa do Oxygen +Comment[pt_BR]=Equipe do Oxygen +Comment[ro]=Echipa Oxygen +Comment[ru]=Команда Oxygen +Comment[sk]=Tím Oxygen +Comment[sl]=Ekipa Kisika +Comment[sr]=Тим Кисеоника +Comment[sr@ijekavian]=Тим Кисеоника +Comment[sr@ijekavianlatin]=Tim Kiseonika +Comment[sr@latin]=Tim Kiseonika +Comment[sv]=Oxygen-gruppen +Comment[tr]=Oxygen Takımı +Comment[ug]=ئوكسېگىن ئەترىتى +Comment[uk]=Команда Oxygen +Comment[x-test]=xxOxygen Teamxx +Comment[zh_CN]=Oxygen 团队 +Comment[zh_TW]=Oxygen 開發團隊 + +DisplayDepth=32 + +Inherits=hicolor + +Example=folder + +LinkOverlay=link +LockOverlay=lockoverlay +ShareOverlay=share +ZipOverlay=zip + +DesktopDefault=48 +DesktopSizes=16,22,32,48,64,128,256 +ToolbarDefault=22 +ToolbarSizes=16,22,32,48 +MainToolbarDefault=22 +MainToolbarSizes=16,22,32,48 +SmallDefault=16 +SmallSizes=16,22,32,48 +PanelDefault=32 +PanelSizes=16,22,32,48,64,128,256 +DialogDefault=32 +DialogSizes=16,22,32,48,64,128,256 + +Directories=8x8/emblems,16x16/actions,16x16/animations,16x16/apps,16x16/categories,16x16/devices,16x16/emblems,16x16/emotes,16x16/intl,16x16/mimetypes,16x16/places,16x16/status,16x16/special,22x22/actions,22x22/animations,22x22/apps,22x22/categories,22x22/devices,22x22/emblems,22x22/emotes,22x22/intl,22x22/mimetypes,22x22/places,22x22/status,22x22/special,32x32/actions,32x32/animations,32x32/apps,32x32/categories,32x32/devices,32x32/emblems,32x32/emotes,32x32/intl,32x32/mimetypes,32x32/places,32x32/status,48x48/actions,48x48/animations,48x48/apps,48x48/categories,48x48/devices,48x48/emblems,48x48/emotes,48x48/intl,48x48/mimetypes,48x48/places,48x48/status,64x64/actions,64x64/animations,64x64/apps,64x64/categories,64x64/devices,64x64/emblems,64x64/emotes,64x64/intl,64x64/mimetypes,64x64/places,64x64/status,128x128/actions,128x128/animations,128x128/apps,128x128/categories,128x128/devices,128x128/emblems,128x128/emotes,128x128/intl,128x128/mimetypes,128x128/places,128x128/status,256x256/actions,256x256/apps,256x256/categories,256x256/devices,256x256/mimetypes,256x256/places,256x256/status + +[8x8/emblems] +Size=8 +Context=Emblems +Type=Threshold + +[16x16/actions] +Size=16 +Context=Actions +Type=Threshold + +[16x16/animations] +Size=16 +Context=Animations +Type=Threshold + +[16x16/apps] +Size=16 +Context=Applications +Type=Threshold + +[16x16/categories] +Size=16 +Context=Categories +Type=Threshold + +[16x16/devices] +Size=16 +Context=Devices +Type=Threshold + +[16x16/emblems] +Size=16 +Context=Emblems +Type=Threshold + +[16x16/emotes] +Size=16 +Context=Emotes +Type=Threshold + +[16x16/intl] +Size=16 +Context=International +Type=Threshold + +[16x16/mimetypes] +Size=16 +Context=MimeTypes +Type=Threshold + +[16x16/places] +Size=16 +Context=Places +Type=Threshold + +[16x16/status] +Size=16 +Context=Status +Type=Threshold + +[16x16/special] +Size=16 +Context=Actions +Type=Threshold + +[22x22/actions] +Size=22 +Context=Actions +Type=Threshold + +[22x22/animations] +Size=22 +Context=Animations +Type=Threshold + +[22x22/apps] +Size=22 +Context=Applications +Type=Threshold + +[22x22/categories] +Size=22 +Context=Categories +Type=Threshold + +[22x22/devices] +Size=22 +Context=Devices +Type=Threshold + +[22x22/emblems] +Size=22 +Context=Emblems +Type=Threshold + +[22x22/emotes] +Size=22 +Context=Emotes +Type=Threshold + +[22x22/intl] +Size=22 +Context=International +Type=Threshold + +[22x22/mimetypes] +Size=22 +Context=MimeTypes +Type=Threshold + +[22x22/places] +Size=22 +Context=Places +Type=Threshold + +[22x22/status] +Size=22 +Context=Status +Type=Threshold + +[22x22/special] +Size=22 +Context=Actions +Type=Threshold + +[32x32/actions] +Size=32 +Context=Actions +Type=Threshold + +[32x32/animations] +Size=32 +Context=Animations +Type=Threshold + +[32x32/apps] +Size=32 +Context=Applications +Type=Threshold + +[32x32/categories] +Size=32 +Context=Categories +Type=Threshold + +[32x32/devices] +Size=32 +Context=Devices +Type=Threshold + +[32x32/emblems] +Size=32 +Context=Emblems +Type=Threshold + +[32x32/emotes] +Size=32 +Context=Emotes +Type=Threshold + +[32x32/intl] +Size=32 +Context=International +Type=Threshold + +[32x32/mimetypes] +Size=32 +Context=MimeTypes +Type=Threshold + +[32x32/places] +Size=32 +Context=Places +Type=Threshold + +[32x32/status] +Size=32 +Context=Status +Type=Threshold + +[48x48/actions] +Size=48 +Context=Actions +Type=Threshold + +[48x48/animations] +Size=48 +Context=Animations +Type=Threshold + +[48x48/apps] +Size=48 +Context=Applications +Type=Threshold + +[48x48/categories] +Size=48 +Context=Categories +Type=Threshold + +[48x48/devices] +Size=48 +Context=Devices +Type=Threshold + +[48x48/emblems] +Size=48 +Context=Emblems +Type=Threshold + +[48x48/emotes] +Size=48 +Context=Emotes +Type=Threshold + +[48x48/intl] +Size=48 +Context=International +Type=Threshold + +[48x48/mimetypes] +Size=48 +Context=MimeTypes +Type=Threshold + +[48x48/places] +Size=48 +Context=Places +Type=Threshold + +[48x48/status] +Size=48 +Context=Status +Type=Threshold + +[64x64/actions] +Size=64 +Context=Actions +Type=Threshold + +[64x64/animations] +Size=64 +Context=Animations +Type=Threshold + +[64x64/apps] +Size=64 +Context=Applications +Type=Threshold + +[64x64/categories] +Size=64 +Context=Categories +Type=Threshold + +[64x64/devices] +Size=64 +Context=Devices +Type=Threshold + +[64x64/emblems] +Size=64 +Context=Emblems +Type=Threshold + +[64x64/emotes] +Size=64 +Context=Emotes +Type=Threshold + +[64x64/intl] +Size=64 +Context=International +Type=Threshold + +[64x64/mimetypes] +Size=64 +Context=MimeTypes +Type=Threshold + +[64x64/places] +Size=64 +Context=Places +Type=Threshold + +[64x64/status] +Size=64 +Context=Status +Type=Threshold + +[128x128/actions] +Size=128 +Context=Actions +Type=Threshold + +[128x128/animations] +Size=128 +Context=Animations +Type=Threshold + +[128x128/apps] +Size=128 +Context=Applications +Type=Threshold + +[128x128/categories] +Size=128 +Context=Categories +Type=Threshold + +[128x128/devices] +Size=128 +Context=Devices +Type=Threshold + +[128x128/emblems] +Size=128 +Context=Emblems +Type=Threshold + +[128x128/emotes] +Size=128 +Context=Emotes +Type=Threshold + +[128x128/categories] +Size=128 +Context=Categories +Type=Threshold + +[128x128/intl] +Size=128 +Context=International +Type=Threshold + +[128x128/mimetypes] +Size=128 +Context=MimeTypes +Type=Threshold + +[128x128/places] +Size=128 +Context=Places +Type=Threshold + +[128x128/status] +Size=128 +Context=Status +Type=Threshold + +[256x256/actions] +Size=256 +Context=Actions +Type=Threshold + +[256x256/apps] +Size=256 +Context=Applications +Type=Threshold + +[256x256/categories] +Size=256 +Context=Categories +Type=Threshold + +[256x256/devices] +Size=256 +Context=Devices +Type=Threshold + +[256x256/mimetypes] +Size=256 +Context=MimeTypes +Type=Threshold + +[256x256/places] +Size=256 +Context=Places +Type=Threshold + +[256x256/status] +Size=256 +Context=Status +Type=Threshold diff --git a/icons/oxygen_kde/scalable/actions/application-exit.svgz b/icons/oxygen/scalable/actions/application-exit.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/application-exit.svgz rename to icons/oxygen/scalable/actions/application-exit.svgz diff --git a/icons/oxygen_kde/scalable/actions/configure-shortcuts.svgz b/icons/oxygen/scalable/actions/configure-shortcuts.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/configure-shortcuts.svgz rename to icons/oxygen/scalable/actions/configure-shortcuts.svgz diff --git a/icons/oxygen_kde/scalable/actions/configure.svgz b/icons/oxygen/scalable/actions/configure.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/configure.svgz rename to icons/oxygen/scalable/actions/configure.svgz diff --git a/icons/oxygen_kde/scalable/actions/dialog-cancel.svgz b/icons/oxygen/scalable/actions/dialog-cancel.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/dialog-cancel.svgz rename to icons/oxygen/scalable/actions/dialog-cancel.svgz diff --git a/icons/oxygen_kde/scalable/actions/dialog-close.svgz b/icons/oxygen/scalable/actions/dialog-close.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/dialog-close.svgz rename to icons/oxygen/scalable/actions/dialog-close.svgz diff --git a/icons/oxygen_kde/scalable/actions/document-edit.svgz b/icons/oxygen/scalable/actions/document-edit.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/document-edit.svgz rename to icons/oxygen/scalable/actions/document-edit.svgz diff --git a/icons/oxygen_kde/scalable/actions/document-encrypt.svgz b/icons/oxygen/scalable/actions/document-encrypt.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/document-encrypt.svgz rename to icons/oxygen/scalable/actions/document-encrypt.svgz diff --git a/icons/oxygen_kde/scalable/actions/edit-clear-locationbar-ltr.svgz b/icons/oxygen/scalable/actions/edit-clear-locationbar-ltr.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/edit-clear-locationbar-ltr.svgz rename to icons/oxygen/scalable/actions/edit-clear-locationbar-ltr.svgz diff --git a/icons/oxygen_kde/scalable/actions/edit-clear-locationbar-rtl.svgz b/icons/oxygen/scalable/actions/edit-clear-locationbar-rtl.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/edit-clear-locationbar-rtl.svgz rename to icons/oxygen/scalable/actions/edit-clear-locationbar-rtl.svgz diff --git a/icons/oxygen_kde/scalable/actions/edit-copy.svgz b/icons/oxygen/scalable/actions/edit-copy.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/edit-copy.svgz rename to icons/oxygen/scalable/actions/edit-copy.svgz diff --git a/icons/oxygen_kde/scalable/actions/edit-delete.svgz b/icons/oxygen/scalable/actions/edit-delete.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/edit-delete.svgz rename to icons/oxygen/scalable/actions/edit-delete.svgz diff --git a/icons/oxygen_kde/scalable/actions/edit-find.svgz b/icons/oxygen/scalable/actions/edit-find.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/edit-find.svgz rename to icons/oxygen/scalable/actions/edit-find.svgz diff --git a/icons/oxygen_kde/scalable/actions/edit-rename.svgz b/icons/oxygen/scalable/actions/edit-rename.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/edit-rename.svgz rename to icons/oxygen/scalable/actions/edit-rename.svgz diff --git a/icons/oxygen_kde/scalable/actions/flag-blue.svgz b/icons/oxygen/scalable/actions/flag-blue.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/flag-blue.svgz rename to icons/oxygen/scalable/actions/flag-blue.svgz diff --git a/icons/oxygen_kde/scalable/actions/format-fill-color.svgz b/icons/oxygen/scalable/actions/format-fill-color.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/format-fill-color.svgz rename to icons/oxygen/scalable/actions/format-fill-color.svgz diff --git a/icons/oxygen_kde/scalable/actions/format-text-color.svgz b/icons/oxygen/scalable/actions/format-text-color.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/format-text-color.svgz rename to icons/oxygen/scalable/actions/format-text-color.svgz diff --git a/icons/oxygen_kde/scalable/actions/go-down.svgz b/icons/oxygen/scalable/actions/go-down.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/go-down.svgz rename to icons/oxygen/scalable/actions/go-down.svgz diff --git a/icons/oxygen_kde/scalable/actions/go-next-view.svgz b/icons/oxygen/scalable/actions/go-next-view.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/go-next-view.svgz rename to icons/oxygen/scalable/actions/go-next-view.svgz diff --git a/icons/oxygen_kde/scalable/actions/go-next.svgz b/icons/oxygen/scalable/actions/go-next.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/go-next.svgz rename to icons/oxygen/scalable/actions/go-next.svgz diff --git a/icons/oxygen_kde/scalable/actions/go-previous-view.svgz b/icons/oxygen/scalable/actions/go-previous-view.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/go-previous-view.svgz rename to icons/oxygen/scalable/actions/go-previous-view.svgz diff --git a/icons/oxygen_kde/scalable/actions/go-previous.svgz b/icons/oxygen/scalable/actions/go-previous.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/go-previous.svgz rename to icons/oxygen/scalable/actions/go-previous.svgz diff --git a/icons/oxygen_kde/scalable/actions/go-up.svgz b/icons/oxygen/scalable/actions/go-up.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/go-up.svgz rename to icons/oxygen/scalable/actions/go-up.svgz diff --git a/icons/oxygen_kde/scalable/actions/im-ban-kick-user.svgz b/icons/oxygen/scalable/actions/im-ban-kick-user.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/im-ban-kick-user.svgz rename to icons/oxygen/scalable/actions/im-ban-kick-user.svgz diff --git a/icons/oxygen_kde/scalable/actions/im-ban-user.svgz b/icons/oxygen/scalable/actions/im-ban-user.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/im-ban-user.svgz rename to icons/oxygen/scalable/actions/im-ban-user.svgz diff --git a/icons/oxygen_kde/scalable/actions/im-kick-user.svgz b/icons/oxygen/scalable/actions/im-kick-user.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/im-kick-user.svgz rename to icons/oxygen/scalable/actions/im-kick-user.svgz diff --git a/icons/oxygen_kde/scalable/actions/im-user-away.svgz b/icons/oxygen/scalable/actions/im-user-away.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/im-user-away.svgz rename to icons/oxygen/scalable/actions/im-user-away.svgz diff --git a/icons/oxygen_kde/scalable/actions/im-user-offline.svgz b/icons/oxygen/scalable/actions/im-user-offline.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/im-user-offline.svgz rename to icons/oxygen/scalable/actions/im-user-offline.svgz diff --git a/icons/oxygen_kde/scalable/actions/im-user.svgz b/icons/oxygen/scalable/actions/im-user.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/im-user.svgz rename to icons/oxygen/scalable/actions/im-user.svgz diff --git a/icons/oxygen_kde/scalable/actions/irc-close-channel.svgz b/icons/oxygen/scalable/actions/irc-close-channel.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/irc-close-channel.svgz rename to icons/oxygen/scalable/actions/irc-close-channel.svgz diff --git a/icons/oxygen_kde/scalable/actions/irc-join-channel.svgz b/icons/oxygen/scalable/actions/irc-join-channel.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/irc-join-channel.svgz rename to icons/oxygen/scalable/actions/irc-join-channel.svgz diff --git a/icons/oxygen_kde/scalable/actions/irc-operator.svgz b/icons/oxygen/scalable/actions/irc-operator.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/irc-operator.svgz rename to icons/oxygen/scalable/actions/irc-operator.svgz diff --git a/icons/oxygen_kde/scalable/actions/irc-remove-operator.svgz b/icons/oxygen/scalable/actions/irc-remove-operator.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/irc-remove-operator.svgz rename to icons/oxygen/scalable/actions/irc-remove-operator.svgz diff --git a/icons/oxygen_kde/scalable/actions/irc-unvoice.svgz b/icons/oxygen/scalable/actions/irc-unvoice.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/irc-unvoice.svgz rename to icons/oxygen/scalable/actions/irc-unvoice.svgz diff --git a/icons/oxygen_kde/scalable/actions/irc-voice.svgz b/icons/oxygen/scalable/actions/irc-voice.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/irc-voice.svgz rename to icons/oxygen/scalable/actions/irc-voice.svgz diff --git a/icons/oxygen_kde/scalable/actions/list-add-user.svgz b/icons/oxygen/scalable/actions/list-add-user.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/list-add-user.svgz rename to icons/oxygen/scalable/actions/list-add-user.svgz diff --git a/icons/oxygen_kde/scalable/actions/list-add.svgz b/icons/oxygen/scalable/actions/list-add.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/list-add.svgz rename to icons/oxygen/scalable/actions/list-add.svgz diff --git a/icons/oxygen_kde/scalable/actions/list-remove-user.svgz b/icons/oxygen/scalable/actions/list-remove-user.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/list-remove-user.svgz rename to icons/oxygen/scalable/actions/list-remove-user.svgz diff --git a/icons/oxygen_kde/scalable/actions/media-playback-start.svgz b/icons/oxygen/scalable/actions/media-playback-start.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/media-playback-start.svgz rename to icons/oxygen/scalable/actions/media-playback-start.svgz diff --git a/icons/oxygen_kde/scalable/actions/network-connect.svgz b/icons/oxygen/scalable/actions/network-connect.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/network-connect.svgz rename to icons/oxygen/scalable/actions/network-connect.svgz diff --git a/icons/oxygen_kde/scalable/actions/network-disconnect.svgz b/icons/oxygen/scalable/actions/network-disconnect.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/network-disconnect.svgz rename to icons/oxygen/scalable/actions/network-disconnect.svgz diff --git a/icons/oxygen_kde/scalable/actions/show-menu.svgz b/icons/oxygen/scalable/actions/show-menu.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/show-menu.svgz rename to icons/oxygen/scalable/actions/show-menu.svgz diff --git a/icons/oxygen_kde/scalable/actions/tools-report-bug.svgz b/icons/oxygen/scalable/actions/tools-report-bug.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/tools-report-bug.svgz rename to icons/oxygen/scalable/actions/tools-report-bug.svgz diff --git a/icons/oxygen_kde/scalable/actions/view-fullscreen.svgz b/icons/oxygen/scalable/actions/view-fullscreen.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/view-fullscreen.svgz rename to icons/oxygen/scalable/actions/view-fullscreen.svgz diff --git a/icons/oxygen_kde/scalable/actions/view-refresh.svgz b/icons/oxygen/scalable/actions/view-refresh.svgz similarity index 100% rename from icons/oxygen_kde/scalable/actions/view-refresh.svgz rename to icons/oxygen/scalable/actions/view-refresh.svgz diff --git a/icons/oxygen_kde/scalable/apps/quassel.svgz b/icons/oxygen/scalable/apps/quassel.svgz similarity index 100% rename from icons/oxygen_kde/scalable/apps/quassel.svgz rename to icons/oxygen/scalable/apps/quassel.svgz diff --git a/icons/oxygen_kde/scalable/devices/network-wired.svgz b/icons/oxygen/scalable/devices/network-wired.svgz similarity index 100% rename from icons/oxygen_kde/scalable/devices/network-wired.svgz rename to icons/oxygen/scalable/devices/network-wired.svgz diff --git a/icons/oxygen_kde/scalable/status/dialog-information.svgz b/icons/oxygen/scalable/status/dialog-information.svgz similarity index 100% rename from icons/oxygen_kde/scalable/status/dialog-information.svgz rename to icons/oxygen/scalable/status/dialog-information.svgz diff --git a/icons/oxygen_kde/scalable/status/security-high.svgz b/icons/oxygen/scalable/status/security-high.svgz similarity index 100% rename from icons/oxygen_kde/scalable/status/security-high.svgz rename to icons/oxygen/scalable/status/security-high.svgz diff --git a/icons/oxygen_kde/scalable/status/security-low.svgz b/icons/oxygen/scalable/status/security-low.svgz similarity index 100% rename from icons/oxygen_kde/scalable/status/security-low.svgz rename to icons/oxygen/scalable/status/security-low.svgz diff --git a/icons/oxygen_kde/scalable/status/user-away.svgz b/icons/oxygen/scalable/status/user-away.svgz similarity index 100% rename from icons/oxygen_kde/scalable/status/user-away.svgz rename to icons/oxygen/scalable/status/user-away.svgz diff --git a/icons/oxygen_kde.qrc b/icons/oxygen_kde.qrc deleted file mode 100644 index 6ad38449..00000000 --- a/icons/oxygen_kde.qrc +++ /dev/null @@ -1,84 +0,0 @@ - - - oxygen_kde/16x16/actions/im-kick-user.png - oxygen_kde/16x16/actions/im-ban-kick-user.png - oxygen_kde/16x16/actions/irc-operator.png - oxygen_kde/16x16/actions/edit-copy.png - oxygen_kde/16x16/actions/irc-voice.png - oxygen_kde/16x16/actions/im-ban-user.png - oxygen_kde/16x16/actions/edit-clear-locationbar-rtl.png - oxygen_kde/16x16/actions/format-fill-color.png - oxygen_kde/16x16/actions/dialog-cancel.png - oxygen_kde/16x16/actions/format-text-bold.png - oxygen_kde/16x16/actions/flag-blue.png - oxygen_kde/16x16/actions/im-user.png - oxygen_kde/16x16/actions/go-next-view.png - oxygen_kde/16x16/actions/edit-find.png - oxygen_kde/16x16/actions/media-playback-start.png - oxygen_kde/16x16/actions/configure-shortcuts.png - oxygen_kde/16x16/actions/tools-report-bug.png - oxygen_kde/16x16/actions/network-disconnect.png - oxygen_kde/16x16/actions/format-text-italic.png - oxygen_kde/16x16/actions/irc-remove-operator.png - oxygen_kde/16x16/actions/irc-close-channel.png - oxygen_kde/16x16/actions/irc-join-channel.png - oxygen_kde/16x16/actions/go-up.png - oxygen_kde/16x16/actions/help-about.png - oxygen_kde/16x16/actions/view-fullscreen.png - oxygen_kde/16x16/actions/format-text-color.png - oxygen_kde/16x16/actions/mail-message-new.png - oxygen_kde/16x16/actions/zoom-in.png - oxygen_kde/16x16/actions/im-user-offline.png - oxygen_kde/16x16/actions/edit-clear-locationbar-ltr.png - oxygen_kde/16x16/actions/edit-rename.png - oxygen_kde/16x16/actions/view-refresh.png - oxygen_kde/16x16/actions/configure.png - oxygen_kde/16x16/actions/zoom-out.png - oxygen_kde/16x16/actions/go-previous.png - oxygen_kde/16x16/actions/im-user-away.png - oxygen_kde/16x16/actions/document-edit.png - oxygen_kde/16x16/actions/format-text-underline.png - oxygen_kde/16x16/actions/zoom-original.png - oxygen_kde/16x16/actions/show-menu.png - oxygen_kde/16x16/actions/go-previous-view.png - oxygen_kde/16x16/actions/document-open.png - oxygen_kde/16x16/actions/network-connect.png - oxygen_kde/16x16/actions/document-encrypt.png - oxygen_kde/16x16/actions/go-down.png - oxygen_kde/16x16/actions/list-add.png - oxygen_kde/16x16/actions/go-next.png - oxygen_kde/16x16/actions/edit-delete.png - oxygen_kde/16x16/actions/irc-unvoice.png - oxygen_kde/16x16/actions/application-exit.png - oxygen_kde/16x16/status/user-away.png - oxygen_kde/16x16/status/security-high.png - oxygen_kde/16x16/status/dialog-information.png - oxygen_kde/16x16/status/security-low.png - oxygen_kde/16x16/apps/quassel.png - oxygen_kde/16x16/devices/network-wired.png - oxygen_kde/48x48/actions/im-kick-user.png - oxygen_kde/48x48/actions/im-ban-kick-user.png - oxygen_kde/48x48/actions/irc-operator.png - oxygen_kde/48x48/actions/irc-voice.png - oxygen_kde/48x48/actions/im-ban-user.png - oxygen_kde/48x48/actions/im-user.png - oxygen_kde/48x48/actions/network-disconnect.png - oxygen_kde/48x48/actions/irc-remove-operator.png - oxygen_kde/48x48/actions/irc-close-channel.png - oxygen_kde/48x48/actions/irc-join-channel.png - oxygen_kde/48x48/actions/mail-message-new.png - oxygen_kde/48x48/actions/network-connect.png - oxygen_kde/48x48/actions/irc-unvoice.png - oxygen_kde/48x48/status/dialog-information.png - oxygen_kde/48x48/apps/quassel.png - oxygen_kde/128x128/apps/quassel.png - oxygen_kde/22x22/actions/edit-clear-locationbar-rtl.png - oxygen_kde/22x22/actions/dialog-close.png - oxygen_kde/22x22/actions/edit-rename.png - oxygen_kde/22x22/actions/list-add-user.png - oxygen_kde/22x22/actions/list-remove-user.png - oxygen_kde/22x22/apps/quassel.png - oxygen_kde/32x32/apps/quassel.png - oxygen_kde/64x64/apps/quassel.png - - diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index d1df92c7..0616948e 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -64,7 +64,7 @@ set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${qm_files};i18 if(EMBED_DATA) set(COMMON_RCS ${COMMON_RCS} ${resfile} PARENT_SCOPE) else(EMBED_DATA) - install(FILES ${qm_files} DESTINATION ${DATA_INSTALL_DIR}/quassel/translations) + install(FILES ${qm_files} DESTINATION ${CMAKE_INSTALL_DATADIR}/quassel/translations) endif(EMBED_DATA) add_custom_target(po DEPENDS ${qm_files}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 59facd84..62219306 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,6 +30,11 @@ if (WITH_OXYGEN) add_definitions(-DWITH_OXYGEN) endif() +# For KAboutData +if (WITH_KF5) + set(CLIENT_LIBRARIES ${CLIENT_LIBRARIES} KF5::CoreAddons) +endif() + # Needed for showing the cli option if appropriate if (HAVE_SYSLOG) add_definitions(-DHAVE_SYSLOG) @@ -43,7 +48,7 @@ if(WANT_CORE) COMPILE_FLAGS "-DBUILD_CORE" OUTPUT_NAME ../quasselcore) target_link_libraries(quasselcore mod_core mod_common ${COMMON_LIBRARIES} ${QUASSEL_SSL_LIBRARIES} ${QT_QTMAIN_LIBRARY}) - install(TARGETS quasselcore RUNTIME DESTINATION ${BIN_INSTALL_DIR}) + install(TARGETS quasselcore RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif(WANT_CORE) if (KDE4_FOUND) @@ -58,7 +63,7 @@ if(WANT_QTCLIENT) COMPILE_FLAGS "-DBUILD_QTUI" OUTPUT_NAME ../quasselclient) target_link_libraries(quasselclient mod_qtui mod_uisupport mod_client mod_common ${COMMON_LIBRARIES} ${CLIENT_LIBRARIES} ${QUASSEL_SSL_LIBRARIES} ${QT_QTMAIN_LIBRARY}) - install(TARGETS quasselclient RUNTIME DESTINATION ${BIN_INSTALL_DIR}) + install(TARGETS quasselclient RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif(WANT_QTCLIENT) if(WANT_MONO) @@ -69,7 +74,7 @@ if(WANT_MONO) COMPILE_FLAGS "-DBUILD_MONO" OUTPUT_NAME ../quassel) target_link_libraries(quassel mod_qtui mod_uisupport mod_client mod_core mod_common ${COMMON_LIBRARIES} ${CLIENT_LIBRARIES} ${QUASSEL_SSL_LIBRARIES} ${QT_QTMAIN_LIBRARY}) - install(TARGETS quassel RUNTIME DESTINATION ${BIN_INSTALL_DIR}) + install(TARGETS quassel RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif(WANT_MONO) # Build bundles for MacOSX diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 3dd15044..4eef7d54 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -38,11 +38,6 @@ set(SOURCES clientcoreinfo.h ) -if (KDE4_FOUND) - include_directories(${KDE4_INCLUDES}) - add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) -endif() - if (USE_QT5) list(APPEND qt_modules Widgets) endif() @@ -52,8 +47,4 @@ qt_add_resources(SOURCES ${CLIENT_RCS}) add_library(mod_client STATIC ${SOURCES}) qt_use_modules(mod_client Network Core Gui ${qt_modules}) -if (KDE4_FOUND) - target_link_libraries(mod_client ${KDE4_SOLID_LIBS}) -endif() - -add_dependencies(mod_client mod_common) +target_link_libraries(mod_client mod_common) diff --git a/src/client/abstractmessageprocessor.cpp b/src/client/abstractmessageprocessor.cpp index 490d9685..e0e6cb7b 100644 --- a/src/client/abstractmessageprocessor.cpp +++ b/src/client/abstractmessageprocessor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/abstractmessageprocessor.h b/src/client/abstractmessageprocessor.h index 1b830613..4803141d 100644 --- a/src/client/abstractmessageprocessor.h +++ b/src/client/abstractmessageprocessor.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/abstractui.h b/src/client/abstractui.h index 9ae112fb..81125772 100644 --- a/src/client/abstractui.h +++ b/src/client/abstractui.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/backlogrequester.cpp b/src/client/backlogrequester.cpp index 510115a7..4a1e2863 100644 --- a/src/client/backlogrequester.cpp +++ b/src/client/backlogrequester.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/backlogrequester.h b/src/client/backlogrequester.h index 08894c46..7192abac 100644 --- a/src/client/backlogrequester.h +++ b/src/client/backlogrequester.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/backlogsettings.h b/src/client/backlogsettings.h index 071809d0..e2692b00 100644 --- a/src/client/backlogsettings.h +++ b/src/client/backlogsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/buffermodel.cpp b/src/client/buffermodel.cpp index 8432625c..61d4e986 100644 --- a/src/client/buffermodel.cpp +++ b/src/client/buffermodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/buffermodel.h b/src/client/buffermodel.h index 05ddbef0..55febaee 100644 --- a/src/client/buffermodel.h +++ b/src/client/buffermodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/buffersettings.cpp b/src/client/buffersettings.cpp index 0a4e0cda..9313840a 100644 --- a/src/client/buffersettings.cpp +++ b/src/client/buffersettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/buffersettings.h b/src/client/buffersettings.h index 1c92267c..2e753644 100644 --- a/src/client/buffersettings.h +++ b/src/client/buffersettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/bufferviewoverlay.cpp b/src/client/bufferviewoverlay.cpp index 106c7cc1..f04b4531 100644 --- a/src/client/bufferviewoverlay.cpp +++ b/src/client/bufferviewoverlay.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/bufferviewoverlay.h b/src/client/bufferviewoverlay.h index bb95991e..09d0fba7 100644 --- a/src/client/bufferviewoverlay.h +++ b/src/client/bufferviewoverlay.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/client.cpp b/src/client/client.cpp index 3305f5b3..7bbbefe7 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/client.h b/src/client/client.h index d93c62b4..8c707f34 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientaliasmanager.cpp b/src/client/clientaliasmanager.cpp index 1c516b66..37f908e7 100644 --- a/src/client/clientaliasmanager.cpp +++ b/src/client/clientaliasmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientaliasmanager.h b/src/client/clientaliasmanager.h index 7c4875eb..61d2638c 100644 --- a/src/client/clientaliasmanager.h +++ b/src/client/clientaliasmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientauthhandler.cpp b/src/client/clientauthhandler.cpp index d5112d16..7ed231c2 100644 --- a/src/client/clientauthhandler.cpp +++ b/src/client/clientauthhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -169,6 +169,7 @@ void ClientAuthHandler::onSocketConnected() _probing = true; QDataStream stream(socket()); // stream handles the endianness for us + stream.setVersion(QDataStream::Qt_4_2); quint32 magic = Protocol::magic; #ifdef HAVE_SSL diff --git a/src/client/clientauthhandler.h b/src/client/clientauthhandler.h index f6f2fc93..7d6c9357 100644 --- a/src/client/clientauthhandler.h +++ b/src/client/clientauthhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientbacklogmanager.cpp b/src/client/clientbacklogmanager.cpp index 0a584aeb..266bc4e1 100644 --- a/src/client/clientbacklogmanager.cpp +++ b/src/client/clientbacklogmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientbacklogmanager.h b/src/client/clientbacklogmanager.h index 51df5e35..e4069882 100644 --- a/src/client/clientbacklogmanager.h +++ b/src/client/clientbacklogmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientbufferviewconfig.cpp b/src/client/clientbufferviewconfig.cpp index 6840f1f8..2150bbfa 100644 --- a/src/client/clientbufferviewconfig.cpp +++ b/src/client/clientbufferviewconfig.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientbufferviewconfig.h b/src/client/clientbufferviewconfig.h index 99815259..3a08aca0 100644 --- a/src/client/clientbufferviewconfig.h +++ b/src/client/clientbufferviewconfig.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientbufferviewmanager.cpp b/src/client/clientbufferviewmanager.cpp index 3da5dbc5..95c14917 100644 --- a/src/client/clientbufferviewmanager.cpp +++ b/src/client/clientbufferviewmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientbufferviewmanager.h b/src/client/clientbufferviewmanager.h index 01e41fd7..742523e0 100644 --- a/src/client/clientbufferviewmanager.h +++ b/src/client/clientbufferviewmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientcoreinfo.h b/src/client/clientcoreinfo.h index 15550953..fb24511f 100644 --- a/src/client/clientcoreinfo.h +++ b/src/client/clientcoreinfo.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientidentity.cpp b/src/client/clientidentity.cpp index 162fa4d7..baf01b3f 100644 --- a/src/client/clientidentity.cpp +++ b/src/client/clientidentity.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientidentity.h b/src/client/clientidentity.h index 58a14575..28b68b77 100644 --- a/src/client/clientidentity.h +++ b/src/client/clientidentity.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientignorelistmanager.cpp b/src/client/clientignorelistmanager.cpp index d13ce71b..6e52d388 100644 --- a/src/client/clientignorelistmanager.cpp +++ b/src/client/clientignorelistmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientignorelistmanager.h b/src/client/clientignorelistmanager.h index 446e4c41..41400da7 100644 --- a/src/client/clientignorelistmanager.h +++ b/src/client/clientignorelistmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientirclisthelper.cpp b/src/client/clientirclisthelper.cpp index d65ce675..229e1576 100644 --- a/src/client/clientirclisthelper.cpp +++ b/src/client/clientirclisthelper.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientirclisthelper.h b/src/client/clientirclisthelper.h index 8caf5157..28ea10e7 100644 --- a/src/client/clientirclisthelper.h +++ b/src/client/clientirclisthelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientsettings.cpp b/src/client/clientsettings.cpp index e186d548..dc8e5c18 100644 --- a/src/client/clientsettings.cpp +++ b/src/client/clientsettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -249,12 +249,10 @@ void CoreConnectionSettings::setNetworkDetectionMode(NetworkDetectionMode mode) CoreConnectionSettings::NetworkDetectionMode CoreConnectionSettings::networkDetectionMode() { -#ifdef HAVE_KDE - NetworkDetectionMode def = UseSolid; -#else - NetworkDetectionMode def = UsePingTimeout; -#endif - return (NetworkDetectionMode)localValue("NetworkDetectionMode", def).toInt(); + auto mode = localValue("NetworkDetectionMode", UseQNetworkConfigurationManager).toInt(); + if (mode == 0) + mode = UseQNetworkConfigurationManager; // UseSolid is gone, map that to the new default + return static_cast(mode); } diff --git a/src/client/clientsettings.h b/src/client/clientsettings.h index 55f1814a..dd413e0d 100644 --- a/src/client/clientsettings.h +++ b/src/client/clientsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -124,7 +124,7 @@ class CoreConnectionSettings : public ClientSettings { public: enum NetworkDetectionMode { - UseSolid, + UseQNetworkConfigurationManager = 1, // UseSolid is gone UsePingTimeout, NoActiveDetection }; diff --git a/src/client/clienttransfer.cpp b/src/client/clienttransfer.cpp index 9f70e637..83980979 100644 --- a/src/client/clienttransfer.cpp +++ b/src/client/clienttransfer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clienttransfer.h b/src/client/clienttransfer.h index 9753f41b..04637c78 100644 --- a/src/client/clienttransfer.h +++ b/src/client/clienttransfer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clienttransfermanager.cpp b/src/client/clienttransfermanager.cpp index 1860e481..ec5c49fa 100644 --- a/src/client/clienttransfermanager.cpp +++ b/src/client/clienttransfermanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clienttransfermanager.h b/src/client/clienttransfermanager.h index 9004d3bb..3c50a869 100644 --- a/src/client/clienttransfermanager.h +++ b/src/client/clienttransfermanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientuserinputhandler.cpp b/src/client/clientuserinputhandler.cpp index 2f890810..793f7569 100644 --- a/src/client/clientuserinputhandler.cpp +++ b/src/client/clientuserinputhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/clientuserinputhandler.h b/src/client/clientuserinputhandler.h index 9a4a6efd..ea601cb1 100644 --- a/src/client/clientuserinputhandler.h +++ b/src/client/clientuserinputhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/coreaccount.cpp b/src/client/coreaccount.cpp index dc4eac34..541cf343 100644 --- a/src/client/coreaccount.cpp +++ b/src/client/coreaccount.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/coreaccount.h b/src/client/coreaccount.h index 23bba929..3af7fc54 100644 --- a/src/client/coreaccount.h +++ b/src/client/coreaccount.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/coreaccountmodel.cpp b/src/client/coreaccountmodel.cpp index 5fab6d90..0d5f4d41 100644 --- a/src/client/coreaccountmodel.cpp +++ b/src/client/coreaccountmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/coreaccountmodel.h b/src/client/coreaccountmodel.h index 2741f4f7..f85fb938 100644 --- a/src/client/coreaccountmodel.h +++ b/src/client/coreaccountmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/coreconnection.cpp b/src/client/coreconnection.cpp index 4928a8bf..0e4b4f94 100644 --- a/src/client/coreconnection.cpp +++ b/src/client/coreconnection.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -57,10 +57,8 @@ void CoreConnection::init() _reconnectTimer.setSingleShot(true); connect(&_reconnectTimer, SIGNAL(timeout()), SLOT(reconnectTimeout())); -#ifdef HAVE_KDE - connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)), - SLOT(solidNetworkStatusChanged(Solid::Networking::Status))); -#endif + _qNetworkConfigurationManager = new QNetworkConfigurationManager(this); + connect(_qNetworkConfigurationManager, SIGNAL(onlineStateChanged(bool)), SLOT(onlineStateChanged(bool))); CoreConnectionSettings s; s.initAndNotify("PingTimeoutInterval", this, SLOT(pingTimeoutIntervalChanged(QVariant)), 60); @@ -127,16 +125,12 @@ void CoreConnection::reconnectTimeout() if (!_peer) { CoreConnectionSettings s; if (_wantReconnect && s.autoReconnect()) { -#ifdef HAVE_KDE - // If using Solid, we don't want to reconnect if we're offline - if (s.networkDetectionMode() == CoreConnectionSettings::UseSolid) { - if (Solid::Networking::status() != Solid::Networking::Connected - && Solid::Networking::status() != Solid::Networking::Unknown) { + // If using QNetworkConfigurationManager, we don't want to reconnect if we're offline + if (s.networkDetectionMode() == CoreConnectionSettings::UseQNetworkConfigurationManager) { + if (!_qNetworkConfigurationManager->isOnline()) { return; - } + } } -#endif /* HAVE_KDE */ - reconnectToCore(); } } @@ -169,35 +163,26 @@ void CoreConnection::reconnectIntervalChanged(const QVariant &interval) } -#ifdef HAVE_KDE - -void CoreConnection::solidNetworkStatusChanged(Solid::Networking::Status status) +void CoreConnection::onlineStateChanged(bool isOnline) { CoreConnectionSettings s; - if (s.networkDetectionMode() != CoreConnectionSettings::UseSolid) + if (s.networkDetectionMode() != CoreConnectionSettings::UseQNetworkConfigurationManager) return; - switch (status) { - case Solid::Networking::Unknown: - case Solid::Networking::Connected: - //qDebug() << "Solid: Network status changed to connected or unknown"; + if(isOnline) { + // qDebug() << "QNetworkConfigurationManager reports Online"; if (state() == Disconnected) { if (_wantReconnect && s.autoReconnect()) { reconnectToCore(); } } - break; - case Solid::Networking::Disconnecting: - case Solid::Networking::Unconnected: + } else { + // qDebug() << "QNetworkConfigurationManager reports Offline"; if (state() != Disconnected && !isLocalConnection()) disconnectFromCore(tr("Network is down"), true); - break; - default: - break; } } -#endif bool CoreConnection::isEncrypted() const { diff --git a/src/client/coreconnection.h b/src/client/coreconnection.h index f1b43954..0019a534 100644 --- a/src/client/coreconnection.h +++ b/src/client/coreconnection.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,11 +18,11 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef CORECONNECTION_H_ -#define CORECONNECTION_H_ +#pragma once -#include "QPointer" -#include "QTimer" +#include +#include +#include #ifdef HAVE_SSL # include @@ -30,10 +30,6 @@ # include #endif -#ifdef HAVE_KDE -# include -#endif - #include "coreaccount.h" #include "remotepeer.h" #include "types.h" @@ -148,9 +144,7 @@ private slots: void reconnectIntervalChanged(const QVariant &interval); void reconnectTimeout(); -#ifdef HAVE_KDE - void solidNetworkStatusChanged(Solid::Networking::Status status); -#endif + void onlineStateChanged(bool isOnline); private: QPointer _authHandler; @@ -171,6 +165,8 @@ private: CoreAccount _account; CoreAccountModel *accountModel() const; + QPointer _qNetworkConfigurationManager; + friend class CoreConfigWizard; }; @@ -186,5 +182,3 @@ inline QString CoreConnection::progressText() const { return _progressText; } inline CoreConnection::ConnectionState CoreConnection::state() const { return _state; } inline bool CoreConnection::isConnected() const { return state() >= Connected; } inline CoreAccount CoreConnection::currentAccount() const { return _account; } - -#endif diff --git a/src/client/execwrapper.cpp b/src/client/execwrapper.cpp index a1d07ac8..24bd22be 100644 --- a/src/client/execwrapper.cpp +++ b/src/client/execwrapper.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/execwrapper.h b/src/client/execwrapper.h index 648a72c1..f9564cd0 100644 --- a/src/client/execwrapper.h +++ b/src/client/execwrapper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/irclistmodel.cpp b/src/client/irclistmodel.cpp index 161d6e79..ef804448 100644 --- a/src/client/irclistmodel.cpp +++ b/src/client/irclistmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/irclistmodel.h b/src/client/irclistmodel.h index bb39bbe3..791b505f 100644 --- a/src/client/irclistmodel.h +++ b/src/client/irclistmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/messagefilter.cpp b/src/client/messagefilter.cpp index 6b8c28b7..5efed2c1 100644 --- a/src/client/messagefilter.cpp +++ b/src/client/messagefilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/messagefilter.h b/src/client/messagefilter.h index 62c24c34..e98bd5da 100644 --- a/src/client/messagefilter.h +++ b/src/client/messagefilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/messagemodel.cpp b/src/client/messagemodel.cpp index 5fc1e11f..cbcfceb2 100644 --- a/src/client/messagemodel.cpp +++ b/src/client/messagemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/messagemodel.h b/src/client/messagemodel.h index 09ae7d10..1bafe22f 100644 --- a/src/client/messagemodel.h +++ b/src/client/messagemodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 6d7f3ec3..6da58323 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/networkmodel.h b/src/client/networkmodel.h index 8c4597d8..20f3701d 100644 --- a/src/client/networkmodel.h +++ b/src/client/networkmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/selectionmodelsynchronizer.cpp b/src/client/selectionmodelsynchronizer.cpp index b3d94805..4d2ed232 100644 --- a/src/client/selectionmodelsynchronizer.cpp +++ b/src/client/selectionmodelsynchronizer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/selectionmodelsynchronizer.h b/src/client/selectionmodelsynchronizer.h index f6b2e05c..f4baffdd 100644 --- a/src/client/selectionmodelsynchronizer.h +++ b/src/client/selectionmodelsynchronizer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 33601995..f599803d 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/client/treemodel.h b/src/client/treemodel.h index d645e762..df34fb06 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 23e5601e..90ccb5f3 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -9,7 +9,6 @@ set(SOURCES buffersyncer.cpp bufferviewconfig.cpp bufferviewmanager.cpp - cliparser.cpp compressor.cpp ctcpevent.cpp event.cpp @@ -46,8 +45,13 @@ set(SOURCES coreinfo.h ) +if (USE_QT5) + list(APPEND SOURCES qt5cliparser.cpp) +else() + list(APPEND SOURCES cliparser.cpp) +endif() -if (QCA2_FOUND) +if (QCA2_FOUND OR QCA2-QT5_FOUND) set(SOURCES ${SOURCES} keyevent.cpp) endif() @@ -62,8 +66,8 @@ if (HAVE_SYSLOG) add_definitions(-DHAVE_SYSLOG) endif() -if(APPLE) - set(SOURCES ${SOURCES} mac_utils.cpp) +if (APPLE) + set(SOURCES ${SOURCES} mac_utils.cpp) endif(APPLE) if (WIN32) @@ -81,8 +85,8 @@ qt_add_resources(SOURCES ${COMMON_RCS}) add_library(mod_common STATIC ${SOURCES}) qt_use_modules(mod_common Core Network) -if(APPLE) - target_link_libraries(mod_common "-framework CoreServices" "-framework CoreFoundation") +if (APPLE) + target_link_libraries(mod_common "-framework CoreServices" "-framework CoreFoundation") endif(APPLE) target_link_libraries(mod_common ${CMAKE_DL_LIBS} ${EXECINFO_LIBRARIES} ${ZLIB_LIBRARIES}) diff --git a/src/common/abstractcliparser.h b/src/common/abstractcliparser.h index d6403e45..293ccd92 100644 --- a/src/common/abstractcliparser.h +++ b/src/common/abstractcliparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -36,9 +36,9 @@ public: } - inline void addOption(const QString &longName, const char shortName = 0, const QString &help = QString(), const QString &def = QString()) + inline void addOption(const QString &longName, const char shortName = 0, const QString &help = QString(), const QString &valueName = QString(), const QString &def = QString()) { - addArgument(longName, CliParserArg(CliParserArg::CliArgOption, shortName, help, def)); + addArgument(longName, CliParserArg(CliParserArg::CliArgOption, shortName, help, valueName, def)); } @@ -54,20 +54,21 @@ protected: CliArgOption }; - CliParserArg(const CliArgType _type = CliArgInvalid, const char _shortName = 0, const QString _help = QString(), const QString _def = QString()) - : type(_type), - shortName(_shortName), - help(_help), - def(_def), - value(QString()), - boolValue(false) {}; + CliParserArg(const CliArgType type = CliArgInvalid, const char shortName = 0, const QString &help = QString(), const QString &valueName = QString(), const QString def = QString()) + : type(type) + , shortName(shortName) + , help(help) + , valueName(valueName) + , def(def) + {}; CliArgType type; char shortName; QString help; + QString valueName; QString def; QString value; - bool boolValue; + bool boolValue = false; }; virtual void addArgument(const QString &longName, const CliParserArg &arg) = 0; diff --git a/src/common/aliasmanager.cpp b/src/common/aliasmanager.cpp index 94985bba..05ef3c93 100644 --- a/src/common/aliasmanager.cpp +++ b/src/common/aliasmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/aliasmanager.h b/src/common/aliasmanager.h index a536fe12..9257c0f6 100644 --- a/src/common/aliasmanager.h +++ b/src/common/aliasmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/authhandler.cpp b/src/common/authhandler.cpp index 7c2905dd..47b70df0 100644 --- a/src/common/authhandler.cpp +++ b/src/common/authhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/authhandler.h b/src/common/authhandler.h index cc03588e..ce2ac677 100644 --- a/src/common/authhandler.h +++ b/src/common/authhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/backlogmanager.cpp b/src/common/backlogmanager.cpp index 1cfad9ea..d9b23a73 100644 --- a/src/common/backlogmanager.cpp +++ b/src/common/backlogmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/backlogmanager.h b/src/common/backlogmanager.h index 9bafe470..b0f8401d 100644 --- a/src/common/backlogmanager.h +++ b/src/common/backlogmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/basichandler.cpp b/src/common/basichandler.cpp index 42841c42..e6ff7792 100644 --- a/src/common/basichandler.cpp +++ b/src/common/basichandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/basichandler.h b/src/common/basichandler.h index bf57790b..1bd92b0d 100644 --- a/src/common/basichandler.h +++ b/src/common/basichandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/bufferinfo.cpp b/src/common/bufferinfo.cpp index 5ff7f1fc..bea0f78d 100644 --- a/src/common/bufferinfo.cpp +++ b/src/common/bufferinfo.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/bufferinfo.h b/src/common/bufferinfo.h index bcd0d1aa..d429cae7 100644 --- a/src/common/bufferinfo.h +++ b/src/common/bufferinfo.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/buffersyncer.cpp b/src/common/buffersyncer.cpp index f7b42c7a..05f337db 100644 --- a/src/common/buffersyncer.cpp +++ b/src/common/buffersyncer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/buffersyncer.h b/src/common/buffersyncer.h index 66e99766..c225a65d 100644 --- a/src/common/buffersyncer.h +++ b/src/common/buffersyncer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/bufferviewconfig.cpp b/src/common/bufferviewconfig.cpp index 2b6f3409..b740fc8e 100644 --- a/src/common/bufferviewconfig.cpp +++ b/src/common/bufferviewconfig.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/bufferviewconfig.h b/src/common/bufferviewconfig.h index ecf92ebf..cbbac8d1 100644 --- a/src/common/bufferviewconfig.h +++ b/src/common/bufferviewconfig.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/bufferviewmanager.cpp b/src/common/bufferviewmanager.cpp index ed0418b8..33ba5288 100644 --- a/src/common/bufferviewmanager.cpp +++ b/src/common/bufferviewmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/bufferviewmanager.h b/src/common/bufferviewmanager.h index 19ebf8c3..a18cb35b 100644 --- a/src/common/bufferviewmanager.h +++ b/src/common/bufferviewmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/cliparser.cpp b/src/common/cliparser.cpp index 5168ea22..2e94e559 100644 --- a/src/common/cliparser.cpp +++ b/src/common/cliparser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -32,10 +32,8 @@ CliParser::CliParser() : AbstractCliParser() } -void CliParser::addArgument(const QString &longName_, const CliParserArg &arg) +void CliParser::addArgument(const QString &longName, const CliParserArg &arg) { - QString longName = longName_; - longName.remove(QRegExp("\\s*<.*>\\s*")); // KCmdLineArgs takes args of the form "arg " if (argsMap.contains(longName)) qWarning() << "Warning: Multiple definition of argument" << longName; if (arg.shortName != 0 && !lnameOfShortArg(arg.shortName).isNull()) qWarning().nospace() << "Warning: Redefining shortName '" << arg.shortName << "' for " << longName << " previously defined for " << lnameOfShortArg(arg.shortName); @@ -189,8 +187,8 @@ void CliParser::usage() } else output.append(" "); lnameField.append(" --").append(arg.key()); - if (arg.value().type == CliParserArg::CliArgOption) { - lnameField.append("=[").append(arg.key().toUpper()).append("]"); + if (arg.value().type == CliParserArg::CliArgOption && !arg.value().valueName.isEmpty()) { + lnameField.append("=<").append(arg.value().valueName).append(">"); } output.append(lnameField.leftJustified(lnameFieldSize)); if (!arg.value().help.isEmpty()) { diff --git a/src/common/cliparser.h b/src/common/cliparser.h index 24039264..d659cec0 100644 --- a/src/common/cliparser.h +++ b/src/common/cliparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/compressor.cpp b/src/common/compressor.cpp index f391a43b..fd4fb3c9 100644 --- a/src/common/compressor.cpp +++ b/src/common/compressor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/compressor.h b/src/common/compressor.h index d9103221..eedc545a 100644 --- a/src/common/compressor.h +++ b/src/common/compressor.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/coreinfo.h b/src/common/coreinfo.h index f96a0e81..c34620fd 100644 --- a/src/common/coreinfo.h +++ b/src/common/coreinfo.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ctcpevent.cpp b/src/common/ctcpevent.cpp index 5fbfdb26..19455b22 100644 --- a/src/common/ctcpevent.cpp +++ b/src/common/ctcpevent.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ctcpevent.h b/src/common/ctcpevent.h index 1a59c619..e143e2f1 100644 --- a/src/common/ctcpevent.h +++ b/src/common/ctcpevent.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/event.cpp b/src/common/event.cpp index 1abea9f9..2306adc9 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/event.h b/src/common/event.h index fbca50e2..be172430 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/eventmanager.cpp b/src/common/eventmanager.cpp index 203ad8a2..de3d0d24 100644 --- a/src/common/eventmanager.cpp +++ b/src/common/eventmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/eventmanager.h b/src/common/eventmanager.h index e3b29800..ec140649 100644 --- a/src/common/eventmanager.h +++ b/src/common/eventmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/identity.cpp b/src/common/identity.cpp index 5fe2d070..b370c58a 100644 --- a/src/common/identity.cpp +++ b/src/common/identity.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/identity.h b/src/common/identity.h index e0757b1d..dc34fe87 100644 --- a/src/common/identity.h +++ b/src/common/identity.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ignorelistmanager.cpp b/src/common/ignorelistmanager.cpp index 845af07c..cdd15ebe 100644 --- a/src/common/ignorelistmanager.cpp +++ b/src/common/ignorelistmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ignorelistmanager.h b/src/common/ignorelistmanager.h index 72ca0af9..a2d3368b 100644 --- a/src/common/ignorelistmanager.h +++ b/src/common/ignorelistmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/internalpeer.cpp b/src/common/internalpeer.cpp index a5e50051..14008398 100644 --- a/src/common/internalpeer.cpp +++ b/src/common/internalpeer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/internalpeer.h b/src/common/internalpeer.h index 1a52fda7..97499bd7 100644 --- a/src/common/internalpeer.h +++ b/src/common/internalpeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ircchannel.cpp b/src/common/ircchannel.cpp index 145a1986..89b3b330 100644 --- a/src/common/ircchannel.cpp +++ b/src/common/ircchannel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ircchannel.h b/src/common/ircchannel.h index 693ed9c5..713bd3f4 100644 --- a/src/common/ircchannel.h +++ b/src/common/ircchannel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ircevent.cpp b/src/common/ircevent.cpp index 3b0ddd1b..d5fe3c01 100644 --- a/src/common/ircevent.cpp +++ b/src/common/ircevent.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ircevent.h b/src/common/ircevent.h index 34fe0c0d..18693287 100644 --- a/src/common/ircevent.h +++ b/src/common/ircevent.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/irclisthelper.cpp b/src/common/irclisthelper.cpp index a09975ed..68f4a997 100644 --- a/src/common/irclisthelper.cpp +++ b/src/common/irclisthelper.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/irclisthelper.h b/src/common/irclisthelper.h index 08fc629d..ac8a7e01 100644 --- a/src/common/irclisthelper.h +++ b/src/common/irclisthelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ircuser.cpp b/src/common/ircuser.cpp index d7276fdc..543f2b71 100644 --- a/src/common/ircuser.cpp +++ b/src/common/ircuser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/ircuser.h b/src/common/ircuser.h index 3424a63c..c8840ed8 100644 --- a/src/common/ircuser.h +++ b/src/common/ircuser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/logbacktrace_unix.cpp b/src/common/logbacktrace_unix.cpp index cc9cbf67..72941e13 100644 --- a/src/common/logbacktrace_unix.cpp +++ b/src/common/logbacktrace_unix.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/logbacktrace_win.cpp b/src/common/logbacktrace_win.cpp index 26951cd9..8ac2cb12 100644 --- a/src/common/logbacktrace_win.cpp +++ b/src/common/logbacktrace_win.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/logger.cpp b/src/common/logger.cpp index 27a3f6d7..73f6b50c 100644 --- a/src/common/logger.cpp +++ b/src/common/logger.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/logger.h b/src/common/logger.h index 2caa5d39..910c555d 100644 --- a/src/common/logger.h +++ b/src/common/logger.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/mac_utils.cpp b/src/common/mac_utils.cpp index a562b4d6..a9b25d25 100644 --- a/src/common/mac_utils.cpp +++ b/src/common/mac_utils.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/mac_utils.h b/src/common/mac_utils.h index 7b3ba88e..2acf503e 100644 --- a/src/common/mac_utils.h +++ b/src/common/mac_utils.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/main.cpp b/src/common/main.cpp index 7884dfa6..9d75da4e 100644 --- a/src/common/main.cpp +++ b/src/common/main.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,11 +20,15 @@ #include +#include + #ifdef BUILD_CORE # include "coreapplication.h" #elif defined BUILD_QTUI +# include "aboutdata.h" # include "qtuiapplication.h" #elif defined BUILD_MONO +# include "aboutdata.h" # include "monoapplication.h" #else @@ -32,13 +36,24 @@ #endif // We don't want quasselcore to depend on KDE -#if defined HAVE_KDE && defined BUILD_CORE -# undef HAVE_KDE +#if defined HAVE_KDE4 && defined BUILD_CORE +# undef HAVE_KDE4 +#endif +// We don't want quasselcore to depend on KDE +#if defined HAVE_KF5 && defined BUILD_CORE +# undef HAVE_KF5 #endif -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # include "kcmdlinewrapper.h" +#elif defined HAVE_KF5 +# include +# include "qt5cliparser.h" +#elif defined HAVE_QT5 +# include "qt5cliparser.h" +#else +# include "cliparser.h" #endif #if !defined(BUILD_CORE) && defined(STATIC) @@ -47,13 +62,19 @@ Q_IMPORT_PLUGIN(qjpeg) Q_IMPORT_PLUGIN(qgif) #endif -#include "cliparser.h" #include "quassel.h" int main(int argc, char **argv) { +#if QT_VERSION < 0x050000 + // All our source files are in UTF-8, and Qt5 even requires that + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); +#endif + Quassel::setupBuildInfo(); QCoreApplication::setApplicationName(Quassel::buildInfo().applicationName); + QCoreApplication::setApplicationVersion(Quassel::buildInfo().plainVersionString); QCoreApplication::setOrganizationName(Quassel::buildInfo().organizationName); QCoreApplication::setOrganizationDomain(Quassel::buildInfo().organizationDomain); @@ -67,26 +88,24 @@ int main(int argc, char **argv) Q_INIT_RESOURCE(sql); #endif #ifndef BUILD_CORE - Q_INIT_RESOURCE(pics); // always in a resource, for now + Q_INIT_RESOURCE(pics); + Q_INIT_RESOURCE(hicolor); #endif #ifdef EMBED_DATA Q_INIT_RESOURCE(i18n); # ifndef BUILD_CORE Q_INIT_RESOURCE(data); - Q_INIT_RESOURCE(hicolor); - Q_INIT_RESOURCE(oxygen); # ifdef WITH_OXYGEN - Q_INIT_RESOURCE(oxygen_kde); + Q_INIT_RESOURCE(oxygen); # endif # endif #endif AbstractCliParser *cliParser; -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 // We need to init KCmdLineArgs first - // TODO: build an AboutData compat class to replace our aboutDlg strings KAboutData aboutData("quassel", "kdelibs4", ki18n("Quassel IRC"), Quassel::buildInfo().plainVersionString.toUtf8(), ki18n("A modern, distributed IRC client")); aboutData.addLicense(KAboutData::License_GPL_V2); @@ -96,6 +115,8 @@ int main(int argc, char **argv) KCmdLineArgs::init(argc, argv, &aboutData); cliParser = new KCmdLineWrapper(); +#elif defined HAVE_QT5 + cliParser = new Qt5CliParser(); #else cliParser = new CliParser(); #endif @@ -103,47 +124,49 @@ int main(int argc, char **argv) // Initialize CLI arguments // NOTE: We can't use tr() at this point, since app is not yet created + // TODO: Change this once we get rid of KDE4 and can initialize the parser after creating the app // put shared client&core arguments here cliParser->addSwitch("debug", 'd', "Enable debug output"); cliParser->addSwitch("help", 'h', "Display this help and exit"); cliParser->addSwitch("version", 'v', "Display version information"); #ifdef BUILD_QTUI - cliParser->addOption("configdir ", 'c', "Specify the directory holding the client configuration"); + cliParser->addOption("configdir", 'c', "Specify the directory holding the client configuration", "path"); #else - cliParser->addOption("configdir ", 'c', "Specify the directory holding configuration files, the SQlite database and the SSL certificate"); + cliParser->addOption("configdir", 'c', "Specify the directory holding configuration files, the SQlite database and the SSL certificate", "path"); #endif - cliParser->addOption("datadir ", 0, "DEPRECATED - Use --configdir instead"); + cliParser->addOption("datadir", 0, "DEPRECATED - Use --configdir instead", "path"); #ifndef BUILD_CORE // put client-only arguments here - cliParser->addOption("qss ", 0, "Load a custom application stylesheet"); + cliParser->addOption("icontheme", 0, "Override the system icon theme ('oxygen' is recommended)", "theme"); + cliParser->addOption("qss", 0, "Load a custom application stylesheet", "file.qss"); cliParser->addSwitch("debugbufferswitches", 0, "Enables debugging for bufferswitches"); cliParser->addSwitch("debugmodel", 0, "Enables debugging for models"); cliParser->addSwitch("hidewindow", 0, "Start the client minimized to the system tray"); #endif #ifndef BUILD_QTUI // put core-only arguments here - cliParser->addOption("listen
[,", 0, "The address(es) quasselcore will listen on", "::,0.0.0.0"); - cliParser->addOption("port ", 'p', "The port quasselcore will listen at", QString("4242")); + cliParser->addOption("listen", 0, "The address(es) quasselcore will listen on", "
[,
[,...]]", "::,0.0.0.0"); + cliParser->addOption("port", 'p', "The port quasselcore will listen at", "port", "4242"); cliParser->addSwitch("norestore", 'n', "Don't restore last core's state"); - cliParser->addOption("loglevel ", 'L', "Loglevel Debug|Info|Warning|Error", "Info"); + cliParser->addOption("loglevel", 'L', "Loglevel Debug|Info|Warning|Error", "level", "Info"); #ifdef HAVE_SYSLOG cliParser->addSwitch("syslog", 0, "Log to syslog"); #endif - cliParser->addOption("logfile ", 'l', "Log to a file"); - cliParser->addOption("select-backend ", 0, "Switch storage backend (migrating data if possible)"); + cliParser->addOption("logfile", 'l', "Log to a file", "path"); + cliParser->addOption("select-backend", 0, "Switch storage backend (migrating data if possible)", "backendidentifier"); cliParser->addSwitch("add-user", 0, "Starts an interactive session to add a new core user"); - cliParser->addOption("change-userpass ", 0, "Starts an interactive session to change the password of the user identified by username"); + cliParser->addOption("change-userpass", 0, "Starts an interactive session to change the password of the user identified by ", "username"); cliParser->addSwitch("oidentd", 0, "Enable oidentd integration"); - cliParser->addOption("oidentd-conffile ", 0, "Set path to oidentd configuration file"); + cliParser->addOption("oidentd-conffile", 0, "Set path to oidentd configuration file", "file"); #ifdef HAVE_SSL cliParser->addSwitch("require-ssl", 0, "Require SSL for client connections"); #endif cliParser->addSwitch("enable-experimental-dcc", 0, "Enable highly experimental and unfinished support for CTCP DCC (DANGEROUS)"); #endif -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 // the KDE version needs this extra call to parse argc/argv before app is instantiated if (!cliParser->init()) { cliParser->usage(); @@ -159,7 +182,7 @@ int main(int argc, char **argv) MonolithicApplication app(argc, argv); # endif -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 // the non-KDE version parses after app has been instantiated if (!cliParser->init(app.arguments())) { cliParser->usage(); @@ -167,6 +190,15 @@ int main(int argc, char **argv) } #endif - if (!app.init()) return EXIT_FAILURE; + if (!app.init()) + return EXIT_FAILURE; + +#ifdef HAVE_KF5 + // FIXME: This should be done after loading the translation catalogue, but still in main() + AboutData aboutData; + AboutData::setQuasselPersons(&aboutData); + KAboutData::setApplicationData(aboutData.kAboutData()); +#endif + return app.exec(); } diff --git a/src/common/message.cpp b/src/common/message.cpp index d83edbd5..2c015766 100644 --- a/src/common/message.cpp +++ b/src/common/message.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/message.h b/src/common/message.h index e2fbcaba..402faeaa 100644 --- a/src/common/message.h +++ b/src/common/message.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/messageevent.cpp b/src/common/messageevent.cpp index a4a895ff..88b26ff2 100644 --- a/src/common/messageevent.cpp +++ b/src/common/messageevent.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/messageevent.h b/src/common/messageevent.h index 5c0ca56b..aa7e75ec 100644 --- a/src/common/messageevent.h +++ b/src/common/messageevent.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/network.cpp b/src/common/network.cpp index 40881de1..24ce1259 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/network.h b/src/common/network.h index b8210529..190c62c0 100644 --- a/src/common/network.h +++ b/src/common/network.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/networkconfig.cpp b/src/common/networkconfig.cpp index bb18d48d..a47a4418 100644 --- a/src/common/networkconfig.cpp +++ b/src/common/networkconfig.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/networkconfig.h b/src/common/networkconfig.h index 79489b07..c1a0f907 100644 --- a/src/common/networkconfig.h +++ b/src/common/networkconfig.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/networkevent.cpp b/src/common/networkevent.cpp index 6ef957ae..edb62adf 100644 --- a/src/common/networkevent.cpp +++ b/src/common/networkevent.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/networkevent.h b/src/common/networkevent.h index 82a4b8dd..3ef1bd3a 100644 --- a/src/common/networkevent.h +++ b/src/common/networkevent.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/peer.cpp b/src/common/peer.cpp index 2cbdb74f..14041597 100644 --- a/src/common/peer.cpp +++ b/src/common/peer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/peer.h b/src/common/peer.h index 2bdcc563..a21e9c1b 100644 --- a/src/common/peer.h +++ b/src/common/peer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/peerfactory.cpp b/src/common/peerfactory.cpp index 2364b719..580c2baa 100644 --- a/src/common/peerfactory.cpp +++ b/src/common/peerfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/peerfactory.h b/src/common/peerfactory.h index 6b1bdf3c..1ec58909 100644 --- a/src/common/peerfactory.h +++ b/src/common/peerfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/presetnetworks.cpp b/src/common/presetnetworks.cpp index ac89f4ac..58a4be9d 100644 --- a/src/common/presetnetworks.cpp +++ b/src/common/presetnetworks.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/presetnetworks.h b/src/common/presetnetworks.h index 6dc85f7f..522e7fc8 100644 --- a/src/common/presetnetworks.h +++ b/src/common/presetnetworks.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/protocol.h b/src/common/protocol.h index b219e018..15f5e5d3 100644 --- a/src/common/protocol.h +++ b/src/common/protocol.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/protocols/datastream/datastreampeer.cpp b/src/common/protocols/datastream/datastreampeer.cpp index 393d0e2c..d3bd1109 100644 --- a/src/common/protocols/datastream/datastreampeer.cpp +++ b/src/common/protocols/datastream/datastreampeer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/protocols/datastream/datastreampeer.h b/src/common/protocols/datastream/datastreampeer.h index e01fb347..1648c3a2 100644 --- a/src/common/protocols/datastream/datastreampeer.h +++ b/src/common/protocols/datastream/datastreampeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/protocols/legacy/legacypeer.cpp b/src/common/protocols/legacy/legacypeer.cpp index 98a7afa9..6c4a7161 100644 --- a/src/common/protocols/legacy/legacypeer.cpp +++ b/src/common/protocols/legacy/legacypeer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/protocols/legacy/legacypeer.h b/src/common/protocols/legacy/legacypeer.h index ce960fa4..0fe1328a 100644 --- a/src/common/protocols/legacy/legacypeer.h +++ b/src/common/protocols/legacy/legacypeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/icon.h b/src/common/qt5cliparser.cpp similarity index 51% rename from src/uisupport/icon.h rename to src/common/qt5cliparser.cpp index b794cd69..e2249112 100644 --- a/src/uisupport/icon.h +++ b/src/common/qt5cliparser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,40 +18,55 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef ICON_H_ -#define ICON_H_ +#include "qt5cliparser.h" -#ifndef HAVE_KDE +#include +#include -#include +bool Qt5CliParser::init(const QStringList &arguments) +{ + _qCliParser.addHelpOption(); + _qCliParser.addVersionOption(); + _qCliParser.setApplicationDescription(QCoreApplication::translate("CliParser", "Quassel IRC is a modern, distributed IRC client.")); + + _qCliParser.process(arguments); + return true; // process() does error handling by itself +} -/// A very thin wrapper around QIcon -/** This wrapper class allows us to load an icon by its theme name rather than its full file name. - * The overloaded ctor uses IconLoader to locate an icon with this basename in the current theme - * or in Qt Resources. - */ -class Icon : public QIcon + +bool Qt5CliParser::isSet(const QString &longName) { -public: - Icon(); - explicit Icon(const QString &iconName); - explicit Icon(const QIcon ©); - Icon &operator=(const Icon &other); -}; + return _qCliParser.isSet(longName); +} -#else /* HAVE_KDE */ -#include -class Icon : public KIcon +QString Qt5CliParser::value(const QString &longName) { -public: - inline Icon() : KIcon() {}; - inline explicit Icon(const QString &iconName) : KIcon(iconName) {}; - inline explicit Icon(const QIcon ©) : KIcon(copy) {}; -}; + return _qCliParser.value(longName); +} -#endif /* HAVE_KDE */ +void Qt5CliParser::usage() +{ + _qCliParser.showHelp(); +} + + +void Qt5CliParser::addArgument(const QString &longName, const AbstractCliParser::CliParserArg &arg) +{ + QStringList names(longName); + if (arg.shortName != 0) + names << QString(arg.shortName); -#endif + switch(arg.type) { + case CliParserArg::CliArgSwitch: + _qCliParser.addOption(QCommandLineOption(names, arg.help)); + break; + case CliParserArg::CliArgOption: + _qCliParser.addOption(QCommandLineOption(names, arg.help, arg.valueName, arg.def)); + break; + default: + qWarning() << "Warning: Unrecognized argument:" << longName; + } +} diff --git a/src/uisupport/icon.cpp b/src/common/qt5cliparser.h similarity index 74% rename from src/uisupport/icon.cpp rename to src/common/qt5cliparser.h index b4b86efd..1a7e7889 100644 --- a/src/uisupport/icon.cpp +++ b/src/common/qt5cliparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,34 +18,25 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef HAVE_KDE +#pragma once -#include "icon.h" -#include "iconloader.h" +#include -Icon::Icon() : QIcon() -{ -} +#include "abstractcliparser.h" -Icon::Icon(const QString &name) : QIcon() +class Qt5CliParser : public AbstractCliParser { - addPixmap(IconLoader::global()->loadIcon(name, IconLoader::Desktop)); -} - +public: + bool init(const QStringList &arguments = QStringList()); -Icon::Icon(const QIcon ©) : QIcon(copy) -{ -} + QString value(const QString &longName); + bool isSet(const QString &longName); + void usage(); +private: + void addArgument(const QString &longName, const CliParserArg &arg); -Icon &Icon::operator=(const Icon &other) -{ - if (this != &other) { - QIcon::operator=(other); - } - return *this; -} - + QCommandLineParser _qCliParser; -#endif +}; diff --git a/src/common/quassel.cpp b/src/common/quassel.cpp index f5954c0d..c9da049c 100644 --- a/src/common/quassel.cpp +++ b/src/common/quassel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -112,6 +112,7 @@ bool Quassel::init() _initialized = true; qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime())); + setupEnvironment(); registerMetaTypes(); Network::setDefaultCodecForServer("ISO-8859-1"); @@ -211,9 +212,40 @@ void Quassel::registerMetaTypes() } +void Quassel::setupEnvironment() +{ + // On modern Linux systems, XDG_DATA_DIRS contains a list of directories containing application data. This + // is, for example, used by Qt for finding icons and other things. In case Quassel is installed in a non-standard + // prefix (or run from the build directory), it makes sense to add this to XDG_DATA_DIRS so we don't have to + // hack extra search paths into various places. +#ifdef Q_OS_UNIX + QString xdgDataVar = QFile::decodeName(qgetenv("XDG_DATA_DIRS")); + if (xdgDataVar.isEmpty()) + xdgDataVar = QLatin1String("/usr/local/share:/usr/share"); // sane defaults + + QStringList xdgDirs = xdgDataVar.split(QLatin1Char(':'), QString::SkipEmptyParts); + + // Add our install prefix (if we're not in a bindir, this just adds the current workdir) + QString appDir = QCoreApplication::applicationDirPath(); + int binpos = appDir.lastIndexOf("/bin"); + if (binpos >= 0) { + appDir.replace(binpos, 4, "/share"); + xdgDirs.append(appDir); + // Also append apps/quassel, this is only for QIconLoader to find icons there + xdgDirs.append(appDir + "/apps/quassel"); + } else + xdgDirs.append(appDir); // build directory is always the last fallback + + xdgDirs.removeDuplicates(); + + qputenv("XDG_DATA_DIRS", QFile::encodeName(xdgDirs.join(":"))); +#endif +} + + void Quassel::setupBuildInfo() { - _buildInfo.applicationName = "Quassel IRC"; + _buildInfo.applicationName = "quassel"; _buildInfo.coreApplicationName = "quasselcore"; _buildInfo.clientApplicationName = "quasselclient"; _buildInfo.organizationName = "Quassel Project"; diff --git a/src/common/quassel.h b/src/common/quassel.h index b141f32f..bcfad072 100644 --- a/src/common/quassel.h +++ b/src/common/quassel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -148,6 +148,7 @@ protected: inline void disableCrashhandler(); private: + void setupEnvironment(); void registerMetaTypes(); static void handleSignal(int signal); diff --git a/src/common/remotepeer.cpp b/src/common/remotepeer.cpp index 948bffa7..e8fa578d 100644 --- a/src/common/remotepeer.cpp +++ b/src/common/remotepeer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -252,11 +252,7 @@ void RemotePeer::handle(const HeartBeat &heartBeat) void RemotePeer::handle(const HeartBeatReply &heartBeatReply) { _heartBeatCount = 0; -#if QT_VERSION >= 0x040700 emit lagUpdated(heartBeatReply.timestamp.msecsTo(QDateTime::currentDateTime().toUTC()) / 2); -#else - emit lagUpdated(heartBeatReply.timestamp.time().msecsTo(QDateTime::currentDateTime().toUTC().time()) / 2); -#endif } diff --git a/src/common/remotepeer.h b/src/common/remotepeer.h index 44898297..5650120e 100644 --- a/src/common/remotepeer.h +++ b/src/common/remotepeer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/settings.cpp b/src/common/settings.cpp index d89b8500..4363f091 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/settings.h b/src/common/settings.h index 4f556d79..ebd36c22 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/signalproxy.cpp b/src/common/signalproxy.cpp index e085cbba..d9102fd3 100644 --- a/src/common/signalproxy.cpp +++ b/src/common/signalproxy.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/signalproxy.h b/src/common/signalproxy.h index 97efc2d7..7fefdadd 100644 --- a/src/common/signalproxy.h +++ b/src/common/signalproxy.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/syncableobject.cpp b/src/common/syncableobject.cpp index 0a142037..b4f395fe 100644 --- a/src/common/syncableobject.cpp +++ b/src/common/syncableobject.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/syncableobject.h b/src/common/syncableobject.h index 3ddef14c..08bd2e30 100644 --- a/src/common/syncableobject.h +++ b/src/common/syncableobject.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/transfer.cpp b/src/common/transfer.cpp index 60375137..460b0676 100644 --- a/src/common/transfer.cpp +++ b/src/common/transfer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/transfer.h b/src/common/transfer.h index cacfeaac..00948514 100644 --- a/src/common/transfer.h +++ b/src/common/transfer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/transfermanager.cpp b/src/common/transfermanager.cpp index 257f4b28..5e5af46e 100644 --- a/src/common/transfermanager.cpp +++ b/src/common/transfermanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/transfermanager.h b/src/common/transfermanager.h index d2a888bb..941e11ce 100644 --- a/src/common/transfermanager.h +++ b/src/common/transfermanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/types.h b/src/common/types.h index a63e2967..c69660f8 100644 --- a/src/common/types.h +++ b/src/common/types.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/util.cpp b/src/common/util.cpp index 4797e72b..a6acf589 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/common/util.h b/src/common/util.h index aac83800..25f6cc5b 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 6a0611af..43e68402 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -54,6 +54,13 @@ if (QCA2_FOUND) list(APPEND LIBS ${QCA2_LIBRARIES}) endif() +if (QCA2-QT5_FOUND) + add_definitions(-DHAVE_QCA2) + include_directories(${QCA2-QT5_INCLUDE_DIR}) + list(APPEND SOURCES cipher.cpp) + list(APPEND LIBS ${QCA2-QT5_LIBRARIES}) +endif() + include_directories(${CMAKE_SOURCE_DIR}/src/common) set(CORE_RCS ${CORE_RCS} ${CMAKE_CURRENT_SOURCE_DIR}/sql.qrc) @@ -62,8 +69,4 @@ qt_add_resources(SOURCES ${CORE_RCS}) add_library(mod_core STATIC ${SOURCES}) qt_use_modules(mod_core Core Network Script Sql) -add_dependencies(mod_core mod_common) - -if (LIBS) - target_link_libraries(mod_core ${LIBS}) -endif() +target_link_libraries(mod_core mod_common ${LIBS}) diff --git a/src/core/abstractsqlstorage.cpp b/src/core/abstractsqlstorage.cpp index 4554f3f6..cb074547 100644 --- a/src/core/abstractsqlstorage.cpp +++ b/src/core/abstractsqlstorage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/abstractsqlstorage.h b/src/core/abstractsqlstorage.h index 3e7b379f..90a8aa98 100644 --- a/src/core/abstractsqlstorage.h +++ b/src/core/abstractsqlstorage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/cipher.cpp b/src/core/cipher.cpp index 7cc75d0a..a8232a3c 100644 --- a/src/core/cipher.cpp +++ b/src/core/cipher.cpp @@ -364,6 +364,10 @@ QByteArray Cipher::blowfishECB(QByteArray cipherText, bool direction) } else { + // ECB Blowfish encodes in blocks of 12 chars, so anything else is malformed input + if ((temp.length() % 12) != 0) + return cipherText; + temp = b64ToByte(temp); while ((temp.length() % 8) != 0) temp.append('\0'); } @@ -376,8 +380,13 @@ QByteArray Cipher::blowfishECB(QByteArray cipherText, bool direction) if (!cipher.ok()) return cipherText; - if (direction) + if (direction) { + // Sanity check + if ((temp2.length() % 8) != 0) + return cipherText; + temp2 = byteToB64(temp2); + } return temp2; } @@ -420,13 +429,13 @@ QByteArray Cipher::byteToB64(QByteArray text) right += v; for (int i = 0; i < 6; i++) { - encoded.append(base64.at(right & 0x3F).toAscii()); + encoded.append(base64.at(right & 0x3F).toLatin1()); right = right >> 6; } - //TODO make sure the .toascii doesn't break anything + //TODO make sure the .toLatin1 doesn't break anything for (int i = 0; i < 6; i++) { - encoded.append(base64.at(left & 0x3F).toAscii()); + encoded.append(base64.at(left & 0x3F).toLatin1()); left = left >> 6; } } diff --git a/src/core/core.cpp b/src/core/core.cpp index 7068f84e..e7b56392 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -222,7 +222,7 @@ Core::~Core() foreach(CoreAuthHandler *handler, _connectingClients) { handler->deleteLater(); // disconnect non authed clients } - qDeleteAll(sessions); + qDeleteAll(_sessions); qDeleteAll(_storageBackends); } @@ -234,7 +234,8 @@ void Core::saveState() CoreSettings s; QVariantMap state; QVariantList activeSessions; - foreach(UserId user, instance()->sessions.keys()) activeSessions << QVariant::fromValue(user); + foreach(UserId user, instance()->_sessions.keys()) + activeSessions << QVariant::fromValue(user); state["CoreStateVersion"] = 1; state["ActiveSessions"] = activeSessions; s.setCoreState(state); @@ -247,7 +248,7 @@ void Core::restoreState() // qWarning() << qPrintable(tr("Cannot restore a state for an unconfigured core!")); return; } - if (instance()->sessions.count()) { + if (instance()->_sessions.count()) { qWarning() << qPrintable(tr("Calling restoreState() even though active sessions exist!")); return; } @@ -265,7 +266,7 @@ void Core::restoreState() quInfo() << "Restoring previous core state..."; foreach(QVariant v, activeSessions) { UserId user = v.value(); - instance()->createSession(user, true); + instance()->sessionForUser(user, true); } } } @@ -577,19 +578,7 @@ void Core::setupClientSession(RemotePeer *peer, UserId uid) handler->deleteLater(); // Find or create session for validated user - SessionThread *session; - if (sessions.contains(uid)) { - session = sessions[uid]; - } - else { - session = createSession(uid); - if (!session) { - qWarning() << qPrintable(tr("Could not initialize session for client:")) << qPrintable(peer->description()); - peer->close(); - peer->deleteLater(); - return; - } - } + sessionForUser(uid); // as we are currently handling an event triggered by incoming data on this socket // it is unsafe to directly move the socket to the client thread. @@ -610,14 +599,7 @@ void Core::customEvent(QEvent *event) void Core::addClientHelper(RemotePeer *peer, UserId uid) { // Find or create session for validated user - if (!sessions.contains(uid)) { - qWarning() << qPrintable(tr("Could not find a session for client:")) << qPrintable(peer->description()); - peer->close(); - peer->deleteLater(); - return; - } - - SessionThread *session = sessions[uid]; + SessionThread *session = sessionForUser(uid); session->addClient(peer); } @@ -643,26 +625,20 @@ void Core::setupInternalClientSession(InternalPeer *clientPeer) clientPeer->setPeer(corePeer); // Find or create session for validated user - SessionThread *sessionThread; - if (sessions.contains(uid)) - sessionThread = sessions[uid]; - else - sessionThread = createSession(uid); - + SessionThread *sessionThread = sessionForUser(uid); sessionThread->addClient(corePeer); } -SessionThread *Core::createSession(UserId uid, bool restore) +SessionThread *Core::sessionForUser(UserId uid, bool restore) { - if (sessions.contains(uid)) { - qWarning() << "Calling createSession() when a session for the user already exists!"; - return 0; - } - SessionThread *sess = new SessionThread(uid, restore, this); - sessions[uid] = sess; - sess->start(); - return sess; + if (_sessions.contains(uid)) + return _sessions[uid]; + + SessionThread *session = new SessionThread(uid, restore, this); + _sessions[uid] = session; + session->start(); + return session; } diff --git a/src/core/core.h b/src/core/core.h index c71dfa8c..a17211d8 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -530,7 +530,7 @@ private: void init(); static Core *instanceptr; - SessionThread *createSession(UserId userId, bool restoreState = false); + SessionThread *sessionForUser(UserId userId, bool restoreState = false); void addClientHelper(RemotePeer *peer, UserId uid); //void processCoreSetup(QTcpSocket *socket, QVariantMap &msg); QString setupCoreForInternalUsage(); @@ -547,7 +547,7 @@ private: private: QSet _connectingClients; - QHash sessions; + QHash _sessions; Storage *_storage; QTimer _storageSyncTimer; diff --git a/src/core/corealiasmanager.cpp b/src/core/corealiasmanager.cpp index 2669a631..4ba6a912 100644 --- a/src/core/corealiasmanager.cpp +++ b/src/core/corealiasmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corealiasmanager.h b/src/core/corealiasmanager.h index 1ad3b45a..65b24f98 100644 --- a/src/core/corealiasmanager.h +++ b/src/core/corealiasmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreapplication.cpp b/src/core/coreapplication.cpp index 2ea44f85..9b48adb9 100644 --- a/src/core/coreapplication.cpp +++ b/src/core/coreapplication.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreapplication.h b/src/core/coreapplication.h index 3be2dbee..11ba7bc4 100644 --- a/src/core/coreapplication.h +++ b/src/core/coreapplication.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreauthhandler.cpp b/src/core/coreauthhandler.cpp index d52a50b8..75a29282 100644 --- a/src/core/coreauthhandler.cpp +++ b/src/core/coreauthhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreauthhandler.h b/src/core/coreauthhandler.h index bb0b28b8..a16ca1de 100644 --- a/src/core/coreauthhandler.h +++ b/src/core/coreauthhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebacklogmanager.cpp b/src/core/corebacklogmanager.cpp index bfa3f797..bb1d93f5 100644 --- a/src/core/corebacklogmanager.cpp +++ b/src/core/corebacklogmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebacklogmanager.h b/src/core/corebacklogmanager.h index 8ea273a6..cda1e636 100644 --- a/src/core/corebacklogmanager.h +++ b/src/core/corebacklogmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebasichandler.cpp b/src/core/corebasichandler.cpp index d2bb0d5a..dfa8a996 100644 --- a/src/core/corebasichandler.cpp +++ b/src/core/corebasichandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebasichandler.h b/src/core/corebasichandler.h index a9b74d31..20d057fc 100644 --- a/src/core/corebasichandler.h +++ b/src/core/corebasichandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebuffersyncer.cpp b/src/core/corebuffersyncer.cpp index 5e61de2a..fc4812a2 100644 --- a/src/core/corebuffersyncer.cpp +++ b/src/core/corebuffersyncer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebuffersyncer.h b/src/core/corebuffersyncer.h index 2c71247a..05ddd6ad 100644 --- a/src/core/corebuffersyncer.h +++ b/src/core/corebuffersyncer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebufferviewconfig.cpp b/src/core/corebufferviewconfig.cpp index dff072de..3fa9a467 100644 --- a/src/core/corebufferviewconfig.cpp +++ b/src/core/corebufferviewconfig.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebufferviewconfig.h b/src/core/corebufferviewconfig.h index e8f29da4..8658ebd1 100644 --- a/src/core/corebufferviewconfig.h +++ b/src/core/corebufferviewconfig.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebufferviewmanager.cpp b/src/core/corebufferviewmanager.cpp index de37c07e..2c63d921 100644 --- a/src/core/corebufferviewmanager.cpp +++ b/src/core/corebufferviewmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corebufferviewmanager.h b/src/core/corebufferviewmanager.h index d8b56b7a..a6f6f4f9 100644 --- a/src/core/corebufferviewmanager.h +++ b/src/core/corebufferviewmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corecoreinfo.cpp b/src/core/corecoreinfo.cpp index 999c6bc0..36d70a61 100644 --- a/src/core/corecoreinfo.cpp +++ b/src/core/corecoreinfo.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corecoreinfo.h b/src/core/corecoreinfo.h index 1276a50d..5ef95eda 100644 --- a/src/core/corecoreinfo.h +++ b/src/core/corecoreinfo.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreeventmanager.h b/src/core/coreeventmanager.h index 10159c8a..c637aa6b 100644 --- a/src/core/coreeventmanager.h +++ b/src/core/coreeventmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreidentity.cpp b/src/core/coreidentity.cpp index f62411a9..02c2ca4a 100644 --- a/src/core/coreidentity.cpp +++ b/src/core/coreidentity.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreidentity.h b/src/core/coreidentity.h index 3950f6b0..75eeee56 100644 --- a/src/core/coreidentity.h +++ b/src/core/coreidentity.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreignorelistmanager.cpp b/src/core/coreignorelistmanager.cpp index 3b630f35..05445cac 100644 --- a/src/core/coreignorelistmanager.cpp +++ b/src/core/coreignorelistmanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreignorelistmanager.h b/src/core/coreignorelistmanager.h index fe2df1b2..c0f90adf 100644 --- a/src/core/coreignorelistmanager.h +++ b/src/core/coreignorelistmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreircchannel.cpp b/src/core/coreircchannel.cpp index 4f2f4f31..ccb82a50 100644 --- a/src/core/coreircchannel.cpp +++ b/src/core/coreircchannel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreircchannel.h b/src/core/coreircchannel.h index 3cfd1a68..d5fc3770 100644 --- a/src/core/coreircchannel.h +++ b/src/core/coreircchannel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreirclisthelper.cpp b/src/core/coreirclisthelper.cpp index 54292365..aefcec9d 100644 --- a/src/core/coreirclisthelper.cpp +++ b/src/core/coreirclisthelper.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreirclisthelper.h b/src/core/coreirclisthelper.h index 3b214523..76767cdf 100644 --- a/src/core/coreirclisthelper.h +++ b/src/core/coreirclisthelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreircuser.cpp b/src/core/coreircuser.cpp index d1e4ee15..b4d02f06 100644 --- a/src/core/coreircuser.cpp +++ b/src/core/coreircuser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreircuser.h b/src/core/coreircuser.h index 77fc0dc4..8b1d0013 100644 --- a/src/core/coreircuser.h +++ b/src/core/coreircuser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index 4223c5f8..7e9ce268 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -232,17 +232,18 @@ void CoreNetwork::disconnectFromIrc(bool requested, const QString &reason, bool _quitReason = reason; displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Disconnecting. (%1)").arg((!requested && !withReconnect) ? tr("Core Shutdown") : _quitReason)); - switch (socket.state()) { - case QAbstractSocket::ConnectedState: - userInputHandler()->issueQuit(_quitReason); + if (socket.state() == QAbstractSocket::UnconnectedState) { + socketDisconnected(); + } else { + if (socket.state() == QAbstractSocket::ConnectedState) { + userInputHandler()->issueQuit(_quitReason); + } else { + socket.close(); + } if (requested || withReconnect) { // the irc server has 10 seconds to close the socket _socketCloseTimer.start(10000); - break; } - default: - socket.close(); - socketDisconnected(); } } @@ -416,11 +417,7 @@ void CoreNetwork::socketHasData() else if (s.endsWith("\n")) s.chop(1); NetworkDataEvent *event = new NetworkDataEvent(EventManager::NetworkIncoming, this, s); -#if QT_VERSION >= 0x040700 event->setTimestamp(QDateTime::currentDateTimeUtc()); -#else - event->setTimestamp(QDateTime::currentDateTime().toUTC()); -#endif emit newEvent(event); } } @@ -450,17 +447,15 @@ void CoreNetwork::socketInitialized() disconnectFromIrc(); return; } - + emit socketOpen(identity, localAddress(), localPort(), peerAddress(), peerPort()); - + Server server = usedServer(); #ifdef HAVE_SSL if (server.useSsl && !socket.isEncrypted()) return; #endif -#if QT_VERSION >= 0x040600 socket.setSocketOption(QAbstractSocket::KeepAliveOption, true); -#endif emit socketInitialized(identity, localAddress(), localPort(), peerAddress(), peerPort()); diff --git a/src/core/corenetwork.h b/src/core/corenetwork.h index c4bea908..87121bab 100644 --- a/src/core/corenetwork.h +++ b/src/core/corenetwork.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corenetworkconfig.cpp b/src/core/corenetworkconfig.cpp index 4520528c..3f4db23d 100644 --- a/src/core/corenetworkconfig.cpp +++ b/src/core/corenetworkconfig.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/corenetworkconfig.h b/src/core/corenetworkconfig.h index 89c4cf96..7450b816 100644 --- a/src/core/corenetworkconfig.h +++ b/src/core/corenetworkconfig.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index ace622fc..112aa856 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coresession.h b/src/core/coresession.h index ade372a3..3eecc4bb 100644 --- a/src/core/coresession.h +++ b/src/core/coresession.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index f3e94e85..eef0dd2e 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coresessioneventprocessor.h b/src/core/coresessioneventprocessor.h index b981be3a..43e6754c 100644 --- a/src/core/coresessioneventprocessor.h +++ b/src/core/coresessioneventprocessor.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coresettings.cpp b/src/core/coresettings.cpp index 0f6ab22b..4837ae0e 100644 --- a/src/core/coresettings.cpp +++ b/src/core/coresettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coresettings.h b/src/core/coresettings.h index 7baa1c56..111ffe7e 100644 --- a/src/core/coresettings.h +++ b/src/core/coresettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coretransfer.cpp b/src/core/coretransfer.cpp index 830c1514..3ccb5a39 100644 --- a/src/core/coretransfer.cpp +++ b/src/core/coretransfer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coretransfer.h b/src/core/coretransfer.h index 85248e61..3244efdf 100644 --- a/src/core/coretransfer.h +++ b/src/core/coretransfer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coretransfermanager.cpp b/src/core/coretransfermanager.cpp index c8f79dda..eb01263f 100644 --- a/src/core/coretransfermanager.cpp +++ b/src/core/coretransfermanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coretransfermanager.h b/src/core/coretransfermanager.h index a01e285d..8d8d5760 100644 --- a/src/core/coretransfermanager.h +++ b/src/core/coretransfermanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreuserinputhandler.cpp b/src/core/coreuserinputhandler.cpp index e9efbaaf..832c2e0c 100644 --- a/src/core/coreuserinputhandler.cpp +++ b/src/core/coreuserinputhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -169,11 +169,7 @@ void CoreUserInputHandler::handleCtcp(const BufferInfo &bufferInfo, const QStrin QString verboseMessage = tr("sending CTCP-%1 request to %2").arg(ctcpTag).arg(nick); if (ctcpTag == "PING") { -#if QT_VERSION >= 0x040700 message = QString::number(QDateTime::currentMSecsSinceEpoch()); -#else - message = QString::number(QDateTime::currentDateTime().toTime_t()); -#endif } // FIXME make this a proper event diff --git a/src/core/coreuserinputhandler.h b/src/core/coreuserinputhandler.h index 3c035082..dd9696c4 100644 --- a/src/core/coreuserinputhandler.h +++ b/src/core/coreuserinputhandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreusersettings.cpp b/src/core/coreusersettings.cpp index 52ddd246..93830529 100644 --- a/src/core/coreusersettings.cpp +++ b/src/core/coreusersettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/coreusersettings.h b/src/core/coreusersettings.h index 54d45274..5cad01cc 100644 --- a/src/core/coreusersettings.h +++ b/src/core/coreusersettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/ctcpparser.cpp b/src/core/ctcpparser.cpp index 33845f66..fba3d13e 100644 --- a/src/core/ctcpparser.cpp +++ b/src/core/ctcpparser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/ctcpparser.h b/src/core/ctcpparser.h index 04626bac..f45cb7a4 100644 --- a/src/core/ctcpparser.h +++ b/src/core/ctcpparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/eventstringifier.cpp b/src/core/eventstringifier.cpp index c9c35ae1..943727cd 100644 --- a/src/core/eventstringifier.cpp +++ b/src/core/eventstringifier.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -733,12 +733,7 @@ void EventStringifier::handleCtcpPing(CtcpEvent *e) if (e->ctcpType() == CtcpEvent::Query) defaultHandler(e->ctcpCmd(), e); else { -#if QT_VERSION >= 0x040700 displayMsg(e, Message::Server, tr("Received CTCP-PING answer from %1 with %2 milliseconds round trip time") .arg(nickFromMask(e->prefix())).arg(QDateTime::fromMSecsSinceEpoch(e->param().toULongLong()).msecsTo(e->timestamp()))); -#else - displayMsg(e, Message::Server, tr("Received CTCP-PING answer from %1 with %2 seconds round trip time") - .arg(nickFromMask(e->prefix())).arg(QDateTime::fromTime_t(e->param().toInt()).secsTo(e->timestamp()))); -#endif } } diff --git a/src/core/eventstringifier.h b/src/core/eventstringifier.h index dc0413fc..7c4c86d3 100644 --- a/src/core/eventstringifier.h +++ b/src/core/eventstringifier.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/ircparser.cpp b/src/core/ircparser.cpp index acc765ad..f5363554 100644 --- a/src/core/ircparser.cpp +++ b/src/core/ircparser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/ircparser.h b/src/core/ircparser.h index bf47f998..e16faca8 100644 --- a/src/core/ircparser.h +++ b/src/core/ircparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/netsplit.cpp b/src/core/netsplit.cpp index 64789cba..f86eef6c 100644 --- a/src/core/netsplit.cpp +++ b/src/core/netsplit.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/netsplit.h b/src/core/netsplit.h index 0ebb96a1..eac19ae1 100644 --- a/src/core/netsplit.h +++ b/src/core/netsplit.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/oidentdconfiggenerator.cpp b/src/core/oidentdconfiggenerator.cpp index 8c5f32ba..1f877cbd 100644 --- a/src/core/oidentdconfiggenerator.cpp +++ b/src/core/oidentdconfiggenerator.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/oidentdconfiggenerator.h b/src/core/oidentdconfiggenerator.h index eb936d8e..aad24d95 100644 --- a/src/core/oidentdconfiggenerator.h +++ b/src/core/oidentdconfiggenerator.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/postgresqlstorage.cpp b/src/core/postgresqlstorage.cpp index bb58da17..11adb1dd 100644 --- a/src/core/postgresqlstorage.cpp +++ b/src/core/postgresqlstorage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -152,12 +152,17 @@ void PostgreSqlStorage::setConnectionProperties(const QVariantMap &properties) int PostgreSqlStorage::installedSchemaVersion() { - QSqlQuery query = logDb().exec("SELECT value FROM coreinfo WHERE key = 'schemaversion'"); + QSqlQuery query(logDb()); + query.prepare("SELECT value FROM coreinfo WHERE key = 'schemaversion'"); + safeExec(query); + watchQuery(query); if (query.first()) return query.value(0).toInt(); // maybe it's really old... (schema version 0) - query = logDb().exec("SELECT MAX(version) FROM coreinfo"); + query.prepare("SELECT MAX(version) FROM coreinfo"); + safeExec(query); + watchQuery(query); if (query.first()) return query.value(0).toInt(); @@ -170,10 +175,10 @@ bool PostgreSqlStorage::updateSchemaVersion(int newVersion) QSqlQuery query(logDb()); query.prepare("UPDATE coreinfo SET value = :version WHERE key = 'schemaversion'"); query.bindValue(":version", newVersion); - query.exec(); + safeExec(query); bool success = true; - if (query.lastError().isValid()) { + if (!watchQuery(query)) { qCritical() << "PostgreSqlStorage::updateSchemaVersion(int): Updating schema version failed!"; success = false; } @@ -186,10 +191,10 @@ bool PostgreSqlStorage::setupSchemaVersion(int version) QSqlQuery query(logDb()); query.prepare("INSERT INTO coreinfo (key, value) VALUES ('schemaversion', :version)"); query.bindValue(":version", version); - query.exec(); + safeExec(query); bool success = true; - if (query.lastError().isValid()) { + if (!watchQuery(query)) { qCritical() << "PostgreSqlStorage::setupSchemaVersion(int): Updating schema version failed!"; success = false; } @@ -221,6 +226,7 @@ bool PostgreSqlStorage::updateUser(UserId user, const QString &password) query.bindValue(":userid", user.toInt()); query.bindValue(":password", cryptedPassword(password)); safeExec(query); + watchQuery(query); return query.numRowsAffected() != 0; } @@ -232,6 +238,7 @@ void PostgreSqlStorage::renameUser(UserId user, const QString &newName) query.bindValue(":userid", user.toInt()); query.bindValue(":username", newName); safeExec(query); + watchQuery(query); emit userRenamed(user, newName); } @@ -243,6 +250,7 @@ UserId PostgreSqlStorage::validateUser(const QString &user, const QString &passw query.bindValue(":username", user); query.bindValue(":password", cryptedPassword(password)); safeExec(query); + watchQuery(query); if (query.first()) { return query.value(0).toInt(); @@ -259,6 +267,7 @@ UserId PostgreSqlStorage::getUserId(const QString &user) query.prepare(queryString("select_userid")); query.bindValue(":username", user); safeExec(query); + watchQuery(query); if (query.first()) { return query.value(0).toInt(); @@ -274,6 +283,7 @@ UserId PostgreSqlStorage::internalUser() QSqlQuery query(logDb()); query.prepare(queryString("select_internaluser")); safeExec(query); + watchQuery(query); if (query.first()) { return query.value(0).toInt(); @@ -287,7 +297,7 @@ UserId PostgreSqlStorage::internalUser() void PostgreSqlStorage::delUser(UserId user) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::delUser(): cannot start transaction!"; return; } @@ -320,6 +330,7 @@ void PostgreSqlStorage::setUserSetting(UserId userId, const QString &settingName selectQuery.bindValue(":userid", userId.toInt()); selectQuery.bindValue(":settingname", settingName); safeExec(selectQuery); + watchQuery(selectQuery); QString setQueryString; if (!selectQuery.first()) { @@ -335,6 +346,7 @@ void PostgreSqlStorage::setUserSetting(UserId userId, const QString &settingName setQuery.bindValue(":settingname", settingName); setQuery.bindValue(":settingvalue", rawData); safeExec(setQuery); + watchQuery(setQuery); } @@ -345,6 +357,7 @@ QVariant PostgreSqlStorage::getUserSetting(UserId userId, const QString &setting query.bindValue(":userid", userId.toInt()); query.bindValue(":settingname", settingName); safeExec(query); + watchQuery(query); if (query.first()) { QVariant data; @@ -365,7 +378,7 @@ IdentityId PostgreSqlStorage::createIdentity(UserId user, CoreIdentity &identity IdentityId identityId; QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::createIdentity(): Unable to start Transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return identityId; @@ -399,8 +412,7 @@ IdentityId PostgreSqlStorage::createIdentity(UserId user, CoreIdentity &identity query.bindValue(":sslkey", QByteArray()); #endif safeExec(query); - if (query.lastError().isValid()) { - watchQuery(query); + if (!watchQuery(query)) { db.rollback(); return IdentityId(); } @@ -410,7 +422,6 @@ IdentityId PostgreSqlStorage::createIdentity(UserId user, CoreIdentity &identity identity.setId(identityId); if (!identityId.isValid()) { - watchQuery(query); db.rollback(); return IdentityId(); } @@ -439,7 +450,7 @@ IdentityId PostgreSqlStorage::createIdentity(UserId user, CoreIdentity &identity bool PostgreSqlStorage::updateIdentity(UserId user, const CoreIdentity &identity) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::updateIdentity(): Unable to start Transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -450,6 +461,7 @@ bool PostgreSqlStorage::updateIdentity(UserId user, const CoreIdentity &identity checkQuery.bindValue(":identityid", identity.id().toInt()); checkQuery.bindValue(":userid", user.toInt()); safeExec(checkQuery); + watchQuery(checkQuery); // there should be exactly one identity for the given id and user if (!checkQuery.first() || checkQuery.value(0).toInt() != 1) { @@ -524,7 +536,7 @@ bool PostgreSqlStorage::updateIdentity(UserId user, const CoreIdentity &identity void PostgreSqlStorage::removeIdentity(UserId user, IdentityId identityId) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::removeIdentity(): Unable to start Transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return; @@ -563,6 +575,7 @@ QList PostgreSqlStorage::identities(UserId user) nickQuery.prepare(queryString("select_nicks")); safeExec(query); + watchQuery(query); while (query.next()) { CoreIdentity identity(IdentityId(query.value(0).toInt())); @@ -609,7 +622,7 @@ NetworkId PostgreSqlStorage::createNetwork(UserId user, const NetworkInfo &info) NetworkId networkId; QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::createNetwork(): failed to begin transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -620,8 +633,7 @@ NetworkId PostgreSqlStorage::createNetwork(UserId user, const NetworkInfo &info) query.bindValue(":userid", user.toInt()); bindNetworkInfo(query, info); safeExec(query); - if (query.lastError().isValid()) { - watchQuery(query); + if (!watchQuery(query)) { db.rollback(); return NetworkId(); } @@ -630,7 +642,6 @@ NetworkId PostgreSqlStorage::createNetwork(UserId user, const NetworkInfo &info) networkId = query.value(0).toInt(); if (!networkId.isValid()) { - watchQuery(query); db.rollback(); return NetworkId(); } @@ -701,7 +712,7 @@ void PostgreSqlStorage::bindServerInfo(QSqlQuery &query, const Network::Server & bool PostgreSqlStorage::updateNetwork(UserId user, const NetworkInfo &info) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::updateNetwork(): failed to begin transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -756,7 +767,7 @@ bool PostgreSqlStorage::updateNetwork(UserId user, const NetworkInfo &info) bool PostgreSqlStorage::removeNetwork(UserId user, const NetworkId &networkId) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::removeNetwork(): cannot start transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -1002,7 +1013,7 @@ void PostgreSqlStorage::setUserModes(UserId user, NetworkId networkId, const QSt BufferInfo PostgreSqlStorage::bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer, bool create) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::bufferInfo(): cannot start read only transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return BufferInfo(); @@ -1014,6 +1025,7 @@ BufferInfo PostgreSqlStorage::bufferInfo(UserId user, const NetworkId &networkId query.bindValue(":userid", user.toInt()); query.bindValue(":buffercname", buffer.toLower()); safeExec(query); + watchQuery(query); if (query.first()) { BufferInfo bufferInfo = BufferInfo(query.value(0).toInt(), networkId, (BufferInfo::Type)query.value(1).toInt(), 0, buffer); @@ -1046,9 +1058,8 @@ BufferInfo PostgreSqlStorage::bufferInfo(UserId user, const NetworkId &networkId safeExec(createQuery); - if (createQuery.lastError().isValid()) { + if (!watchQuery(createQuery)) { qWarning() << "PostgreSqlStorage::bufferInfo(): unable to create buffer"; - watchQuery(createQuery); db.rollback(); return BufferInfo(); } @@ -1135,7 +1146,7 @@ QList PostgreSqlStorage::requestBufferIdsForNetwork(UserId user, Netwo bool PostgreSqlStorage::removeBuffer(const UserId &user, const BufferId &bufferId) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::removeBuffer(): cannot start transaction!"; return false; } @@ -1170,7 +1181,7 @@ bool PostgreSqlStorage::removeBuffer(const UserId &user, const BufferId &bufferI bool PostgreSqlStorage::renameBuffer(const UserId &user, const BufferId &bufferId, const QString &newName) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::renameBuffer(): cannot start transaction!"; return false; } @@ -1182,8 +1193,7 @@ bool PostgreSqlStorage::renameBuffer(const UserId &user, const BufferId &bufferI query.bindValue(":userid", user.toInt()); query.bindValue(":bufferid", bufferId.toInt()); safeExec(query); - if (query.lastError().isValid()) { - watchQuery(query); + if (!watchQuery(query)) { db.rollback(); return false; } @@ -1208,7 +1218,7 @@ bool PostgreSqlStorage::renameBuffer(const UserId &user, const BufferId &bufferI bool PostgreSqlStorage::mergeBuffersPermanently(const UserId &user, const BufferId &bufferId1, const BufferId &bufferId2) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::mergeBuffersPermanently(): cannot start transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -1343,7 +1353,7 @@ QHash PostgreSqlStorage::bufferMarkerLineMsgIds(UserId user) bool PostgreSqlStorage::logMessage(Message &msg) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::logMessage(): cannot start transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -1362,7 +1372,9 @@ bool PostgreSqlStorage::logMessage(Message &msg) if (addSenderQuery.lastError().isValid()) { rollbackSavePoint("sender_sp1", db); - getSenderIdQuery = db.exec(getSenderIdQuery.lastQuery()); + getSenderIdQuery.prepare(getSenderIdQuery.lastQuery()); + safeExec(getSenderIdQuery); + watchQuery(getSenderIdQuery); getSenderIdQuery.first(); senderId = getSenderIdQuery.value(0).toInt(); } @@ -1403,7 +1415,7 @@ bool PostgreSqlStorage::logMessage(Message &msg) bool PostgreSqlStorage::logMessages(MessageList &msgs) { QSqlDatabase db = logDb(); - if (!db.transaction()) { + if (!beginTransaction(db)) { qWarning() << "PostgreSqlStorage::logMessage(): cannot start transaction!"; qWarning() << " -" << qPrintable(db.lastError().text()); return false; @@ -1431,7 +1443,9 @@ bool PostgreSqlStorage::logMessages(MessageList &msgs) if (addSenderQuery.lastError().isValid()) { // seems it was inserted meanwhile... by a different thread rollbackSavePoint("sender_sp", db); - selectSenderQuery = db.exec(selectSenderQuery.lastQuery()); + selectSenderQuery.prepare(selectSenderQuery.lastQuery()); + safeExec(selectSenderQuery); + watchQuery(selectSenderQuery); selectSenderQuery.first(); senderIdList << selectSenderQuery.value(0).toInt(); senderIds[sender] = selectSenderQuery.value(0).toInt(); @@ -1620,14 +1634,29 @@ QList PostgreSqlStorage::requestAllMsgs(UserId user, MsgId first, MsgId // return; // } + +bool PostgreSqlStorage::beginTransaction(QSqlDatabase &db) +{ + bool result = db.transaction(); + if (!db.isOpen()) { + db = logDb(); + result = db.transaction(); + } + return result; +} + bool PostgreSqlStorage::beginReadOnlyTransaction(QSqlDatabase &db) { QSqlQuery query = db.exec("BEGIN TRANSACTION READ ONLY"); + if (!db.isOpen()) { + db = logDb(); + query = db.exec("BEGIN TRANSACTION READ ONLY"); + } return !query.lastError().isValid(); } -QSqlQuery PostgreSqlStorage::prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, const QSqlDatabase &db) +QSqlQuery PostgreSqlStorage::prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, QSqlDatabase &db) { // Query preparing is done lazily. That means that instead of always checking if the query is already prepared // we just EXECUTE and catch the error @@ -1641,10 +1670,22 @@ QSqlQuery PostgreSqlStorage::prepareAndExecuteQuery(const QString &queryname, co query = db.exec(QString("EXECUTE quassel_%1 (%2)").arg(queryname).arg(paramstring)); } - if (db.lastError().isValid()) { - // and once again: Qt leaves us without error codes so we either parse (language dependant(!)) strings + if (!db.isOpen() || db.lastError().isValid()) { + // If the query failed because the DB connection was down, reopen the connection and start a new transaction. + if (!db.isOpen()) { + db = logDb(); + if (!beginTransaction(db)) { + qWarning() << "PostgreSqlStorage::prepareAndExecuteQuery(): cannot start transaction while recovering from connection loss!"; + qWarning() << " -" << qPrintable(db.lastError().text()); + return query; + } + db.exec("SAVEPOINT quassel_prepare_query"); + } else { + db.exec("ROLLBACK TO SAVEPOINT quassel_prepare_query"); + } + + // and once again: Qt leaves us without error codes so we either parse (language dependent(!)) strings // or we just guess the error. As we're only interested in unprepared queries, this will be our guess. :) - db.exec("ROLLBACK TO SAVEPOINT quassel_prepare_query"); QSqlQuery checkQuery = db.exec(QString("SELECT count(name) FROM pg_prepared_statements WHERE name = 'quassel_%1' AND from_sql = TRUE").arg(queryname.toLower())); checkQuery.first(); if (checkQuery.value(0).toInt() == 0) { @@ -1655,7 +1696,7 @@ QSqlQuery PostgreSqlStorage::prepareAndExecuteQuery(const QString &queryname, co return QSqlQuery(db); } } - // we alwas execute the query again, even if the query was already prepared. + // we always execute the query again, even if the query was already prepared. // this ensures, that the error is properly propagated to the calling function // (otherwise the last call would be the testing select to pg_prepared_statements // which always gives a proper result and the error would be lost) @@ -1674,7 +1715,7 @@ QSqlQuery PostgreSqlStorage::prepareAndExecuteQuery(const QString &queryname, co } -QSqlQuery PostgreSqlStorage::executePreparedQuery(const QString &queryname, const QVariantList ¶ms, const QSqlDatabase &db) +QSqlQuery PostgreSqlStorage::executePreparedQuery(const QString &queryname, const QVariantList ¶ms, QSqlDatabase &db) { QSqlDriver *driver = db.driver(); @@ -1700,7 +1741,7 @@ QSqlQuery PostgreSqlStorage::executePreparedQuery(const QString &queryname, cons } -QSqlQuery PostgreSqlStorage::executePreparedQuery(const QString &queryname, const QVariant ¶m, const QSqlDatabase &db) +QSqlQuery PostgreSqlStorage::executePreparedQuery(const QString &queryname, const QVariant ¶m, QSqlDatabase &db) { QSqlField field; field.setType(param.type()); @@ -1720,6 +1761,26 @@ void PostgreSqlStorage::deallocateQuery(const QString &queryname, const QSqlData } +void PostgreSqlStorage::safeExec(QSqlQuery &query) +{ + // If the query fails due to the connection being gone, it seems to cause + // exec() to return false but no lastError to be set + if(!query.exec() && !query.lastError().isValid()) + { + QSqlDatabase db = logDb(); + QSqlQuery retryQuery(db); + retryQuery.prepare(query.lastQuery()); + QMapIterator i(query.boundValues()); + while (i.hasNext()) + { + i.next(); + retryQuery.bindValue(i.key(),i.value()); + } + query = retryQuery; + query.exec(); + } +} + // ======================================== // PostgreSqlMigrationWriter // ======================================== diff --git a/src/core/postgresqlstorage.h b/src/core/postgresqlstorage.h index 0d172ec1..346f7cd5 100644 --- a/src/core/postgresqlstorage.h +++ b/src/core/postgresqlstorage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -116,10 +116,11 @@ protected: virtual bool setupSchemaVersion(int version); void safeExec(QSqlQuery &query); + bool beginTransaction(QSqlDatabase &db); bool beginReadOnlyTransaction(QSqlDatabase &db); - QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, const QSqlDatabase &db); - QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, const QSqlDatabase &db); + QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, QSqlDatabase &db); + QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, QSqlDatabase &db); void deallocateQuery(const QString &queryname, const QSqlDatabase &db); inline void savePoint(const QString &handle, const QSqlDatabase &db) { db.exec(QString("SAVEPOINT %1").arg(handle)); } @@ -129,8 +130,8 @@ protected: private: void bindNetworkInfo(QSqlQuery &query, const NetworkInfo &info); void bindServerInfo(QSqlQuery &query, const Network::Server &server); - QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, const QSqlDatabase &db); - inline QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QSqlDatabase &db) { return prepareAndExecuteQuery(queryname, QString(), db); } + QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, QSqlDatabase &db); + inline QSqlQuery prepareAndExecuteQuery(const QString &queryname, QSqlDatabase &db) { return prepareAndExecuteQuery(queryname, QString(), db); } QString _hostName; int _port; @@ -140,8 +141,6 @@ private: }; -inline void PostgreSqlStorage::safeExec(QSqlQuery &query) { query.exec(); } - // ======================================== // PostgreSqlMigration // ======================================== diff --git a/src/core/sessionthread.cpp b/src/core/sessionthread.cpp index 74d260b2..c2f9b5a2 100644 --- a/src/core/sessionthread.cpp +++ b/src/core/sessionthread.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/sessionthread.h b/src/core/sessionthread.h index 12b5ef3c..fee6e64f 100644 --- a/src/core/sessionthread.h +++ b/src/core/sessionthread.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 311b47f7..837e6b8a 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/sqlitestorage.h b/src/core/sqlitestorage.h index b2038dc4..fc2efc48 100644 --- a/src/core/sqlitestorage.h +++ b/src/core/sqlitestorage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/sslserver.cpp b/src/core/sslserver.cpp index 203c377e..78495b27 100644 --- a/src/core/sslserver.cpp +++ b/src/core/sslserver.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/sslserver.h b/src/core/sslserver.h index c2644531..bd72f29b 100644 --- a/src/core/sslserver.h +++ b/src/core/sslserver.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/storage.cpp b/src/core/storage.cpp index 30d0ee27..2e81de67 100644 --- a/src/core/storage.cpp +++ b/src/core/storage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/core/storage.h b/src/core/storage.h index db863910..9984d317 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/CMakeLists.txt b/src/qtui/CMakeLists.txt index b66b090c..c9274a22 100644 --- a/src/qtui/CMakeLists.txt +++ b/src/qtui/CMakeLists.txt @@ -172,7 +172,6 @@ include_directories(${CMAKE_SOURCE_DIR}/src/common ${CMAKE_SOURCE_DIR}/src/qtui ${CMAKE_SOURCE_DIR}/src/qtui/settingspages ${CMAKE_SOURCE_DIR}/src/uisupport - ) qt_wrap_ui(UI ${FORMPATH} ${SPFRM}) @@ -185,8 +184,4 @@ endif() add_library(mod_qtui STATIC ${SOURCES} ${SPSRC} ${UI}) qt_use_modules(mod_qtui Core Gui Network ${QT_MODULES}) -if (LIBS) - target_link_libraries(mod_qtui ${LIBS}) -endif() - -add_dependencies(mod_qtui mod_common mod_client mod_uisupport) +target_link_libraries(mod_qtui mod_client mod_common mod_uisupport ${LIBS}) diff --git a/src/qtui/aboutdlg.cpp b/src/qtui/aboutdlg.cpp index b76f8998..582fe932 100644 --- a/src/qtui/aboutdlg.cpp +++ b/src/qtui/aboutdlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,17 +18,22 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include "aboutdlg.h" + #include +#include -#include "aboutdlg.h" -#include "icon.h" -#include "iconloader.h" +#include "aboutdata.h" #include "quassel.h" -AboutDlg::AboutDlg(QWidget *parent) : QDialog(parent) +AboutDlg::AboutDlg(QWidget *parent) + : QDialog(parent) + , _aboutData(new AboutData(this)) { + AboutData::setQuasselPersons(_aboutData); + ui.setupUi(this); - ui.quasselLogo->setPixmap(DesktopIcon("quassel", IconLoader::SizeHuge)); + ui.quasselLogo->setPixmap(QIcon(":/icons/quassel-64.png").pixmap(64)); // don't let the icon theme affect our logo here ui.versionLabel->setText(QString(tr("Version: %1
Protocol version: %2
Built: %3")) .arg(Quassel::buildInfo().fancyVersionString) @@ -39,7 +44,7 @@ AboutDlg::AboutDlg(QWidget *parent) : QDialog(parent) ui.contributorTextBrowser->setHtml(contributors()); ui.thanksToTextBrowser->setHtml(thanksTo()); - setWindowIcon(Icon("quassel")); + setWindowIcon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png"))); } @@ -55,7 +60,7 @@ QString AboutDlg::about() const "Most icons are © by the Oxygen Team and used under the " "LGPL.

" "Please use http://bugs.quassel-irc.org to report bugs." - ).arg("2005-2014"); + ).arg("2005-2015"); return res; } @@ -64,16 +69,14 @@ QString AboutDlg::about() const QString AboutDlg::authors() const { QString res; - res = tr("Quassel IRC is mainly developed by:") + - "
" - "
Manuel \"Sputnick\" Nickschas
sput@quassel-irc.org
" - "Project Founder, Lead Developer
" - "
Marcus \"EgS\" Eggenberger
egs@quassel-irc.org
" - "Project Motivator, Lead Developer, Mac Maintainer
" - "
Alexander \"phon\" von Renteln
phon@quassel-irc.org
" - "Developer, Windows Maintainer
" - "
"; - + res = tr("Quassel IRC is mainly developed by:") + "
"; + for (const auto &person : _aboutData->authors()) { + res.append("
" + person.prettyName() + "
"); + if (!person.emailAddress().isEmpty()) + res.append("" + person.emailAddress() + "
"); + res.append(person.task() + "
"); + } + res.append("
"); return res; } @@ -81,126 +84,11 @@ QString AboutDlg::authors() const QString AboutDlg::contributors() const { QString res; - res = tr("We would like to thank the following contributors (in alphabetical order) and everybody we forgot to mention here:") - + QString::fromUtf8("
" - "
" - "
Daniel \"al\" Albers
Master Of Translation, many fixes and enhancements
" - "
Liudas Alisauskas
Lithuanian translation
" - "
Terje \"tan\" Andersen
Norwegian translation, documentation
" - "
Jens \"amiconn\" Arnold
Postgres migration fixes
" - "
Adolfo Jayme Barrientos
Spanish translation
" - "
Mattia Basaglia
Fixes
" - "
Pete \"elbeardmorez\" Beardmore
Linewrap for input line
" - "
Rafael \"EagleScreen\" Belmonte
Spanish translation
" - "
Sergiu Bivol
Romanian translation
" - "
Bruno Brigras
Crash fixes
" - "
Florent Castelli
Sanitize topic handling
" - "
Theo \"tampakrap\" Chatzimichos
Greek translation
" - "
Yuri Chornoivan
Ukrainian translation
" - "
Tomáš \"scarabeus\" Chvátal
Czech translation
" - "
\"Condex\"
Galician translation
" - "
Joshua \"tvakah\" Corbin
Various fixes
" - "
\"cordata\"
Esperanto translation
" - "
Matthias \"pennywise\" Coy
German translation
" - "
\"derpella\"
Polish translation
" - "
\"Dorian\"
French translation
" - "
Luke Faraone
Doc fixes
" - "
Chris \"stitch\" Fuenty
SASL support
" - "
Kevin \"KRF\" Funk
German translation
" - "
Fabiano \"elbryan\" Francesconi
Italian translation
" - "
Leo Franchi
OSX improvements
" - "
Sebastien Fricker
Audio backend improvements
" - "
Alf Gaida
Language improvements
" - "
Aurélien \"agateau\" Gâteau
Message Indicator support
" - "
Marco \"kaffeedoktor\" Genise
Ideas, hacking, motivation
" - "
Felix \"debfx\" Geyer
Certificate handling improvements
" - "
Volkan Gezer
Turkish translation
" - "
Sjors \"dazjorz\" Gielen
Fixes
" - "
Sebastian \"seezer\" Goth
Many improvements and features
" - "
Michael \"brot\" Groh
German translation, fixes
" - "
\"Gryllida\"
IRC parser improvements
" - "
H. İbrahim \"igungor\" Güngör
Turkish translation
" - "
Jiri Grönroos
Finnish translation
" - "
Chris \"Zren\" H
Various improvements
" - "
Edward Hades
Russian translation
" - "
John \"nox\" Hand
Former All-Seeing Eye logo
" - "
Adam \"2kah\" Harwood
ChatView improvements
" - "
Jonas \"Dante\" Heese
Project founder, various improvements
" - "
Thomas \"Datafreak\" Hogh
Windows builder
" - "
Johannes \"j0hu\" Huber
Many fixes and features, bug triaging
" - "
Theofilos Intzoglou
Greek translation
" - "
Jovan Jojkić
Serbian translation
" - "
Allan Jude
Documentation improvements
" - "
Michael \"ycros\" Kedzierski
Mac fixes
" - "
Scott \"ScottK\" Kitterman
Kubuntu nightly packager, (packaging/build system) bughunter
" - "
Paul \"Haudrauf\" Klumpp
Initial design and mainwindow layout
" - "
Maia Kozheva
Russian translation
" - "
Tae-Hoon Kwon
Korean translation
" - "
\"Larso\"
Finnish translation
" - "
Patrick \"bonsaikitten\" Lauer
Gentoo packaging
" - "
Chris \"Fish-Face\" Le Sueur
Various fixes and improvements
" - "
Jerome \"Adys\" Leclanche
Context menu fixes
" - "
Hendrik \"nevcairiel\" Leppkes
Various features
" - "
Jason Lynch
Bugfixes
" - "
Awad \"firesock\" Mackie
ChatView improvements
" - "
Michael \"mamarley\" Marley
Various fixes and improvements
" - "
Martin \"m4yer\" Mayer
German translation
" - "
Daniel \"hydrogen\" Meltzer
Various fixes and improvements
" - "
Sebastian Meyer
Fixes
" - "
Daniel E. Moctezuma
Japanese translation
" - "
Chris \"kode54\" Moeller
Various fixes and improvements
" - "
Thomas Müller
Fixes, Debian packaging
" - "
Gábor \"ELITE_x\" Németh
Hungarian translation
" - "
Per Nielsen
Danish translation
" - "
J-P Nurmi
Fixes
" - "
Marco \"Quizzlo\" Paolone
Italian translation
" - "
Bas \"Tucos\" Pape
Many fixes and improvements, bug and patch triaging, tireless community support
" - "
Bruno Patri
French translation
" - "
Drew \"LinuxDolt\" Patridge
BluesTheme stylesheet
" - "
Celeste \"seele\" Paul
Usability Queen
" - "
Vit Pelcak
Czech translation
" - "
Regis \"ZRegis\" Perrin
French translation
" - "
Diego \"Flameeyes\" Pettenò
Gentoo maintainer, build system improvements
" - "
Simon Philips
Dutch translation
" - "
Daniel \"billie\" Pielmeier
Gentoo maintainer
" - "
Nuno \"pinheiro\" Pinheiro
Tons of Oxygen icons including our application icon
" - "
David Planella
Translation system fixes
" - "
Jure \"JLP\" Repinc
Slovenian translation
" - "
Patrick \"TheOneRing\" von Reth
MinGW support, SNORE backend, Windows packager
" - "
Dirk \"MarcLandis\" Rettschlag
Various fixes and new features
" - "
Miguel Revilla
Spanish translation
" - "
Jaak Ristioja
Fixes
" - "
David \"Bombe\" Roden
Fixes
" - "
Henning \"honk\" Rohlfs
Various fixes
" - "
Stella \"differentreality\" Rouzi
Greek translation
" - "
\"salnx\"
Highlight configuration improvements
" - "
Martin \"sandsmark\" Sandsmark
Core fixes, Quasseldroid
" - "
David Sansome
OSX Notification Center support
" - "
Dennis \"DevUrandom\" Schridde
D-Bus notifications
" - "
Jussi \"jussi01\" Schultink
Tireless tester, {ku|U}buntu tester and lobbyist, liters of delicious Finnish alcohol
" - "
Tim \"xAFFE\" Schumacher
Fixes and feedback
" - "
\"sfionov\"
Russian translation
" - "
Harald \"apachelogger\" Sitter
{ku|U}buntu packager, motivator, promoter
" - "
Ramanathan Sivagurunathan
Fixes
" - "
Stefanos Sofroniou
Greek translation
" - "
Rüdiger \"ruediger\" Sonderfeld
Emacs keybindings
" - "
Alexander Stein
Tray icon fix
" - "
Daniel \"son\" Steinmetz
Early beta tester and bughunter (on Vista™!)
" - "
Jesper Thomschütz
Various fixes
" - "
Arthur \"roentgen\" Titeica
Romanian translation
" - "
\"ToBeFree\"
German translation
" - "
Edward \"Aides\" Toroshchin
Russian translation
" - "
Adam \"adamt\" Tulinius
Early beta tester and bughunter, Danish translation
" - "
Deniz Türkoglu
Mac fixes
" - "
Frederik M.J. \"freqmod\" Vestre
Norwegian translation
" - "
Atte Virtanen
Finnish translation
" - "
Pavel \"int\" Volkovitskiy
Early beta tester and bughunter
" - "
Roscoe van Wyk
Fixes
" - "
Zé
Portuguese translation
" - "
Benjamin \"zbenjamin\" Zeller
Windows build system fixes
" - "
\"zeugma\"
Turkish translation
" - "

" - "...and anybody else finding and reporting bugs, giving feedback, helping others and being part of the community!"); + res = tr("We would like to thank the following contributors (in alphabetical order) and everybody we forgot to mention here:") + "
"; + for (const auto &person : _aboutData->credits()) { + res.append("
" + person.prettyName() + "
" + person.task() + "
"); + } + res.append("

" + tr("...and anybody else finding and reporting bugs, giving feedback, helping others and being part of the community!")); return res; } diff --git a/src/qtui/aboutdlg.h b/src/qtui/aboutdlg.h index d120c575..d54df8c9 100644 --- a/src/qtui/aboutdlg.h +++ b/src/qtui/aboutdlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -25,6 +25,8 @@ #include "ui_aboutdlg.h" +class AboutData; + class AboutDlg : public QDialog { Q_OBJECT @@ -39,6 +41,8 @@ private: QString authors() const; QString contributors() const; QString thanksTo() const; + + AboutData *_aboutData; }; diff --git a/src/qtui/awaylogfilter.cpp b/src/qtui/awaylogfilter.cpp index 3b6b8c3e..fea9bfae 100644 --- a/src/qtui/awaylogfilter.cpp +++ b/src/qtui/awaylogfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/awaylogfilter.h b/src/qtui/awaylogfilter.h index afa7562a..8f827982 100644 --- a/src/qtui/awaylogfilter.h +++ b/src/qtui/awaylogfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/awaylogview.cpp b/src/qtui/awaylogview.cpp index d12bcc65..444633ac 100644 --- a/src/qtui/awaylogview.cpp +++ b/src/qtui/awaylogview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/awaylogview.h b/src/qtui/awaylogview.h index 73358b99..764ac251 100644 --- a/src/qtui/awaylogview.h +++ b/src/qtui/awaylogview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/bufferwidget.cpp b/src/qtui/bufferwidget.cpp index 3f6ba6d2..6b01050e 100644 --- a/src/qtui/bufferwidget.cpp +++ b/src/qtui/bufferwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,6 +18,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include #include #include #include @@ -32,7 +33,6 @@ #include "chatviewsearchcontroller.h" #include "chatviewsettings.h" #include "client.h" -#include "iconloader.h" #include "multilineedit.h" #include "qtui.h" #include "settings.h" @@ -77,16 +77,16 @@ BufferWidget::BufferWidget(QWidget *parent) Action *zoomInChatview = coll->add("ZoomInChatView", this, SLOT(zoomIn())); zoomInChatview->setText(tr("Zoom In")); - zoomInChatview->setIcon(SmallIcon("zoom-in")); + zoomInChatview->setIcon(QIcon::fromTheme("zoom-in")); zoomInChatview->setShortcut(QKeySequence::ZoomIn); Action *zoomOutChatview = coll->add("ZoomOutChatView", this, SLOT(zoomOut())); - zoomOutChatview->setIcon(SmallIcon("zoom-out")); + zoomOutChatview->setIcon(QIcon::fromTheme("zoom-out")); zoomOutChatview->setText(tr("Zoom Out")); zoomOutChatview->setShortcut(QKeySequence::ZoomOut); Action *zoomOriginalChatview = coll->add("ZoomOriginalChatView", this, SLOT(zoomOriginal())); - zoomOriginalChatview->setIcon(SmallIcon("zoom-original")); + zoomOriginalChatview->setIcon(QIcon::fromTheme("zoom-original")); zoomOriginalChatview->setText(tr("Actual Size")); //zoomOriginalChatview->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_0)); // used for RTS switching diff --git a/src/qtui/bufferwidget.h b/src/qtui/bufferwidget.h index 88d5a4e5..c245ebc4 100644 --- a/src/qtui/bufferwidget.h +++ b/src/qtui/bufferwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/channellistdlg.cpp b/src/qtui/channellistdlg.cpp index f16fd229..14a7e31c 100644 --- a/src/qtui/channellistdlg.cpp +++ b/src/qtui/channellistdlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -22,12 +22,11 @@ #include #include +#include #include #include "client.h" #include "clientirclisthelper.h" -#include "icon.h" -#include "iconloader.h" ChannelListDlg::ChannelListDlg(QWidget *parent) : QDialog(parent), @@ -42,7 +41,7 @@ ChannelListDlg::ChannelListDlg(QWidget *parent) _sortFilter.setFilterKeyColumn(-1); ui.setupUi(this); - ui.advancedModeLabel->setPixmap(BarIcon("edit-rename")); + ui.advancedModeLabel->setPixmap(QIcon::fromTheme("edit-rename").pixmap(22)); ui.channelListView->setSelectionBehavior(QAbstractItemView::SelectRows); ui.channelListView->setSelectionMode(QAbstractItemView::SingleSelection); @@ -55,7 +54,7 @@ ChannelListDlg::ChannelListDlg(QWidget *parent) ui.searchChannelsButton->setAutoDefault(false); - setWindowIcon(Icon("format-list-unordered")); + setWindowIcon(QIcon::fromTheme("format-list-unordered")); connect(ui.advancedModeLabel, SIGNAL(clicked()), this, SLOT(toggleMode())); connect(ui.searchChannelsButton, SIGNAL(clicked()), this, SLOT(requestSearch())); @@ -133,14 +132,14 @@ void ChannelListDlg::setAdvancedMode(bool advanced) delete _simpleModeSpacer; _simpleModeSpacer = 0; } - ui.advancedModeLabel->setPixmap(BarIcon("edit-clear-locationbar-rtl")); + ui.advancedModeLabel->setPixmap(QIcon::fromTheme("edit-clear-locationbar-rtl", QIcon::fromTheme("edit-clear")).pixmap(16)); } else { if (!_simpleModeSpacer) { _simpleModeSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); ui.searchLayout->insertSpacerItem(0, _simpleModeSpacer); } - ui.advancedModeLabel->setPixmap(BarIcon("edit-rename")); + ui.advancedModeLabel->setPixmap(QIcon::fromTheme("edit-rename").pixmap(16)); } ui.channelNameLineEdit->clear(); diff --git a/src/qtui/channellistdlg.h b/src/qtui/channellistdlg.h index 61cd1395..fda516a3 100644 --- a/src/qtui/channellistdlg.h +++ b/src/qtui/channellistdlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatitem.cpp b/src/qtui/chatitem.cpp index 117ec10d..20dad9da 100644 --- a/src/qtui/chatitem.cpp +++ b/src/qtui/chatitem.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -35,7 +36,6 @@ #include "chatlinemodel.h" #include "chatview.h" #include "contextmenuactionprovider.h" -#include "iconloader.h" #include "mainwin.h" #include "qtui.h" #include "qtuistyle.h" @@ -798,7 +798,7 @@ void ContentsChatItem::addActionsToMenu(QMenu *menu, const QPointF &pos) switch (click.type()) { case Clickable::Url: privateData()->activeClickable = click; - menu->addAction(SmallIcon("edit-copy"), tr("Copy Link Address"), + menu->addAction(QIcon::fromTheme("edit-copy"), tr("Copy Link Address"), &_actionProxy, SLOT(copyLinkToClipboard()))->setData(QVariant::fromValue(this)); break; case Clickable::Channel: diff --git a/src/qtui/chatitem.h b/src/qtui/chatitem.h index e0517652..e23fac9d 100644 --- a/src/qtui/chatitem.h +++ b/src/qtui/chatitem.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatline.cpp b/src/qtui/chatline.cpp index def2450b..81a7ed8f 100644 --- a/src/qtui/chatline.cpp +++ b/src/qtui/chatline.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatline.h b/src/qtui/chatline.h index 8f350bac..61b6664a 100644 --- a/src/qtui/chatline.h +++ b/src/qtui/chatline.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatlinemodel.cpp b/src/qtui/chatlinemodel.cpp index bfb10422..5e5dd62a 100644 --- a/src/qtui/chatlinemodel.cpp +++ b/src/qtui/chatlinemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatlinemodel.h b/src/qtui/chatlinemodel.h index 7e1a4b47..eb7d8ed8 100644 --- a/src/qtui/chatlinemodel.h +++ b/src/qtui/chatlinemodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatlinemodelitem.cpp b/src/qtui/chatlinemodelitem.cpp index eadbfa7e..1fff2b50 100644 --- a/src/qtui/chatlinemodelitem.cpp +++ b/src/qtui/chatlinemodelitem.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatlinemodelitem.h b/src/qtui/chatlinemodelitem.h index e651707f..2ff8d4e9 100644 --- a/src/qtui/chatlinemodelitem.h +++ b/src/qtui/chatlinemodelitem.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatmonitorfilter.cpp b/src/qtui/chatmonitorfilter.cpp index db0c8892..b2974dda 100644 --- a/src/qtui/chatmonitorfilter.cpp +++ b/src/qtui/chatmonitorfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatmonitorfilter.h b/src/qtui/chatmonitorfilter.h index 945e4018..b0d94e2e 100644 --- a/src/qtui/chatmonitorfilter.h +++ b/src/qtui/chatmonitorfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatmonitorview.cpp b/src/qtui/chatmonitorview.cpp index a995ef02..a844e737 100644 --- a/src/qtui/chatmonitorview.cpp +++ b/src/qtui/chatmonitorview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,6 +21,7 @@ #include "chatmonitorview.h" #include +#include #include #include @@ -29,7 +30,6 @@ #include "chatitem.h" #include "chatscene.h" #include "client.h" -#include "iconloader.h" #include "networkmodel.h" #include "buffermodel.h" #include "messagemodel.h" @@ -70,7 +70,7 @@ void ChatMonitorView::addActionsToMenu(QMenu *menu, const QPointF &pos) } menu->addSeparator(); - menu->addAction(SmallIcon("configure"), tr("Configure..."), this, SLOT(showSettingsPage())); + menu->addAction(QIcon::fromTheme("configure"), tr("Configure..."), this, SLOT(showSettingsPage())); } diff --git a/src/qtui/chatmonitorview.h b/src/qtui/chatmonitorview.h index e58a910b..f9c07e57 100644 --- a/src/qtui/chatmonitorview.h +++ b/src/qtui/chatmonitorview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 4dfd8138..a0d9be3b 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,13 +23,14 @@ #include #include #include +#include #include #include #include #include #include -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include #else # include @@ -48,7 +49,6 @@ #include "clientbacklogmanager.h" #include "columnhandleitem.h" #include "contextmenuactionprovider.h" -#include "iconloader.h" #include "mainwin.h" #include "markerlineitem.h" #include "messagefilter.h" @@ -823,7 +823,7 @@ void ChatScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) // If we have text selected, insert the Copy Selection as first item if (isPosOverSelection(pos)) { QAction *sep = menu.insertSeparator(menu.actions().first()); - QAction *act = new Action(SmallIcon("edit-copy"), tr("Copy Selection"), &menu, this, + QAction *act = new Action(QIcon::fromTheme("edit-copy"), tr("Copy Selection"), &menu, this, SLOT(selectionToClipboard()), QKeySequence::Copy); menu.insertAction(sep, act); @@ -832,7 +832,7 @@ void ChatScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) searchSelectionText = searchSelectionText.left(_webSearchSelectionTextMaxVisible).append(QString::fromUtf8("…")); searchSelectionText = tr("Search '%1'").arg(searchSelectionText); - menu.addAction(SmallIcon("edit-find"), searchSelectionText, this, SLOT(webSearchOnSelection())); + menu.addAction(QIcon::fromTheme("edit-find"), searchSelectionText, this, SLOT(webSearchOnSelection())); } if (QtUi::mainWindow()->menuBar()->isHidden()) diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index d8c4db93..d950c729 100644 --- a/src/qtui/chatscene.h +++ b/src/qtui/chatscene.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatview.cpp b/src/qtui/chatview.cpp index 20b25e0e..7197a24e 100644 --- a/src/qtui/chatview.cpp +++ b/src/qtui/chatview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatview.h b/src/qtui/chatview.h index 9d7f3a98..26b14e11 100644 --- a/src/qtui/chatview.h +++ b/src/qtui/chatview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatviewsearchbar.cpp b/src/qtui/chatviewsearchbar.cpp index 6d0533ad..e0d5ac6b 100644 --- a/src/qtui/chatviewsearchbar.cpp +++ b/src/qtui/chatviewsearchbar.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,18 +20,19 @@ #include "chatviewsearchbar.h" +#include + #include "action.h" #include "actioncollection.h" -#include "iconloader.h" #include "qtui.h" ChatViewSearchBar::ChatViewSearchBar(QWidget *parent) : QWidget(parent) { ui.setupUi(this); - ui.hideButton->setIcon(BarIcon("dialog-close")); - ui.searchUpButton->setIcon(SmallIcon("go-up")); - ui.searchDownButton->setIcon(SmallIcon("go-down")); + ui.hideButton->setIcon(QIcon::fromTheme("dialog-close")); + ui.searchUpButton->setIcon(QIcon::fromTheme("go-up")); + ui.searchDownButton->setIcon(QIcon::fromTheme("go-down")); _searchDelayTimer.setSingleShot(true); layout()->setContentsMargins(0, 0, 0, 0); diff --git a/src/qtui/chatviewsearchbar.h b/src/qtui/chatviewsearchbar.h index 3305eb11..d7cb71b0 100644 --- a/src/qtui/chatviewsearchbar.h +++ b/src/qtui/chatviewsearchbar.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatviewsearchcontroller.cpp b/src/qtui/chatviewsearchcontroller.cpp index 27608a5d..e21dc8a4 100644 --- a/src/qtui/chatviewsearchcontroller.cpp +++ b/src/qtui/chatviewsearchcontroller.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatviewsearchcontroller.h b/src/qtui/chatviewsearchcontroller.h index 7fb35c0e..66e09085 100644 --- a/src/qtui/chatviewsearchcontroller.h +++ b/src/qtui/chatviewsearchcontroller.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,7 +21,7 @@ #ifndef CHATVIEWSEARCHCONTROLLER_H #define CHATVIEWSEARCHCONTROLLER_H -#include +#include #include #include #include @@ -87,14 +87,10 @@ private: // Highlight Items -#include - class SearchHighlightItem : public QObject, public QGraphicsItem { Q_OBJECT -#if QT_VERSION >= 0x040600 Q_INTERFACES(QGraphicsItem) -#endif public : SearchHighlightItem(QRectF wordRect, QGraphicsItem *parent = 0); diff --git a/src/qtui/chatviewsettings.cpp b/src/qtui/chatviewsettings.cpp index e718dabd..b2e0060d 100644 --- a/src/qtui/chatviewsettings.cpp +++ b/src/qtui/chatviewsettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/chatviewsettings.h b/src/qtui/chatviewsettings.h index c891f0f3..08d6cb6d 100644 --- a/src/qtui/chatviewsettings.h +++ b/src/qtui/chatviewsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/columnhandleitem.cpp b/src/qtui/columnhandleitem.cpp index 87dc351e..62bd14bb 100644 --- a/src/qtui/columnhandleitem.cpp +++ b/src/qtui/columnhandleitem.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/columnhandleitem.h b/src/qtui/columnhandleitem.h index 69f27aca..855eabdf 100644 --- a/src/qtui/columnhandleitem.h +++ b/src/qtui/columnhandleitem.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/coreconfigwizard.cpp b/src/qtui/coreconfigwizard.cpp index e1d74fee..9dfbc8c2 100644 --- a/src/qtui/coreconfigwizard.cpp +++ b/src/qtui/coreconfigwizard.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,11 +21,11 @@ #include #include #include +#include #include #include "coreconfigwizard.h" #include "coreconnection.h" -#include "iconloader.h" CoreConfigWizard::CoreConfigWizard(CoreConnection *connection, const QList &backends, QWidget *parent) : QWizard(parent), @@ -67,7 +67,7 @@ CoreConfigWizard::CoreConfigWizard(CoreConnection *connection, const QList +#include #include #include "coreconnectdlg.h" -#include "iconloader.h" #include "clientsettings.h" #include "coreaccountsettingspage.h" @@ -39,7 +39,7 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent) : QDialog(parent) _settingsPage->setSelectedAccount(lastAccount); setWindowTitle(tr("Connect to Core")); - setWindowIcon(SmallIcon("network-disconnect")); + setWindowIcon(QIcon::fromTheme("network-disconnect")); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(_settingsPage); diff --git a/src/qtui/coreconnectdlg.h b/src/qtui/coreconnectdlg.h index 040d5ecb..857dc771 100644 --- a/src/qtui/coreconnectdlg.h +++ b/src/qtui/coreconnectdlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/coreconnectionstatuswidget.cpp b/src/qtui/coreconnectionstatuswidget.cpp index 77140b8b..4ce89c09 100644 --- a/src/qtui/coreconnectionstatuswidget.cpp +++ b/src/qtui/coreconnectionstatuswidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,8 +20,9 @@ #include "coreconnectionstatuswidget.h" +#include + #include "client.h" -#include "iconloader.h" #include "signalproxy.h" CoreConnectionStatusWidget::CoreConnectionStatusWidget(CoreConnection *connection, QWidget *parent) @@ -79,11 +80,11 @@ void CoreConnectionStatusWidget::connectionStateChanged(CoreConnection::Connecti { if (state >= CoreConnection::Connected) { if (coreConnection()->isEncrypted()) { - ui.sslLabel->setPixmap(SmallIcon("security-high")); + ui.sslLabel->setPixmap(QIcon::fromTheme("security-high").pixmap(16)); ui.sslLabel->setToolTip(tr("The connection to your core is encrypted with SSL.")); } else { - ui.sslLabel->setPixmap(SmallIcon("security-low")); + ui.sslLabel->setPixmap(QIcon::fromTheme("security-low").pixmap(16)); ui.sslLabel->setToolTip(tr("The connection to your core is not encrypted.")); } ui.sslLabel->show(); diff --git a/src/qtui/coreconnectionstatuswidget.h b/src/qtui/coreconnectionstatuswidget.h index b946a2e8..68e1cb8a 100644 --- a/src/qtui/coreconnectionstatuswidget.h +++ b/src/qtui/coreconnectionstatuswidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/coreinfodlg.cpp b/src/qtui/coreinfodlg.cpp index 5d239956..b8a7eb2f 100644 --- a/src/qtui/coreinfodlg.cpp +++ b/src/qtui/coreinfodlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/coreinfodlg.h b/src/qtui/coreinfodlg.h index 72b96f55..8b9e0a15 100644 --- a/src/qtui/coreinfodlg.h +++ b/src/qtui/coreinfodlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debugbufferviewoverlay.cpp b/src/qtui/debugbufferviewoverlay.cpp index c785cb1a..6900e04b 100644 --- a/src/qtui/debugbufferviewoverlay.cpp +++ b/src/qtui/debugbufferviewoverlay.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debugbufferviewoverlay.h b/src/qtui/debugbufferviewoverlay.h index e75cd8b4..3d7ff817 100644 --- a/src/qtui/debugbufferviewoverlay.h +++ b/src/qtui/debugbufferviewoverlay.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debugconsole.cpp b/src/qtui/debugconsole.cpp index 40ca4b69..23bd9f0b 100644 --- a/src/qtui/debugconsole.cpp +++ b/src/qtui/debugconsole.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debugconsole.h b/src/qtui/debugconsole.h index 74e99f5e..5729d7ef 100644 --- a/src/qtui/debugconsole.h +++ b/src/qtui/debugconsole.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debuglogwidget.cpp b/src/qtui/debuglogwidget.cpp index 6f7f6d8c..14cdf335 100644 --- a/src/qtui/debuglogwidget.cpp +++ b/src/qtui/debuglogwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debuglogwidget.h b/src/qtui/debuglogwidget.h index 85e1a1cd..408d4ee3 100644 --- a/src/qtui/debuglogwidget.h +++ b/src/qtui/debuglogwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debugmessagemodelfilter.cpp b/src/qtui/debugmessagemodelfilter.cpp index 3e4637e1..405f43be 100644 --- a/src/qtui/debugmessagemodelfilter.cpp +++ b/src/qtui/debugmessagemodelfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/debugmessagemodelfilter.h b/src/qtui/debugmessagemodelfilter.h index 93cfe419..28e084c6 100644 --- a/src/qtui/debugmessagemodelfilter.h +++ b/src/qtui/debugmessagemodelfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/indicatornotificationbackend.cpp b/src/qtui/indicatornotificationbackend.cpp index 4fc0bb8a..e3cb0e31 100644 --- a/src/qtui/indicatornotificationbackend.cpp +++ b/src/qtui/indicatornotificationbackend.cpp @@ -20,12 +20,14 @@ #include "indicatornotificationbackend.h" +#include +#include + #include #include #include "client.h" #include "clientsettings.h" -#include "iconloader.h" #include "mainwin.h" #include "networkmodel.h" #include "qtui.h" @@ -108,8 +110,8 @@ void IndicatorNotificationBackend::notify(const Notification ¬ification) QModelIndex index = Client::networkModel()->bufferIndex(bufferId); QVariant icon = QtUi::style()->bufferViewItemData(index, Qt::DecorationRole); - if (icon.canConvert()) { - QImage image = icon.value().toImage(); + if (icon.canConvert()) { + QImage image = icon.value().pixmap(16).toImage(); indicator->setIconProperty(image); } @@ -175,7 +177,7 @@ IndicatorNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) { ui.setupUi(this); // FIXME find proper icon (this one is used by the plasmoid as well) - ui.enabled->setIcon(SmallIcon("mail-message-new")); + ui.enabled->setIcon(QIcon::fromTheme("mail-message-new")); connect(ui.enabled, SIGNAL(toggled(bool)), SLOT(widgetChanged())); } diff --git a/src/qtui/inputwidget.cpp b/src/qtui/inputwidget.cpp index 6ac42be3..7d3b3e0a 100644 --- a/src/qtui/inputwidget.cpp +++ b/src/qtui/inputwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,11 +20,12 @@ #include "inputwidget.h" +#include + #include "action.h" #include "actioncollection.h" #include "bufferview.h" #include "client.h" -#include "iconloader.h" #include "ircuser.h" #include "networkmodel.h" #include "qtui.h" @@ -60,11 +61,11 @@ InputWidget::InputWidget(QWidget *parent) ui.inputEdit->setMode(MultiLineEdit::MultiLine); ui.inputEdit->setPasteProtectionEnabled(true); - ui.boldButton->setIcon(SmallIcon("format-text-bold")); - ui.italicButton->setIcon(SmallIcon("format-text-italic")); - ui.underlineButton->setIcon(SmallIcon("format-text-underline")); - ui.textcolorButton->setIcon(SmallIcon("format-text-color")); - ui.highlightcolorButton->setIcon(SmallIcon("format-fill-color")); + ui.boldButton->setIcon(QIcon::fromTheme("format-text-bold")); + ui.italicButton->setIcon(QIcon::fromTheme("format-text-italic")); + ui.underlineButton->setIcon(QIcon::fromTheme("format-text-underline")); + ui.textcolorButton->setIcon(QIcon::fromTheme("format-text-color")); + ui.highlightcolorButton->setIcon(QIcon::fromTheme("format-fill-color")); ui.encryptionIconLabel->hide(); _colorMenu = new QMenu(); @@ -470,7 +471,7 @@ void InputWidget::updateNickSelector() const ui.ownNick->addItems(nicks); if (me && me->isAway()) - ui.ownNick->setItemData(nickIdx, SmallIcon("user-away"), Qt::DecorationRole); + ui.ownNick->setItemData(nickIdx, QIcon::fromTheme("user-away"), Qt::DecorationRole); ui.ownNick->setCurrentIndex(nickIdx); } @@ -589,7 +590,7 @@ void InputWidget::colorChosen(QAction *action) mergeFormatOnSelection(fmt); } ui.textcolorButton->setDefaultAction(action); - ui.textcolorButton->setIcon(createColorToolButtonIcon(SmallIcon("format-text-color"), color)); + ui.textcolorButton->setIcon(createColorToolButtonIcon(QIcon::fromTheme("format-text-color"), color)); } @@ -609,7 +610,7 @@ void InputWidget::colorHighlightChosen(QAction *action) mergeFormatOnSelection(fmt); } ui.highlightcolorButton->setDefaultAction(action); - ui.highlightcolorButton->setIcon(createColorToolButtonIcon(SmallIcon("format-fill-color"), color)); + ui.highlightcolorButton->setIcon(createColorToolButtonIcon(QIcon::fromTheme("format-fill-color"), color)); } diff --git a/src/qtui/inputwidget.h b/src/qtui/inputwidget.h index f6bdf2ec..cf36c132 100644 --- a/src/qtui/inputwidget.h +++ b/src/qtui/inputwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/ircconnectionwizard.cpp b/src/qtui/ircconnectionwizard.cpp index a73ad516..84fb9281 100644 --- a/src/qtui/ircconnectionwizard.cpp +++ b/src/qtui/ircconnectionwizard.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/ircconnectionwizard.h b/src/qtui/ircconnectionwizard.h index bd8b9d1c..a2805c3b 100644 --- a/src/qtui/ircconnectionwizard.h +++ b/src/qtui/ircconnectionwizard.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/knotificationbackend.cpp b/src/qtui/knotificationbackend.cpp index 20d84d90..41d56385 100644 --- a/src/qtui/knotificationbackend.cpp +++ b/src/qtui/knotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,14 +20,13 @@ #include #include +#include #include #include #include "knotificationbackend.h" #include "client.h" -#include "icon.h" -#include "iconloader.h" #include "mainwin.h" #include "networkmodel.h" #include "qtui.h" @@ -61,7 +60,7 @@ void KNotificationBackend::notify(const Notification &n) #else QString message = QString("<%1> %2").arg(n.sender, n.message.toHtmlEscaped()); #endif - KNotification *notification = KNotification::event(type, message, DesktopIcon("dialog-information"), QtUi::mainWindow(), + KNotification *notification = KNotification::event(type, message, QIcon::fromTheme("dialog-information").pixmap(48), QtUi::mainWindow(), KNotification::RaiseWidgetOnActivation |KNotification::CloseWhenWidgetActivated |KNotification::CloseOnTimeout); diff --git a/src/qtui/knotificationbackend.h b/src/qtui/knotificationbackend.h index d9c8c9db..2f21c9ef 100644 --- a/src/qtui/knotificationbackend.h +++ b/src/qtui/knotificationbackend.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/legacysystemtray.cpp b/src/qtui/legacysystemtray.cpp index 56139e32..16700d60 100644 --- a/src/qtui/legacysystemtray.cpp +++ b/src/qtui/legacysystemtray.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This file is free software; you can redistribute it and/or modify * @@ -29,7 +29,7 @@ LegacySystemTray::LegacySystemTray(QWidget *parent) _blinkState(false), _lastMessageId(0) { -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 _trayIcon = new QSystemTrayIcon(associatedWidget()); #else _trayIcon = new KSystemTrayIcon(associatedWidget()); @@ -142,7 +142,7 @@ void LegacySystemTray::setState(State state_) } -Icon LegacySystemTray::stateIcon() const +QIcon LegacySystemTray::stateIcon() const { if (mode() == Legacy && state() == NeedsAttention && !_blinkState) return SystemTray::stateIcon(Active); diff --git a/src/qtui/legacysystemtray.h b/src/qtui/legacysystemtray.h index 635554f4..f366fbda 100644 --- a/src/qtui/legacysystemtray.h +++ b/src/qtui/legacysystemtray.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This file is free software; you can redistribute it and/or modify * @@ -23,12 +23,13 @@ #ifndef QT_NO_SYSTEMTRAYICON -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include #else # include #endif +#include #include #include "systemtray.h" @@ -44,7 +45,7 @@ public: virtual bool isVisible() const; virtual inline bool isSystemTrayAvailable() const; - virtual Icon stateIcon() const; // overriden to care about blinkState + virtual QIcon stateIcon() const; // overriden to care about blinkState public slots: virtual void setState(State state); @@ -69,7 +70,7 @@ private: bool _blinkState; uint _lastMessageId; -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KSystemTrayIcon *_trayIcon; #else QSystemTrayIcon *_trayIcon; diff --git a/src/qtui/mainpage.cpp b/src/qtui/mainpage.cpp index eb59b2a0..82387ab6 100644 --- a/src/qtui/mainpage.cpp +++ b/src/qtui/mainpage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/mainpage.h b/src/qtui/mainpage.h index 46d23899..0557f8e3 100644 --- a/src/qtui/mainpage.h +++ b/src/qtui/mainpage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 73124aa8..cd4a5fe1 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,12 +20,13 @@ #include "mainwin.h" +#include #include #include #include #include -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # include # include @@ -74,7 +75,6 @@ #include "debuglogwidget.h" #include "debugmessagemodelfilter.h" #include "flatproxymodel.h" -#include "iconloader.h" #include "inputwidget.h" #include "irclistmodel.h" #include "ircconnectionwizard.h" @@ -93,7 +93,7 @@ #include "topicwidget.h" #include "verticaldock.h" -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 # ifdef HAVE_PHONON # include "phononnotificationbackend.h" # endif @@ -102,9 +102,9 @@ # endif # include "systraynotificationbackend.h" # include "taskbarnotificationbackend.h" -#else /* HAVE_KDE */ +#else /* HAVE_KDE4 */ # include "knotificationbackend.h" -#endif /* HAVE_KDE */ +#endif /* HAVE_KDE4 */ #ifdef HAVE_SSL # include "sslinfodlg.h" @@ -140,12 +140,12 @@ #include "settingspages/notificationssettingspage.h" #include "settingspages/topicwidgetsettingspage.h" -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 # include "settingspages/shortcutssettingspage.h" #endif MainWin::MainWin(QWidget *parent) -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 : KMainWindow(parent), _kHelpMenu(new KHelpMenu(this, KGlobal::mainComponent().aboutData())), #else @@ -214,7 +214,7 @@ void MainWin::init() setupTitleSetter(); setupHotList(); -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 # ifdef HAVE_PHONON QtUi::registerNotificationBackend(new PhononNotificationBackend(this)); # endif @@ -226,9 +226,9 @@ void MainWin::init() QtUi::registerNotificationBackend(new TaskbarNotificationBackend(this)); -#else /* HAVE_KDE */ +#else /* HAVE_KDE4 */ QtUi::registerNotificationBackend(new KNotificationBackend(this)); -#endif /* HAVE_KDE */ +#endif /* HAVE_KDE4 */ #ifdef HAVE_INDICATEQT QtUi::registerNotificationBackend(new IndicatorNotificationBackend(this)); @@ -249,7 +249,7 @@ void MainWin::init() setDisconnectedState(); // Disable menus and stuff -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 setAutoSaveSettings(); #endif @@ -295,7 +295,7 @@ void MainWin::saveStateToSettings(UiSettings &s) if (lastBufId.isValid()) s.setValue("LastUsedBufferId", lastBufId.toInt()); -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 saveAutoSaveSettings(); #endif } @@ -307,7 +307,7 @@ void MainWin::restoreStateFromSettings(UiSettings &s) _normalPos = s.value("MainWinPos", pos()).toPoint(); bool maximized = s.value("MainWinMaximized", false).toBool(); -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 restoreGeometry(s.value("MainWinGeometry").toByteArray()); if (maximized) { @@ -337,17 +337,11 @@ void MainWin::restoreStateFromSettings(UiSettings &s) void MainWin::updateIcon() { -#ifdef Q_OS_MAC - const int size = 128; -#else - const int size = 48; -#endif - - QPixmap icon; + QIcon icon; if (Client::isConnected()) - icon = DesktopIcon("quassel", size); + icon = QIcon::fromTheme("quassel", QIcon(":/icons/quassel-128.png")); else - icon = DesktopIcon("quassel-inactive", size); + icon = QIcon::fromTheme("quassel-inactive", QIcon(":/icons/quassel-128.png")); setWindowIcon(icon); qApp->setWindowIcon(icon); } @@ -357,16 +351,16 @@ void MainWin::setupActions() { ActionCollection *coll = QtUi::actionCollection("General", tr("General")); // File - coll->addAction("ConnectCore", new Action(SmallIcon("network-connect"), tr("&Connect to Core..."), coll, + coll->addAction("ConnectCore", new Action(QIcon::fromTheme("network-connect"), tr("&Connect to Core..."), coll, this, SLOT(showCoreConnectionDlg()))); - coll->addAction("DisconnectCore", new Action(SmallIcon("network-disconnect"), tr("&Disconnect from Core"), coll, + coll->addAction("DisconnectCore", new Action(QIcon::fromTheme("network-disconnect"), tr("&Disconnect from Core"), coll, Client::instance(), SLOT(disconnectFromCore()))); - coll->addAction("CoreInfo", new Action(SmallIcon("help-about"), tr("Core &Info..."), coll, + coll->addAction("CoreInfo", new Action(QIcon::fromTheme("help-about"), tr("Core &Info..."), coll, this, SLOT(showCoreInfoDlg()))); - coll->addAction("ConfigureNetworks", new Action(SmallIcon("configure"), tr("Configure &Networks..."), coll, + coll->addAction("ConfigureNetworks", new Action(QIcon::fromTheme("configure"), tr("Configure &Networks..."), coll, this, SLOT(on_actionConfigureNetworks_triggered()))); // FIXME: use QKeySequence::Quit once we depend on Qt 4.6 - coll->addAction("Quit", new Action(SmallIcon("application-exit"), tr("&Quit"), coll, + coll->addAction("Quit", new Action(QIcon::fromTheme("application-exit"), tr("&Quit"), coll, this, SLOT(quit()), Qt::CTRL + Qt::Key_Q)); // View @@ -377,43 +371,43 @@ void MainWin::setupActions() lockAct->setCheckable(true); connect(lockAct, SIGNAL(toggled(bool)), SLOT(on_actionLockLayout_toggled(bool))); - coll->addAction("ToggleSearchBar", new Action(SmallIcon("edit-find"), tr("Show &Search Bar"), coll, + coll->addAction("ToggleSearchBar", new Action(QIcon::fromTheme("edit-find"), tr("Show &Search Bar"), coll, 0, 0, QKeySequence::Find))->setCheckable(true); coll->addAction("ShowAwayLog", new Action(tr("Show Away Log"), coll, this, SLOT(showAwayLog()))); - coll->addAction("ToggleMenuBar", new Action(SmallIcon("show-menu"), tr("Show &Menubar"), coll, + coll->addAction("ToggleMenuBar", new Action(QIcon::fromTheme("show-menu"), tr("Show &Menubar"), coll, 0, 0, QKeySequence(Qt::CTRL + Qt::Key_M)))->setCheckable(true); coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll, 0, 0))->setCheckable(true); -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 QAction *fullScreenAct = KStandardAction::fullScreen(this, SLOT(onFullScreenToggled()), this, coll); #else - QAction *fullScreenAct = new Action(SmallIcon("view-fullscreen"), tr("&Full Screen Mode"), coll, + QAction *fullScreenAct = new Action(QIcon::fromTheme("view-fullscreen"), tr("&Full Screen Mode"), coll, this, SLOT(onFullScreenToggled()), QKeySequence(Qt::Key_F11)); fullScreenAct->setCheckable(true); #endif coll->addAction("ToggleFullScreen", fullScreenAct); // Settings - QAction *configureShortcutsAct = new Action(SmallIcon("configure-shortcuts"), tr("Configure &Shortcuts..."), coll, + QAction *configureShortcutsAct = new Action(QIcon::fromTheme("configure-shortcuts"), tr("Configure &Shortcuts..."), coll, this, SLOT(showShortcutsDlg())); configureShortcutsAct->setMenuRole(QAction::NoRole); coll->addAction("ConfigureShortcuts", configureShortcutsAct); #ifdef Q_OS_MAC - QAction *configureQuasselAct = new Action(SmallIcon("configure"), tr("&Configure Quassel..."), coll, + QAction *configureQuasselAct = new Action(QIcon::fromTheme("configure"), tr("&Configure Quassel..."), coll, this, SLOT(showSettingsDlg())); configureQuasselAct->setMenuRole(QAction::PreferencesRole); #else - QAction *configureQuasselAct = new Action(SmallIcon("configure"), tr("&Configure Quassel..."), coll, + QAction *configureQuasselAct = new Action(QIcon::fromTheme("configure"), tr("&Configure Quassel..."), coll, this, SLOT(showSettingsDlg()), QKeySequence(Qt::Key_F7)); #endif coll->addAction("ConfigureQuassel", configureQuasselAct); // Help - QAction *aboutQuasselAct = new Action(SmallIcon("quassel"), tr("&About Quassel"), coll, + QAction *aboutQuasselAct = new Action(QIcon(":/icons/quassel.png"), tr("&About Quassel"), coll, this, SLOT(showAboutDlg())); aboutQuasselAct->setMenuRole(QAction::AboutRole); coll->addAction("AboutQuassel", aboutQuasselAct); @@ -422,17 +416,17 @@ void MainWin::setupActions() qApp, SLOT(aboutQt())); aboutQtAct->setMenuRole(QAction::AboutQtRole); coll->addAction("AboutQt", aboutQtAct); - coll->addAction("DebugNetworkModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &NetworkModel"), coll, + coll->addAction("DebugNetworkModel", new Action(QIcon::fromTheme("tools-report-bug"), tr("Debug &NetworkModel"), coll, this, SLOT(on_actionDebugNetworkModel_triggered()))); - coll->addAction("DebugBufferViewOverlay", new Action(SmallIcon("tools-report-bug"), tr("Debug &BufferViewOverlay"), coll, + coll->addAction("DebugBufferViewOverlay", new Action(QIcon::fromTheme("tools-report-bug"), tr("Debug &BufferViewOverlay"), coll, this, SLOT(on_actionDebugBufferViewOverlay_triggered()))); - coll->addAction("DebugMessageModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &MessageModel"), coll, + coll->addAction("DebugMessageModel", new Action(QIcon::fromTheme("tools-report-bug"), tr("Debug &MessageModel"), coll, this, SLOT(on_actionDebugMessageModel_triggered()))); - coll->addAction("DebugHotList", new Action(SmallIcon("tools-report-bug"), tr("Debug &HotList"), coll, + coll->addAction("DebugHotList", new Action(QIcon::fromTheme("tools-report-bug"), tr("Debug &HotList"), coll, this, SLOT(on_actionDebugHotList_triggered()))); - coll->addAction("DebugLog", new Action(SmallIcon("tools-report-bug"), tr("Debug &Log"), coll, + coll->addAction("DebugLog", new Action(QIcon::fromTheme("tools-report-bug"), tr("Debug &Log"), coll, this, SLOT(on_actionDebugLog_triggered()))); - coll->addAction("ReloadStyle", new Action(SmallIcon("view-refresh"), tr("Reload Stylesheet"), coll, + coll->addAction("ReloadStyle", new Action(QIcon::fromTheme("view-refresh"), tr("Reload Stylesheet"), coll, QtUi::style(), SLOT(reload()), QKeySequence::Refresh)); coll->addAction("HideCurrentBuffer", new Action(tr("Hide Current Buffer"), coll, @@ -496,13 +490,13 @@ void MainWin::setupActions() QKeySequence(jumpModifier + Qt::Key_9)))->setProperty("Index", 9); // Buffer navigation - coll->addAction("NextBufferView", new Action(SmallIcon("go-next-view"), tr("Activate Next Chat List"), coll, + coll->addAction("NextBufferView", new Action(QIcon::fromTheme("go-next-view"), tr("Activate Next Chat List"), coll, this, SLOT(nextBufferView()), QKeySequence(QKeySequence::Forward))); - coll->addAction("PreviousBufferView", new Action(SmallIcon("go-previous-view"), tr("Activate Previous Chat List"), coll, + coll->addAction("PreviousBufferView", new Action(QIcon::fromTheme("go-previous-view"), tr("Activate Previous Chat List"), coll, this, SLOT(previousBufferView()), QKeySequence::Back)); - coll->addAction("NextBuffer", new Action(SmallIcon("go-down"), tr("Go to Next Chat"), coll, + coll->addAction("NextBuffer", new Action(QIcon::fromTheme("go-down"), tr("Go to Next Chat"), coll, this, SLOT(nextBuffer()), QKeySequence(Qt::ALT + Qt::Key_Down))); - coll->addAction("PreviousBuffer", new Action(SmallIcon("go-up"), tr("Go to Previous Chat"), coll, + coll->addAction("PreviousBuffer", new Action(QIcon::fromTheme("go-up"), tr("Go to Previous Chat"), coll, this, SLOT(previousBuffer()), QKeySequence(Qt::ALT + Qt::Key_Up))); } @@ -548,7 +542,7 @@ void MainWin::setupMenus() _viewMenu->addAction(coll->action("LockLayout")); _settingsMenu = menuBar()->addMenu(tr("&Settings")); -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 _settingsMenu->addAction(KStandardAction::configureNotifications(this, SLOT(showNotificationsDlg()), this)); _settingsMenu->addAction(KStandardAction::keyBindings(this, SLOT(showShortcutsDlg()), this)); #else @@ -558,13 +552,13 @@ void MainWin::setupMenus() _helpMenu = menuBar()->addMenu(tr("&Help")); _helpMenu->addAction(coll->action("AboutQuassel")); -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 _helpMenu->addAction(coll->action("AboutQt")); #else _helpMenu->addAction(KStandardAction::aboutKDE(_kHelpMenu, SLOT(aboutKDE()), this)); #endif _helpMenu->addSeparator(); - _helpDebugMenu = _helpMenu->addMenu(SmallIcon("tools-report-bug"), tr("Debug")); + _helpDebugMenu = _helpMenu->addMenu(QIcon::fromTheme("tools-report-bug"), tr("Debug")); _helpDebugMenu->addAction(coll->action("DebugNetworkModel")); _helpDebugMenu->addAction(coll->action("DebugBufferViewOverlay")); _helpDebugMenu->addAction(coll->action("DebugMessageModel")); @@ -1004,7 +998,7 @@ void MainWin::setupToolBars() setUnifiedTitleAndToolBarOnMac(true); #endif -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 _mainToolBar = new KToolBar("MainToolBar", this, Qt::TopToolBarArea, false, true, true); #else _mainToolBar = new QToolBar(this); @@ -1369,7 +1363,7 @@ void MainWin::showAboutDlg() void MainWin::showShortcutsDlg() { -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KShortcutsDialog dlg(KShortcutsEditor::AllActions, KShortcutsEditor::LetterShortcutsDisallowed, this); foreach(KActionCollection *coll, QtUi::actionCollections()) dlg.addCollection(coll, coll->property("Category").toString()); @@ -1397,7 +1391,7 @@ void MainWin::onFullScreenToggled() if (!action) return; -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KToggleFullScreenAction *kAct = static_cast(action); kAct->setFullScreen(this, kAct->isChecked()); #else @@ -1564,7 +1558,7 @@ void MainWin::clientNetworkUpdated() switch (net->connectionState()) { case Network::Initialized: - action->setIcon(SmallIcon("network-connect")); + action->setIcon(QIcon::fromTheme("network-connect")); // if we have no currently selected buffer, jump to the first connecting statusbuffer if (!bufferWidget()->currentBuffer().isValid()) { QModelIndex idx = Client::networkModel()->networkIndex(net->networkId()); @@ -1575,10 +1569,10 @@ void MainWin::clientNetworkUpdated() } break; case Network::Disconnected: - action->setIcon(SmallIcon("network-disconnect")); + action->setIcon(QIcon::fromTheme("network-disconnect")); break; default: - action->setIcon(SmallIcon("network-wired")); + action->setIcon(QIcon::fromTheme("network-wired")); } } diff --git a/src/qtui/mainwin.h b/src/qtui/mainwin.h index 08400375..30e57269 100644 --- a/src/qtui/mainwin.h +++ b/src/qtui/mainwin.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,7 +21,7 @@ #ifndef MAINWIN_H_ #define MAINWIN_H_ -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include #else # include @@ -56,7 +56,7 @@ class KHelpMenu; //!\brief The main window of Quassel's QtUi. class MainWin -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 : public KMainWindow { #else @@ -169,7 +169,7 @@ signals: void disconnectFromCore(); private: -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KHelpMenu *_kHelpMenu; #endif diff --git a/src/qtui/markerlineitem.cpp b/src/qtui/markerlineitem.cpp index 6faa79a9..171291c8 100644 --- a/src/qtui/markerlineitem.cpp +++ b/src/qtui/markerlineitem.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/markerlineitem.h b/src/qtui/markerlineitem.h index 0981a092..e94ea78e 100644 --- a/src/qtui/markerlineitem.h +++ b/src/qtui/markerlineitem.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/monoapplication.cpp b/src/qtui/monoapplication.cpp index 12a89d83..a0ddbc0c 100644 --- a/src/qtui/monoapplication.cpp +++ b/src/qtui/monoapplication.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -31,9 +31,9 @@ MonolithicApplication::MonolithicApplication(int &argc, char **argv) _internalInitDone(false) { _internal = new CoreApplicationInternal(); // needed for parser options -#if defined(HAVE_KDE) || defined(Q_OS_MAC) +#if defined(HAVE_KDE4) || defined(Q_OS_MAC) disableCrashhandler(); -#endif /* HAVE_KDE || Q_OS_MAC */ +#endif /* HAVE_KDE4 || Q_OS_MAC */ setRunMode(Quassel::Monolithic); } diff --git a/src/qtui/monoapplication.h b/src/qtui/monoapplication.h index 302a39df..6213ef94 100644 --- a/src/qtui/monoapplication.h +++ b/src/qtui/monoapplication.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/msgprocessorstatuswidget.cpp b/src/qtui/msgprocessorstatuswidget.cpp index 2e6ac94e..67415c8a 100644 --- a/src/qtui/msgprocessorstatuswidget.cpp +++ b/src/qtui/msgprocessorstatuswidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/msgprocessorstatuswidget.h b/src/qtui/msgprocessorstatuswidget.h index 397618b4..47883bc1 100644 --- a/src/qtui/msgprocessorstatuswidget.h +++ b/src/qtui/msgprocessorstatuswidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/nicklistwidget.cpp b/src/qtui/nicklistwidget.cpp index 5f8d7a81..d5af971b 100644 --- a/src/qtui/nicklistwidget.cpp +++ b/src/qtui/nicklistwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/nicklistwidget.h b/src/qtui/nicklistwidget.h index a3b84365..1b7253f7 100644 --- a/src/qtui/nicklistwidget.h +++ b/src/qtui/nicklistwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/phononnotificationbackend.cpp b/src/qtui/phononnotificationbackend.cpp index 59513bf0..6710c92b 100644 --- a/src/qtui/phononnotificationbackend.cpp +++ b/src/qtui/phononnotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,6 +19,7 @@ ***************************************************************************/ #include +#include #include #include @@ -27,7 +28,6 @@ #include "phononnotificationbackend.h" #include "clientsettings.h" -#include "iconloader.h" #include "mainwin.h" #include "qtui.h" @@ -112,9 +112,9 @@ PhononNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) { ui.setupUi(this); _audioAvailable = !Phonon::BackendCapabilities::availableAudioOutputDevices().isEmpty(); - ui.enabled->setIcon(SmallIcon("media-playback-start")); - ui.play->setIcon(SmallIcon("media-playback-start")); - ui.open->setIcon(SmallIcon("document-open")); + ui.enabled->setIcon(QIcon::fromTheme("media-playback-start")); + ui.play->setIcon(QIcon::fromTheme("media-playback-start")); + ui.open->setIcon(QIcon::fromTheme("document-open")); connect(ui.enabled, SIGNAL(toggled(bool)), SLOT(widgetChanged())); connect(ui.filename, SIGNAL(textChanged(const QString &)), SLOT(widgetChanged())); diff --git a/src/qtui/phononnotificationbackend.h b/src/qtui/phononnotificationbackend.h index ca449865..26c08a2e 100644 --- a/src/qtui/phononnotificationbackend.h +++ b/src/qtui/phononnotificationbackend.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtui.cpp b/src/qtui/qtui.cpp index e65dfae8..0e637802 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtui.h b/src/qtui/qtui.h index a868ec3f..20c0d535 100644 --- a/src/qtui/qtui.h +++ b/src/qtui/qtui.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtuiapplication.cpp b/src/qtui/qtuiapplication.cpp index cd95678c..a279442b 100644 --- a/src/qtui/qtuiapplication.cpp +++ b/src/qtui/qtuiapplication.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,9 +20,10 @@ #include "qtuiapplication.h" +#include #include -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include #endif @@ -33,7 +34,7 @@ #include "qtuisettings.h" QtUiApplication::QtUiApplication(int &argc, char **argv) -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 : KApplication(), #else : QApplication(argc, argv), @@ -41,7 +42,7 @@ QtUiApplication::QtUiApplication(int &argc, char **argv) Quassel(), _aboutToQuit(false) { -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 Q_UNUSED(argc); Q_UNUSED(argv); // We need to setup KDE's data dirs @@ -51,15 +52,15 @@ QtUiApplication::QtUiApplication(int &argc, char **argv) dataDirs.append(":/data/"); setDataDirPaths(dataDirs); -#else /* HAVE_KDE */ +#else /* HAVE_KDE4 */ setDataDirPaths(findDataDirPaths()); -#endif /* HAVE_KDE */ +#endif /* HAVE_KDE4 */ -#if defined(HAVE_KDE) || defined(Q_OS_MAC) +#if defined(HAVE_KDE4) || defined(Q_OS_MAC) disableCrashhandler(); -#endif /* HAVE_KDE || Q_OS_MAC */ +#endif /* HAVE_KDE4 || Q_OS_MAC */ setRunMode(Quassel::ClientOnly); #if QT_VERSION < 0x050000 @@ -117,6 +118,13 @@ bool QtUiApplication::init() return false; } + // Set the icon theme + if (Quassel::isOptionSet("icontheme")) + QIcon::setThemeName(Quassel::optionValue("icontheme")); + else if (QIcon::themeName().isEmpty()) + // Some platforms don't set a default icon theme; chances are we can find our bundled Oxygen theme though + QIcon::setThemeName("oxygen"); + // session resume QtUi *gui = new QtUi(); Client::init(gui); diff --git a/src/qtui/qtuiapplication.h b/src/qtui/qtuiapplication.h index e2da795b..567d4827 100644 --- a/src/qtui/qtuiapplication.h +++ b/src/qtui/qtuiapplication.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,7 +21,7 @@ #ifndef QTUIAPPLICATION_H_ #define QTUIAPPLICATION_H_ -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include #else # include @@ -34,7 +34,7 @@ class QtUi; -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 class QtUiApplication : public KApplication, public Quassel { #else diff --git a/src/qtui/qtuimessageprocessor.cpp b/src/qtui/qtuimessageprocessor.cpp index 6a9f3b5e..68690f84 100644 --- a/src/qtui/qtuimessageprocessor.cpp +++ b/src/qtui/qtuimessageprocessor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtuimessageprocessor.h b/src/qtui/qtuimessageprocessor.h index c918d8f1..292ad585 100644 --- a/src/qtui/qtuimessageprocessor.h +++ b/src/qtui/qtuimessageprocessor.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtuisettings.cpp b/src/qtui/qtuisettings.cpp index aa0af3e7..90264fff 100644 --- a/src/qtui/qtuisettings.cpp +++ b/src/qtui/qtuisettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtuisettings.h b/src/qtui/qtuisettings.h index 49d05cc9..8aea0690 100644 --- a/src/qtui/qtuisettings.h +++ b/src/qtui/qtuisettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtuistyle.cpp b/src/qtui/qtuistyle.cpp index 2ec8a7e2..80485b0c 100644 --- a/src/qtui/qtuistyle.cpp +++ b/src/qtui/qtuistyle.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/qtuistyle.h b/src/qtui/qtuistyle.h index 868b2703..da5012b6 100644 --- a/src/qtui/qtuistyle.h +++ b/src/qtui/qtuistyle.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/receivefiledlg.cpp b/src/qtui/receivefiledlg.cpp index 3c09f837..287a1884 100644 --- a/src/qtui/receivefiledlg.cpp +++ b/src/qtui/receivefiledlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/receivefiledlg.h b/src/qtui/receivefiledlg.h index 99aa649b..9e888e5c 100644 --- a/src/qtui/receivefiledlg.h +++ b/src/qtui/receivefiledlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingsdlg.cpp b/src/qtui/settingsdlg.cpp index 309f1402..74871c47 100644 --- a/src/qtui/settingsdlg.cpp +++ b/src/qtui/settingsdlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,13 +18,13 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include #include #include #include "settingsdlg.h" #include "client.h" -#include "iconloader.h" SettingsDlg::SettingsDlg(QWidget *parent) : QDialog(parent), @@ -33,7 +33,7 @@ SettingsDlg::SettingsDlg(QWidget *parent) ui.setupUi(this); setModal(true); setAttribute(Qt::WA_DeleteOnClose, true); - setWindowIcon(SmallIcon("configure")); + setWindowIcon(QIcon::fromTheme("configure")); updateGeometry(); diff --git a/src/qtui/settingsdlg.h b/src/qtui/settingsdlg.h index 6279a8dc..b4ca90ef 100644 --- a/src/qtui/settingsdlg.h +++ b/src/qtui/settingsdlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspagedlg.cpp b/src/qtui/settingspagedlg.cpp index c9c3d0b5..2acccb99 100644 --- a/src/qtui/settingspagedlg.cpp +++ b/src/qtui/settingspagedlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,13 +18,12 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include #include #include #include "settingspagedlg.h" -#include "iconloader.h" - SettingsPageDlg::SettingsPageDlg(SettingsPage *page, QWidget *parent) : QDialog(parent) { @@ -37,7 +36,7 @@ SettingsPageDlg::SettingsPageDlg(SettingsPage *page, QWidget *parent) ui.pageTitle->setText(page->title()); setWindowTitle(tr("Configure %1").arg(page->title())); - setWindowIcon(SmallIcon("configure")); + setWindowIcon(QIcon::fromTheme("configure")); // make the scrollarea behave sanely ui.settingsFrame->setWidgetResizable(true); diff --git a/src/qtui/settingspagedlg.h b/src/qtui/settingspagedlg.h index 01416727..c7b52096 100644 --- a/src/qtui/settingspagedlg.h +++ b/src/qtui/settingspagedlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/aliasesmodel.cpp b/src/qtui/settingspages/aliasesmodel.cpp index d909b479..46daed83 100644 --- a/src/qtui/settingspages/aliasesmodel.cpp +++ b/src/qtui/settingspages/aliasesmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/aliasesmodel.h b/src/qtui/settingspages/aliasesmodel.h index 3a8e7b9f..63a0ac89 100644 --- a/src/qtui/settingspages/aliasesmodel.h +++ b/src/qtui/settingspages/aliasesmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/aliasessettingspage.cpp b/src/qtui/settingspages/aliasessettingspage.cpp index 1f9d679e..15127e09 100644 --- a/src/qtui/settingspages/aliasessettingspage.cpp +++ b/src/qtui/settingspages/aliasessettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,16 +21,15 @@ #include "aliasessettingspage.h" #include +#include #include -#include "iconloader.h" - AliasesSettingsPage::AliasesSettingsPage(QWidget *parent) : SettingsPage(tr("IRC"), tr("Aliases"), parent) { ui.setupUi(this); - ui.newAliasButton->setIcon(SmallIcon("list-add")); - ui.deleteAliasButton->setIcon(SmallIcon("edit-delete")); + ui.newAliasButton->setIcon(QIcon::fromTheme("list-add")); + ui.deleteAliasButton->setIcon(QIcon::fromTheme("edit-delete")); ui.aliasesView->setSelectionBehavior(QAbstractItemView::SelectRows); ui.aliasesView->setSelectionMode(QAbstractItemView::SingleSelection); diff --git a/src/qtui/settingspages/aliasessettingspage.h b/src/qtui/settingspages/aliasessettingspage.h index 0180604f..74def75e 100644 --- a/src/qtui/settingspages/aliasessettingspage.h +++ b/src/qtui/settingspages/aliasessettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/appearancesettingspage.cpp b/src/qtui/settingspages/appearancesettingspage.cpp index 2935feb9..0b61893a 100644 --- a/src/qtui/settingspages/appearancesettingspage.cpp +++ b/src/qtui/settingspages/appearancesettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/appearancesettingspage.h b/src/qtui/settingspages/appearancesettingspage.h index ca3eda6b..e6433d65 100644 --- a/src/qtui/settingspages/appearancesettingspage.h +++ b/src/qtui/settingspages/appearancesettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/backlogsettingspage.cpp b/src/qtui/settingspages/backlogsettingspage.cpp index f06a0d2d..1216f111 100644 --- a/src/qtui/settingspages/backlogsettingspage.cpp +++ b/src/qtui/settingspages/backlogsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/backlogsettingspage.h b/src/qtui/settingspages/backlogsettingspage.h index 160bcd6c..e739ef58 100644 --- a/src/qtui/settingspages/backlogsettingspage.h +++ b/src/qtui/settingspages/backlogsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/bufferviewsettingspage.cpp b/src/qtui/settingspages/bufferviewsettingspage.cpp index 32070751..a3308f9b 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.cpp +++ b/src/qtui/settingspages/bufferviewsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,10 +20,10 @@ #include "bufferviewsettingspage.h" +#include #include #include "client.h" -#include "iconloader.h" #include "network.h" #include "bufferviewconfig.h" #include "bufferviewfilter.h" @@ -43,9 +43,9 @@ BufferViewSettingsPage::BufferViewSettingsPage(QWidget *parent) if (!(Client::coreFeatures() & Quassel::HideInactiveNetworks)) ui.hideInactiveNetworks->hide(); - ui.renameBufferView->setIcon(SmallIcon("edit-rename")); - ui.addBufferView->setIcon(SmallIcon("list-add")); - ui.deleteBufferView->setIcon(SmallIcon("edit-delete")); + ui.renameBufferView->setIcon(QIcon::fromTheme("edit-rename")); + ui.addBufferView->setIcon(QIcon::fromTheme("list-add")); + ui.deleteBufferView->setIcon(QIcon::fromTheme("edit-delete")); reset(); diff --git a/src/qtui/settingspages/bufferviewsettingspage.h b/src/qtui/settingspages/bufferviewsettingspage.h index 91902bdc..9c81e74a 100644 --- a/src/qtui/settingspages/bufferviewsettingspage.h +++ b/src/qtui/settingspages/bufferviewsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/chatmonitorsettingspage.cpp b/src/qtui/settingspages/chatmonitorsettingspage.cpp index 535c987c..0c3819f1 100644 --- a/src/qtui/settingspages/chatmonitorsettingspage.cpp +++ b/src/qtui/settingspages/chatmonitorsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,13 +20,14 @@ #include "chatmonitorsettingspage.h" +#include + #include "client.h" #include "networkmodel.h" #include "bufferviewconfig.h" #include "buffermodel.h" #include "bufferview.h" #include "bufferviewfilter.h" -#include "iconloader.h" #include "chatviewsettings.h" #include @@ -36,8 +37,8 @@ ChatMonitorSettingsPage::ChatMonitorSettingsPage(QWidget *parent) { ui.setupUi(this); - ui.activateBuffer->setIcon(SmallIcon("go-next")); - ui.deactivateBuffer->setIcon(SmallIcon("go-previous")); + ui.activateBuffer->setIcon(QIcon::fromTheme("go-next")); + ui.deactivateBuffer->setIcon(QIcon::fromTheme("go-previous")); // setup available buffers config (for the bufferview on the left) _configAvailable = new BufferViewConfig(-667, this); diff --git a/src/qtui/settingspages/chatmonitorsettingspage.h b/src/qtui/settingspages/chatmonitorsettingspage.h index b76b8722..a41b266d 100644 --- a/src/qtui/settingspages/chatmonitorsettingspage.h +++ b/src/qtui/settingspages/chatmonitorsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/chatviewsettingspage.cpp b/src/qtui/settingspages/chatviewsettingspage.cpp index 8a0939f9..9106613e 100644 --- a/src/qtui/settingspages/chatviewsettingspage.cpp +++ b/src/qtui/settingspages/chatviewsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/chatviewsettingspage.h b/src/qtui/settingspages/chatviewsettingspage.h index 12c2db37..b1351612 100644 --- a/src/qtui/settingspages/chatviewsettingspage.h +++ b/src/qtui/settingspages/chatviewsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/connectionsettingspage.cpp b/src/qtui/settingspages/connectionsettingspage.cpp index 3c86c6a5..c517fb6a 100644 --- a/src/qtui/settingspages/connectionsettingspage.cpp +++ b/src/qtui/settingspages/connectionsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/connectionsettingspage.h b/src/qtui/settingspages/connectionsettingspage.h index e71f25e1..3c9d41ad 100644 --- a/src/qtui/settingspages/connectionsettingspage.h +++ b/src/qtui/settingspages/connectionsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/coreaccountsettingspage.cpp b/src/qtui/settingspages/coreaccountsettingspage.cpp index b7c1064b..973737ce 100644 --- a/src/qtui/settingspages/coreaccountsettingspage.cpp +++ b/src/qtui/settingspages/coreaccountsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,10 +20,11 @@ #include "coreaccountsettingspage.h" +#include + #include "client.h" #include "clientsettings.h" #include "coreaccountmodel.h" -#include "iconloader.h" CoreAccountSettingsPage::CoreAccountSettingsPage(QWidget *parent) : SettingsPage(tr("Remote Cores"), QString(), parent), @@ -33,9 +34,9 @@ CoreAccountSettingsPage::CoreAccountSettingsPage(QWidget *parent) { ui.setupUi(this); initAutoWidgets(); - ui.addAccountButton->setIcon(SmallIcon("list-add")); - ui.editAccountButton->setIcon(SmallIcon("document-edit")); - ui.deleteAccountButton->setIcon(SmallIcon("edit-delete")); + ui.addAccountButton->setIcon(QIcon::fromTheme("list-add")); + ui.editAccountButton->setIcon(QIcon::fromTheme("document-edit")); + ui.deleteAccountButton->setIcon(QIcon::fromTheme("edit-delete")); _model = new CoreAccountModel(Client::coreAccountModel(), this); _filteredModel = new FilteredCoreAccountModel(_model, this); diff --git a/src/qtui/settingspages/coreaccountsettingspage.h b/src/qtui/settingspages/coreaccountsettingspage.h index 2489f72e..4bdd6b05 100644 --- a/src/qtui/settingspages/coreaccountsettingspage.h +++ b/src/qtui/settingspages/coreaccountsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/coreconnectionsettingspage.cpp b/src/qtui/settingspages/coreconnectionsettingspage.cpp index 09357a2a..d73c0107 100644 --- a/src/qtui/settingspages/coreconnectionsettingspage.cpp +++ b/src/qtui/settingspages/coreconnectionsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,13 +24,10 @@ CoreConnectionSettingsPage::CoreConnectionSettingsPage(QWidget *parent) : SettingsPage(tr("Remote Cores"), tr("Connection"), parent) { ui.setupUi(this); -#ifndef HAVE_KDE - ui.useSolid->hide(); -#endif initAutoWidgets(); - connect(ui.useSolid, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); + connect(ui.useQNetworkConfigurationManager, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); connect(ui.usePingTimeout, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); connect(ui.useNoTimeout, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); } @@ -49,11 +46,7 @@ void CoreConnectionSettingsPage::widgetHasChanged() void CoreConnectionSettingsPage::defaults() { -#ifdef HAVE_KDE - setRadioButtons(CoreConnectionSettings::UseSolid); -#else - setRadioButtons(CoreConnectionSettings::UsePingTimeout); -#endif + setRadioButtons(CoreConnectionSettings::UseQNetworkConfigurationManager); SettingsPage::defaults(); } @@ -80,11 +73,9 @@ void CoreConnectionSettingsPage::save() void CoreConnectionSettingsPage::setRadioButtons(CoreConnectionSettings::NetworkDetectionMode mode) { switch (mode) { -#ifdef HAVE_KDE - case CoreConnectionSettings::UseSolid: - ui.useSolid->setChecked(true); + case CoreConnectionSettings::UseQNetworkConfigurationManager: + ui.useQNetworkConfigurationManager->setChecked(true); break; -#endif case CoreConnectionSettings::UsePingTimeout: ui.usePingTimeout->setChecked(true); break; @@ -96,10 +87,8 @@ void CoreConnectionSettingsPage::setRadioButtons(CoreConnectionSettings::Network CoreConnectionSettings::NetworkDetectionMode CoreConnectionSettingsPage::modeFromRadioButtons() const { -#ifdef HAVE_KDE - if (ui.useSolid->isChecked()) - return CoreConnectionSettings::UseSolid; -#endif + if (ui.useQNetworkConfigurationManager->isChecked()) + return CoreConnectionSettings::UseQNetworkConfigurationManager; if (ui.usePingTimeout->isChecked()) return CoreConnectionSettings::UsePingTimeout; diff --git a/src/qtui/settingspages/coreconnectionsettingspage.h b/src/qtui/settingspages/coreconnectionsettingspage.h index 060ebfa2..a1a7f799 100644 --- a/src/qtui/settingspages/coreconnectionsettingspage.h +++ b/src/qtui/settingspages/coreconnectionsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/coreconnectionsettingspage.ui b/src/qtui/settingspages/coreconnectionsettingspage.ui index 0e0308d4..15891847 100644 --- a/src/qtui/settingspages/coreconnectionsettingspage.ui +++ b/src/qtui/settingspages/coreconnectionsettingspage.ui @@ -6,7 +6,7 @@ 0 0 - 446 + 476 465 @@ -21,12 +21,12 @@ - + - Rely on KDE's hardware layer to detect if we're online. Recommended for most KDE users + Rely on Qt's network configuration manager to detect if we're online - Use KDE's network status detection (via Solid) + Automatic false @@ -151,7 +151,7 @@ - Actively ping the remote core and disconnect if we didn't get a reply after a certain time + Interval between consecutive connection attempts seconds @@ -206,6 +206,14 @@ + + useQNetworkConfigurationManager + usePingTimeout + pingTimeout + useNoTimeout + autoReconnect + reconnectInterval + diff --git a/src/qtui/settingspages/highlightsettingspage.cpp b/src/qtui/settingspages/highlightsettingspage.cpp index fb0976a4..2fe2a0b4 100644 --- a/src/qtui/settingspages/highlightsettingspage.cpp +++ b/src/qtui/settingspages/highlightsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -252,9 +252,7 @@ void HighlightSettingsPage::save() NotificationSettings notificationSettings; notificationSettings.setHighlightList(highlightList); - NotificationSettings::HighlightNickType highlightNickType; - if (ui.highlightNoNick->isChecked()) - highlightNickType = NotificationSettings::NoNick; + NotificationSettings::HighlightNickType highlightNickType = NotificationSettings::NoNick; if (ui.highlightCurrentNick->isChecked()) highlightNickType = NotificationSettings::CurrentNick; if (ui.highlightAllNicks->isChecked()) @@ -279,18 +277,18 @@ bool HighlightSettingsPage::testHasChanged() { NotificationSettings notificationSettings; - NotificationSettings::HighlightNickType highlightNickType; - if (ui.highlightNoNick->isChecked()) - highlightNickType = NotificationSettings::NoNick; + NotificationSettings::HighlightNickType highlightNickType = NotificationSettings::NoNick; if (ui.highlightCurrentNick->isChecked()) highlightNickType = NotificationSettings::CurrentNick; if (ui.highlightAllNicks->isChecked()) highlightNickType = NotificationSettings::AllNicks; - if (notificationSettings.highlightNick() != highlightNickType) return true; - if (notificationSettings.nicksCaseSensitive() != ui.nicksCaseSensitive->isChecked()) return true; - - if (notificationSettings.highlightList() != highlightList) return true; + if (notificationSettings.highlightNick() != highlightNickType) + return true; + if (notificationSettings.nicksCaseSensitive() != ui.nicksCaseSensitive->isChecked()) + return true; + if (notificationSettings.highlightList() != highlightList) + return true; return false; } diff --git a/src/qtui/settingspages/highlightsettingspage.h b/src/qtui/settingspages/highlightsettingspage.h index 798073a2..423e1b4a 100644 --- a/src/qtui/settingspages/highlightsettingspage.h +++ b/src/qtui/settingspages/highlightsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/identitiessettingspage.cpp b/src/qtui/settingspages/identitiessettingspage.cpp index b26e45fd..d75a1c0b 100644 --- a/src/qtui/settingspages/identitiessettingspage.cpp +++ b/src/qtui/settingspages/identitiessettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,11 +20,11 @@ #include "identitiessettingspage.h" +#include #include #include #include "client.h" -#include "iconloader.h" #include "signalproxy.h" IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent) @@ -32,9 +32,9 @@ IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent) _editSsl(false) { ui.setupUi(this); - ui.renameIdentity->setIcon(BarIcon("edit-rename")); - ui.addIdentity->setIcon(BarIcon("list-add-user")); - ui.deleteIdentity->setIcon(BarIcon("list-remove-user")); + ui.renameIdentity->setIcon(QIcon::fromTheme("edit-rename")); + ui.addIdentity->setIcon(QIcon::fromTheme("list-add-user")); + ui.deleteIdentity->setIcon(QIcon::fromTheme("list-remove-user")); coreConnectionStateChanged(Client::isConnected()); // need a core connection! connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool))); @@ -417,7 +417,7 @@ SaveIdentitiesDlg::SaveIdentitiesDlg(const QList &toCreate, cons : QDialog(parent) { ui.setupUi(this); - ui.abort->setIcon(SmallIcon("dialog-cancel")); + ui.abort->setIcon(QIcon::fromTheme("dialog-cancel")); numevents = toCreate.count() + toUpdate.count() + toRemove.count(); rcvevents = 0; diff --git a/src/qtui/settingspages/identitiessettingspage.h b/src/qtui/settingspages/identitiessettingspage.h index be0e9460..b6b990af 100644 --- a/src/qtui/settingspages/identitiessettingspage.h +++ b/src/qtui/settingspages/identitiessettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/identityeditwidget.cpp b/src/qtui/settingspages/identityeditwidget.cpp index 331a081c..eb93ff42 100644 --- a/src/qtui/settingspages/identityeditwidget.cpp +++ b/src/qtui/settingspages/identityeditwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -34,18 +35,17 @@ #endif #include "client.h" -#include "iconloader.h" IdentityEditWidget::IdentityEditWidget(QWidget *parent) : QWidget(parent) { ui.setupUi(this); - ui.addNick->setIcon(SmallIcon("list-add")); - ui.deleteNick->setIcon(SmallIcon("edit-delete")); - ui.renameNick->setIcon(SmallIcon("edit-rename")); - ui.nickUp->setIcon(SmallIcon("go-up")); - ui.nickDown->setIcon(SmallIcon("go-down")); + ui.addNick->setIcon(QIcon::fromTheme("list-add")); + ui.deleteNick->setIcon(QIcon::fromTheme("edit-delete")); + ui.renameNick->setIcon(QIcon::fromTheme("edit-rename")); + ui.nickUp->setIcon(QIcon::fromTheme("go-up")); + ui.nickDown->setIcon(QIcon::fromTheme("go-down")); // We need to know whenever the state of input widgets changes... connect(ui.realName, SIGNAL(textEdited(const QString &)), this, SIGNAL(widgetHasChanged())); diff --git a/src/qtui/settingspages/identityeditwidget.h b/src/qtui/settingspages/identityeditwidget.h index 6ef82b6f..06bbeb05 100644 --- a/src/qtui/settingspages/identityeditwidget.h +++ b/src/qtui/settingspages/identityeditwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/ignorelistmodel.cpp b/src/qtui/settingspages/ignorelistmodel.cpp index a6ce4df1..17d122ee 100644 --- a/src/qtui/settingspages/ignorelistmodel.cpp +++ b/src/qtui/settingspages/ignorelistmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/ignorelistmodel.h b/src/qtui/settingspages/ignorelistmodel.h index 0383a7be..6065fb0d 100644 --- a/src/qtui/settingspages/ignorelistmodel.h +++ b/src/qtui/settingspages/ignorelistmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/ignorelistsettingspage.cpp b/src/qtui/settingspages/ignorelistsettingspage.cpp index 4b80d647..4aca7d39 100644 --- a/src/qtui/settingspages/ignorelistsettingspage.cpp +++ b/src/qtui/settingspages/ignorelistsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,6 +21,7 @@ #include "ignorelistsettingspage.h" #include +#include #include #include #include @@ -28,16 +29,15 @@ #include #include #include -#include "iconloader.h" IgnoreListSettingsPage::IgnoreListSettingsPage(QWidget *parent) : SettingsPage(tr("IRC"), tr("Ignore List"), parent) { ui.setupUi(this); _delegate = new IgnoreListDelegate(ui.ignoreListView); - ui.newIgnoreRuleButton->setIcon(SmallIcon("list-add")); - ui.deleteIgnoreRuleButton->setIcon(SmallIcon("edit-delete")); - ui.editIgnoreRuleButton->setIcon(SmallIcon("configure")); + ui.newIgnoreRuleButton->setIcon(QIcon::fromTheme("list-add")); + ui.deleteIgnoreRuleButton->setIcon(QIcon::fromTheme("edit-delete")); + ui.editIgnoreRuleButton->setIcon(QIcon::fromTheme("configure")); ui.ignoreListView->setSelectionBehavior(QAbstractItemView::SelectRows); ui.ignoreListView->setSelectionMode(QAbstractItemView::SingleSelection); diff --git a/src/qtui/settingspages/ignorelistsettingspage.h b/src/qtui/settingspages/ignorelistsettingspage.h index 91a0af32..99308ed9 100644 --- a/src/qtui/settingspages/ignorelistsettingspage.h +++ b/src/qtui/settingspages/ignorelistsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/inputwidgetsettingspage.cpp b/src/qtui/settingspages/inputwidgetsettingspage.cpp index 4c0231ac..20bcff30 100644 --- a/src/qtui/settingspages/inputwidgetsettingspage.cpp +++ b/src/qtui/settingspages/inputwidgetsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -25,7 +25,7 @@ InputWidgetSettingsPage::InputWidgetSettingsPage(QWidget *parent) { ui.setupUi(this); -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 ui.enableSpellCheck->hide(); #endif diff --git a/src/qtui/settingspages/inputwidgetsettingspage.h b/src/qtui/settingspages/inputwidgetsettingspage.h index e7a1718b..5cc5de87 100644 --- a/src/qtui/settingspages/inputwidgetsettingspage.h +++ b/src/qtui/settingspages/inputwidgetsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/itemviewsettingspage.cpp b/src/qtui/settingspages/itemviewsettingspage.cpp index 00dce43f..c3ebf3df 100644 --- a/src/qtui/settingspages/itemviewsettingspage.cpp +++ b/src/qtui/settingspages/itemviewsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/itemviewsettingspage.h b/src/qtui/settingspages/itemviewsettingspage.h index 89ca8bab..903cbcd2 100644 --- a/src/qtui/settingspages/itemviewsettingspage.h +++ b/src/qtui/settingspages/itemviewsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/keysequencewidget.cpp b/src/qtui/settingspages/keysequencewidget.cpp index 9f75c754..66c6f487 100644 --- a/src/qtui/settingspages/keysequencewidget.cpp +++ b/src/qtui/settingspages/keysequencewidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This class has been inspired by KDE's KKeySequenceWidget and uses * @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -39,7 +40,6 @@ #include "action.h" #include "actioncollection.h" -#include "iconloader.h" #include "keysequencewidget.h" KeySequenceButton::KeySequenceButton(KeySequenceWidget *d_, QWidget *parent) @@ -172,7 +172,7 @@ KeySequenceWidget::KeySequenceWidget(QWidget *parent) _keyButton = new KeySequenceButton(this, this); _keyButton->setFocusPolicy(Qt::StrongFocus); - _keyButton->setIcon(SmallIcon("configure")); + _keyButton->setIcon(QIcon::fromTheme("configure")); _keyButton->setToolTip(tr("Click on the button, then enter the shortcut like you would in the program.\nExample for Ctrl+a: hold the Ctrl key and press a.")); layout->addWidget(_keyButton); @@ -180,9 +180,9 @@ KeySequenceWidget::KeySequenceWidget(QWidget *parent) layout->addWidget(_clearButton); if (qApp->isLeftToRight()) - _clearButton->setIcon(SmallIcon("edit-clear-locationbar-rtl")); + _clearButton->setIcon(QIcon::fromTheme("edit-clear-locationbar-rtl", QIcon::fromTheme("edit-clear"))); else - _clearButton->setIcon(SmallIcon("edit-clear-locationbar-ltr")); + _clearButton->setIcon(QIcon::fromTheme("edit-clear-locationbar-ltr", QIcon::fromTheme("edit-clear"))); setLayout(layout); diff --git a/src/qtui/settingspages/keysequencewidget.h b/src/qtui/settingspages/keysequencewidget.h index 9d71b262..a0a3685c 100644 --- a/src/qtui/settingspages/keysequencewidget.h +++ b/src/qtui/settingspages/keysequencewidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This class has been inspired by KDE's KKeySequenceWidget and uses * diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index 69f5c814..011328d5 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,13 +19,13 @@ ***************************************************************************/ #include +#include #include #include #include "networkssettingspage.h" #include "client.h" -#include "iconloader.h" #include "identity.h" #include "network.h" #include "presetnetworks.h" @@ -52,21 +52,21 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) #endif // set up icons - ui.renameNetwork->setIcon(SmallIcon("edit-rename")); - ui.addNetwork->setIcon(SmallIcon("list-add")); - ui.deleteNetwork->setIcon(SmallIcon("edit-delete")); - ui.addServer->setIcon(SmallIcon("list-add")); - ui.deleteServer->setIcon(SmallIcon("edit-delete")); - ui.editServer->setIcon(SmallIcon("configure")); - ui.upServer->setIcon(SmallIcon("go-up")); - ui.downServer->setIcon(SmallIcon("go-down")); - ui.editIdentities->setIcon(SmallIcon("configure")); + ui.renameNetwork->setIcon(QIcon::fromTheme("edit-rename")); + ui.addNetwork->setIcon(QIcon::fromTheme("list-add")); + ui.deleteNetwork->setIcon(QIcon::fromTheme("edit-delete")); + ui.addServer->setIcon(QIcon::fromTheme("list-add")); + ui.deleteServer->setIcon(QIcon::fromTheme("edit-delete")); + ui.editServer->setIcon(QIcon::fromTheme("configure")); + ui.upServer->setIcon(QIcon::fromTheme("go-up")); + ui.downServer->setIcon(QIcon::fromTheme("go-down")); + ui.editIdentities->setIcon(QIcon::fromTheme("configure")); _ignoreWidgetChanges = false; - connectedIcon = SmallIcon("network-connect"); - connectingIcon = SmallIcon("network-wired"); // FIXME network-connecting - disconnectedIcon = SmallIcon("network-disconnect"); + connectedIcon = QIcon::fromTheme("network-connect"); + connectingIcon = QIcon::fromTheme("network-wired"); // FIXME network-connecting + disconnectedIcon = QIcon::fromTheme("network-disconnect"); foreach(int mib, QTextCodec::availableMibs()) { QByteArray codec = QTextCodec::codecForMib(mib)->name(); @@ -497,7 +497,7 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) foreach(Network::Server server, info.serverList) { QListWidgetItem *item = new QListWidgetItem(QString("%1:%2").arg(server.host).arg(server.port)); if (server.useSsl) - item->setIcon(SmallIcon("document-encrypt")); + item->setIcon(QIcon::fromTheme("document-encrypt")); ui.serverList->addItem(item); } //setItemState(id); @@ -784,7 +784,7 @@ IdentityId NetworksSettingsPage::defaultIdentity() const NetworkAddDlg::NetworkAddDlg(const QStringList &exist, QWidget *parent) : QDialog(parent), existing(exist) { ui.setupUi(this); - ui.useSSL->setIcon(SmallIcon("document-encrypt")); + ui.useSSL->setIcon(QIcon::fromTheme("document-encrypt")); // read preset networks QStringList networks = PresetNetworks::names(); @@ -863,7 +863,7 @@ void NetworkEditDlg::on_networkEdit_textChanged(const QString &text) ServerEditDlg::ServerEditDlg(const Network::Server &server, QWidget *parent) : QDialog(parent) { ui.setupUi(this); - ui.useSSL->setIcon(SmallIcon("document-encrypt")); + ui.useSSL->setIcon(QIcon::fromTheme("document-encrypt")); ui.host->setText(server.host); ui.host->setFocus(); ui.port->setValue(server.port); diff --git a/src/qtui/settingspages/networkssettingspage.h b/src/qtui/settingspages/networkssettingspage.h index 065869ae..1162a63a 100644 --- a/src/qtui/settingspages/networkssettingspage.h +++ b/src/qtui/settingspages/networkssettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,7 +21,7 @@ #ifndef NETWORKSSETTINGSPAGE_H #define NETWORKSSETTINGSPAGE_H -#include +#include #include "network.h" #include "settingspage.h" @@ -95,7 +95,7 @@ private: CertIdentity *_cid; #endif - QPixmap connectedIcon, connectingIcon, disconnectedIcon; + QIcon connectedIcon, connectingIcon, disconnectedIcon; void reset(); bool testHasChanged(); diff --git a/src/qtui/settingspages/notificationssettingspage.cpp b/src/qtui/settingspages/notificationssettingspage.cpp index 6232bc5e..6bd31db6 100644 --- a/src/qtui/settingspages/notificationssettingspage.cpp +++ b/src/qtui/settingspages/notificationssettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/notificationssettingspage.h b/src/qtui/settingspages/notificationssettingspage.h index 51c02667..941d4e57 100644 --- a/src/qtui/settingspages/notificationssettingspage.h +++ b/src/qtui/settingspages/notificationssettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/previewbufferview.h b/src/qtui/settingspages/previewbufferview.h index f82063aa..fd0d6d5c 100644 --- a/src/qtui/settingspages/previewbufferview.h +++ b/src/qtui/settingspages/previewbufferview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/shortcutsmodel.cpp b/src/qtui/settingspages/shortcutsmodel.cpp index e0d3fd78..e3528870 100644 --- a/src/qtui/settingspages/shortcutsmodel.cpp +++ b/src/qtui/settingspages/shortcutsmodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/shortcutsmodel.h b/src/qtui/settingspages/shortcutsmodel.h index bb8bdcb3..6e670216 100644 --- a/src/qtui/settingspages/shortcutsmodel.h +++ b/src/qtui/settingspages/shortcutsmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/shortcutssettingspage.cpp b/src/qtui/settingspages/shortcutssettingspage.cpp index 7d91bc4d..d1c8b730 100644 --- a/src/qtui/settingspages/shortcutssettingspage.cpp +++ b/src/qtui/settingspages/shortcutssettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/shortcutssettingspage.h b/src/qtui/settingspages/shortcutssettingspage.h index 1144a152..c94fe37e 100644 --- a/src/qtui/settingspages/shortcutssettingspage.h +++ b/src/qtui/settingspages/shortcutssettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/topicwidgetsettingspage.cpp b/src/qtui/settingspages/topicwidgetsettingspage.cpp index 514a0548..ff4c7c40 100644 --- a/src/qtui/settingspages/topicwidgetsettingspage.cpp +++ b/src/qtui/settingspages/topicwidgetsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/settingspages/topicwidgetsettingspage.h b/src/qtui/settingspages/topicwidgetsettingspage.h index 589af478..37751086 100644 --- a/src/qtui/settingspages/topicwidgetsettingspage.h +++ b/src/qtui/settingspages/topicwidgetsettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/simplenetworkeditor.cpp b/src/qtui/simplenetworkeditor.cpp index 38f5b58b..6815101d 100644 --- a/src/qtui/simplenetworkeditor.cpp +++ b/src/qtui/simplenetworkeditor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,7 +20,7 @@ #include "simplenetworkeditor.h" -#include "iconloader.h" +#include #include "networkssettingspage.h" @@ -29,11 +29,11 @@ SimpleNetworkEditor::SimpleNetworkEditor(QWidget *parent) { ui.setupUi(this); - ui.addServer->setIcon(SmallIcon("list-add")); - ui.deleteServer->setIcon(SmallIcon("edit-delete")); - ui.editServer->setIcon(SmallIcon("configure")); - ui.upServer->setIcon(SmallIcon("go-up")); - ui.downServer->setIcon(SmallIcon("go-down")); + ui.addServer->setIcon(QIcon::fromTheme("list-add")); + ui.deleteServer->setIcon(QIcon::fromTheme("edit-delete")); + ui.editServer->setIcon(QIcon::fromTheme("configure")); + ui.upServer->setIcon(QIcon::fromTheme("go-up")); + ui.downServer->setIcon(QIcon::fromTheme("go-down")); connect(ui.networkNameEdit, SIGNAL(textEdited(const QString &)), this, SIGNAL(widgetHasChanged())); connect(ui.channelList, SIGNAL(textChanged()), this, SIGNAL(widgetHasChanged())); @@ -65,7 +65,7 @@ void SimpleNetworkEditor::displayNetworkInfo(const NetworkInfo &networkInfo) foreach(Network::Server server, _networkInfo.serverList) { QListWidgetItem *item = new QListWidgetItem(QString("%1:%2").arg(server.host).arg(server.port)); if (server.useSsl) - item->setIcon(SmallIcon("document-encrypt")); + item->setIcon(QIcon::fromTheme("document-encrypt")); ui.serverList->addItem(item); } diff --git a/src/qtui/simplenetworkeditor.h b/src/qtui/simplenetworkeditor.h index 6dc2c606..ce18b1be 100644 --- a/src/qtui/simplenetworkeditor.h +++ b/src/qtui/simplenetworkeditor.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/snorenotificationbackend.cpp b/src/qtui/snorenotificationbackend.cpp index 3612bb02..6732c549 100644 --- a/src/qtui/snorenotificationbackend.cpp +++ b/src/qtui/snorenotificationbackend.cpp @@ -24,7 +24,6 @@ #include #include "client.h" -#include "iconloader.h" #include "networkmodel.h" #include "systraynotificationbackend.h" #include "qtui.h" @@ -50,7 +49,7 @@ SnoreNotificationBackend::SnoreNotificationBackend (QObject *parent) //TODO: try to get an instance of the tray icon to be able to show popups m_snore = new Snore::SnoreCore(); m_snore->loadPlugins(Snore::SnorePlugin::BACKEND); - m_icon = Snore::Icon(DesktopIcon("quassel").toImage()); + m_icon = Snore::Icon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png")).pixmap(48).toImage()); m_application = Snore::Application("Quassel", m_icon); m_application.hints().setValue("WINDOWS_APP_ID","QuasselProject.QuasselIRC"); diff --git a/src/qtui/sslinfodlg.cpp b/src/qtui/sslinfodlg.cpp index 88ac6b1d..6fbf1103 100644 --- a/src/qtui/sslinfodlg.cpp +++ b/src/qtui/sslinfodlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/sslinfodlg.h b/src/qtui/sslinfodlg.h index 067cc4c5..38c7d36b 100644 --- a/src/qtui/sslinfodlg.h +++ b/src/qtui/sslinfodlg.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/statusnotifieritem.cpp b/src/qtui/statusnotifieritem.cpp index df04252b..a75c3255 100644 --- a/src/qtui/statusnotifieritem.cpp +++ b/src/qtui/statusnotifieritem.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This contains code from KStatusNotifierItem, part of the KDE libs * @@ -51,15 +51,8 @@ public: protected: virtual QString iconNameForAction(QAction *action) // TODO Qt 4.7: fixme when we have converted our iconloader { - Icon icon(action->icon()); -#if QT_VERSION >= 0x040701 - // QIcon::name() is in the 4.7 git branch, but it is not in 4.7 TP. - // If you get a build error here, you need to update your pre-release - // of Qt 4.7. + QIcon icon(action->icon()); return icon.isNull() ? QString() : icon.name(); -#else - return QString(); -#endif } }; @@ -293,7 +286,7 @@ bool StatusNotifierItem::eventFilter(QObject *watched, QEvent *event) { if (mode() == StatusNotifier) { //FIXME: ugly ugly workaround to weird QMenu's focus problems -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 if (watched == trayMenu() && (event->type() == QEvent::WindowDeactivate || (event->type() == QEvent::MouseButtonRelease && static_cast(event)->button() == Qt::LeftButton))) { // put at the back of event queue to let the action activate anyways diff --git a/src/qtui/statusnotifieritem.h b/src/qtui/statusnotifieritem.h index aa356351..76ac6eb4 100644 --- a/src/qtui/statusnotifieritem.h +++ b/src/qtui/statusnotifieritem.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This contains code from KStatusNotifierItem, part of the KDE libs * diff --git a/src/qtui/statusnotifieritemdbus.cpp b/src/qtui/statusnotifieritemdbus.cpp index 2d5e2d21..2be23283 100644 --- a/src/qtui/statusnotifieritemdbus.cpp +++ b/src/qtui/statusnotifieritemdbus.cpp @@ -31,7 +31,7 @@ #include #include -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # include #endif @@ -328,11 +328,11 @@ void StatusNotifierItemDBus::ContextMenu(int x, int y) //TODO: nicer placement, possible? if (!m_statusNotifierItem->trayMenu()->isVisible()) { -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 m_statusNotifierItem->trayMenu()->setWindowFlags(Qt::Window|Qt::FramelessWindowHint); #endif m_statusNotifierItem->trayMenu()->popup(QPoint(x, y)); -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KWindowSystem::setState(m_statusNotifierItem->trayMenu()->winId(), NET::SkipTaskbar|NET::SkipPager|NET::KeepAbove); KWindowSystem::setType(m_statusNotifierItem->trayMenu()->winId(), NET::PopupMenu); KWindowSystem::forceActiveWindow(m_statusNotifierItem->trayMenu()->winId()); diff --git a/src/qtui/systemtray.cpp b/src/qtui/systemtray.cpp index 02ecffa3..df148699 100644 --- a/src/qtui/systemtray.cpp +++ b/src/qtui/systemtray.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This file is free software; you can redistribute it and/or modify * @@ -26,10 +26,9 @@ #include "action.h" #include "actioncollection.h" #include "client.h" -#include "iconloader.h" #include "qtui.h" -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # include # include @@ -40,9 +39,9 @@ SystemTray::SystemTray(QWidget *parent) _mode(Invalid), _state(Passive), _shouldBeVisible(true), - _passiveIcon(DesktopIcon("quassel-inactive")), - _activeIcon(DesktopIcon("quassel")), - _needsAttentionIcon(DesktopIcon("quassel-message")), + _passiveIcon(QIcon::fromTheme("quassel-inactive", QIcon(":/icons/quassel-inactive.png"))), + _activeIcon(QIcon::fromTheme("quassel", QIcon(":/icons/quassel.png"))), + _needsAttentionIcon(QIcon::fromTheme("quassel-message", QIcon(":/icons/quassel-message.png"))), _trayMenu(0), _associatedWidget(parent) { @@ -67,7 +66,7 @@ void SystemTray::init() ActionCollection *coll = QtUi::actionCollection("General"); _minimizeRestoreAction = new Action(tr("&Minimize"), this, this, SLOT(minimizeRestore())); -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 KMenu *kmenu; _trayMenu = kmenu = new KMenu(); kmenu->addTitle(_activeIcon, "Quassel IRC"); @@ -77,7 +76,7 @@ void SystemTray::init() _trayMenu->setTitle("Quassel IRC"); -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 _trayMenu->setAttribute(Qt::WA_Hover); #endif @@ -108,7 +107,7 @@ void SystemTray::setMode(Mode mode_) { if (mode_ != _mode) { _mode = mode_; -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 if (_trayMenu) { if (_mode == Legacy) { _trayMenu->setWindowFlags(Qt::Popup); @@ -122,13 +121,13 @@ void SystemTray::setMode(Mode mode_) } -Icon SystemTray::stateIcon() const +QIcon SystemTray::stateIcon() const { return stateIcon(state()); } -Icon SystemTray::stateIcon(State state) const +QIcon SystemTray::stateIcon(State state) const { switch (state) { case Passive: @@ -138,7 +137,7 @@ Icon SystemTray::stateIcon(State state) const case NeedsAttention: return _needsAttentionIcon; } - return Icon(); + return QIcon(); } diff --git a/src/qtui/systemtray.h b/src/qtui/systemtray.h index 151d3492..864f9dd4 100644 --- a/src/qtui/systemtray.h +++ b/src/qtui/systemtray.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This file is free software; you can redistribute it and/or modify * @@ -21,7 +21,7 @@ #ifndef SYSTEMTRAY_H_ #define SYSTEMTRAY_H_ -#include "icon.h" +#include class Action; class QMenu; @@ -84,7 +84,7 @@ public slots: signals: void activated(SystemTray::ActivationReason); - void iconChanged(const Icon &); + void iconChanged(const QIcon &icon); void animationEnabledChanged(bool); void toolTipChanged(const QString &title, const QString &subtitle); void messageClicked(uint notificationId); @@ -97,8 +97,8 @@ protected: virtual void setMode(Mode mode); inline bool shouldBeVisible() const; - virtual Icon stateIcon() const; - Icon stateIcon(State state) const; + virtual QIcon stateIcon() const; + QIcon stateIcon(State state) const; inline QString toolTipTitle() const; inline QString toolTipSubTitle() const; inline QMenu *trayMenu() const; @@ -116,7 +116,7 @@ private: bool _shouldBeVisible; QString _toolTipTitle, _toolTipSubTitle; - Icon _passiveIcon, _activeIcon, _needsAttentionIcon; + QIcon _passiveIcon, _activeIcon, _needsAttentionIcon; bool _animationEnabled; QMenu *_trayMenu; diff --git a/src/qtui/systraynotificationbackend.cpp b/src/qtui/systraynotificationbackend.cpp index 5492f0a2..16082258 100644 --- a/src/qtui/systraynotificationbackend.cpp +++ b/src/qtui/systraynotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,14 +21,13 @@ #include #include #include +#include #include #include "systraynotificationbackend.h" #include "client.h" #include "clientsettings.h" -#include "icon.h" -#include "iconloader.h" #include "mainwin.h" #include "networkmodel.h" #include "qtui.h" @@ -154,7 +153,7 @@ SettingsPage *SystrayNotificationBackend::createConfigWidget() const SystrayNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) : SettingsPage("Internal", "SystrayNotification", parent) { _showBubbleBox = new QCheckBox(tr("Show a message in a popup")); - _showBubbleBox->setIcon(SmallIcon("dialog-information")); + _showBubbleBox->setIcon(QIcon::fromTheme("dialog-information")); connect(_showBubbleBox, SIGNAL(toggled(bool)), this, SLOT(widgetChanged())); QHBoxLayout *layout = new QHBoxLayout(this); layout->addWidget(_showBubbleBox); diff --git a/src/qtui/systraynotificationbackend.h b/src/qtui/systraynotificationbackend.h index 5d993713..82e39215 100644 --- a/src/qtui/systraynotificationbackend.h +++ b/src/qtui/systraynotificationbackend.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/taskbarnotificationbackend.cpp b/src/qtui/taskbarnotificationbackend.cpp index a689c132..26444f7b 100644 --- a/src/qtui/taskbarnotificationbackend.cpp +++ b/src/qtui/taskbarnotificationbackend.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,12 +21,12 @@ #include #include #include +#include #include #include "taskbarnotificationbackend.h" #include "clientsettings.h" -#include "iconloader.h" #include "mainwin.h" #include "qtui.h" @@ -84,7 +84,7 @@ TaskbarNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) : Settin #else layout->addWidget(enabledBox = new QCheckBox(tr("Mark taskbar entry, timeout:"), this)); #endif - enabledBox->setIcon(SmallIcon("flag-blue")); + enabledBox->setIcon(QIcon::fromTheme("flag-blue")); enabledBox->setEnabled(true); timeoutBox = new QSpinBox(this); diff --git a/src/qtui/taskbarnotificationbackend.h b/src/qtui/taskbarnotificationbackend.h index 5536d668..3adb09f1 100644 --- a/src/qtui/taskbarnotificationbackend.h +++ b/src/qtui/taskbarnotificationbackend.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/titlesetter.cpp b/src/qtui/titlesetter.cpp index 02a8f956..2ef0bd11 100644 --- a/src/qtui/titlesetter.cpp +++ b/src/qtui/titlesetter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/titlesetter.h b/src/qtui/titlesetter.h index 09759cdb..002a686d 100644 --- a/src/qtui/titlesetter.h +++ b/src/qtui/titlesetter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/topicwidget.cpp b/src/qtui/topicwidget.cpp index ae835013..95d6284b 100644 --- a/src/qtui/topicwidget.cpp +++ b/src/qtui/topicwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,8 +20,9 @@ #include "topicwidget.h" +#include + #include "client.h" -#include "iconloader.h" #include "networkmodel.h" #include "uisettings.h" #include "graphicalui.h" @@ -31,7 +32,7 @@ TopicWidget::TopicWidget(QWidget *parent) : AbstractItemView(parent) { ui.setupUi(this); - ui.topicEditButton->setIcon(SmallIcon("edit-rename")); + ui.topicEditButton->setIcon(QIcon::fromTheme("edit-rename")); ui.topicLineEdit->setLineWrapEnabled(true); ui.topicLineEdit->installEventFilter(this); diff --git a/src/qtui/topicwidget.h b/src/qtui/topicwidget.h index bb25afa4..87c163cf 100644 --- a/src/qtui/topicwidget.h +++ b/src/qtui/topicwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/verticaldock.cpp b/src/qtui/verticaldock.cpp index 4f0bbeb2..6cd25e72 100644 --- a/src/qtui/verticaldock.cpp +++ b/src/qtui/verticaldock.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/verticaldock.h b/src/qtui/verticaldock.h index f9492291..bad09fb4 100644 --- a/src/qtui/verticaldock.h +++ b/src/qtui/verticaldock.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/webpreviewitem.cpp b/src/qtui/webpreviewitem.cpp index 19237078..1d7a27cd 100644 --- a/src/qtui/webpreviewitem.cpp +++ b/src/qtui/webpreviewitem.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qtui/webpreviewitem.h b/src/qtui/webpreviewitem.h index 71517f74..1ad2e851 100644 --- a/src/qtui/webpreviewitem.h +++ b/src/qtui/webpreviewitem.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/CMakeLists.txt b/src/uisupport/CMakeLists.txt index 8be2e95e..0b78acc9 100644 --- a/src/uisupport/CMakeLists.txt +++ b/src/uisupport/CMakeLists.txt @@ -1,6 +1,7 @@ # Builds the uisupport module set(SOURCES + aboutdata.cpp abstractbuffercontainer.cpp abstractitemview.cpp action.cpp @@ -17,8 +18,6 @@ set(SOURCES flatproxymodel.cpp fontselector.cpp graphicalui.cpp - icon.cpp - iconloader.cpp multilineedit.cpp networkmodelcontroller.cpp nickview.cpp @@ -36,7 +35,7 @@ set(SOURCES abstractnotificationbackend.h ) -if (KDE4_FOUND) +if (WITH_KDE4) include_directories(${KDE4_INCLUDES}) add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) set(SOURCES ${SOURCES} kcmdlinewrapper.cpp) @@ -53,8 +52,12 @@ endif() add_library(mod_uisupport STATIC ${SOURCES}) qt_use_modules(mod_uisupport Core Gui Network ${qt_modules}) -if (KDE4_FOUND) +target_link_libraries(mod_uisupport mod_client mod_common) + +if (WITH_KDE4) target_link_libraries(mod_uisupport ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY}) endif() -add_dependencies(mod_uisupport mod_common mod_client) +if (WITH_KF5) + target_link_libraries(mod_uisupport KF5::CoreAddons KF5::TextWidgets) +endif() diff --git a/src/uisupport/aboutdata.cpp b/src/uisupport/aboutdata.cpp new file mode 100644 index 00000000..17356fda --- /dev/null +++ b/src/uisupport/aboutdata.cpp @@ -0,0 +1,300 @@ +/*************************************************************************** + * Copyright (C) 2005-2015 by the Quassel Project * + * devel@quassel-irc.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) version 3. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include "aboutdata.h" + +#include + +#include "quassel.h" + + +AboutPerson::AboutPerson(const QString &name, const QString &nick, const QString &task, const QString &emailAddress, QLocale::Language translatedLanguage) + : _name(name) + , _nick(nick) + , _task(task) + , _emailAddress(emailAddress) + , _language(translatedLanguage) +{ + +} + + +QString AboutPerson::name() const +{ + return _name; +} + + +QString AboutPerson::nick() const +{ + return _nick; +} + + +QString AboutPerson::task() const +{ + return _task; +} + + +QString AboutPerson::emailAddress() const +{ + return _emailAddress; +} + + +QLocale::Language AboutPerson::translatedLanguage() const +{ + return _language; +} + + +QString AboutPerson::prettyName() const +{ + if (!name().isEmpty() && !nick().isEmpty()) + return name() + " (" + nick() + ')'; + + if (name().isEmpty() && !nick().isEmpty()) + return nick(); + + return name(); +} + + +/**************************************************************************************************/ + + +AboutData::AboutData(QObject *parent) + : QObject(parent) +{ + +} + + +QList AboutData::authors() const +{ + return _authors; +} + + +QList< AboutPerson > AboutData::credits() const +{ + return _credits; +} + + +AboutData &AboutData::addAuthor(const AboutPerson &author) +{ + _authors.append(author); + return *this; +} + + +AboutData &AboutData::addAuthors(std::initializer_list authors) +{ + _authors.append(authors); + return *this; +} + + +AboutData &AboutData::addCredit(const AboutPerson &credit) +{ + _credits.append(credit); + return *this; +} + + +AboutData &AboutData::addCredits(std::initializer_list credits) +{ + _credits.append(credits); + return *this; +} + +#ifdef HAVE_KF5 + +KAboutData AboutData::kAboutData() const +{ + KAboutData aboutData( + Quassel::buildInfo().applicationName, + tr("Quassel IRC"), + Quassel::buildInfo().plainVersionString + ); + aboutData.addLicense(KAboutLicense::GPL_V2); + aboutData.addLicense(KAboutLicense::GPL_V3); + aboutData.setShortDescription(tr("A modern, distributed IRC client")); + aboutData.setProgramLogo(QVariant::fromValue(QImage(":/pics/quassel-logo.png"))); + aboutData.setBugAddress("http://bugs.quassel-irc.org/projects/quassel-irc/issues/new"); + aboutData.setOrganizationDomain(Quassel::buildInfo().organizationDomain.toUtf8()); + + for (const auto &person : authors()) { + aboutData.addAuthor(person.prettyName(), person.task(), person.emailAddress()); + } + + for (const auto &person : credits()) { + aboutData.addCredit(person.prettyName(), person.task(), person.emailAddress()); + } + + return aboutData; +} + +#endif + + +/**************************************************************************************************/ + +/* + * NOTE: The list of contributors was retrieved from the Git history, but sometimes things fall + * through the cracks... especially for translations, we don't have an easy way to track + * contributors' names. + * If you find wrong data for yourself, want your nickname and/or mail addresses added or + * removed, or feel left out or unfairly credited, please don't hesitate to let us know! We + * do want to credit everyone who has contributed to Quassel development. + */ + +void AboutData::setQuasselPersons(AboutData *aboutData) +{ + aboutData->addAuthors({ + { "Manuel Nickschas", "Sputnick", tr("Project Founder, Lead Developer"), "sputnick@quassel-irc.org" }, + { "Marcus Eggenberger", "EgS", tr("Project Motivator, Lead Developer"), "egs@quassel-irc.org" }, + { "Alexander von Renteln", "phon", tr("Former Lead Developer"), "phon@quassel-irc.org" }, + { "Daniel Albers", "al", tr("Master of Translation, many fixes and enhancements") }, + { "Sebastian Goth", "seezer", tr("Many features, fixes and improvements") }, + { "Bas Pape", "Tucos", tr("Many fixes and improvements, bug and patch triaging, community support") }, + }); + + aboutData->addCredits({ + { "Adam Harwood", "2kah", tr("Chatview improvements") }, + { "Adam Tulinius", "adamt", tr("Early beta tester and bughunter, Danish translation"), "", QLocale::Danish }, + { "Adolfo Jayme Barrientos", "", tr("Spanish translation"), "", QLocale::Spanish }, + { "Alexander Stein", "", tr("Tray icon fix") }, + { "Alf Gaida", "agaida", tr("Language improvements") }, + { "Allan Jude", "", tr("Documentation improvements") }, + { "Arthur Titeica", "roentgen", tr("Romanian translation"), "", QLocale::Romanian }, + { "Atte Virtanen", "", tr("Finnish translation"), "", QLocale::Finnish }, + { "Aurélien Gâteau", "agateau", tr("Message indicator support") }, + { "Awad Mackie", "firesock", tr("Chatview improvements") }, + { "Benjamin Zeller", "zbenjamin", tr("Windows build system fixes") }, + { "Bruno Brigras", "", tr("Crash fixes") }, + { "Bruno Patri", "", tr("French translation"), "", QLocale::French }, + { "Celeste Paul", "seele", tr("Usability review") }, + { "Chris Fuenty", "stitch", tr("SASL support") }, + { "Chris H", "Zren", tr("Various improvements") }, + { "Chris Le Sueur", "Fish-Face", tr("Various fixes and improvements") }, + { "Chris Moeller", "kode54", tr("Various fixes and improvements") }, + { "", "Condex", tr("Galician translation"), "", QLocale::Galician }, + { "", "cordata", tr("Esperanto translation"), "", QLocale::Esperanto }, + { "Daniel E. Moctezuma", "", tr("Japanese translation"), "", QLocale::Japanese }, + { "Daniel Meltzer", "hydrogen", tr("Various fixes and improvements") }, + { "Daniel Pielmeier", "billie", tr("Gentoo maintainer") }, + { "Daniel Steinmetz", "son", tr("Early beta tester and bughunter (on Vista™!)") }, + { "David Planella", "", tr("Translation system fixes") }, + { "David Sansome", "", tr("OSX Notification Center support") }, + { "David Roden", "Bombe", tr("Fixes") }, + { "Deniz Türkoglu", "", tr("Mac fixes") }, + { "Dennis Schridde", "devurandom", tr("D-Bus notifications") }, + { "", "derpella", tr("Polish translation"), "", QLocale::Polish }, + { "Diego Pettenò", "Flameeyes", tr("Build system improvements") }, + { "Dirk Rettschlag", "MarcLandis", tr("Formatting support and other input line improvements, many other fixes") }, + { "", "Dorian", tr("French translation"), "", QLocale::French }, + { "Drew Patridge", "LinuxDolt", tr("BluesTheme stylesheet") }, + { "Edward Hades", "", tr("Russian translation"), "", QLocale::Russian }, + { "Fabiano Francesconi", "elbryan", tr("Italian translation"), "", QLocale::Italian }, + { "Felix Geyer", "debfx", tr("Certificate handling improvements") }, + { "Florent Castelli", "", tr("Sanitize topic handling") }, + { "Frederik M.J. Vestre", "freqmod", tr("Norwegian translation"), "", QLocale::Norwegian }, + { "Gábor Németh", "ELITE_x", tr("Hungarian translation"), "", QLocale::Hungarian }, + { "Gryllida A", "gry", tr("IRC parser improvements") }, + { "H. Ä°brahim Güngör", "igungor", tr("Turkish translation"), "", QLocale::Turkish }, + { "Harald Fernengel", "harryF", tr("Initial Qt5 support") }, + { "Harald Sitter", "apachelogger", tr("{Ku|U}buntu packager, motivator, promoter") }, + { "Hendrik Leppkes", "nevcairiel", tr("Various features") }, + { "Henning Rohlfs", "honk", tr("Various fixes") }, + { "J-P Nurmi", "", tr("Various fixes") }, + { "Jaak Ristioja", "", tr("Bugfixes") }, + { "Jason Lynch", "", tr("Bugfixes") }, + { "Jens Arnold", "amiconn", tr("Postgres migration fixes") }, + { "Jerome Leclanche", "Adys", tr("Context menu fixes") }, + { "Jesper Thomschütz", "", tr("Various fixes") }, + { "Jiri Grönroos", "", tr("Finnish translation"), "", QLocale::Finnish }, + { "Johannes Huber", "johu", tr("Many fixes and improvements, bug triaging") }, + { "John Hand", "nox", tr("Original \"All-Seeing Eye\" logo") }, + { "Jonas Heese", "Dante", tr("Project founder, various improvements") }, + { "Joshua T Corbin", "tvakah", tr("Various fixes") }, + { "Jovan Jojkić", "", tr("Serbian translation"), "", QLocale::Serbian }, + { "Jure Repinc", "JLP", tr("Slovenian translation"), "", QLocale::Slovenian }, + { "Jussi Schultink", "jussi01", tr("Tireless tester, {Ku|U}buntu tester and lobbyist, liters of delicious Finnish alcohol") }, + { "K. Ernest Lee", "iFire", tr("Qt5 porting help, Travis CI setup") }, + { "Kevin Funk", "KRF", tr("German translation"), "", QLocale::German }, + { "", "Larso", tr("Finnish translation"), "", QLocale::Finnish }, + { "Lasse Liehu", "", tr("Finnish translation"), "", QLocale::Finnish }, + { "Leo Franchi", "", tr("OSX improvements") }, + { "Liudas Alisauskas", "", tr("Lithuanian translation"), "", QLocale::Lithuanian }, + { "Luke Faraone", "", tr("Documentation fixes") }, + { "Maia Kozheva", "", tr("Russian translation"), "", QLocale::Russian }, + { "Marco Genise", "kaffeedoktor", tr("Ideas, hacking, initial motivation") }, + { "Marco Paolone", "Quizzlo", tr("Italian translation"), "", QLocale::Italian }, + { "Martin Mayer", "m4yer", tr("German translation"), "", QLocale::German }, + { "Martin Sandsmark", "sandsmark", tr("Core and other fixes, QuasselDroid") }, + { "Matthias Coy", "pennywise", tr("German translation"), "", QLocale::German }, + { "Mattia Basaglia", "", tr("Fixes") }, + { "Michael Groh", "brot", tr("German translation, fixes"), "", QLocale::German }, + { "Michael Kedzierski", "ycros", tr("Mac fixes") }, + { "Michael Marley", "mamarley", tr("Many fixes and improvements; Ubuntu live packages") }, + { "Miguel Revilla", "", tr("Spanish translation"), "", QLocale::Spanish }, + { "Nuno Pinheiro", "", tr("Tons of Oxygen icons including the Quassel logo") }, + { "Patrick Lauer", "bonsaikitten", tr("Gentoo maintainer") }, + { "Patrick von Reth", "TheOneRing", tr("MinGW support, SNORE backend, Windows packaging") }, + { "Paul Klumpp", "Haudrauf", tr("Initial design and main window layout") }, + { "Pavel Volkovitskiy", "int", tr("Early beta tester and bughunter") }, + { "Per Nielsen", "", tr("Danish translation"), "", QLocale::Danish }, + { "Pete Beardmore", "elbeardmorez", tr("Linewrap for input line") }, + { "Ramanathan Sivagurunathan", "", tr("Bugfixes") }, + { "Regis Perrin", "ZRegis", tr("French translation"), "", QLocale::French }, + { "Rolf Eike Beer", "", tr("Build system fixes") }, + { "Roscoe van Wyk", "", tr("Bugfixes") }, + { "Rüdiger Sonderfeld", "ruediger", tr("Emacs keybindings") }, + { "", "salnx", tr("Highlight configuration improvements") }, + { "Scott Kitterman", "ScottK", tr("Kubuntu packager, (packaging/build system) bughunter") }, + { "Sebastian Meyer", "", tr("Bugfixes") }, + { "Sebastien Fricker", "", tr("Audio backend improvements") }, + { "", "sfionov", tr("Russian translation"), "", QLocale::Russian }, + { "Simon Philips", "", tr("Dutch translation"), "", QLocale::Dutch }, + { "Sjors Gielen", "dazjorz", tr("Bugfixes") }, + { "Stefanos Sofroniou", "", tr("Greek translation"), "", QLocale::Greek }, + { "Stella Rouzi", "differentreality", tr("Greek translation"), "", QLocale::Greek }, + { "Rafael Belmonte", "EagleScreen", tr("Spanish translation"), "", QLocale::Spanish }, + { "Sergiu Bivol", "", tr("Romanian translation"), "", QLocale::Romanian }, + { "Tae-Hoon Kwon", "", tr("Korean translation"), "", QLocale::Korean }, + { "Terje Andersen", "tan", tr("Norwegian translation, documentation") }, + { "Theo Chatzimichos", "tampakrap", tr("Greek translation"), "", QLocale::Greek }, + { "Theofilos Intzoglou", "", tr("Greek translation"), "", QLocale::Greek }, + { "Thomas Hogh", "Datafreak", tr("Former Windows builder") }, + { "Thomas Müller", "", tr("Fixes, Debian packaging") }, + { "Tim Schumacher", "xAFFE", tr("Fixes and feedback") }, + { "", "ToBeFree", tr("German translation"), "", QLocale::German }, + { "Tomáš Chvátal", "scarabeus", tr("Czech translation"), "", QLocale::Czech }, + { "Vit Pelcak", "", tr("Czech translation"), "", QLocale::Czech }, + { "Volkan Gezer", "", tr("Turkish translation"), "", QLocale::Turkish }, + { "Yaohan Chen", "hagabaka", tr("Network detection improvements") }, + { "Yuri Chornoivan", "", tr("Ukrainian translation"), "", QLocale::Ukrainian }, + { "Zé", "", tr("Portuguese translation"), "", QLocale::Portuguese }, + { "", "zeugma", tr("Turkish translation"), "", QLocale::Turkish } + }); +} diff --git a/src/uisupport/aboutdata.h b/src/uisupport/aboutdata.h new file mode 100644 index 00000000..6c306be9 --- /dev/null +++ b/src/uisupport/aboutdata.h @@ -0,0 +1,194 @@ +/*************************************************************************** + * Copyright (C) 2005-2015 by the Quassel Project * + * devel@quassel-irc.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) version 3. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#pragma once + +#include + +#ifdef HAVE_KF5 +# include +#endif + + +/** + * Represents a contributor or author for Quassel. + * + * This is used to show a list of contributors in the About Quassel dialog. + */ +class AboutPerson +{ +public: + /** + * Constructor. + * + * @param[in] name The person's name (in the form "Firstname Surname") + * @param[in] nick The person's nickname, if applicable + * @param[in] task Things the person does or has done for the project + * @param[in] emailAddress The person's email address, if applicable + * @param[in] translatedLanguage The language the person helped translate (only applicable for translators) + */ + AboutPerson(const QString &name, const QString &nick, const QString &task, const QString &emailAddress = QString(), QLocale::Language translatedLanguage = QLocale::C); + + /** + * Gets the person's name. + * + * @returns The person's name + */ + QString name() const; + + /** + * Gets the person's nick. + * + * @returns The person's nick + */ + QString nick() const; + + /** + * Gets the person's task. + * + * @returns The person's task + */ + QString task() const; + + /** + * Gets the person's e-mail address. + * + * @returns The person's e-mail address + */ + QString emailAddress() const; + + /** + * Gets the language this person helped translate. + * + * @returns The language this person helped translate + */ + QLocale::Language translatedLanguage() const; + + /** + * Gets the person's formatted name and nick. + * + * @returns The person's name and nick formatted for combined output + */ + QString prettyName() const; + +private: + QString _name; ///< The person's name + QString _nick; ///< The person's nick + QString _task; ///< The person's task + QString _emailAddress; ///< The person's email address + QLocale::Language _language; ///< The language the person helps translate +}; + + +/** + * Holds a list of authors, contributors and translators. + * + * This class is meant to hold the list of people who contributed to Quassel, used for displaying + * the About Quassel dialog. Additionally, this class can provide a KAboutData object to be shown + * if KDE integration is enabled. + */ +class AboutData : public QObject +{ + Q_OBJECT +public: + /** + * Default constructor. + * + * @param[in] parent The parent object, if applicable + */ + AboutData(QObject *parent = nullptr); + + /** + * Adds an author to the list of contributors. + * + * Authors are people who contributed a significant amount of code to Quassel. + * + * @param[in] author The author to add + * @returns A reference to this AboutData instance + */ + AboutData &addAuthor(const AboutPerson &author); + + /** + * Adds a list of authors to the list of contributors. + * + * This method allows the use of a brace initializer in order to easily add a long list of + * people. + * + * @param[in] authors A list of authors to add + * @returns A reference to this AboutData instance + */ + AboutData &addAuthors(std::initializer_list authors); + + /** + * Adds a contributor. + * + * @param[in] author The contributor to add + * @returns A reference to this AboutData instance + */ + AboutData &addCredit(const AboutPerson &credit); + + /** + * Adds a list of contributors. + * + * This method allows the use of brace initializers in order to easily add a long list of + * people. + * + * @param[in] authors A list of contributors to add + * @returns A reference to this AboutData instance + */ + AboutData &addCredits(std::initializer_list credits); + + /** + * Gets the list of authors stored in this AboutData instance. + * + * @returns A list of authors + */ + QList authors() const; + + /** + * Gets the list of non-author contributors stored in this AboutData instance. + * + * @returns A list of contributors + */ + QList credits() const; + +#ifdef HAVE_KF5 + /** + * Creates a KAboutData instance based on the contents of this AboutData instance. + * + * @returns A KAboutData instance holding the list of contributors as well as any additional + * data required for KAboutDialog and friends + */ + KAboutData kAboutData() const; +#endif + + /** + * Fills the given AboutData instance with data relevant for Quassel itself. + * + * This method adds a (hardcoded) list of contributors to the given AboutData instance. + * + * @param[in,out] aboutData An existing AboutData instance to add Quassel's contributors to + */ + static void setQuasselPersons(AboutData *aboutData); + +private: + QList _authors; ///< The list of authors + QList _credits; ///< The list of other contributors +}; diff --git a/src/uisupport/abstractbuffercontainer.cpp b/src/uisupport/abstractbuffercontainer.cpp index f56e58df..4527563e 100644 --- a/src/uisupport/abstractbuffercontainer.cpp +++ b/src/uisupport/abstractbuffercontainer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/abstractbuffercontainer.h b/src/uisupport/abstractbuffercontainer.h index b2e90fb8..d9836544 100644 --- a/src/uisupport/abstractbuffercontainer.h +++ b/src/uisupport/abstractbuffercontainer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/abstractitemview.cpp b/src/uisupport/abstractitemview.cpp index 4ad44869..ac084a29 100644 --- a/src/uisupport/abstractitemview.cpp +++ b/src/uisupport/abstractitemview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/abstractitemview.h b/src/uisupport/abstractitemview.h index 13abb489..8ae6d22b 100644 --- a/src/uisupport/abstractitemview.h +++ b/src/uisupport/abstractitemview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/abstractnotificationbackend.h b/src/uisupport/abstractnotificationbackend.h index 62f107cd..7d7cc7f2 100644 --- a/src/uisupport/abstractnotificationbackend.h +++ b/src/uisupport/abstractnotificationbackend.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/action.cpp b/src/uisupport/action.cpp index 77b9d52b..c222dc19 100644 --- a/src/uisupport/action.cpp +++ b/src/uisupport/action.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -25,7 +25,7 @@ #include Action::Action(QObject *parent) -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 : KAction(parent) #else : QWidgetAction(parent) @@ -36,7 +36,7 @@ Action::Action(QObject *parent) Action::Action(const QString &text, QObject *parent, const QObject *receiver, const char *slot, const QKeySequence &shortcut) -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 : KAction(parent) #else : QWidgetAction(parent) @@ -51,7 +51,7 @@ Action::Action(const QString &text, QObject *parent, const QObject *receiver, co Action::Action(const QIcon &icon, const QString &text, QObject *parent, const QObject *receiver, const char *slot, const QKeySequence &shortcut) -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 : KAction(parent) #else : QWidgetAction(parent) @@ -66,7 +66,7 @@ Action::Action(const QIcon &icon, const QString &text, QObject *parent, const QO } -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 void Action::init() {} #else void Action::init() @@ -124,4 +124,4 @@ void Action::setShortcut(const QKeySequence &key, ShortcutTypes type) } -#endif /* HAVE_KDE */ +#endif /* HAVE_KDE4 */ diff --git a/src/uisupport/action.h b/src/uisupport/action.h index 0d97c08b..dbef28cb 100644 --- a/src/uisupport/action.h +++ b/src/uisupport/action.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,7 +23,7 @@ #ifndef ACTION_H_ #define ACTION_H_ -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 #include #include @@ -71,7 +71,7 @@ private slots: Q_DECLARE_OPERATORS_FOR_FLAGS(Action::ShortcutTypes) -#else /* HAVE_KDE */ +#else /* HAVE_KDE4 */ #include class Action : public KAction diff --git a/src/uisupport/actioncollection.cpp b/src/uisupport/actioncollection.cpp index c918c821..b862ae85 100644 --- a/src/uisupport/actioncollection.cpp +++ b/src/uisupport/actioncollection.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,7 +20,7 @@ * Parts of this implementation are based on KDE's KActionCollection. * ***************************************************************************/ -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 #include #include @@ -305,4 +305,4 @@ bool ActionCollection::unlistAction(QAction *action) } -#endif /* HAVE_KDE */ +#endif /* HAVE_KDE4 */ diff --git a/src/uisupport/actioncollection.h b/src/uisupport/actioncollection.h index d14981ac..a76fc04a 100644 --- a/src/uisupport/actioncollection.h +++ b/src/uisupport/actioncollection.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,7 +23,7 @@ #ifndef ACTIONCOLLECTION_H_ #define ACTIONCOLLECTION_H_ -#ifndef HAVE_KDE +#ifndef HAVE_KDE4 #include #include @@ -123,7 +123,7 @@ private: int ActionCollection::count() const { return actions().count(); } bool ActionCollection::isEmpty() const { return actions().count(); } -#else /* HAVE_KDE */ +#else /* HAVE_KDE4 */ #include diff --git a/src/uisupport/bufferhotlistfilter.cpp b/src/uisupport/bufferhotlistfilter.cpp index e40f9000..0df42033 100644 --- a/src/uisupport/bufferhotlistfilter.cpp +++ b/src/uisupport/bufferhotlistfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/bufferhotlistfilter.h b/src/uisupport/bufferhotlistfilter.h index 3254d80e..0a2d3ac2 100644 --- a/src/uisupport/bufferhotlistfilter.h +++ b/src/uisupport/bufferhotlistfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 167d6b99..7973785e 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/bufferview.h b/src/uisupport/bufferview.h index 1c0c52ec..a49ce15c 100644 --- a/src/uisupport/bufferview.h +++ b/src/uisupport/bufferview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/bufferviewfilter.cpp b/src/uisupport/bufferviewfilter.cpp index 2720fd11..970f037a 100644 --- a/src/uisupport/bufferviewfilter.cpp +++ b/src/uisupport/bufferviewfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -30,7 +30,6 @@ #include "client.h" #include "clientbufferviewconfig.h" #include "graphicalui.h" -#include "iconloader.h" #include "networkmodel.h" #include "uistyle.h" diff --git a/src/uisupport/bufferviewfilter.h b/src/uisupport/bufferviewfilter.h index 3c63467c..1a4d7818 100644 --- a/src/uisupport/bufferviewfilter.h +++ b/src/uisupport/bufferviewfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/bufferviewoverlayfilter.cpp b/src/uisupport/bufferviewoverlayfilter.cpp index 86569ae2..6eb9a416 100644 --- a/src/uisupport/bufferviewoverlayfilter.cpp +++ b/src/uisupport/bufferviewoverlayfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/bufferviewoverlayfilter.h b/src/uisupport/bufferviewoverlayfilter.h index de8b5e8c..d8db915d 100644 --- a/src/uisupport/bufferviewoverlayfilter.h +++ b/src/uisupport/bufferviewoverlayfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/clearablelineedit.cpp b/src/uisupport/clearablelineedit.cpp index c7b1fab5..1b0fea71 100644 --- a/src/uisupport/clearablelineedit.cpp +++ b/src/uisupport/clearablelineedit.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,16 +20,15 @@ #include "clearablelineedit.h" +#include #include #include -#include "iconloader.h" - ClearableLineEdit::ClearableLineEdit(QWidget *parent) : QLineEdit(parent) { clearButton = new QToolButton(this); - clearButton->setIcon(SmallIcon("edit-clear-locationbar-rtl")); + clearButton->setIcon(QIcon::fromTheme("edit-clear-locationbar-rtl", QIcon::fromTheme("edit-clear"))); #ifndef Q_WS_QWS clearButton->setCursor(Qt::ArrowCursor); #endif diff --git a/src/uisupport/clearablelineedit.h b/src/uisupport/clearablelineedit.h index d55be74d..e6b63ba0 100644 --- a/src/uisupport/clearablelineedit.h +++ b/src/uisupport/clearablelineedit.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/clickable.cpp b/src/uisupport/clickable.cpp index 3b32f267..5364a706 100644 --- a/src/uisupport/clickable.cpp +++ b/src/uisupport/clickable.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/clickable.h b/src/uisupport/clickable.h index d64c1402..d0edd9ed 100644 --- a/src/uisupport/clickable.h +++ b/src/uisupport/clickable.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/clickablelabel.cpp b/src/uisupport/clickablelabel.cpp index a1ca1a71..c1872f8c 100644 --- a/src/uisupport/clickablelabel.cpp +++ b/src/uisupport/clickablelabel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/clickablelabel.h b/src/uisupport/clickablelabel.h index b35e40cf..f7fd0f4d 100644 --- a/src/uisupport/clickablelabel.h +++ b/src/uisupport/clickablelabel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/colorbutton.cpp b/src/uisupport/colorbutton.cpp index d1730103..fae61703 100644 --- a/src/uisupport/colorbutton.cpp +++ b/src/uisupport/colorbutton.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,7 +24,7 @@ #include #include -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include #else # include @@ -56,7 +56,7 @@ QColor ColorButton::color() const void ColorButton::chooseColor() { -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 QColor c = color(); KColorDialog::getColor(c, this); #else diff --git a/src/uisupport/colorbutton.h b/src/uisupport/colorbutton.h index 30a87a8b..3b993d10 100644 --- a/src/uisupport/colorbutton.h +++ b/src/uisupport/colorbutton.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/contextmenuactionprovider.cpp b/src/uisupport/contextmenuactionprovider.cpp index 3eefc168..0d9e483a 100644 --- a/src/uisupport/contextmenuactionprovider.cpp +++ b/src/uisupport/contextmenuactionprovider.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,6 +18,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include #include #include #include @@ -27,7 +28,6 @@ #include "buffermodel.h" #include "buffersettings.h" -#include "iconloader.h" #include "clientidentity.h" #include "network.h" #include "util.h" @@ -36,11 +36,11 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkModelController(parent) { - registerAction(NetworkConnect, SmallIcon("network-connect"), tr("Connect")); - registerAction(NetworkDisconnect, SmallIcon("network-disconnect"), tr("Disconnect")); + registerAction(NetworkConnect, QIcon::fromTheme("network-connect"), tr("Connect")); + registerAction(NetworkDisconnect, QIcon::fromTheme("network-disconnect"), tr("Disconnect")); - registerAction(BufferJoin, SmallIcon("irc-join-channel"), tr("Join")); - registerAction(BufferPart, SmallIcon("irc-close-channel"), tr("Part")); + registerAction(BufferJoin, QIcon::fromTheme("irc-join-channel"), tr("Join")); + registerAction(BufferPart, QIcon::fromTheme("irc-close-channel"), tr("Part")); registerAction(BufferRemove, tr("Delete Chat(s)...")); registerAction(BufferSwitchTo, tr("Go to Chat")); @@ -54,7 +54,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM registerAction(HideApplyToAll, tr("Set as Default...")); registerAction(HideUseDefaults, tr("Use Defaults...")); - registerAction(JoinChannel, SmallIcon("irc-join-channel"), tr("Join Channel...")); + registerAction(JoinChannel, QIcon::fromTheme("irc-join-channel"), tr("Join Channel...")); registerAction(NickQuery, tr("Start Query")); registerAction(NickSwitchTo, tr("Show Query")); @@ -76,15 +76,15 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM registerAction(NickIgnoreToggleEnabled3, "Enable", true); registerAction(NickIgnoreToggleEnabled4, "Enable", true); - registerAction(NickOp, SmallIcon("irc-operator"), tr("Give Operator Status")); - registerAction(NickDeop, SmallIcon("irc-remove-operator"), tr("Take Operator Status")); - registerAction(NickHalfop, SmallIcon("irc-voice"), tr("Give Half-Operator Status")); - registerAction(NickDehalfop, SmallIcon("irc-unvoice"), tr("Take Half-Operator Status")); - registerAction(NickVoice, SmallIcon("irc-voice"), tr("Give Voice")); - registerAction(NickDevoice, SmallIcon("irc-unvoice"), tr("Take Voice")); - registerAction(NickKick, SmallIcon("im-kick-user"), tr("Kick From Channel")); - registerAction(NickBan, SmallIcon("im-ban-user"), tr("Ban From Channel")); - registerAction(NickKickBan, SmallIcon("im-ban-kick-user"), tr("Kick && Ban")); + registerAction(NickOp, QIcon::fromTheme("irc-operator"), tr("Give Operator Status")); + registerAction(NickDeop, QIcon::fromTheme("irc-remove-operator"), tr("Take Operator Status")); + registerAction(NickHalfop, QIcon::fromTheme("irc-voice"), tr("Give Half-Operator Status")); + registerAction(NickDehalfop, QIcon::fromTheme("irc-unvoice"), tr("Take Half-Operator Status")); + registerAction(NickVoice, QIcon::fromTheme("irc-voice"), tr("Give Voice")); + registerAction(NickDevoice, QIcon::fromTheme("irc-unvoice"), tr("Take Voice")); + registerAction(NickKick, QIcon::fromTheme("im-kick-user"), tr("Kick From Channel")); + registerAction(NickBan, QIcon::fromTheme("im-ban-user"), tr("Ban From Channel")); + registerAction(NickKickBan, QIcon::fromTheme("im-ban-kick-user"), tr("Kick && Ban")); registerAction(HideBufferTemporarily, tr("Hide Chat(s) Temporarily")); registerAction(HideBufferPermanently, tr("Hide Chat(s) Permanently")); diff --git a/src/uisupport/contextmenuactionprovider.h b/src/uisupport/contextmenuactionprovider.h index b27aaa62..eb512f6c 100644 --- a/src/uisupport/contextmenuactionprovider.h +++ b/src/uisupport/contextmenuactionprovider.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/flatproxymodel.cpp b/src/uisupport/flatproxymodel.cpp index 95874035..bd6dcd08 100644 --- a/src/uisupport/flatproxymodel.cpp +++ b/src/uisupport/flatproxymodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -204,8 +204,9 @@ QItemSelection FlatProxyModel::mapSelectionToSource(const QItemSelection &proxyS row++; } - Q_ASSERT(topLeftItem && bottomRightItem); // there should be one range left. - sourceSelection << QItemSelectionRange(mapToSource(createIndex(topLeftItem->pos(), left, topLeftItem)), mapToSource(createIndex(bottomRightItem->pos(), right, bottomRightItem))); + if (topLeftItem && bottomRightItem) { // there should be one range left. + sourceSelection << QItemSelectionRange(mapToSource(createIndex(topLeftItem->pos(), left, topLeftItem)), mapToSource(createIndex(bottomRightItem->pos(), right, bottomRightItem))); + } } return sourceSelection; diff --git a/src/uisupport/flatproxymodel.h b/src/uisupport/flatproxymodel.h index 90c1a5dd..079b08de 100644 --- a/src/uisupport/flatproxymodel.h +++ b/src/uisupport/flatproxymodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/fontselector.cpp b/src/uisupport/fontselector.cpp index 466a0a3f..df0946d9 100644 --- a/src/uisupport/fontselector.cpp +++ b/src/uisupport/fontselector.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/fontselector.h b/src/uisupport/fontselector.h index f65bbd60..0150d197 100644 --- a/src/uisupport/fontselector.h +++ b/src/uisupport/fontselector.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/graphicalui.cpp b/src/uisupport/graphicalui.cpp index 1c17a5e8..0fb34b04 100644 --- a/src/uisupport/graphicalui.cpp +++ b/src/uisupport/graphicalui.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This contains code from KStatusNotifierItem, part of the KDE libs * @@ -31,7 +31,7 @@ #ifdef Q_WS_X11 # include #endif -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # include #endif @@ -166,7 +166,7 @@ bool GraphicalUi::checkMainWidgetVisibility(bool perform) return true; } -#elif defined(HAVE_KDE) && defined(Q_WS_X11) +#elif defined(HAVE_KDE4) && defined(Q_WS_X11) KWindowInfo info1 = KWindowSystem::windowInfo(mainWidget()->winId(), NET::XAWMState | NET::WMState | NET::WMDesktop); // mapped = visible (but possibly obscured) bool mapped = (info1.mappingState() == NET::Visible) && !info1.isMinimized(); @@ -261,7 +261,7 @@ void GraphicalUi::minimizeRestore(bool show) void GraphicalUi::activateMainWidget() { -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # ifdef Q_WS_X11 KWindowInfo info = KWindowSystem::windowInfo(mainWidget()->winId(), NET::WMDesktop | NET::WMFrameExtents); if (_onAllDesktops) { @@ -282,7 +282,7 @@ void GraphicalUi::activateMainWidget() KWindowSystem::forceActiveWindow(mainWidget()->winId()); # endif -#else /* HAVE_KDE */ +#else /* HAVE_KDE4 */ #ifdef Q_WS_X11 // Bypass focus stealing prevention @@ -300,13 +300,13 @@ void GraphicalUi::activateMainWidget() mainWidget()->raise(); mainWidget()->activateWindow(); -#endif /* HAVE_KDE */ +#endif /* HAVE_KDE4 */ } void GraphicalUi::hideMainWidget() { -#if defined(HAVE_KDE) && defined(Q_WS_X11) +#if defined(HAVE_KDE4) && defined(Q_WS_X11) KWindowInfo info = KWindowSystem::windowInfo(mainWidget()->winId(), NET::WMDesktop | NET::WMFrameExtents); _onAllDesktops = info.onAllDesktops(); #endif diff --git a/src/uisupport/graphicalui.h b/src/uisupport/graphicalui.h index 59d06583..e35b3cec 100644 --- a/src/uisupport/graphicalui.h +++ b/src/uisupport/graphicalui.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/iconloader.cpp b/src/uisupport/iconloader.cpp deleted file mode 100644 index 940c3422..00000000 --- a/src/uisupport/iconloader.cpp +++ /dev/null @@ -1,191 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * - * devel@quassel-irc.org * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) version 3. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef HAVE_KDE - -#include -#include -#include -#include - -#include "iconloader.h" -#include "quassel.h" -#include "util.h" - -IconLoader IconLoader::_iconLoader; -int IconLoader::_groupSize[] = { 48, 22, 22, 16, 32, 22 }; // default sizes taken from Oxygen - -IconLoader *IconLoader::global() -{ - // Workaround: the static _iconLoader might be initialized before the resources it needs - // This way, first call to global() will init it by setting the theme - if (_iconLoader.theme().isEmpty()) - _iconLoader.setTheme("oxygen"); - return &_iconLoader; -} - - -IconLoader::IconLoader(QObject *parent) : QObject(parent) -{ - // setTheme("oxygen"); -} - - -IconLoader::~IconLoader() -{ -} - - -void IconLoader::setTheme(const QString &theme) -{ - _theme = theme; - // check which dirs could contain themed icons - _themedIconDirNames.clear(); - _plainIconDirNames.clear(); - - // First, look for a system theme - // This is supposed to only work on Unix, though other platforms might set $XDG_DATA_DIRS if they please. - QStringList iconDirNames = QString(qgetenv("XDG_DATA_DIRS")).split(':', QString::SkipEmptyParts); - if (!iconDirNames.isEmpty()) { - for (int i = 0; i < iconDirNames.count(); i++) - iconDirNames[i].append(QString("/icons/")); - } -#ifdef Q_OS_UNIX - else { - // Provide a fallback - iconDirNames << "/usr/share/icons/"; - } - // Add our prefix too - QString appDir = QCoreApplication::applicationDirPath(); - int binpos = appDir.lastIndexOf("/bin"); - if (binpos >= 0) { - appDir.replace(binpos, 4, "/share"); - appDir.append("/icons/"); - if (!iconDirNames.contains(appDir)) - iconDirNames.append(appDir); - } -#endif - - // Now look for an icons/ subdir in our data paths - foreach(const QString &dir, Quassel::dataDirPaths()) - iconDirNames << dir + "icons/"; - - // Add our resource path too - iconDirNames << ":/icons/"; - - // Ready do add theme names - foreach(const QString &dir, iconDirNames) { - QString path = dir + theme + '/'; - if (QFile::exists(path)) - _themedIconDirNames << path; - } - foreach(const QString &dir, iconDirNames) { - QString path = dir + "hicolor/"; - if (QFile::exists(path)) - _themedIconDirNames << path; - } - - // We ship some plain (non-themed) icons in $data/pics - foreach(const QString &dir, Quassel::dataDirPaths()) { - QString path = dir + "pics/"; - if (QFile::exists(path)) - _plainIconDirNames << path; - } - // And of course, our resource path - if (QFile::exists(":/pics")) - _plainIconDirNames << ":/pics"; -} - - -// TODO: optionally implement cache (speed/memory tradeoff?) -QPixmap IconLoader::loadIcon(const QString &name, IconLoader::Group group, int size) -{ - if (group < 0 || group >= LastGroup) { - qWarning() << "Invalid icon group!"; - return QPixmap(); - } - if (size == 0) - size = _groupSize[group]; - - QString path = findIconPath(name, size); - if (path.isEmpty()) return QPixmap(); - - // load the icon - return QPixmap(path); -} - - -QString IconLoader::findIconPath(const QString &name, int size) -{ - QString fname = QString("%1.png").arg(name); // we only support PNG so far - // First, look for a themed icon... we don't do anything fancy here, only exact match for both name and size - foreach(QString basedir, _themedIconDirNames) { - QDir sizedir(QString("%1/%2x%2").arg(basedir).arg(QString::number(size))); - if (sizedir.exists()) { - // ignore context, i.e. scan all subdirs - QStringList contextdirs = sizedir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); - foreach(QString dir, contextdirs) { - QString path = QString("%1/%2/%3").arg(sizedir.absolutePath(), dir, fname); - if (QFile::exists(path)) return path; - } - } - } - // Now check the plain dirs - foreach(QString dir, _plainIconDirNames) { - QString path = QString("%1/%2").arg(dir, name); - if (QFile::exists(path)) return path; - } - - qWarning() << "Icon not found:" << name << size; - return QString(); -} - - -// Convenience constructors - -QPixmap DesktopIcon(const QString &name, int force_size) -{ - IconLoader *loader = IconLoader::global(); - return loader->loadIcon(name, IconLoader::Desktop, force_size); -} - - -QPixmap BarIcon(const QString &name, int force_size) -{ - IconLoader *loader = IconLoader::global(); - return loader->loadIcon(name, IconLoader::Toolbar, force_size); -} - - -QPixmap MainBarIcon(const QString &name, int force_size) -{ - IconLoader *loader = IconLoader::global(); - return loader->loadIcon(name, IconLoader::MainToolbar, force_size); -} - - -QPixmap SmallIcon(const QString &name, int force_size) -{ - IconLoader *loader = IconLoader::global(); - return loader->loadIcon(name, IconLoader::Small, force_size); -} - - -#endif diff --git a/src/uisupport/iconloader.h b/src/uisupport/iconloader.h deleted file mode 100644 index ee94db60..00000000 --- a/src/uisupport/iconloader.h +++ /dev/null @@ -1,120 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * - * devel@quassel-irc.org * - * * - * Based in part on KDE's kiconloader.h * - * This declares a subset of that API. * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) version 3. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - ***************************************************************************/ - -#ifndef ICONLOADER_H_ -#define ICONLOADER_H_ - -#ifndef HAVE_KDE - -#include - -/// Provides basic facilities to load icons from standard locations or resources -/** This implements a (very) basic subset of KIconLoader's API, such that we can use those classes - * interchangeably in Quassel. - * - * We currently (unless somebody does a more fancy implementation ;-)) assume the Oxygen icon theme - * to be used. In particular, this means that we do assume its directory layout and existing icons to - * be present. Though it should be easy to switch to a different theme name, we don't currently support - * any fallback mechanism if this other theme misses an icon for a given size. Also, we only support PNG. - * - * Since we do support integrating the required part of Oxygen into the binary via Qt Resources, this - * should work for everyone for now. - * - * - $XDG_DATA_DIRS/icons/$theme (in order) - * - :/icons/$theme (fallback in case we use Qt Resources) - * - $XDG_DATA_DIRS/apps/quassel/icons/hicolor (our own unthemed icons) - * - :/icons/hicolor - * - $XDG_DATA_DIRS/apps/quassel/pics - * - :/pics - * - * We don't search for size/context dirs in /pics, i.e. for a given $name, we expect pics/$name.png. - */ -class IconLoader : public QObject -{ - Q_OBJECT - -public: - enum Group { - NoGroup = -1, ///< No group - Desktop = 0, ///< Desktop icons - Toolbar, ///< Toolbar icons - MainToolbar, ///< Main toolbar icons - Small, ///< Small icons, e.g. for buttons - Panel, ///< Panel icons - Dialog, ///< Icons for use in dialog title etc. - LastGroup - }; - - /// Standard icon sizes - enum StdSizes { - SizeSmall = 16, ///< Small icons for menu entries - SizeSmallMedium = 22, ///< Slightly larger small icons for toolbars, panels, etc - SizeMedium = 32, ///< Medium-sized icons for the desktop - SizeLarge = 48, ///< Large icons for the panel - SizeHuge = 64, ///< Huge icons for iconviews - SizeEnormous = 128 ///< Enormous icons for iconviews - }; - - explicit IconLoader(QObject *parent = 0); - ~IconLoader(); - - static IconLoader *global(); - - /// Load a pixmap for the given name and group - QPixmap loadIcon(const QString &name, IconLoader::Group group, int size = 0); - - inline QString theme() const; - void setTheme(const QString &name); - -private: - QString findIconPath(const QString &name, int size); - - static IconLoader _iconLoader; - QString _theme; - QStringList _themedIconDirNames; - QStringList _plainIconDirNames; - static int _groupSize[]; -}; - - -// convenience -QPixmap DesktopIcon(const QString &name, int size = 0); -QPixmap BarIcon(const QString &name, int size = 0); -QPixmap MainBarIcon(const QString &name, int size = 0); -QPixmap SmallIcon(const QString &name, int size = 0); -//QPixmap SmallMediumIcon(const QString &name, int size = 0); // not part of KIconLoader - -QString IconLoader::theme() const { return _theme; } - -#else /* HAVE_KDE */ - -#include -class IconLoader : public KIconLoader -{ - Q_OBJECT -}; - - -#endif /* HAVE_KDE */ - -#endif diff --git a/src/uisupport/kcmdlinewrapper.cpp b/src/uisupport/kcmdlinewrapper.cpp index b61b6e8b..a263e3c3 100644 --- a/src/uisupport/kcmdlinewrapper.cpp +++ b/src/uisupport/kcmdlinewrapper.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -27,11 +27,16 @@ KCmdLineWrapper::KCmdLineWrapper() } -void KCmdLineWrapper::addArgument(const QString &longName, const CliParserArg &arg) +void KCmdLineWrapper::addArgument(const QString &longName_, const CliParserArg &arg) { + QString longName = longName_; + if (arg.type == CliParserArg::CliArgOption && !arg.valueName.isEmpty()) + longName += " <" + arg.valueName + ">"; + if (arg.shortName != 0) { - _cmdLineOptions.add(QByteArray().append(arg.shortName)); + _cmdLineOptions.add(QByteArray(1, arg.shortName)); } + _cmdLineOptions.add(longName.toUtf8(), ki18n(arg.help.toUtf8()), arg.def.toUtf8()); } diff --git a/src/uisupport/kcmdlinewrapper.h b/src/uisupport/kcmdlinewrapper.h index fc0bbb07..f5ab1b12 100644 --- a/src/uisupport/kcmdlinewrapper.h +++ b/src/uisupport/kcmdlinewrapper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp index f5ed3172..ed0dbb60 100644 --- a/src/uisupport/multilineedit.cpp +++ b/src/uisupport/multilineedit.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -43,9 +43,7 @@ MultiLineEdit::MultiLineEdit(QWidget *parent) _emacsMode(false), _lastDocumentHeight(-1) { -#if QT_VERSION >= 0x040500 - document()->setDocumentMargin(0); // new in Qt 4.5 and we really don't want it here -#endif + document()->setDocumentMargin(0); setAcceptRichText(false); #ifdef HAVE_KDE @@ -296,18 +294,7 @@ bool MultiLineEdit::event(QEvent *e) void MultiLineEdit::keyPressEvent(QKeyEvent *event) { - // Workaround the fact that Qt < 4.5 doesn't know InsertLineSeparator yet -#if QT_VERSION >= 0x040500 if (event == QKeySequence::InsertLineSeparator) { -#else - -# ifdef Q_OS_MAC - if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && event->modifiers() & Qt::META) { -# else - if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && event->modifiers() & Qt::SHIFT) { -# endif -#endif - if (_mode == SingleLine) { event->accept(); on_returnPressed(); @@ -564,22 +551,18 @@ QString MultiLineEdit::convertRichtextToMircCodes() cursor.clearSelection(); } - if (color) { - color = false; + + if (color) mircText.append('\x03'); - } - if (underline) { - underline = false; + + if (underline) mircText.append('\x1f'); - } - if (italic) { - italic = false; + + if (italic) mircText.append('\x1d'); - } - if (bold) { - bold = false; + + if (bold) mircText.append('\x02'); - } return mircText; } diff --git a/src/uisupport/multilineedit.h b/src/uisupport/multilineedit.h index 899cc07e..7591a510 100644 --- a/src/uisupport/multilineedit.h +++ b/src/uisupport/multilineedit.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,9 +24,12 @@ #include #include -#ifdef HAVE_KDE +#ifdef HAVE_KDE4 # include # define MultiLineEditParent KTextEdit +#elif defined HAVE_KF5 +# include +# define MultiLineEditParent KTextEdit #else # include # define MultiLineEditParent QTextEdit diff --git a/src/uisupport/networkmodelcontroller.cpp b/src/uisupport/networkmodelcontroller.cpp index 9e42fe20..e4472380 100644 --- a/src/uisupport/networkmodelcontroller.cpp +++ b/src/uisupport/networkmodelcontroller.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -31,7 +32,6 @@ #include "buffermodel.h" #include "buffersettings.h" -#include "iconloader.h" #include "clientidentity.h" #include "network.h" #include "util.h" @@ -59,7 +59,7 @@ Action *NetworkModelController::registerAction(ActionType type, const QString &t } -Action *NetworkModelController::registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable) +Action *NetworkModelController::registerAction(ActionType type, const QIcon &icon, const QString &text, bool checkable) { Action *act; if (icon.isNull()) @@ -526,7 +526,7 @@ void NetworkModelController::handleNickAction(ActionType type, QAction *action) NetworkModelController::JoinDlg::JoinDlg(const QModelIndex &index, QWidget *parent) : QDialog(parent) { - setWindowIcon(SmallIcon("irc-join-channel")); + setWindowIcon(QIcon::fromTheme("irc-join-channel")); setWindowTitle(tr("Join Channel")); QGridLayout *layout = new QGridLayout(this); diff --git a/src/uisupport/networkmodelcontroller.h b/src/uisupport/networkmodelcontroller.h index a06c08c2..3f1b29fc 100644 --- a/src/uisupport/networkmodelcontroller.h +++ b/src/uisupport/networkmodelcontroller.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -138,7 +138,7 @@ protected: void setSlot(QObject *receiver, const char *method); Action *registerAction(ActionType type, const QString &text, bool checkable = false); - Action *registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable = false); + Action *registerAction(NetworkModelController::ActionType type, const QIcon &icon, const QString &text, bool checkable = false); bool checkRequirements(const QModelIndex &index, ItemActiveStates requiredActiveState = QFlags(ActiveState | InactiveState)); QString nickName(const QModelIndex &index) const; diff --git a/src/uisupport/nickview.cpp b/src/uisupport/nickview.cpp index 782fcb91..fa17ad75 100644 --- a/src/uisupport/nickview.cpp +++ b/src/uisupport/nickview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/nickview.h b/src/uisupport/nickview.h index 3f5734e1..fd922da2 100644 --- a/src/uisupport/nickview.h +++ b/src/uisupport/nickview.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/nickviewfilter.cpp b/src/uisupport/nickviewfilter.cpp index 83a7ce33..14820405 100644 --- a/src/uisupport/nickviewfilter.cpp +++ b/src/uisupport/nickviewfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -22,7 +22,6 @@ #include "buffersettings.h" #include "graphicalui.h" -#include "iconloader.h" #include "networkmodel.h" #include "uistyle.h" diff --git a/src/uisupport/nickviewfilter.h b/src/uisupport/nickviewfilter.h index f452b676..df81e998 100644 --- a/src/uisupport/nickviewfilter.h +++ b/src/uisupport/nickviewfilter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/qssparser.cpp b/src/uisupport/qssparser.cpp index e02bf468..1d8254e3 100644 --- a/src/uisupport/qssparser.cpp +++ b/src/uisupport/qssparser.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/qssparser.h b/src/uisupport/qssparser.h index a45b7da9..e2081b98 100644 --- a/src/uisupport/qssparser.h +++ b/src/uisupport/qssparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/resizingstackedwidget.cpp b/src/uisupport/resizingstackedwidget.cpp index 06502092..b3fbe789 100644 --- a/src/uisupport/resizingstackedwidget.cpp +++ b/src/uisupport/resizingstackedwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/resizingstackedwidget.h b/src/uisupport/resizingstackedwidget.h index af715c4a..1d6e2bf2 100644 --- a/src/uisupport/resizingstackedwidget.h +++ b/src/uisupport/resizingstackedwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/settingspage.cpp b/src/uisupport/settingspage.cpp index adbe13d2..009ab4cc 100644 --- a/src/uisupport/settingspage.cpp +++ b/src/uisupport/settingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/settingspage.h b/src/uisupport/settingspage.h index ccd93fba..eaa0d5f7 100644 --- a/src/uisupport/settingspage.h +++ b/src/uisupport/settingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/styledlabel.cpp b/src/uisupport/styledlabel.cpp index e6c0712c..90af6e6c 100644 --- a/src/uisupport/styledlabel.cpp +++ b/src/uisupport/styledlabel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/styledlabel.h b/src/uisupport/styledlabel.h index 330838c8..e91188f1 100644 --- a/src/uisupport/styledlabel.h +++ b/src/uisupport/styledlabel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/tabcompleter.cpp b/src/uisupport/tabcompleter.cpp index 5cc80c9d..130095d5 100644 --- a/src/uisupport/tabcompleter.cpp +++ b/src/uisupport/tabcompleter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/tabcompleter.h b/src/uisupport/tabcompleter.h index b3b51bc5..4e11c9d1 100644 --- a/src/uisupport/tabcompleter.h +++ b/src/uisupport/tabcompleter.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/toolbaractionprovider.cpp b/src/uisupport/toolbaractionprovider.cpp index 3c92cf17..ed8ea61f 100644 --- a/src/uisupport/toolbaractionprovider.cpp +++ b/src/uisupport/toolbaractionprovider.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,32 +18,31 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include #include #include #include "toolbaractionprovider.h" -#include "iconloader.h" - ToolBarActionProvider::ToolBarActionProvider(QObject *parent) : NetworkModelController(parent) { - registerAction(NetworkConnectAll, DesktopIcon("network-connect"), tr("Connect"))->setToolTip(tr("Connect to IRC")); - registerAction(NetworkDisconnectAll, DesktopIcon("network-disconnect"), tr("Disconnect"))->setToolTip(tr("Disconnect from IRC")); - - registerAction(BufferPart, DesktopIcon("irc-close-channel"), tr("Part"))->setToolTip(tr("Leave currently selected channel")); - registerAction(JoinChannel, DesktopIcon("irc-join-channel"), tr("Join"))->setToolTip(tr("Join a channel")); - - registerAction(NickQuery, DesktopIcon("mail-message-new"), tr("Query"))->setToolTip(tr("Start a private conversation")); // fix icon - registerAction(NickWhois, DesktopIcon("im-user"), tr("Whois"))->setToolTip(tr("Request user information")); // fix icon - - registerAction(NickOp, DesktopIcon("irc-operator"), tr("Op"))->setToolTip(tr("Give operator privileges to user")); - registerAction(NickDeop, DesktopIcon("irc-remove-operator"), tr("Deop"))->setToolTip(tr("Take operator privileges from user")); - registerAction(NickVoice, DesktopIcon("irc-voice"), tr("Voice"))->setToolTip(tr("Give voice to user")); - registerAction(NickDevoice, DesktopIcon("irc-unvoice"), tr("Devoice"))->setToolTip(tr("Take voice from user")); - registerAction(NickKick, DesktopIcon("im-kick-user"), tr("Kick"))->setToolTip(tr("Remove user from channel")); - registerAction(NickBan, DesktopIcon("im-ban-user"), tr("Ban"))->setToolTip(tr("Ban user from channel")); - registerAction(NickKickBan, DesktopIcon("im-ban-kick-user"), tr("Kick/Ban"))->setToolTip(tr("Remove and ban user from channel")); + registerAction(NetworkConnectAll, QIcon::fromTheme("network-connect"), tr("Connect"))->setToolTip(tr("Connect to IRC")); + registerAction(NetworkDisconnectAll, QIcon::fromTheme("network-disconnect"), tr("Disconnect"))->setToolTip(tr("Disconnect from IRC")); + + registerAction(BufferPart, QIcon::fromTheme("irc-close-channel"), tr("Part"))->setToolTip(tr("Leave currently selected channel")); + registerAction(JoinChannel, QIcon::fromTheme("irc-join-channel"), tr("Join"))->setToolTip(tr("Join a channel")); + + registerAction(NickQuery, QIcon::fromTheme("mail-message-new"), tr("Query"))->setToolTip(tr("Start a private conversation")); // fix icon + registerAction(NickWhois, QIcon::fromTheme("im-user"), tr("Whois"))->setToolTip(tr("Request user information")); // fix icon + + registerAction(NickOp, QIcon::fromTheme("irc-operator"), tr("Op"))->setToolTip(tr("Give operator privileges to user")); + registerAction(NickDeop, QIcon::fromTheme("irc-remove-operator"), tr("Deop"))->setToolTip(tr("Take operator privileges from user")); + registerAction(NickVoice, QIcon::fromTheme("irc-voice"), tr("Voice"))->setToolTip(tr("Give voice to user")); + registerAction(NickDevoice, QIcon::fromTheme("irc-unvoice"), tr("Devoice"))->setToolTip(tr("Take voice from user")); + registerAction(NickKick, QIcon::fromTheme("im-kick-user"), tr("Kick"))->setToolTip(tr("Remove user from channel")); + registerAction(NickBan, QIcon::fromTheme("im-ban-user"), tr("Ban"))->setToolTip(tr("Ban user from channel")); + registerAction(NickKickBan, QIcon::fromTheme("im-ban-kick-user"), tr("Kick/Ban"))->setToolTip(tr("Remove and ban user from channel")); _networksConnectMenu = new QMenu(); _networksConnectMenu->setSeparatorsCollapsible(false); diff --git a/src/uisupport/toolbaractionprovider.h b/src/uisupport/toolbaractionprovider.h index ab3e6bd2..781923e5 100644 --- a/src/uisupport/toolbaractionprovider.h +++ b/src/uisupport/toolbaractionprovider.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/uisettings.cpp b/src/uisupport/uisettings.cpp index d1731185..80d8fede 100644 --- a/src/uisupport/uisettings.cpp +++ b/src/uisupport/uisettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/uisettings.h b/src/uisupport/uisettings.h index 32109b3f..f882a939 100644 --- a/src/uisupport/uisettings.h +++ b/src/uisupport/uisettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/uisupport/uistyle.cpp b/src/uisupport/uistyle.cpp index 3ed50c19..944b6049 100644 --- a/src/uisupport/uistyle.cpp +++ b/src/uisupport/uistyle.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,9 +19,9 @@ ***************************************************************************/ #include +#include #include "buffersettings.h" -#include "iconloader.h" #include "qssparser.h" #include "quassel.h" #include "uistyle.h" @@ -33,13 +33,13 @@ QString UiStyle::_timestampFormatString; UiStyle::UiStyle(QObject *parent) : QObject(parent), - _channelJoinedIcon(SmallIcon("irc-channel-active")), - _channelPartedIcon(SmallIcon("irc-channel-inactive")), - _userOfflineIcon(SmallIcon("im-user-offline")), - _userOnlineIcon(SmallIcon("im-user")), - _userAwayIcon(SmallIcon("im-user-away")), - _categoryOpIcon(SmallIcon("irc-operator")), - _categoryVoiceIcon(SmallIcon("irc-voice")), + _channelJoinedIcon(QIcon::fromTheme("irc-channel-joined", QIcon(":/icons/irc-channel-joined.png"))), + _channelPartedIcon(QIcon::fromTheme("irc-channel-parted", QIcon(":/icons/irc-channel-parted.png"))), + _userOfflineIcon(QIcon::fromTheme("im-user-offline", QIcon::fromTheme("user-offline", QIcon(":/icons/im-user-offline.png")))), + _userOnlineIcon(QIcon::fromTheme("im-user", QIcon::fromTheme("user-available", QIcon(":/icons/im-user.png")))), // im-user-* are non-standard oxygen extensions + _userAwayIcon(QIcon::fromTheme("im-user-away", QIcon::fromTheme("user-away", QIcon(":/icons/im-user-away.png")))), + _categoryOpIcon(QIcon::fromTheme("irc-operator")), + _categoryVoiceIcon(QIcon::fromTheme("irc-voice")), _opIconLimit(UserCategoryItem::categoryFromModes("o")), _voiceIconLimit(UserCategoryItem::categoryFromModes("v")) { diff --git a/src/uisupport/uistyle.h b/src/uisupport/uistyle.h index ccdeecd3..1e8736f2 100644 --- a/src/uisupport/uistyle.h +++ b/src/uisupport/uistyle.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -185,13 +186,13 @@ private: static QHash _formatCodes; static QString _timestampFormatString; - QPixmap _channelJoinedIcon; - QPixmap _channelPartedIcon; - QPixmap _userOfflineIcon; - QPixmap _userOnlineIcon; - QPixmap _userAwayIcon; - QPixmap _categoryOpIcon; - QPixmap _categoryVoiceIcon; + QIcon _channelJoinedIcon; + QIcon _channelPartedIcon; + QIcon _userOfflineIcon; + QIcon _userOnlineIcon; + QIcon _userAwayIcon; + QIcon _categoryOpIcon; + QIcon _categoryVoiceIcon; int _opIconLimit; int _voiceIconLimit; bool _showNickViewIcons;