diff options
author | Tobias Markmann <tm@ayena.de> | 2016-11-10 11:22:12 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2016-11-10 12:37:15 (GMT) |
commit | 94ec9c25311f8d54519f045205d58526d885412a (patch) | |
tree | 423bf068441e7314e8736622f53dc2ce42f2244c /Swift/QtUI/QtChatTabs.cpp | |
parent | d2ba1ab8a36333523bf794c23226bd044e1717c2 (diff) | |
download | swift-94ec9c25311f8d54519f045205d58526d885412a.zip swift-94ec9c25311f8d54519f045205d58526d885412a.tar.bz2 |
Move Qt specific setting constants to QtUISettingConstants.h
Test-Information:
Builds on macOS 10.12.1, ./scons test=all passes, Swift
successfully logins and remembered Trellis configuration.
Change-Id: Id94d6af1448d44d7d46ba2b8606f3e5ebe98be7a
Diffstat (limited to 'Swift/QtUI/QtChatTabs.cpp')
-rw-r--r-- | Swift/QtUI/QtChatTabs.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/Swift/QtUI/QtChatTabs.cpp b/Swift/QtUI/QtChatTabs.cpp index 650d807..bb9c005 100644 --- a/Swift/QtUI/QtChatTabs.cpp +++ b/Swift/QtUI/QtChatTabs.cpp @@ -1,94 +1,93 @@ /* * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include <Swift/QtUI/QtChatTabs.h> #include <algorithm> #include <vector> #include <QAction> #include <QApplication> #include <QCloseEvent> #include <QCursor> #include <QDesktopWidget> #include <QLayout> #include <QMenu> #include <QTabBar> #include <QTabWidget> #include <QtGlobal> #include <Swiften/Base/Log.h> #include <Swift/Controllers/ChatMessageSummarizer.h> -#include <Swift/Controllers/SettingConstants.h> -#include <Swift/Controllers/Settings/SettingsProvider.h> #include <Swift/QtUI/QtSwiftUtil.h> #include <Swift/QtUI/QtTabWidget.h> #include <Swift/QtUI/QtTabbable.h> +#include <Swift/QtUI/QtUISettingConstants.h> #include <Swift/QtUI/Trellis/QtDynamicGridLayout.h> #include <Swift/QtUI/Trellis/QtGridSelectionDialog.h> namespace Swift { QtChatTabs::QtChatTabs(bool singleWindow, SettingsProvider* settingsProvider, bool trellisMode) : QWidget(), singleWindow_(singleWindow), settingsProvider_(settingsProvider), trellisMode_(trellisMode), dynamicGrid_(nullptr), gridSelectionDialog_(nullptr) { #ifndef Q_OS_MAC setWindowIcon(QIcon(":/logo-chat-16.png")); #else setAttribute(Qt::WA_ShowWithoutActivating); #endif dynamicGrid_ = new QtDynamicGridLayout(this, trellisMode); connect(dynamicGrid_, SIGNAL(tabCloseRequested(int)), this, SLOT(handleTabCloseRequested(int))); connect(dynamicGrid_, SIGNAL(onCurrentIndexChanged(int)), this, SLOT(handleCurrentTabIndexChanged(int))); QVBoxLayout *layout = new QVBoxLayout; layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(dynamicGrid_); setLayout(layout); if (trellisMode) { // restore size - std::string gridSizeString = settingsProvider->getSetting(SettingConstants::TRELLIS_GRID_SIZE); + std::string gridSizeString = settingsProvider->getSetting(QtUISettingConstants::TRELLIS_GRID_SIZE); if (!gridSizeString.empty()) { QByteArray gridSizeData = QByteArray::fromBase64(P2QSTRING(gridSizeString).toUtf8()); QDataStream dataStreamGridSize(&gridSizeData, QIODevice::ReadWrite); QSize gridSize(1,1); dataStreamGridSize >> gridSize; dynamicGrid_->setDimensions(gridSize); } // restore positions - std::string tabPositionsString = settingsProvider->getSetting(SettingConstants::TRELLIS_GRID_POSITIONS); + std::string tabPositionsString = settingsProvider->getSetting(QtUISettingConstants::TRELLIS_GRID_POSITIONS); if (!tabPositionsString.empty()) { QByteArray tabPositionsData = QByteArray::fromBase64(P2QSTRING(tabPositionsString).toUtf8()); QDataStream inTabPositions(&tabPositionsData, QIODevice::ReadWrite); QHash<QString, QPoint> tabPositions; inTabPositions >> tabPositions; dynamicGrid_->setTabPositions(tabPositions); } } gridSelectionDialog_ = new QtGridSelectionDialog(); // setup shortcuts shortcuts_ << new QShortcut(QKeySequence(tr("CTRL+W", "Close chat tab.")), window(), SLOT(handleCloseTabShortcut())); shortcuts_ << new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_PageUp), window(), SLOT(handleRequestedPreviousTab())); shortcuts_ << new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_PageDown), window(), SLOT(handleRequestedNextTab())); shortcuts_ << new QShortcut(QKeySequence(Qt::ALT + Qt::Key_A), window(), SLOT(handleRequestedActiveTab())); } QtChatTabs::~QtChatTabs() { foreach (QShortcut* shortcut, shortcuts_) { delete shortcut; } if (trellisMode_) { storeTabPositions(); } delete gridSelectionDialog_; } void QtChatTabs::closeEvent(QCloseEvent* event) { @@ -356,68 +355,68 @@ void QtChatTabs::handleTabTitleUpdated(QWidget* widget) { unreads.push_back(std::pair<std::string, int>(Q2PSTRING(tab->windowTitle()), tab->getCount())); } } std::string current(Q2PSTRING(qobject_cast<QtTabbable*>(dynamicGrid_->currentWidget())->windowTitle())); ChatMessageSummarizer summary; QString title = summary.getSummary(current, unreads).c_str(); setWindowTitle(title); emit onTitleChanged(title); } void QtChatTabs::flash() { #ifndef SWIFTEN_PLATFORM_MACOSX QApplication::alert(this, 0); #endif } void QtChatTabs::handleOpenLayoutChangeDialog() { disconnect(gridSelectionDialog_, SIGNAL(currentGridSizeChanged(QSize)), dynamicGrid_, SLOT(setDimensions(QSize))); gridSelectionDialog_->setCurrentGridSize(dynamicGrid_->getDimension()); gridSelectionDialog_->move(QCursor::pos()); connect(gridSelectionDialog_, SIGNAL(currentGridSizeChanged(QSize)), dynamicGrid_, SLOT(setDimensions(QSize))); gridSelectionDialog_->show(); } void QtChatTabs::storeTabPositions() { // save size QByteArray gridSizeData; QDataStream dataStreamGridSize(&gridSizeData, QIODevice::ReadWrite); dataStreamGridSize << dynamicGrid_->getDimension(); - settingsProvider_->storeSetting(SettingConstants::TRELLIS_GRID_SIZE, Q2PSTRING(QString(gridSizeData.toBase64()))); + settingsProvider_->storeSetting(QtUISettingConstants::TRELLIS_GRID_SIZE, Q2PSTRING(QString(gridSizeData.toBase64()))); // save positions QByteArray tabPositionsData; QDataStream dataStreamTabPositions(&tabPositionsData, QIODevice::ReadWrite); dynamicGrid_->updateTabPositions(); dataStreamTabPositions << dynamicGrid_->getTabPositions(); - settingsProvider_->storeSetting(SettingConstants::TRELLIS_GRID_POSITIONS, Q2PSTRING(QString(tabPositionsData.toBase64()))); + settingsProvider_->storeSetting(QtUISettingConstants::TRELLIS_GRID_POSITIONS, Q2PSTRING(QString(tabPositionsData.toBase64()))); } void QtChatTabs::resizeEvent(QResizeEvent*) { emit geometryChanged(); } void QtChatTabs::moveEvent(QMoveEvent*) { emit geometryChanged(); } void QtChatTabs::checkForFirstShow() { if (!isVisible()) { #ifndef Q_OS_MAC showMinimized(); #else /* https://bugreports.qt-project.org/browse/QTBUG-19194 * ^ When the above is fixed we can swap the below for just show(); * WA_ShowWithoutActivating seems to helpfully not work, so... */ QWidget* currentWindow = QApplication::activeWindow(); /* Remember who had focus if we're the current application*/ show(); QCoreApplication::processEvents(); /* Run through the eventloop to clear the show() */ if (currentWindow) { currentWindow->activateWindow(); /* Set focus back */ } #endif } } } |