Status bar improvements

* Fix crashes on non-continuous floppy/CD-ROM/ZIP/MO media lists
* Status bar icons should now display tooltips and trigger loading menus
This commit is contained in:
Cacodemon345
2021-12-14 00:31:55 +06:00
parent c77fc79e79
commit 80bff48c2b
7 changed files with 136 additions and 33 deletions

View File

@@ -49,9 +49,9 @@ MainWindow::MainWindow(QWidget *parent) :
ui(new Ui::MainWindow)
{
Q_INIT_RESOURCE(qt_resources);
status = std::make_unique<MachineStatus>(this);
mm = std::make_shared<MediaMenu>(this);
MediaMenu::ptr = mm;
status = std::make_unique<MachineStatus>(this);
ui->setupUi(this);
ui->stackedWidget->setMouseTracking(true);
@@ -118,9 +118,10 @@ MainWindow::MainWindow(QWidget *parent) :
});
connect(this, &MainWindow::updateStatusBarPanes, this, [this] {
status->refresh(ui->statusbar);
refreshMediaMenu();
});
connect(this, &MainWindow::updateStatusBarPanes, this, &MainWindow::refreshMediaMenu);
connect(this, &MainWindow::updateStatusBarTip, status.get(), &MachineStatus::updateTip);
connect(this, &MainWindow::updateStatusBarActivity, status.get(), &MachineStatus::setActivity);
connect(this, &MainWindow::updateStatusBarEmpty, status.get(), &MachineStatus::setEmpty);
connect(this, &MainWindow::statusBarMessage, status.get(), &MachineStatus::message);
@@ -920,6 +921,7 @@ bool MainWindow::eventFilter(QObject* receiver, QEvent* event)
void MainWindow::refreshMediaMenu() {
mm->refresh(ui->menuMedia);
status->refresh(ui->statusbar);
}
void MainWindow::showMessage(const QString& header, const QString& message) {