width + screen position

This commit is contained in:
Hane 2024-04-03 21:53:07 +02:00
commit 8d1a0d190b
3 changed files with 199 additions and 65 deletions

View file

@ -22,6 +22,7 @@
#include <QSize>
#include <QMenuBar>
#include <QMenu>
#include <QScreen>
//#include <QScrollBar>
/*
@ -62,6 +63,14 @@
* ToggleButton(QWidget *parent = nullptr);
* };
*/
enum SpawnPos {
LEFT = (1 << 1),
RIGHT = (0 << 1),
UP = (1 << 0),
DOWN = (0 << 0)
};
enum CustomQEvent {
EndpointWidgetObsolete = 1001,
EndpointWidgetCreated = 1002,
@ -108,12 +117,30 @@ private:
QLabel *mainLabel = nullptr;
QSlider *mainSlider = nullptr;
uint64_t idx;
QGridLayout *layout = nullptr;
//QGridLayout *layout = nullptr;
QHBoxLayout *layout = nullptr;
QCheckBox *muteButton = nullptr;
SessionHandler* sh;
QTimer* volumePoller = nullptr;
};
class ChannelWidget : public QWidget {
Q_OBJECT
public:
ChannelWidget(uint32_t channelCount, EndpointHandler* eph, QWidget *parent = nullptr);
void updateChannel(int channel);
private:
const double roundingFactor = 0.005;
EndpointHandler* eph;
uint32_t channelCount;
std::vector<QSlider*> channelSliders;
std::vector<QLabel*> channelLabels;
QGridLayout *layout;
};
class EndpointWidget : public QWidget {
Q_OBJECT
@ -162,6 +189,7 @@ private:
size_t defaultRolesVectorSize = 4;
QTimer* timer = nullptr;
uint64_t idx;
ChannelWidget* cw;
std::vector<SessionWidget*> sessionWidgets;
//std::vector<EndpointHandler*> *ephs;
//std::vector<QSlider> *sliders;
@ -177,7 +205,6 @@ Q_OBJECT
public:
HeaderWidget(QWidget *parent = nullptr);
//~HeaderWidget();
//void updateMainVolume(float newValue);
//void updateVolume(uint32_t channel, float newValue);
@ -215,6 +242,7 @@ public:
protected:
void closeEvent(QCloseEvent *event) override;
void customEvent(QEvent* ev) override;
QRect setSizePosition();
private slots:
void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
@ -233,12 +261,20 @@ private:
QSystemTrayIcon *trayIcon;
QMenu *trayIconMenu;
QAction *trayIconMenuQuit;
QAction *trayIconMenuOpenCP;
QTimer *ewsUpdateTimer;
static constexpr uint64_t ewsUpdateTimerFrequency = 500;
//TODO: Test
//TODO: Come back here and check all are parametrized
uint64_t windowWidth = 600;
QScrollArea *scrollArea;
HeaderWidget* hw;
//QMenuBar *menuBar;
QMenuBar *mainMenuBar;
QScreen *screen;
//Win10 1080p 120%
QSize mwSize;
//public slots:
// void setEndpointHandlers(std::vector<EndpointHandler*> *ephs);