Hello community, here is the log from the commit of package quassel for openSUSE:Factory checked in at 2018-11-26 10:26:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/quassel (Old) and /work/SRC/openSUSE:Factory/.quassel.new.19453 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "quassel" Mon Nov 26 10:26:32 2018 rev:48 rq:651042 version:0.13.0 Changes: -------- --- /work/SRC/openSUSE:Factory/quassel/quassel.changes 2018-10-22 11:24:00.923115468 +0200 +++ /work/SRC/openSUSE:Factory/.quassel.new.19453/quassel.changes 2018-11-26 10:28:18.729168326 +0100 @@ -1,0 +2,6 @@ +Thu Nov 22 09:28:48 UTC 2018 - Dirk Mueller <dmuel...@suse.com> + +- update to 0.13.0: + * no dedicated changelog available, final release + +------------------------------------------------------------------- Old: ---- quassel-0.13-rc2.tar.bz2 New: ---- quassel-0.13.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ quassel.spec ++++++ --- /var/tmp/diff_new_pack.Ubr2g3/_old 2018-11-26 10:28:19.201167772 +0100 +++ /var/tmp/diff_new_pack.Ubr2g3/_new 2018-11-26 10:28:19.205167767 +0100 @@ -20,9 +20,9 @@ %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates %endif -%define realver 0.13-rc2 +%define realver 0.13.0 Name: quassel -Version: 0.13~rc2 +Version: 0.13.0 Release: 0 Summary: Distributed IRC client License: GPL-2.0-only OR GPL-3.0-only ++++++ quassel-0.13-rc2.tar.bz2 -> quassel-0.13.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/CMakeLists.txt new/quassel-0.13.0/CMakeLists.txt --- old/quassel-0.13-rc2/CMakeLists.txt 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/CMakeLists.txt 2018-11-17 20:40:13.000000000 +0100 @@ -10,7 +10,7 @@ set(QUASSEL_MAJOR 0) set(QUASSEL_MINOR 13) set(QUASSEL_PATCH 0) -set(QUASSEL_VERSION_STRING "0.13-rc2") +set(QUASSEL_VERSION_STRING "0.13.0") # Build type if (CMAKE_CONFIGURATION_TYPES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/ChangeLog new/quassel-0.13.0/ChangeLog --- old/quassel-0.13-rc2/ChangeLog 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/ChangeLog 2018-11-17 20:40:13.000000000 +0100 @@ -13,8 +13,8 @@ Without further ado, let's start: -Version 0.13.0 (TBR) -==================== +Version 0.13.0 (2018-11-17) +=========================== NOTE: Database schema and settings format change, no downgrade possible! NOTE²: Database migration may take a long time (hours for big databases), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/common/bufferviewmanager.h new/quassel-0.13.0/src/common/bufferviewmanager.h --- old/quassel-0.13-rc2/src/common/bufferviewmanager.h 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/common/bufferviewmanager.h 2018-11-17 20:40:13.000000000 +0100 @@ -46,6 +46,9 @@ QVariantList initBufferViewIds() const; void initSetBufferViewIds(const QVariantList bufferViewIds); + void addBufferViewConfig(int bufferViewConfigId); + void deleteBufferViewConfig(int bufferViewConfigId); + virtual inline void requestCreateBufferView(const QVariantMap &properties) { REQUEST(ARG(properties)) } virtual inline void requestCreateBufferViews(const QVariantList &properties) { REQUEST(ARG(properties)) } virtual inline void requestDeleteBufferView(int bufferViewId) { REQUEST(ARG(bufferViewId)) } @@ -65,8 +68,6 @@ virtual BufferViewConfig *bufferViewConfigFactory(int bufferViewConfigId); void addBufferViewConfig(BufferViewConfig *config); - void addBufferViewConfig(int bufferViewConfigId); - void deleteBufferViewConfig(int bufferViewConfigId); private: BufferViewConfigHash _bufferViewConfigs; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/common/ircuser.cpp new/quassel-0.13.0/src/common/ircuser.cpp --- old/quassel-0.13-rc2/src/common/ircuser.cpp 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/common/ircuser.cpp 2018-11-17 20:40:13.000000000 +0100 @@ -161,7 +161,7 @@ } -void IrcUser::setAway(const bool &away) +void IrcUser::setAway(bool away) { if (away != _away) { _away = away; @@ -221,17 +221,16 @@ // This function is only ever called by SYNC calls from legacy cores (pre-0.13). // Therefore, no SYNC call is needed here. -void IrcUser::setLastAwayMessage(const int &lastAwayMessage) +void IrcUser::setLastAwayMessage(int lastAwayMessage) { - QDateTime lastAwayMessageTime = QDateTime(); - lastAwayMessageTime.setTimeSpec(Qt::UTC); #if QT_VERSION >= 0x050800 - lastAwayMessageTime.fromSecsSinceEpoch(lastAwayMessage); + QDateTime lastAwayMessageTime = QDateTime::fromSecsSinceEpoch(lastAwayMessage); #else // toSecsSinceEpoch() was added in Qt 5.8. Manually downconvert to seconds for now. // See https://doc.qt.io/qt-5/qdatetime.html#toMSecsSinceEpoch - lastAwayMessageTime.fromMSecsSinceEpoch(lastAwayMessage * 1000); + QDateTime lastAwayMessageTime = QDateTime::fromMSecsSinceEpoch(lastAwayMessage * 1000); #endif + lastAwayMessageTime.setTimeSpec(Qt::UTC); setLastAwayMessageTime(lastAwayMessageTime); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/common/ircuser.h new/quassel-0.13.0/src/common/ircuser.h --- old/quassel-0.13-rc2/src/common/ircuser.h 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/common/ircuser.h 2018-11-17 20:40:13.000000000 +0100 @@ -142,7 +142,7 @@ * @param[in] account Account name if logged in, * if logged out, or empty string if unknown */ void setAccount(const QString &account); - void setAway(const bool &away); + void setAway(bool away); void setAwayMessage(const QString &awayMessage); void setIdleTime(const QDateTime &idleTime); void setLoginTime(const QDateTime &loginTime); @@ -150,7 +150,7 @@ void setIrcOperator(const QString &ircOperator); // setLastAwayMessage is only called by legacy (pre-0.13) cores, which automatically gets // converted to setting the appropriate lastAwayMessageTime. Do not use this in new code. - void setLastAwayMessage(const int &lastAwayMessage); + void setLastAwayMessage(int lastAwayMessage); void setLastAwayMessageTime(const QDateTime &lastAwayMessageTime); void setWhoisServiceReply(const QString &whoisServiceReply); void setSuserHost(const QString &suserHost); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/core/corenetwork.h new/quassel-0.13.0/src/core/corenetwork.h --- old/quassel-0.13-rc2/src/core/corenetwork.h 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/core/corenetwork.h 2018-11-17 20:40:13.000000000 +0100 @@ -57,7 +57,7 @@ public: CoreNetwork(const NetworkId &networkid, CoreSession *session); - ~CoreNetwork() override; + virtual ~CoreNetwork(); inline virtual const QMetaObject *syncMetaObject() const { return &Network::staticMetaObject; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/CMakeLists.txt new/quassel-0.13.0/src/qtui/CMakeLists.txt --- old/quassel-0.13-rc2/src/qtui/CMakeLists.txt 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/CMakeLists.txt 2018-11-17 20:40:13.000000000 +0100 @@ -25,7 +25,7 @@ coresessionwidget.cpp debugbufferviewoverlay.cpp debugconsole.cpp - debuglogwidget.cpp + debuglogdlg.cpp debugmessagemodelfilter.cpp inputwidget.cpp ircconnectionwizard.cpp @@ -72,7 +72,7 @@ coresessionwidget.ui debugbufferviewoverlay.ui debugconsole.ui - debuglogwidget.ui + debuglogdlg.ui inputwidget.ui msgprocessorstatuswidget.ui nicklistwidget.ui diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/chatviewsettings.h new/quassel-0.13.0/src/qtui/chatviewsettings.h --- old/quassel-0.13-rc2/src/qtui/chatviewsettings.h 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/chatviewsettings.h 2018-11-17 20:40:13.000000000 +0100 @@ -43,7 +43,7 @@ ChatViewSettings(ChatScene *scene); ChatViewSettings(ChatView *view); - inline bool showWebPreview() { return localValue("ShowWebPreview", true).toBool(); } + inline bool showWebPreview() { return localValue("ShowWebPreview", false).toBool(); } inline void enableWebPreview(bool enabled) { setLocalValue("ShowWebPreview", enabled); } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/debuglogdlg.cpp new/quassel-0.13.0/src/qtui/debuglogdlg.cpp --- old/quassel-0.13-rc2/src/qtui/debuglogdlg.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/quassel-0.13.0/src/qtui/debuglogdlg.cpp 2018-11-17 20:40:13.000000000 +0100 @@ -0,0 +1,55 @@ +/*************************************************************************** + * Copyright (C) 2005-2018 by the Quassel Project * + * de...@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 "debuglogdlg.h" + +#include "quassel.h" + +DebugLogDlg::DebugLogDlg(QWidget *parent) + : QDialog(parent) +{ + ui.setupUi(this); + setAttribute(Qt::WA_DeleteOnClose, true); + + ui.textEdit->setReadOnly(true); + + connect(Quassel::instance()->logger(), SIGNAL(messageLogged(Logger::LogEntry)), SLOT(logUpdated(Logger::LogEntry))); + + QString content; + for (auto &&message : Quassel::instance()->logger()->messages()) { + content += toString(message); + } + ui.textEdit->setPlainText(content); + +} + + +QString DebugLogDlg::toString(const Logger::LogEntry &msg) +{ + return msg.timeStamp.toString("yyyy-MM-dd hh:mm:ss ") + msg.message + "\n"; +} + + +void DebugLogDlg::logUpdated(const Logger::LogEntry &msg) +{ + ui.textEdit->moveCursor(QTextCursor::End); + ui.textEdit->insertPlainText(toString(msg)); + ui.textEdit->moveCursor(QTextCursor::End); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/debuglogdlg.h new/quassel-0.13.0/src/qtui/debuglogdlg.h --- old/quassel-0.13-rc2/src/qtui/debuglogdlg.h 1970-01-01 01:00:00.000000000 +0100 +++ new/quassel-0.13.0/src/qtui/debuglogdlg.h 2018-11-17 20:40:13.000000000 +0100 @@ -0,0 +1,45 @@ +/*************************************************************************** + * Copyright (C) 2005-2018 by the Quassel Project * + * de...@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 <QString> +#include <QWidget> + +#include "logger.h" + +#include "ui_debuglogdlg.h" + +class DebugLogDlg : public QDialog +{ + Q_OBJECT + +public: + DebugLogDlg(QWidget *parent = 0); + +private slots: + void logUpdated(const Logger::LogEntry &msg); + +private: + QString toString(const Logger::LogEntry &msg); + +private: + Ui::DebugLogDlg ui; +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/debuglogwidget.cpp new/quassel-0.13.0/src/qtui/debuglogwidget.cpp --- old/quassel-0.13-rc2/src/qtui/debuglogwidget.cpp 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/debuglogwidget.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,55 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * - * de...@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 "debuglogwidget.h" - -#include "quassel.h" - -DebugLogWidget::DebugLogWidget(QWidget *parent) - : QWidget(parent) -{ - ui.setupUi(this); - setAttribute(Qt::WA_DeleteOnClose, true); - - ui.textEdit->setReadOnly(true); - - connect(Quassel::instance()->logger(), SIGNAL(messageLogged(Logger::LogEntry)), SLOT(logUpdated(Logger::LogEntry))); - - QString content; - for (auto &&message : Quassel::instance()->logger()->messages()) { - content += toString(message); - } - ui.textEdit->setPlainText(content); - -} - - -QString DebugLogWidget::toString(const Logger::LogEntry &msg) -{ - return msg.timeStamp.toString("yyyy-MM-dd hh:mm:ss ") + msg.message + "\n"; -} - - -void DebugLogWidget::logUpdated(const Logger::LogEntry &msg) -{ - ui.textEdit->moveCursor(QTextCursor::End); - ui.textEdit->insertPlainText(toString(msg)); - ui.textEdit->moveCursor(QTextCursor::End); -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/debuglogwidget.h new/quassel-0.13.0/src/qtui/debuglogwidget.h --- old/quassel-0.13-rc2/src/qtui/debuglogwidget.h 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/debuglogwidget.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,45 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * - * de...@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 <QString> -#include <QWidget> - -#include "logger.h" - -#include "ui_debuglogwidget.h" - -class DebugLogWidget : public QWidget -{ - Q_OBJECT - -public: - DebugLogWidget(QWidget *parent = 0); - -private slots: - void logUpdated(const Logger::LogEntry &msg); - -private: - QString toString(const Logger::LogEntry &msg); - -private: - Ui::DebugLogWidget ui; -}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/mainwin.cpp new/quassel-0.13.0/src/qtui/mainwin.cpp --- old/quassel-0.13-rc2/src/qtui/mainwin.cpp 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/mainwin.cpp 2018-11-17 20:40:13.000000000 +0100 @@ -79,7 +79,7 @@ #include "coreinfodlg.h" #include "contextmenuactionprovider.h" #include "debugbufferviewoverlay.h" -#include "debuglogwidget.h" +#include "debuglogdlg.h" #include "debugmessagemodelfilter.h" #include "flatproxymodel.h" #include "icon.h" @@ -1998,8 +1998,8 @@ void MainWin::on_actionDebugLog_triggered() { - DebugLogWidget *logWidget = new DebugLogWidget(nullptr); // will be deleted on close - logWidget->show(); + auto dlg = new DebugLogDlg(this); + dlg->show(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/settingspages/chatviewsettingspage.ui new/quassel-0.13.0/src/qtui/settingspages/chatviewsettingspage.ui --- old/quassel-0.13-rc2/src/qtui/settingspages/chatviewsettingspage.ui 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/settingspages/chatviewsettingspage.ui 2018-11-17 20:40:13.000000000 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>514</width> - <height>294</height> + <height>306</height> </rect> </property> <property name="windowTitle"> @@ -178,10 +178,10 @@ <string>Show previews of webpages on URL hover</string> </property> <property name="checked"> - <bool>true</bool> + <bool>false</bool> </property> <property name="defaultValue" stdset="0"> - <bool>true</bool> + <bool>false</bool> </property> <property name="settingsKey" stdset="0"> <string notr="true">ShowWebPreview</string> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/ui/debuglogdlg.ui new/quassel-0.13.0/src/qtui/ui/debuglogdlg.ui --- old/quassel-0.13-rc2/src/qtui/ui/debuglogdlg.ui 1970-01-01 01:00:00.000000000 +0100 +++ new/quassel-0.13.0/src/qtui/ui/debuglogdlg.ui 2018-11-17 20:40:13.000000000 +0100 @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>DebugLogDlg</class> + <widget class="QDialog" name="DebugLogDlg"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Debug Log</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QTextEdit" name="textEdit"/> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>DebugLogDlg</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>DebugLogDlg</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/qtui/ui/debuglogwidget.ui new/quassel-0.13.0/src/qtui/ui/debuglogwidget.ui --- old/quassel-0.13-rc2/src/qtui/ui/debuglogwidget.ui 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/qtui/ui/debuglogwidget.ui 1970-01-01 01:00:00.000000000 +0100 @@ -1,83 +0,0 @@ -<ui version="4.0" > - <class>DebugLogWidget</class> - <widget class="QWidget" name="DebugLogWidget" > - <property name="geometry" > - <rect> - <x>0</x> - <y>0</y> - <width>400</width> - <height>300</height> - </rect> - </property> - <property name="windowTitle" > - <string>Debug Log</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout" > - <property name="spacing" > - <number>0</number> - </property> - <property name="margin" > - <number>0</number> - </property> - <item> - <widget class="QTextEdit" name="textEdit" /> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout" > - <item> - <spacer name="horizontalSpacer" > - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0" > - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="pushButton" > - <property name="text" > - <string>Close</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2" > - <property name="orientation" > - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0" > - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>pushButton</sender> - <signal>clicked()</signal> - <receiver>DebugLogWidget</receiver> - <slot>close()</slot> - <hints> - <hint type="sourcelabel" > - <x>217</x> - <y>284</y> - </hint> - <hint type="destinationlabel" > - <x>179</x> - <y>-16</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/uisupport/aboutdata.cpp new/quassel-0.13.0/src/uisupport/aboutdata.cpp --- old/quassel-0.13-rc2/src/uisupport/aboutdata.cpp 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/uisupport/aboutdata.cpp 2018-11-17 20:40:13.000000000 +0100 @@ -222,8 +222,8 @@ { "Daniel Silverstone", "", tr("Fixes") }, { "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") }, + { "David Sansome", "", tr("OSX Notification Center support") }, { "Demiray Muhterem", "", tr("Turkish translation"), "", QLocale::Turkish }, { "Deniz Türkoglu", "", tr("Mac fixes") }, { "Dennis Schridde", "devurandom", tr("D-Bus notifications") }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/uisupport/bufferview.cpp new/quassel-0.13.0/src/uisupport/bufferview.cpp --- old/quassel-0.13-rc2/src/uisupport/bufferview.cpp 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/uisupport/bufferview.cpp 2018-11-17 20:40:13.000000000 +0100 @@ -594,7 +594,7 @@ config()->requestRemoveBuffer(bufferId); } -void BufferView::filterTextChanged(QString filterString) +void BufferView::filterTextChanged(const QString& filterString) { BufferViewFilter *filter = qobject_cast<BufferViewFilter *>(model()); if (!filter) { @@ -624,8 +624,63 @@ } +void BufferView::changeHighlight(BufferView::Direction direction) +{ + // If for some weird reason we get a new delegate + BufferViewDelegate *delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(_currentHighlight)); + if (delegate) { + delegate->currentHighlight = QModelIndex(); + } + + QModelIndex newIndex = _currentHighlight; + if (!newIndex.isValid()) { + newIndex = model()->index(0, 0); + } + + if (direction == Backward) { + newIndex = indexBelow(newIndex); + } else { + newIndex = indexAbove(newIndex); + } + + if (!newIndex.isValid()) { + return; + } + + _currentHighlight = newIndex; + + delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(_currentHighlight)); + if (delegate) { + delegate->currentHighlight = _currentHighlight; + } + viewport()->update(); +} + +void BufferView::selectHighlighted() +{ + if (_currentHighlight.isValid()) { + selectionModel()->setCurrentIndex(_currentHighlight, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + selectionModel()->select(_currentHighlight, QItemSelectionModel::ClearAndSelect); + } else { + selectFirstBuffer(); + } + + clearHighlight(); +} + +void BufferView::clearHighlight() +{ + // If for some weird reason we get a new delegate + BufferViewDelegate *delegate = qobject_cast<BufferViewDelegate*>(itemDelegate(_currentHighlight)); + if (delegate) { + delegate->currentHighlight = QModelIndex(); + } + _currentHighlight = QModelIndex(); + viewport()->update(); +} + // **************************************** -// BufferViewDelgate +// BufferViewDelegate // **************************************** class ColorsChangedEvent : public QEvent { @@ -756,12 +811,16 @@ } BufferView *view = bufferView(); - if (!view || _filterEdit->text().isEmpty()) { + if (!view) { return; } - view->selectFirstBuffer(); - _filterEdit->clear(); + if (!_filterEdit->text().isEmpty()) { + view->selectHighlighted(); + _filterEdit->clear(); + } else { + view->clearHighlight(); + } } void BufferViewDock::setActive(bool active) @@ -788,18 +847,35 @@ } } else if (event->type() == QEvent::KeyRelease) { QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); - if (keyEvent->key() != Qt::Key_Escape) { + + BufferView *view = bufferView(); + if (!view) { return false; } - _filterEdit->clear(); + switch (keyEvent->key()) { + case Qt::Key_Escape: { + _filterEdit->clear(); + + if (!_oldFocusItem) { + return false; + } - if (_oldFocusItem) { _oldFocusItem->setFocus(); - _oldFocusItem = 0; + _oldFocusItem = nullptr; + return true; + } + case Qt::Key_Down: + view->changeHighlight(BufferView::Backward); + return true; + case Qt::Key_Up: + view->changeHighlight(BufferView::Forward); + return true; + default: + break; } - return true; + return false; } return false; @@ -853,3 +929,13 @@ _filterEdit->setFocus(); } + + +void BufferViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + QStyleOptionViewItem newOption = option; + if (index == currentHighlight) { + newOption.state |= QStyle::State_HasFocus; + } + QStyledItemDelegate::paint(painter, newOption, index); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/src/uisupport/bufferview.h new/quassel-0.13.0/src/uisupport/bufferview.h --- old/quassel-0.13-rc2/src/uisupport/bufferview.h 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/src/uisupport/bufferview.h 2018-11-17 20:40:13.000000000 +0100 @@ -68,7 +68,10 @@ void nextBuffer(); void previousBuffer(); void hideCurrentBuffer(); - void filterTextChanged(QString filterString); + void filterTextChanged(const QString& filterString); + void changeHighlight(Direction direction); + void selectHighlighted(); + void clearHighlight(); signals: void removeBuffer(const QModelIndex &); @@ -132,11 +135,12 @@ WasActive = 0x02 }; QHash<NetworkId, short> _expandedState; + QModelIndex _currentHighlight; }; // ****************************** -// BufferViewDelgate +// BufferViewDelegate // ****************************** class BufferViewDelegate : public QStyledItemDelegate @@ -145,10 +149,15 @@ public: BufferViewDelegate(QObject *parent = 0); - bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index); + bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override; + + void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; + +public: + QModelIndex currentHighlight; protected: - virtual void customEvent(QEvent *event); + void customEvent(QEvent *event) override; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quassel-0.13-rc2/version.h.in new/quassel-0.13.0/version.h.in --- old/quassel-0.13-rc2/version.h.in 2018-10-15 21:57:13.000000000 +0200 +++ new/quassel-0.13.0/version.h.in 2018-11-17 20:40:13.000000000 +0100 @@ -11,6 +11,6 @@ #define GIT_COMMIT_DATE @GIT_COMMIT_DATE@ // Will be substituted in official tarballs -#define DIST_HASH "111c6bfcfc0595cfb3e3baf943a9fb2f410c3505" +#define DIST_HASH "bc3c84736898ef185b70ec37a95fa664392276cb" // Unix epoch in seconds -#define DIST_DATE "1539625911" +#define DIST_DATE "1542325576"