Fixed OSX issue with menuBar menus that have sub-menues that aren't populated at construction, but when the menu is aboutToShow
This commit is contained in:
parent
c440d4c143
commit
caaaa957b6
@ -2281,9 +2281,22 @@ void MainWindow::showSoundOutError(const QString& errorMsg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::showStatusMessage(const QString& statusMsg)
|
void MainWindow::showStatusMessage(const QString& statusMsg)
|
||||||
{statusBar()->showMessage(statusMsg);}
|
{
|
||||||
|
statusBar()->showMessage(statusMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function forces the menuBar to rebuild a QAction that has a submenu
|
||||||
|
* on OSX fixing a weird bug where they aren't displayed correctly.
|
||||||
|
*/
|
||||||
|
void rebuildMacQAction(QMenu *menu, QAction *existingAction){
|
||||||
|
auto dummyAction = new QAction("...");
|
||||||
|
menu->insertAction(existingAction, dummyAction);
|
||||||
|
menu->insertAction(dummyAction, existingAction);
|
||||||
|
menu->removeAction(dummyAction);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_menuWindow_aboutToShow(){
|
void MainWindow::on_menuWindow_aboutToShow(){
|
||||||
auto hsizes = ui->textHorizontalSplitter->sizes();
|
auto hsizes = ui->textHorizontalSplitter->sizes();
|
||||||
ui->actionShow_Band_Activity->setChecked(hsizes.at(0) > 0);
|
ui->actionShow_Band_Activity->setChecked(hsizes.at(0) > 0);
|
||||||
@ -2296,25 +2309,37 @@ void MainWindow::on_menuWindow_aboutToShow(){
|
|||||||
ui->actionShow_Time_Drift_Controls->setChecked(ui->driftSyncFrame->isVisible());
|
ui->actionShow_Time_Drift_Controls->setChecked(ui->driftSyncFrame->isVisible());
|
||||||
ui->actionShow_Time_Drift_Controls->setEnabled(ui->actionShow_Waterfall->isChecked());
|
ui->actionShow_Time_Drift_Controls->setEnabled(ui->actionShow_Waterfall->isChecked());
|
||||||
|
|
||||||
QMenu * sortBandMenu = new QMenu(ui->menuWindow);
|
QMenu * sortBandMenu = new QMenu(this->menuBar()); //ui->menuWindow);
|
||||||
buildBandActivitySortByMenu(sortBandMenu);
|
buildBandActivitySortByMenu(sortBandMenu);
|
||||||
ui->actionSort_Band_Activity->setMenu(sortBandMenu);
|
ui->actionSort_Band_Activity->setMenu(sortBandMenu);
|
||||||
ui->actionSort_Band_Activity->setEnabled(ui->actionShow_Band_Activity->isChecked());
|
ui->actionSort_Band_Activity->setEnabled(ui->actionShow_Band_Activity->isChecked());
|
||||||
|
#if __APPLE__
|
||||||
|
rebuildMacQAction(ui->menuWindow, ui->actionSort_Band_Activity);
|
||||||
|
#endif
|
||||||
|
|
||||||
QMenu * sortCallMenu = new QMenu(ui->menuWindow);
|
QMenu * sortCallMenu = new QMenu(this->menuBar()); //ui->menuWindow);
|
||||||
buildCallActivitySortByMenu(sortCallMenu);
|
buildCallActivitySortByMenu(sortCallMenu);
|
||||||
ui->actionSort_Call_Activity->setMenu(sortCallMenu);
|
ui->actionSort_Call_Activity->setMenu(sortCallMenu);
|
||||||
ui->actionSort_Call_Activity->setEnabled(ui->actionShow_Call_Activity->isChecked());
|
ui->actionSort_Call_Activity->setEnabled(ui->actionShow_Call_Activity->isChecked());
|
||||||
|
#if __APPLE__
|
||||||
|
rebuildMacQAction(ui->menuWindow, ui->actionSort_Call_Activity);
|
||||||
|
#endif
|
||||||
|
|
||||||
QMenu * showBandMenu = new QMenu(ui->menuWindow);
|
QMenu * showBandMenu = new QMenu(this->menuBar()); //ui->menuWindow);
|
||||||
buildShowColumnsMenu(showBandMenu, "band");
|
buildShowColumnsMenu(showBandMenu, "band");
|
||||||
ui->actionShow_Band_Activity_Columns->setMenu(showBandMenu);
|
ui->actionShow_Band_Activity_Columns->setMenu(showBandMenu);
|
||||||
ui->actionShow_Band_Activity_Columns->setEnabled(ui->actionShow_Band_Activity->isChecked());
|
ui->actionShow_Band_Activity_Columns->setEnabled(ui->actionShow_Band_Activity->isChecked());
|
||||||
|
#if __APPLE__
|
||||||
|
rebuildMacQAction(ui->menuWindow, ui->actionShow_Band_Activity_Columns);
|
||||||
|
#endif
|
||||||
|
|
||||||
QMenu * showCallMenu = new QMenu(ui->menuWindow);
|
QMenu * showCallMenu = new QMenu(this->menuBar()); //ui->menuWindow);
|
||||||
buildShowColumnsMenu(showCallMenu, "call");
|
buildShowColumnsMenu(showCallMenu, "call");
|
||||||
ui->actionShow_Call_Activity_Columns->setMenu(showCallMenu);
|
ui->actionShow_Call_Activity_Columns->setMenu(showCallMenu);
|
||||||
ui->actionShow_Call_Activity_Columns->setEnabled(ui->actionShow_Call_Activity->isChecked());
|
ui->actionShow_Call_Activity_Columns->setEnabled(ui->actionShow_Call_Activity->isChecked());
|
||||||
|
#if __APPLE__
|
||||||
|
rebuildMacQAction(ui->menuWindow, ui->actionShow_Call_Activity_Columns);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionShow_Band_Activity_triggered(bool checked){
|
void MainWindow::on_actionShow_Band_Activity_triggered(bool checked){
|
||||||
|
Loading…
Reference in New Issue
Block a user