Skip to content
Snippets Groups Projects
Select Git revision
  • 52fb4e2789304ea9a42c1f7baec8c0c98ef0eb5f
  • master default protected
2 results

overlaycontroller.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    overlaycontroller.cpp 7.61 KiB
    #include "overlaycontroller.h"
    #include <QDesktopWidget>
    #include <QTimer>
    #include <QStringList>
    #include "plugin.h"
    #include <qdebug.h>
    #include "teamspeak\public_errors.h"
    
    //#ifndef _DEBUG
    //#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
    //#endif
    
    struct channelInfo {
    	uint64 id;
    	QString name;
    	uint64 parent;
    	QTreeWidgetItem* entry;
    };
    
    enum nodeType {
    	channel,
    	client,
    	spacer
    };
    
    Q_DECLARE_METATYPE(nodeType);
    
    OverlayController::OverlayController(const struct TS3Functions funcs, quint64 serverConnectionHandlerID) : QObject(), ts3(funcs)
    {
    	QDesktopWidget desktop;
    
    	m_screenHeight = desktop.screenGeometry().height();
    	m_screenWidth = desktop.screenGeometry().width();
    
    	m_speakerOffset = 0;
    
    	m_debugWindow = new QLabel;
    	m_debugWindow->setGeometry(320, 200, 750, 500);
    	m_debugWindow->setAlignment(Qt::AlignTop | Qt::AlignLeft);
    	m_debugWindow->show();
    
    	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);
    
    }
    
    OverlayController::~OverlayController()
    {
    	for (auto &it : m_speakers)
    		delete it;
    	m_speakers.clear();
    
    	for (auto &it : m_msgLines)
    		delete it;
    	m_msgLines.clear();
    
    	delete m_debugWindow;
    	delete m_treeWidget;
    }
    
    void OverlayController::deleteChatLine(QWidget * line)
    {
    	//TODO: delete the given line instead of the last
    	int index = m_msgLines.indexOf(line);