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})
- set(HAVE_KDE4 TRUE)
+ add_definitions(-DHAVE_KDE -DHAVE_KDE4 ${KDE4_DEFINITIONS})
+ set(WITH_KDE4 TRUE)
endif()
if (USE_QT5 AND WITH_KDE)
include(KDECompilerSettings)
include(KDECMakeSettings)
- add_definitions(-DHAVE_KF5)
- set(HAVE_KF5 TRUE)
+ 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
endif()
endif()
else()
- if (HAVE_KDE4)
+ 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")
CoreConnectionSettings::NetworkDetectionMode CoreConnectionSettings::networkDetectionMode()
{
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
NetworkDetectionMode def = UseSolid;
#else
NetworkDetectionMode def = UsePingTimeout;
_reconnectTimer.setSingleShot(true);
connect(&_reconnectTimer, SIGNAL(timeout()), SLOT(reconnectTimeout()));
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)),
SLOT(solidNetworkStatusChanged(Solid::Networking::Status)));
#endif
if (!_peer) {
CoreConnectionSettings s;
if (_wantReconnect && s.autoReconnect()) {
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
// 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
return;
}
}
-#endif /* HAVE_KDE */
+#endif /* HAVE_KDE4 */
reconnectToCore();
}
}
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
void CoreConnection::solidNetworkStatusChanged(Solid::Networking::Status status)
{
# include <QTcpSocket>
#endif
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <Solid/Networking>
#endif
void reconnectIntervalChanged(const QVariant &interval);
void reconnectTimeout();
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
void solidNetworkStatusChanged(Solid::Networking::Status status);
#endif
#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
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KAboutData>
# include "kcmdlinewrapper.h"
#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(),
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();
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();
#include <QPersistentModelIndex>
#include <QUrl>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KMenuBar>
#else
# include <QMenuBar>
UiSettings s("InputWidget");
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
s.notify("EnableSpellCheck", this, SLOT(setEnableSpellCheck(QVariant)));
setEnableSpellCheck(s.value("EnableSpellCheck", false));
#endif
fmt.clearBackground();
inputLine()->setCurrentCharFormat(fmt);
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
// Set highlighter back to active in case it was deactivated by too many errors.
if (ui.inputEdit->highlighter())
ui.inputEdit->highlighter()->setActive(true);
_blinkState(false),
_lastMessageId(0)
{
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
_trayIcon = new QSystemTrayIcon(associatedWidget());
#else
_trayIcon = new KSystemTrayIcon(associatedWidget());
#ifndef QT_NO_SYSTEMTRAYICON
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KSystemTrayIcon>
#else
# include <QSystemTrayIcon>
bool _blinkState;
uint _lastMessageId;
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
KSystemTrayIcon *_trayIcon;
#else
QSystemTrayIcon *_trayIcon;
#include <QStatusBar>
#include <QToolBar>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KAction>
# include <KActionCollection>
# include <KHelpMenu>
#include "topicwidget.h"
#include "verticaldock.h"
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
# ifdef HAVE_PHONON
# include "phononnotificationbackend.h"
# endif
# 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"
#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
setupTitleSetter();
setupHotList();
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
# ifdef HAVE_PHONON
QtUi::registerNotificationBackend(new PhononNotificationBackend(this));
# endif
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));
setDisconnectedState(); // Disable menus and stuff
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
setAutoSaveSettings();
#endif
if (lastBufId.isValid())
s.setValue("LastUsedBufferId", lastBufId.toInt());
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
saveAutoSaveSettings();
#endif
}
_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) {
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(QIcon::fromTheme("view-fullscreen"), tr("&Full Screen Mode"), coll,
_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
_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));
setUnifiedTitleAndToolBarOnMac(true);
#endif
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
_mainToolBar = new KToolBar("MainToolBar", this, Qt::TopToolBarArea, false, true, true);
#else
_mainToolBar = new QToolBar(this);
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());
if (!action)
return;
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
KToggleFullScreenAction *kAct = static_cast<KToggleFullScreenAction *>(action);
kAct->setFullScreen(this, kAct->isChecked());
#else
#ifndef MAINWIN_H_
#define MAINWIN_H_
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KMainWindow>
#else
# include <QMainWindow>
//!\brief The main window of Quassel's QtUi.
class MainWin
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
: public KMainWindow
{
#else
void disconnectFromCore();
private:
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
KHelpMenu *_kHelpMenu;
#endif
_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);
}
#include <QIcon>
#include <QStringList>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KStandardDirs>
#endif
#include "qtuisettings.h"
QtUiApplication::QtUiApplication(int &argc, char **argv)
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
: KApplication(),
#else
: QApplication(argc, argv),
Quassel(),
_aboutToQuit(false)
{
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
Q_UNUSED(argc); Q_UNUSED(argv);
// We need to setup KDE's data dirs
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
#ifndef QTUIAPPLICATION_H_
#define QTUIAPPLICATION_H_
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KApplication>
#else
# include <QApplication>
class QtUi;
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
class QtUiApplication : public KApplication, public Quassel
{
#else
: SettingsPage(tr("Remote Cores"), tr("Connection"), parent)
{
ui.setupUi(this);
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
ui.useSolid->hide();
#endif
void CoreConnectionSettingsPage::defaults()
{
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
setRadioButtons(CoreConnectionSettings::UseSolid);
#else
setRadioButtons(CoreConnectionSettings::UsePingTimeout);
void CoreConnectionSettingsPage::setRadioButtons(CoreConnectionSettings::NetworkDetectionMode mode)
{
switch (mode) {
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
case CoreConnectionSettings::UseSolid:
ui.useSolid->setChecked(true);
break;
CoreConnectionSettings::NetworkDetectionMode CoreConnectionSettingsPage::modeFromRadioButtons() const
{
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
if (ui.useSolid->isChecked())
return CoreConnectionSettings::UseSolid;
#endif
{
ui.setupUi(this);
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
ui.enableSpellCheck->hide();
#endif
{
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<QMouseEvent *>(event)->button() == Qt::LeftButton))) {
// put at the back of event queue to let the action activate anyways
#include <QMenu>
#include <QMovie>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KWindowInfo>
# include <KWindowSystem>
#endif
//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());
#include "client.h"
#include "qtui.h"
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KMenu>
# include <KWindowInfo>
# include <KWindowSystem>
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");
_trayMenu->setTitle("Quassel IRC");
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
_trayMenu->setAttribute(Qt::WA_Hover);
#endif
{
if (mode_ != _mode) {
_mode = mode_;
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
if (_trayMenu) {
if (_mode == Legacy) {
_trayMenu->setWindowFlags(Qt::Popup);
#include <QApplication>
Action::Action(QObject *parent)
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
: KAction(parent)
#else
: QWidgetAction(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)
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)
}
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
void Action::init() {}
#else
void Action::init()
}
-#endif /* HAVE_KDE */
+#endif /* HAVE_KDE4 */
#ifndef ACTION_H_
#define ACTION_H_
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
#include <QShortcut>
#include <QWidgetAction>
Q_DECLARE_OPERATORS_FOR_FLAGS(Action::ShortcutTypes)
-#else /* HAVE_KDE */
+#else /* HAVE_KDE4 */
#include <KAction>
class Action : public KAction
* Parts of this implementation are based on KDE's KActionCollection. *
***************************************************************************/
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
#include <QAction>
#include <QDebug>
}
-#endif /* HAVE_KDE */
+#endif /* HAVE_KDE4 */
#ifndef ACTIONCOLLECTION_H_
#define ACTIONCOLLECTION_H_
-#ifndef HAVE_KDE
+#ifndef HAVE_KDE4
#include <QDebug>
#include <QList>
int ActionCollection::count() const { return actions().count(); }
bool ActionCollection::isEmpty() const { return actions().count(); }
-#else /* HAVE_KDE */
+#else /* HAVE_KDE4 */
#include <KActionCollection>
#include <QStyle>
#include <QStyleOptionFrame>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KColorDialog>
#else
# include <QColorDialog>
void ColorButton::chooseColor()
{
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
QColor c = color();
KColorDialog::getColor(c, this);
#else
#ifdef Q_WS_X11
# include <QX11Info>
#endif
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KWindowInfo>
# include <KWindowSystem>
#endif
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();
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) {
KWindowSystem::forceActiveWindow(mainWidget()->winId());
# endif
-#else /* HAVE_KDE */
+#else /* HAVE_KDE4 */
#ifdef Q_WS_X11
// Bypass focus stealing prevention
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
#endif
setAcceptRichText(false);
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
enableFindReplace(false);
#endif
void MultiLineEdit::setSpellCheckEnabled(bool enable)
{
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
setCheckSpellingEnabled(enable);
#else
Q_UNUSED(enable)
}
}
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
KTextEdit::keyPressEvent(event);
#else
QTextEdit::keyPressEvent(event);
#include <QKeyEvent>
#include <QHash>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KDE/KTextEdit>
# define MultiLineEditParent KTextEdit
#else