wip: reintroduced fake show

This commit is contained in:
Hane 2024-04-18 13:18:29 +02:00
commit 4f637b4397
2 changed files with 34 additions and 16 deletions

View file

@ -99,6 +99,12 @@ void MainWindow::compose() {
epw->setSize(windowWidth, screenHeight); epw->setSize(windowWidth, screenHeight);
} }
this->setAttribute(Qt::WA_DontShowOnScreen, true);
this->show();
this->widget->layout()->update();
this->hide();
this->setAttribute(Qt::WA_DontShowOnScreen, false);
/* /*
* Calculating window height * Calculating window height
*/ */
@ -110,9 +116,10 @@ void MainWindow::compose() {
windowHeight += ews[i]->sizeHint().height(); windowHeight += ews[i]->sizeHint().height();
windowHeight += top; windowHeight += top;
windowHeight += bottom; windowHeight += bottom;
log_debugcpp("windowHeight loop: " + std::to_string(windowHeight));
} }
windowHeight += mainMenuBar->height(); windowHeight += mainMenuBar->height();
log_debugcpp("windowHeight final value: " + std::to_string(windowHeight));
/* /*
* Establishing initial window size and position * Establishing initial window size and position
*/ */
@ -371,7 +378,7 @@ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent, uint64_t i
*/ */
uint32_t epChannelCount = eph->getChannelCount(); uint32_t epChannelCount = eph->getChannelCount();
if(epChannelCount) { if(epChannelCount > 1) {
cw = new ChannelWidget(epChannelCount, eph, this); cw = new ChannelWidget(epChannelCount, eph, this);
//cw->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); //cw->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
widgetLayout->addWidget(cw, row++, 0, 1, 4 /*colmax*/, Qt::AlignTop); widgetLayout->addWidget(cw, row++, 0, 1, 4 /*colmax*/, Qt::AlignTop);
@ -670,6 +677,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
QEvent::registerEventType(CustomQEvent::EndpointDefaultChange); QEvent::registerEventType(CustomQEvent::EndpointDefaultChange);
QEvent::registerEventType(CustomQEvent::SessionWidgetObsolete); QEvent::registerEventType(CustomQEvent::SessionWidgetObsolete);
QEvent::registerEventType(CustomQEvent::SessionWidgetCreated); QEvent::registerEventType(CustomQEvent::SessionWidgetCreated);
QEvent::registerEventType(CustomQEvent::RecomposeMainWindow);
; ;
/* This spacer provides proper spacing when window vertically > widgets. */ /* This spacer provides proper spacing when window vertically > widgets. */
lastRowSpacer = new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding); lastRowSpacer = new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
@ -759,10 +767,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
this->ews[0] = newDef; this->ews[0] = newDef;
QCoreApplication::instance()->postEvent(newDef->getDefaultRolesWidgets().at(Roles::ROLE_ALL), new QEvent((QEvent::Type)CustomQEvent::EndpointDefaultChange)); QCoreApplication::instance()->postEvent(newDef->getDefaultRolesWidgets().at(Roles::ROLE_ALL), new QEvent((QEvent::Type)CustomQEvent::EndpointDefaultChange));
} else if ((newDefRoles & Roles::ROLE_MULTIMEDIA) || } else if ((newDefRoles & Roles::ROLE_MULTIMEDIA) ||
(newDefRoles & Roles::ROLE_CONSOLE)){ newDef->setIndex(0); (newDefRoles & Roles::ROLE_CONSOLE)){
this->ews[0] = newDef; newDef->setIndex(0);
} else if (newDefRoles & Roles::ROLE_COMMUNICATIONS) { newDef->setIndex(1); this->ews[0] = newDef;
this->ews[1] = newDef;} } else if (newDefRoles & Roles::ROLE_COMMUNICATIONS) {
newDef->setIndex(1);
this->ews[1] = newDef;
}
log_debugcpp("newDef new idx: " + std::to_string(newDef->getIndex())); log_debugcpp("newDef new idx: " + std::to_string(newDef->getIndex()));
newDef->getDefaultRolesWidgets().at(role)->blockSignals(false); newDef->getDefaultRolesWidgets().at(role)->blockSignals(false);
@ -774,15 +785,21 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
oldDefRoles = oldDef->getEndpointHandler()->getRoles(); oldDefRoles = oldDef->getEndpointHandler()->getRoles();
//this->ews[oldDef->getIndex()] = nullptr; //this->ews[oldDef->getIndex()] = nullptr;
if ((oldDefRoles & Roles::ROLE_MULTIMEDIA) && if ((oldDefRoles & Roles::ROLE_MULTIMEDIA) &&
(oldDefRoles & Roles::ROLE_CONSOLE)) { this-> ews[0] = oldDef; (oldDefRoles & Roles::ROLE_CONSOLE)) {
oldDef->setIndex(0); this-> ews[0] = oldDef;
} else if (oldDefRoles & Roles::ROLE_COMMUNICATIONS) { this-> ews[1] = oldDef; oldDef->setIndex(0);
oldDef->setIndex(1); } else if (oldDefRoles & Roles::ROLE_COMMUNICATIONS) {
} else { if (newDefIdx > 1) { this->ews[newDefIdx] = oldDef; this-> ews[1] = oldDef;
oldDef->setIndex(newDefIdx); oldDef->setIndex(1);
} else { this->ews.push_back(oldDef); } else {
oldDef->setIndex(this->ews.size() - 1); if (newDefIdx > 1) {
} } this->ews[newDefIdx] = oldDef;
oldDef->setIndex(newDefIdx);
} else {
this->ews.push_back(oldDef);
oldDef->setIndex(this->ews.size() - 1);
}
}
log_debugcpp("oldDef new idx: " + std::to_string(oldDef->getIndex())); log_debugcpp("oldDef new idx: " + std::to_string(oldDef->getIndex()));
oldDef->getDefaultRolesWidgets().at(role)->blockSignals(false); oldDef->getDefaultRolesWidgets().at(role)->blockSignals(false);
} }

View file

@ -53,7 +53,8 @@ enum CustomQEvent {
EndpointWidgetCreated = 1002, EndpointWidgetCreated = 1002,
EndpointDefaultChange = 1003, EndpointDefaultChange = 1003,
SessionWidgetCreated = 1004, SessionWidgetCreated = 1004,
SessionWidgetObsolete = 1005 SessionWidgetObsolete = 1005,
RecomposeMainWindow = 1006
}; };
template <typename T> template <typename T>