From e00473ec88e0491021546164f276038d35369912 Mon Sep 17 00:00:00 2001 From: gg Date: Mon, 12 Jan 2026 14:54:41 -0500 Subject: [PATCH] hide all widgets on minimize; respect log level --- src/MainWindow.cpp | 13 +++++++++---- src/SettingsDialog.cpp | 1 + src/dialog/TxImportDialog.cpp | 2 ++ src/main.cpp | 2 +- src/utils/Utils.cpp | 14 ++++++++++++++ 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 571efc5d..c5497d55 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1508,7 +1508,7 @@ void MainWindow::changeEvent(QEvent* event) // In changeEvent: if (event->type() == QEvent::WindowStateChange) { - qInfo() << "changeEvent: WindowStateChange. State:" << this->windowState() << " isMinimized:" << this->isMinimized(); + qDebug() << "changeEvent: WindowStateChange. State:" << this->windowState() << " isMinimized:" << this->isMinimized(); if (this->isMinimized()) { // ... existing logic ... if (conf()->get(Config::lockOnMinimize).toBool()) { @@ -1525,11 +1525,11 @@ void MainWindow::changeEvent(QEvent* event) } } } else if (event->type() == QEvent::ActivationChange) { - qInfo() << "changeEvent: ActivationChange. Active:" << this->isActiveWindow(); + qDebug() << "changeEvent: ActivationChange. Active:" << this->isActiveWindow(); QTimer::singleShot(500, this, [this](){ auto handle = this->windowHandle(); if (handle && !handle->isExposed()) { - qInfo() << "ActivationChange (delayed): Window not exposed -> Hiding to tray"; + qDebug() << "ActivationChange (delayed): Window not exposed -> Hiding to tray"; if (conf()->get(Config::lockOnMinimize).toBool()) { this->lockWallet(); } @@ -1537,7 +1537,12 @@ void MainWindow::changeEvent(QEvent* event) bool showTray = conf()->get(Config::showTrayIcon).toBool(); bool minimizeToTray = conf()->get(Config::minimizeToTray).toBool(); if (showTray && minimizeToTray) { - this->hide(); + // Hide all widgets and dialogs, not just MainWindow + for (const auto &widget : QApplication::topLevelWidgets()) { + if (widget->isVisible() && !widget->windowFlags().testFlag(Qt::Popup) && !widget->windowFlags().testFlag(Qt::ToolTip)) { + widget->hide(); + } + } } } }); diff --git a/src/SettingsDialog.cpp b/src/SettingsDialog.cpp index 9dabad09..b9f6a4b1 100644 --- a/src/SettingsDialog.cpp +++ b/src/SettingsDialog.cpp @@ -238,6 +238,7 @@ void Settings::setupStorageTab() { ui->comboBox_logLevel->setCurrentIndex(conf()->get(Config::logLevel).toInt()); connect(ui->comboBox_logLevel, QOverload::of(&QComboBox::currentIndexChanged), [](int index){ conf()->set(Config::logLevel, index); + qDebug() << "Log level changed to:" << index; if (!conf()->get(Config::disableLogging).toBool()) { WalletManager::instance()->setLogLevel(index); } diff --git a/src/dialog/TxImportDialog.cpp b/src/dialog/TxImportDialog.cpp index 56b2befc..3f1b2685 100644 --- a/src/dialog/TxImportDialog.cpp +++ b/src/dialog/TxImportDialog.cpp @@ -17,6 +17,8 @@ TxImportDialog::TxImportDialog(QWidget *parent, Wallet *wallet) connect(ui->btn_import, &QPushButton::clicked, this, &TxImportDialog::onImport); + ui->line_txid->setMinimumWidth(600); + this->adjustSize(); this->layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/src/main.cpp b/src/main.cpp index 495479de..aa62546c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -219,6 +219,6 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) { wm->setEventFilter(&filter); int exitCode = Application::exec(); - qDebug() << "Application::exec() returned"; + qDebug() << "Application::exec() returned with exit code:" << exitCode; return exitCode; } diff --git a/src/utils/Utils.cpp b/src/utils/Utils.cpp index 375e535a..8977e56d 100644 --- a/src/utils/Utils.cpp +++ b/src/utils/Utils.cpp @@ -559,6 +559,20 @@ QTextCharFormat addressTextFormat(const SubaddressIndex &index, quint64 amount) } void applicationLogHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { + if (conf()->get(Config::disableLogging).toBool()) + return; + + int level = conf()->get(Config::logLevel).toInt(); + + // Mapping: + // 0: Critical/Fatal [always reported under below scheme] + // 1: + Warning + // 2: + Info + // 3+: + Debug + if (level < 3 && type == QtDebugMsg) return; + if (level < 2 && type == QtInfoMsg) return; + if (level < 1 && type == QtWarningMsg) return; + const QString fn = context.function ? QString::fromUtf8(context.function) : ""; const QString date = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); QString line; -- 2.52.0