From 42c4f4a08c0bcc268fa91f85442a4d01a0320b4f Mon Sep 17 00:00:00 2001 From: Matt Lowe Date: Sun, 1 Feb 2015 00:31:25 +0100 Subject: [PATCH 1/4] Fixed pile view bug When sorting a view which has the last column the longest an error happens where the view is squashed. --- cockatrice/src/zoneviewzone.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cockatrice/src/zoneviewzone.cpp b/cockatrice/src/zoneviewzone.cpp index 7c5433267..0b42b55e9 100644 --- a/cockatrice/src/zoneviewzone.cpp +++ b/cockatrice/src/zoneviewzone.cpp @@ -118,7 +118,6 @@ void ZoneViewZone::reorganizeCards() typeRow++; // add below current card else { // if no match then move card to next column typeColumn++; - longestRow = qMax(typeRow, longestRow); typeRow = 0; } } @@ -128,6 +127,7 @@ void ZoneViewZone::reorganizeCards() qreal y = typeRow * CARD_HEIGHT / 3; c->setPos(x + 5, y + 5); c->setRealZValue(i); + longestRow = qMax(typeRow, longestRow); } } else { for (int i = 0; i < cardCount; i++) { From 32c6635137495b2435e7bc469a1f2c4840c92cd5 Mon Sep 17 00:00:00 2001 From: Gavin Bises Date: Sun, 1 Feb 2015 12:05:04 -0500 Subject: [PATCH 2/4] Add settings interface for ignoring unreg pm --- cockatrice/src/settingscache.cpp | 7 +++++++ cockatrice/src/settingscache.h | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/cockatrice/src/settingscache.cpp b/cockatrice/src/settingscache.cpp index a0044976a..ebcab940b 100644 --- a/cockatrice/src/settingscache.cpp +++ b/cockatrice/src/settingscache.cpp @@ -57,6 +57,7 @@ SettingsCache::SettingsCache() priceTagSource = settings->value("deckeditor/pricetagsource", 0).toInt(); ignoreUnregisteredUsers = settings->value("chat/ignore_unregistered", false).toBool(); + ignoreUnregisteredUserMessages = settings->value("chat/ignore_unregistered_messages", false).toBool(); attemptAutoConnect = settings->value("server/auto_connect", 0).toBool(); } @@ -293,6 +294,12 @@ void SettingsCache::setIgnoreUnregisteredUsers(int _ignoreUnregisteredUsers) settings->setValue("chat/ignore_unregistered", ignoreUnregisteredUsers); } +void SettingsCache::setIgnoreUnregisteredUserMessages(int _ignoreUnregisteredUserMessages) +{ + ignoreUnregisteredUserMessages = _ignoreUnregisteredUserMessages; + settings->setValue("chat/ignore_unregistered_messages", ignoreUnregisteredUserMessages); +} + void SettingsCache::setMainWindowGeometry(const QByteArray &_mainWindowGeometry) { mainWindowGeometry = _mainWindowGeometry; diff --git a/cockatrice/src/settingscache.h b/cockatrice/src/settingscache.h index 084feaafa..db912a3ce 100644 --- a/cockatrice/src/settingscache.h +++ b/cockatrice/src/settingscache.h @@ -36,6 +36,7 @@ signals: void soundPathChanged(); void priceTagFeatureChanged(int enabled); void ignoreUnregisteredUsersChanged(); + void ignoreUnregisteredUserMessagesChanged(); void pixmapCacheSizeChanged(int newSizeInMBs); private: QSettings *settings; @@ -63,6 +64,7 @@ private: bool priceTagFeature; int priceTagSource; bool ignoreUnregisteredUsers; + bool ignoreUnregisteredUserMessages; QString picUrl; QString picUrlHq; QString picUrlFallback; @@ -108,6 +110,7 @@ public: bool getPriceTagFeature() const { return priceTagFeature; } int getPriceTagSource() const { return priceTagSource; } bool getIgnoreUnregisteredUsers() const { return ignoreUnregisteredUsers; } + bool getIgnoreUnregisteredUserMessages() const { return ignoreUnregisteredUserMessages; } QString getPicUrl() const { return picUrl; } QString getPicUrlHq() const { return picUrlHq; } QString getPicUrlFallback() const { return picUrlFallback; } @@ -149,6 +152,7 @@ public slots: void setPriceTagFeature(int _priceTagFeature); void setPriceTagSource(int _priceTagSource); void setIgnoreUnregisteredUsers(int _ignoreUnregisteredUsers); + void setIgnoreUnregisteredUserMessages(int _ignoreUnregisteredUserMessages); void setPicUrl(const QString &_picUrl); void setPicUrlHq(const QString &_picUrlHq); void setPicUrlFallback(const QString &_picUrlFallback); From 5222183ff388c8bce37d0e451d405e499fec8c22 Mon Sep 17 00:00:00 2001 From: Gavin Bises Date: Sun, 1 Feb 2015 12:05:29 -0500 Subject: [PATCH 3/4] Don't open new PM windows from unreg when ignoring unreg pm --- cockatrice/src/tab_supervisor.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/tab_supervisor.cpp b/cockatrice/src/tab_supervisor.cpp index 166a766ab..2666b42fe 100644 --- a/cockatrice/src/tab_supervisor.cpp +++ b/cockatrice/src/tab_supervisor.cpp @@ -446,11 +446,21 @@ void TabSupervisor::processGameEventContainer(const GameEventContainer &cont) void TabSupervisor::processUserMessageEvent(const Event_UserMessage &event) { - TabMessage *tab = messageTabs.value(QString::fromStdString(event.sender_name())); + QString senderName = QString::fromStdString(event.sender_name()); + TabMessage *tab = messageTabs.value(senderName); if (!tab) tab = messageTabs.value(QString::fromStdString(event.receiver_name())); - if (!tab) + if (!tab) { + UserListTWI *twi = tabUserLists->getAllUsersList()->getUsers().value(senderName); + if (twi) { + UserLevelFlags userLevel = UserLevelFlags(twi->getUserInfo().user_level()); + if (settingsCache->getIgnoreUnregisteredUserMessages() && + !userLevel.testFlag(ServerInfo_User::IsRegistered)) + // Flags are additive, so reg/mod/admin are all IsRegistered + return; + } tab = addMessageTab(QString::fromStdString(event.sender_name()), false); + } if (!tab) return; tab->processUserMessageEvent(event); From 26fa9363474b0bdcb1cb79dffe63efc2ceaaf706 Mon Sep 17 00:00:00 2001 From: Gavin Bises Date: Sun, 1 Feb 2015 12:14:25 -0500 Subject: [PATCH 4/4] Add settings page option to ignore unreg user pm --- cockatrice/src/dlg_settings.cpp | 6 +++++- cockatrice/src/dlg_settings.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/dlg_settings.cpp b/cockatrice/src/dlg_settings.cpp index 561bb973e..7721ee1c6 100644 --- a/cockatrice/src/dlg_settings.cpp +++ b/cockatrice/src/dlg_settings.cpp @@ -571,11 +571,14 @@ MessagesSettingsPage::MessagesSettingsPage() connect(&chatMentionCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setChatMention(int))); ignoreUnregUsersMainChat.setChecked(settingsCache->getIgnoreUnregisteredUsers()); + ignoreUnregUserMessages.setChecked(settingsCache->getIgnoreUnregisteredUserMessages()); connect(&ignoreUnregUsersMainChat, SIGNAL(stateChanged(int)), settingsCache, SLOT(setIgnoreUnregisteredUsers(int))); + connect(&ignoreUnregUserMessages, SIGNAL(stateChanged(int)), settingsCache, SLOT(setIgnoreUnregisteredUserMessages(int))); QGridLayout *chatGrid = new QGridLayout; chatGrid->addWidget(&chatMentionCheckBox, 0, 0); chatGrid->addWidget(&ignoreUnregUsersMainChat, 1, 0); + chatGrid->addWidget(&ignoreUnregUserMessages, 2, 0); chatGroupBox = new QGroupBox; chatGroupBox->setLayout(chatGrid); @@ -647,7 +650,8 @@ void MessagesSettingsPage::retranslateUi() chatGroupBox->setTitle(tr("Chat settings")); chatMentionCheckBox.setText(tr("Enable chat mentions ('@yourusername' in chat log will be highlighted)")); messageShortcuts->setTitle(tr("In-game message macros")); - ignoreUnregUsersMainChat.setText(tr("Ignore unregistered users in main chat")); + ignoreUnregUsersMainChat.setText(tr("Ignore chat room messages sent by unregistered users.")); + ignoreUnregUserMessages.setText(tr("Ignore private messages sent by unregistered users.")); } DlgSettings::DlgSettings(QWidget *parent) diff --git a/cockatrice/src/dlg_settings.h b/cockatrice/src/dlg_settings.h index a3875c5c1..985a4ce86 100644 --- a/cockatrice/src/dlg_settings.h +++ b/cockatrice/src/dlg_settings.h @@ -162,6 +162,7 @@ private: QAction *aRemove; QCheckBox chatMentionCheckBox; QCheckBox ignoreUnregUsersMainChat; + QCheckBox ignoreUnregUserMessages; QGroupBox *chatGroupBox; QGroupBox *messageShortcuts;