From 0889b855f4e00077eebb33ec4eb71a43bae09dfa Mon Sep 17 00:00:00 2001 From: Carsten Fuhrmann 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 + +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 +#include +#include + +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 literal 71168 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 aaI)c4>#31bv!@nMojnEgD}VpbCGfu|#N2@Z literal 67072 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 delta 25 fcmeynkMZw5M)s68CWfpB+a|InG6SiN*+TIEl%fjt diff --git a/Release/x64/qtTsOverlay_x64.lib b/Release/x64/qtTsOverlay_x64.lib index 4e9a53fbdd9b2de6169ccfb0415ba531104326dd..40083ea0e4480aeef37a0e0d330c796a5ee04fa0 100644 GIT binary patch delta 3600 zcmZ`+TTGN!5MJ<70i`OJwc-UDMT@|$B8V&sD_*Jw*GsExQI|z7;tGqP))s~J3N0wR zj#UwrRUewh7;1cJVyloe@ueC~9~$F>>qFBvTG59lO-yU&ob%6cc1d|-&NnmP%zS6g zzrK6XzI)OBX=4}WS?A|0hEQ4Z&HTbl?cZDe%r)BoYv{=8OdsWW@4H)0XG%2LLS^PD zx%sK;uOhbUM6?MZWrHS@DH>eP6!@|HQP>Qc{r`k#=D!%g3Zsn75b0eoI{`~wY#3psSS$c<9a)#BU5Pu zn}l=!NfmRjA*>uS7kM?aiuuE^DRe=ZY>iGzBYKPyi6Ifb5BA1cFq9S#ZyULEYe4yx z?w}jww+dai!rZ7a&9%p z!BewnaagZJjI84dycoe&xOp%M#!X9rdo5uFJ~^Ngy*{wbNJJzLf5s#uqvgnGZ_~#> z=A3vvq5xXDRm8yOOg+*+SNabuNr=1@xI*RNEJ!&|g6^~|pavMhC14Q(7D>R;g9QX2 zO2b06zQki(Zm z`mI26c6jYehr0Bz`xiW}YJK;}25MVmQ6-Y=-L&LLQBj{}9_2ofeEW_Pjnl_ef~;fw zNQgS|{glldJm#Rh!i*Y~i&ALxLtK=h_365vi0%F3%+`1VWUvh<=wYO+zn$Q$#I~iK z*^)rsw6j1WZ`C@8>PUcK$8utcKC+`WWayBG)-Q_b5X+Z`OYv~MJj~uW6~6Ca9q4;@ z{+HT99bUivY^Ix+)yaZ0BqDp1k4Zkl9tG29L#Q(>#q2KCU0c^`qK2)L)E1)GX0Uf9 z!HbRY5b9z-qy4gxwv)U+4aV|QA{%|n#HWO7-c+=BLw@3-N;dLMlhL(?5su)tz71ORnx<5^s7r9DO`;__v!2Ixyl7kQ{ zs0s$pCV}-#Ax%kifv!g18NM1u17%HVU$I%&Vl9T63fVIz!Z=^Vvori`SJyiz>NJR#ab<>xu5AuCz3xYhNN=c|?RBcDfn&wA9l zvLmp;0FHy+o<+n$G(vwAya-By)C>RnC^Sky@WO~kVL~sr0(B+n3Hdfj{J^SMxYNt} zm5R`)HA~Qo%_-ox$hFg`uV3U*>r%8_qI`6%Z(rhTtpFVW7Zwm-7+xPO81Utm+29Lut@Kg*Bp9}x=*Nun3g10Jnm!I6UtzS7 kTILYHj@mFsMcGVfy~;WCFWARd`BPPxZP(Q1+HlSCA46h#R{#J2 delta 3600 zcmZ`+TTGN!5MJ<70i`OJHQ)srMT@|$QWRMf)@#+^dTEs{>axg1Kv)E|wkWK4!4{NV z$Et|Rst-+L3^gWwu~kT#_)?9g4~_A`^`U7St;j=@CZwfv&iQ9JyQI7^=bM>tX1+7$ zU+=?6@54yn%!%2#R_h`w1d9{z|FiNE1Se2TUeYB)FW(@MFoFQEVbS-Z@pqc)8OSL3Zy!Gh~*<2|GA;yUF~d z(F~7v$HjmC znR5T7jNOHK=N?6~7~P|grhmd3=-(4UlUkEp&aDxim&#SZzVdcG&(;cMuCAys%;!4N zCGm*LZ91@_QUTj5tH>;>kEv2kNv(2`S!C1OITd*xo0tu6s+gyMEZ(aEuHV~4o_fH+ zy&O=Ct+ra_Iaa-n&{n4zel^U))vL(t^C!2u}J%(R(btZ%V~8so_%ZnTqP! zB%J%ssF(xwA?1*{z@wQ}%pXQg!OO~IYj9E;(PNZI6p8RXus6(w!PHn7Y2ebWe&tuP zzr^rERY;d5*sHndk_i9iMZt@_i7;|89ttbtDL%P+8p#!&G^%L-H0~gjF=-icC5D_Y zLuT2gz_(3H2qenCeO6IjgrEfybk-IP1qYa_h;+0~^{D3nmnpWvgNw>H2Yu7w`T;Wp zF+oOC$YnzjNV(rWNPOu6*beapprQs25eSPi!_^Lz*YWAc#97eUbx!3i#Jm>Cxy2j< zFU+FFA-xhYGEXY-G6Y-U&XEL|G&2q!His1W{IE(iba`u8u73%?Y&LgnBrNO_3_-EUq@4KRXBz)}P(m4FpT@(4hh zymdqymJ(MU;+G+Q7ChNB85xH(E6}9|HE@&{x5$Ma3c&!NDBEFGG9`7JAFJ@ z9Mj?N7G6W)T$dZbY0%or{TCn_^z+t`ZebI-&H{MZItxk*qM*ymz9ga>vi7dWYEeYb53wJp4;Rg&w2)WmR6QJ>}<=RT2qdyf;1b0<`S%oF@b zh&u88l+7GC;h?<2j2e}TQfTx;T$I7hX}X?>?W2>-)_4PCuq~(PVWh0To#L#-wz-|z zl0b&rSs>xJY7<19j)TDI)x;8gWJhht&>;`4Ulh_ImM;%i;NfO@n6)(tzCX=6(D&@3 zFSUg_x_~hd`u9mCMS+Z7#ve_HUaD-*mIaX@ZZsc!DH|A|DIFkgu%csgDOs z%G~8AWri%)SAM>4;SzAekUtd$SC3h$7*f&|(=J20Kh0PezDiPhmHPd_{P2yEgAgmI z90o2Vfc1PnO-Xctu14>9z8XdYWlgDHv02w*6^2TJtl3jxk~i$x8GW`a7smAC-UaT5 z9N?5u?b_I}&m+EP-D+Lg z5m;{kCqYm5Qeq(*p+5>91SLSq<^O#Y8YCcadCa3QrH5OAx{~ySd>bXce_b@(?_vE) zMQGHTBlKDyTTuJX0k=WD;l^EGC diff --git a/overlaycontroller.cpp b/overlaycontroller.cpp index bfebac1..687a83d 100644 --- a/overlaycontroller.cpp +++ b/overlaycontroller.cpp @@ -6,6 +6,7 @@ #include #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 #include #include -#include +#include "ChannelListWidget.h" #define MAXLINES 5 @@ -34,8 +34,7 @@ private: QLabel* m_debugWindow; QVector m_speakers; QVector 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 connected to %2").arg(ClientName).arg(newChannel)); } - else if (!ClientName.isEmpty() && !oldChannel.isEmpty() && newChannel.isEmpty()) - { - if(oldChannelID == getCurrentChannel(serverConnectionHandlerID)) - getController(serverConnectionHandlerID)->addChatLine(QString("%1 disconnected from %2").arg(ClientName).arg(oldChannel)); - else - getController(serverConnectionHandlerID)->addChatLine(QString("%1 disconnected from %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