From 0889b855f4e00077eebb33ec4eb71a43bae09dfa Mon Sep 17 00:00:00 2001 From: Carsten Fuhrmann <C.-Fuhrmann@t-online.de> Date: Thu, 2 Mar 2017 14:10:21 +0100 Subject: [PATCH] added custom widget to make the semitransparent channel list movable Bug: crash when there is a connection and i deactivate the plugin --- ChannelListWidget.cpp | 56 ++++++++++++++++++++++++++++++++ ChannelListWidget.h | 26 +++++++++++++++ Release/x64/qtTsOverlay_x64.dll | Bin 67072 -> 71168 bytes Release/x64/qtTsOverlay_x64.exp | Bin 24445 -> 24445 bytes Release/x64/qtTsOverlay_x64.lib | Bin 41856 -> 41856 bytes overlaycontroller.cpp | 16 +++------ overlaycontroller.h | 5 ++- plugin.cpp | 31 +++++++++++------- 8 files changed, 108 insertions(+), 26 deletions(-) create mode 100644 ChannelListWidget.cpp create mode 100644 ChannelListWidget.h diff --git a/ChannelListWidget.cpp b/ChannelListWidget.cpp new file mode 100644 index 0000000..3d5b156 --- /dev/null +++ b/ChannelListWidget.cpp @@ -0,0 +1,56 @@ +#include "ChannelListWidget.h" +#include <QMouseEvent> + +ChannelListWidget::ChannelListWidget() + : QTreeWidget() +{ + m_parent = new QWidget; + m_parent->setAttribute(Qt::WA_TranslucentBackground); + m_parent->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + m_parent->setGeometry(320, 200, 1, 1); + + setHeaderHidden(true); + setExpandsOnDoubleClick(false); + setStyleSheet("padding:2px;border-radius:5px;border-style:solid;border-width:1px;border-color:rgb(100,100,100); background-color:rgba(50,50,50,150); color:rgb(255,255,255);"); + setParent(m_parent); + + resize(200, 400); + m_parent->adjustSize(); + m_parent->show(); + +} + +ChannelListWidget::~ChannelListWidget() +{ + //m_parent->deleteLater(); +} + +void ChannelListWidget::mousePressEvent(QMouseEvent * event) +{ + if (event->button() == Qt::LeftButton) + isMouseDown = true; + + QTreeWidget::mousePressEvent(event); +} + +void ChannelListWidget::mouseReleaseEvent(QMouseEvent * event) +{ + isMouseDown = false; + + QTreeWidget::mouseReleaseEvent(event); +} + +void ChannelListWidget::mouseMoveEvent(QMouseEvent * event) +{ + if (isMouseDown) + m_parent->move(event->globalPos()); + + QTreeWidget::mouseMoveEvent(event); +} + +void ChannelListWidget::resizeEvent(QResizeEvent * event) +{ + m_parent->adjustSize(); + + QTreeWidget::resizeEvent(event); +} \ No newline at end of file diff --git a/ChannelListWidget.h b/ChannelListWidget.h new file mode 100644 index 0000000..917058b --- /dev/null +++ b/ChannelListWidget.h @@ -0,0 +1,26 @@ +#pragma once +#include <QWidget> +#include <QPoint> +#include <QTreeWidget> + +class ChannelListWidget : public QTreeWidget +{ + Q_OBJECT + +public: + explicit ChannelListWidget(); + ~ChannelListWidget(); + +protected: + virtual void mousePressEvent(QMouseEvent * event) Q_DECL_OVERRIDE; + virtual void mouseReleaseEvent(QMouseEvent * event) Q_DECL_OVERRIDE; + virtual void mouseMoveEvent(QMouseEvent * event) Q_DECL_OVERRIDE; + virtual void resizeEvent(QResizeEvent * event) Q_DECL_OVERRIDE; + +private: + bool isMouseDown = false; + QWidget *m_parent; + +public: + +}; diff --git a/Release/x64/qtTsOverlay_x64.dll b/Release/x64/qtTsOverlay_x64.dll index a46615c2faec9589e2e7d38f8100446e77da56f2..d7412f107431bc6c853d129accaa7c3ff2fab33c 100644 GIT binary patch delta 34079 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 O<b%E9n;rhGV*~)fcxq+< delta 30214 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 SB85dBiwYKPH{@fyzz6^hwv*QY diff --git a/Release/x64/qtTsOverlay_x64.exp b/Release/x64/qtTsOverlay_x64.exp index 31b386b95f748c030acc5b6f317af6286a527878..b186815c951c8029e0a54413840f8b53233adfe9 100644 GIT binary patch delta 25 hcmeynkMZw5M)s68CWdUu9TV9TnX@H#Y|Ivl2LOf?32guX delta 25 hcmeynkMZw5M)s68CWfpB+a|InGG{&5wlP~M9src03iSX0 diff --git a/Release/x64/qtTsOverlay_x64.lib b/Release/x64/qtTsOverlay_x64.lib index 4e9a53fbdd9b2de6169ccfb0415ba531104326dd..40083ea0e4480aeef37a0e0d330c796a5ee04fa0 100644 GIT binary patch delta 3600 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 Sxd`4=1qoX(hJ-@kVtoKZVtQ8q delta 3600 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 UU~evhH&sEx){7yb5V%+$0GyWEQvd(} diff --git a/overlaycontroller.cpp b/overlaycontroller.cpp index bfebac1..687a83d 100644 --- a/overlaycontroller.cpp +++ b/overlaycontroller.cpp @@ -6,6 +6,7 @@ #include <qdebug.h> #include "teamspeak\public_errors.h" + //#ifndef _DEBUG //#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) //#endif @@ -41,13 +42,7 @@ OverlayController::OverlayController(const struct TS3Functions funcs, quint64 se m_SCHID = serverConnectionHandlerID; - m_treeWidget = new QWidget; - m_tree = new QTreeWidget(m_treeWidget); - m_tree->setHeaderHidden(true); - m_tree->setExpandsOnDoubleClick(false); - m_treeWidget->setAttribute(Qt::WA_TranslucentBackground); - m_treeWidget->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::Tool); - + m_tree = new ChannelListWidget; } OverlayController::~OverlayController() @@ -61,7 +56,7 @@ OverlayController::~OverlayController() m_msgLines.clear(); delete m_debugWindow; - delete m_treeWidget; + delete m_tree; } void OverlayController::deleteChatLine(QWidget * line) @@ -210,7 +205,7 @@ void OverlayController::reset() void OverlayController::updateChannelList() { - if (m_treeWidget->isVisible()) + if (m_tree->isVisible()) displayChannelList(); } @@ -298,6 +293,5 @@ void OverlayController::displayChannelList() m_tree->expandAll(); connect(m_tree, &QTreeWidget::itemDoubleClicked, this, &OverlayController::treeItemClicked); m_tree->adjustSize(); - m_treeWidget->adjustSize(); - m_treeWidget->show(); + m_tree->show(); } diff --git a/overlaycontroller.h b/overlaycontroller.h index c73daca..68ba71e 100644 --- a/overlaycontroller.h +++ b/overlaycontroller.h @@ -7,7 +7,7 @@ #include <QWidget> #include <QVector> #include <QLabel> -#include <QTreeWidget> +#include "ChannelListWidget.h" #define MAXLINES 5 @@ -34,8 +34,7 @@ private: QLabel* m_debugWindow; QVector<QWidget*> m_speakers; QVector<QWidget*> m_msgLines; - QTreeWidget* m_tree; - QWidget* m_treeWidget; + ChannelListWidget* m_tree; private: void deleteChatLine(QWidget* line); diff --git a/plugin.cpp b/plugin.cpp index b07c791..6552b34 100644 --- a/plugin.cpp +++ b/plugin.cpp @@ -102,8 +102,22 @@ QString channelID2Name(uint64 serverConnectionHandlerID, uint64 channelID) return name; } -OverlayController* getController(uint64 serverConnectionHandlerID) +OverlayController* getController(uint64 serverConnectionHandlerID = 0) { + if (serverConnectionHandlerID == 0) + { + OverlayController* ret = NULL; + for (auto &it : g_serverList.keys()) + { + int tmp; + + if (ts3Functions.getClientSelfVariableAsInt(it, CLIENT_IS_MUTED, &tmp) != ERROR_ok) + if (tmp == 0) + ret = g_serverList.find(it).value(); + } + return ret; + } + auto tmp = g_serverList.find(serverConnectionHandlerID); if (tmp == g_serverList.end()) @@ -309,9 +323,7 @@ void ts3plugin_initHotkeys(struct PluginHotkey*** hotkeys) { * The keyword will be later passed to ts3plugin_onHotkeyEvent to identify which hotkey was triggered. * The description is shown in the clients hotkey dialog. */ BEGIN_CREATE_HOTKEYS(3); /* Create 3 hotkeys. Size must be correct for allocating memory. */ - CREATE_HOTKEY("keyword_1", "Test hotkey 1"); - CREATE_HOTKEY("keyword_2", "Test hotkey 2"); - CREATE_HOTKEY("keyword_3", "Test hotkey 3"); + CREATE_HOTKEY("Channellist", "Displays a simple channellist of the server"); END_CREATE_HOTKEYS; /* The client will call ts3plugin_freeMemory to release all allocated memory */ @@ -400,13 +412,6 @@ void ts3plugin_onClientMoveEvent(uint64 serverConnectionHandlerID, anyID clientI { getController(serverConnectionHandlerID)->addChatLine(QString("%1 <font size=\"-5\">connected to</font> %2").arg(ClientName).arg(newChannel)); } - else if (!ClientName.isEmpty() && !oldChannel.isEmpty() && newChannel.isEmpty()) - { - if(oldChannelID == getCurrentChannel(serverConnectionHandlerID)) - getController(serverConnectionHandlerID)->addChatLine(QString("<font color=\"#00FFFF\">%1 <font size=\"-5\">disconnected from</font> %2</font>").arg(ClientName).arg(oldChannel)); - else - getController(serverConnectionHandlerID)->addChatLine(QString("%1 <font size=\"-5\">disconnected from</font> %2").arg(ClientName).arg(oldChannel)); - } } @@ -767,7 +772,9 @@ void ts3plugin_onMenuItemEvent(uint64 serverConnectionHandlerID, enum PluginMenu /* This function is called if a plugin hotkey was pressed. Omit if hotkeys are unused. */ void ts3plugin_onHotkeyEvent(const char* keyword) { printf("PLUGIN: Hotkey event: %s\n", keyword); - /* Identify the hotkey by keyword ("keyword_1", "keyword_2" or "keyword_3" in this example) and handle here... */ + + if (QString(keyword) == "Channellist") + getController()->debugPrint("WUHU"); } /* Called when recording a hotkey has finished after calling ts3Functions.requestHotkeyInputDialog */ -- GitLab