sliders value set to where clicked

This commit is contained in:
Hane 2024-05-16 17:23:54 +02:00
commit 4fc13b9e1c
5 changed files with 31 additions and 15 deletions

View file

@ -11,7 +11,7 @@ DESTPATH += "$$PWD\src" "$$PWD\src\qt" "$$PWD\src\back" "$$PWD\src\back\reimpl"
VPATH += "$$PWD\src" "$$PWD\src\qt" "$$PWD\src\back" "$$PWD\src\back\reimpl" "$$PWD\src\cont" VPATH += "$$PWD\src" "$$PWD\src\qt" "$$PWD\src\back" "$$PWD\src\back\reimpl" "$$PWD\src\cont"
SOURCES += qtestmain.cpp qtclasses.cpp backlasses.cpp backsessionclasses.cpp contclasses.cpp contsessionclasses.cpp SOURCES += qtestmain.cpp qtclasses.cpp backlasses.cpp backsessionclasses.cpp contclasses.cpp contsessionclasses.cpp
HEADERS += qtclasses.h backlasses.h backsessionclasses.h contclasses.h contsessionclasses.h global.h debug.h backfuncs.h ipolicyconfig.h msinclude.h HEADERS += qtclasses.h backlasses.h backsessionclasses.h contclasses.h contsessionclasses.h global.h debug.h backfuncs.h ipolicyconfig.h msinclude.h qtvisuals.h
RESOURCES = assets.qrc RESOURCES = assets.qrc
RC_ICONS += assets/logo.ico RC_ICONS += assets/logo.ico

View file

@ -1,5 +1,5 @@
#include <backlasses.h> #include "backlasses.h"
#include <backfuncs.h> #include "backfuncs.h"
EndpointNewSessionCallback::EndpointNewSessionCallback(EndpointHandler* eph){ EndpointNewSessionCallback::EndpointNewSessionCallback(EndpointHandler* eph){
this->eph = eph; this->eph = eph;

View file

@ -6,6 +6,19 @@ CustomWidgetEvent<T>::CustomWidgetEvent(QEvent::Type type, T payload) : QEvent(t
this->payload = payload; this->payload = payload;
} }
/*
* MeterSlider::MeterSlider(Qt::Orientation orientation, QWidget* parent) {
* //style = new MixerStyle();
* //this->setStyle(style);
* }
*/
MeterSlider::~MeterSlider() {
delete style;
}
void MeterSlider::setPeakValue(float peakValue) { void MeterSlider::setPeakValue(float peakValue) {
this->peakValue = peakValue; this->peakValue = peakValue;
} }
@ -99,7 +112,7 @@ void MeterSlider::paintEvent(QPaintEvent *event) {
((QWidget*)parent())->layout()->getContentsMargins(&left, &top, &right, &bottom); ((QWidget*)parent())->layout()->getContentsMargins(&left, &top, &right, &bottom);
QStyle *style = QApplication::style(); QStyle *style = QApplication::style();
int lol = style->pixelMetric(QStyle::PM_SliderSpaceAvailable); //int lol = style->pixelMetric(QStyle::PM_SliderSpaceAvailable);
QPainter painter(this); QPainter painter(this);
//painter.setPen(Qt::blue); //painter.setPen(Qt::blue);
painter.setOpacity(1.0); painter.setOpacity(1.0);
@ -125,8 +138,7 @@ void MeterSlider::paintEvent(QPaintEvent *event) {
// - ((this->maximum() - this->value()) * stepWidth)) // - ((this->maximum() - this->value()) * stepWidth))
//double ratio = ; //double ratio = ;
double handleShift = (double)((sliderSize.width() * ((double)(this->maximum() - this->value()) / 100))); double handleShift = (double)((sliderSize.width() * ((double)(this->maximum() - this->value()) / 100)));
painter.fillRect((this->width() - ((this->maximum() - this->value()) * stepWidth)) - (sliderSize.width()) + handleShift, painter.fillRect((this->width() - ((this->maximum() - this->value()) * stepWidth)) - (sliderSize.width()) + handleShift, top / 2, sliderSize.width(), sliderSize.height() - bottom, Qt::magenta);
top / 2, sliderSize.width(), sliderSize.height() - bottom, Qt::magenta);
//sliderComplex.subControls = QStyle::SC_SliderHandle; //sliderComplex.subControls = QStyle::SC_SliderHandle;
//p.drawComplexControl(QStyle::CC_Slider, sliderComplex); //p.drawComplexControl(QStyle::CC_Slider, sliderComplex);
} }
@ -637,7 +649,7 @@ void EndpointWidget::addSessionWidget(CustomWidgetEvent<SessionHandler*>* ev){
//TODO: change mainwindow's widget name and subclass qwidget //TODO: change mainwindow's widget name and subclass qwidget
const QWidgetList topLevelWidgets = QApplication::topLevelWidgets(); const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
for (QWidget *widget : topLevelWidgets) { for (QWidget *widget : topLevelWidgets) {
if (dynamic_cast<MainWindow*>(widget)) { if (qobject_cast<MainWindow*>(widget)) {
double widthRatio = ((MainWindow*)widget)->widthRatio; double widthRatio = ((MainWindow*)widget)->widthRatio;
sw->calculateSize(std::abs(this->screen()->geometry().width()) * widthRatio, sw->calculateSize(std::abs(this->screen()->geometry().width()) * widthRatio,
std::abs(this->screen()->geometry().height())); std::abs(this->screen()->geometry().height()));
@ -917,8 +929,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
//scrollArea->verticalScrollBar()->setSingleStep(1); //scrollArea->verticalScrollBar()->setSingleStep(1);
scrollArea->setStyleSheet("QScrollBar:vertical { width: 4px; }"); //custom style = no qss
//scrollArea->setStyleSheet("QScrollBar:vertical { width: 4px; }");
//scrollArea->setMinimumWidth(500); //scrollArea->setMinimumWidth(500);
setCentralWidget(scrollArea); setCentralWidget(scrollArea);

View file

@ -1,8 +1,5 @@
#pragma once #pragma once
//#ifndef MAINWINDOW_H
//#define MAINWINDOW_H
#include <QMainWindow> #include <QMainWindow>
#include <QApplication> #include <QApplication>
#include <QCloseEvent> #include <QCloseEvent>
@ -47,6 +44,7 @@
#include "global.h" #include "global.h"
#include "contclasses.h" #include "contclasses.h"
#include "qtvisuals.h"
enum SpawnPos { enum SpawnPos {
LEFT = (1 << 1), LEFT = (1 << 1),
@ -76,12 +74,17 @@ public:
class MeterSlider : public QSlider { class MeterSlider : public QSlider {
Q_OBJECT Q_OBJECT
private: private:
~MeterSlider();
float peakValue; float peakValue;
MixerStyle* style;
protected: protected:
bool event(QEvent* ev) override; bool event(QEvent* ev) override;
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;
public: public:
//MeterSlider(Qt::Orientation orientation, QWidget *parent = nullptr);
//MeterSlider(QWidget* parent = nullptr) : MeterSlider(Qt::Vertical, parent){};
void setPeakValue(float peakValue); void setPeakValue(float peakValue);
using QSlider::QSlider; using QSlider::QSlider;
}; };
@ -278,5 +281,3 @@ private:
//void valueChanged(int value); //void valueChanged(int value);
}; };
//#endif

View file

@ -46,13 +46,15 @@ void closeDebugFileLog() {
*/ */
int main (int argc, char* argv[]) { int main (int argc, char* argv[]) {
/* /*
* QStringList styles = QStyleFactory::keys(); * QStringList styles = QStyleFactory::keys();
* for(QString a : styles) { * for(QString a : styles) {
* log_debugcpp(a.toStdString()); * log_debugcpp(a.toStdString());
* } * }
*/ */
//QApplication::setStyle("Fusion");
QApplication::setStyle(new MixerStyle(QStyleFactory::create("windowsvista")));
//Check if running //Check if running
//https://stackoverflow.com/questions/48060989/qt-show-application-if-currently-running //https://stackoverflow.com/questions/48060989/qt-show-application-if-currently-running
initialize_file_log(); initialize_file_log();