From: gg Date: Tue, 13 Jan 2026 02:26:54 +0000 (-0500) Subject: node disconnect; Qt6.4 compat stuff X-Git-Url: https://git.nutra.tk/v1?a=commitdiff_plain;h=1b834e344b8b400fc1d04c9b8ac1e509a01ce25d;p=gamesguru%2Ffeather.git node disconnect; Qt6.4 compat stuff --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1ff01908..170ea479 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -305,6 +305,21 @@ if(DEVICE_TREZOR_READY) endif() if (WITH_SCANNER) + include(CheckCXXSourceCompiles) + set(CMAKE_REQUIRED_LIBRARIES ${ZXING_LIBRARIES}) + + check_cxx_source_compiles(" + #include + int main() { + auto fmt = ZXing::ImageFormat::BGRA; + return 0; + } + " HAVE_ZXING_BGRA) + + if (HAVE_ZXING_BGRA) + target_compile_definitions(feather PRIVATE HAVE_ZXING_BGRA) + endif() + target_link_libraries(feather PRIVATE Qt::Multimedia Qt::MultimediaWidgets diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index d04351ca..58e6d05e 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -250,7 +250,7 @@ void MainWindow::initStatusBar() { if (m_actionDisconnectNodeOnPause->isChecked()) { qInfo() << "Disconnecting from node (Pause Sync enabled)"; - m_nodes->disconnect(); + m_nodes->disconnectCurrentNode(); this->onConnectionStatusChanged(Wallet::ConnectionStatus_Disconnected); } diff --git a/src/qrcode/utils/QrCodeUtils.cpp b/src/qrcode/utils/QrCodeUtils.cpp index ee3841eb..80593f86 100644 --- a/src/qrcode/utils/QrCodeUtils.cpp +++ b/src/qrcode/utils/QrCodeUtils.cpp @@ -10,20 +10,28 @@ Result QrCodeUtils::ReadBarcode(const QImage& img, const ZXing::ReaderOptions& h case QImage::Format_ARGB32: case QImage::Format_RGB32: #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN +#ifdef HAVE_ZXING_BGRA return ZXing::ImageFormat::BGRA; +#else + return ZXing::ImageFormat::BGRX; +#endif #else return ZXing::ImageFormat::XRGB; #endif - case QImage::Format_RGB888: + case QImage::Format_RGB888: return ZXing::ImageFormat::RGB; case QImage::Format_RGBX8888: - case QImage::Format_RGBA8888: + case QImage::Format_RGBA8888: +#ifdef HAVE_ZXING_BGRA return ZXing::ImageFormat::RGBA; +#else + return ZXing::ImageFormat::RGBX; +#endif - case QImage::Format_Grayscale8: + case QImage::Format_Grayscale8: return ZXing::ImageFormat::Lum; default: diff --git a/src/utils/nodes.cpp b/src/utils/nodes.cpp index bd95bbcc..c4e09d5c 100644 --- a/src/utils/nodes.cpp +++ b/src/utils/nodes.cpp @@ -207,6 +207,21 @@ void Nodes::connectToNode(const FeatherNode &node) { if (!node.isValid()) { return; } +} + +void Nodes::disconnectCurrentNode() { + if (!m_wallet) return; + + // Stop any ongoing connection attempt + m_connection.isActive = false; + m_connection.isConnecting = false; + + // Connect to empty "node" effectively disconnects + m_wallet->initAsync("", false, 0); + + this->resetLocalState(); + this->updateModels(); +} if (conf()->get(Config::offlineMode).toBool()) { return; diff --git a/src/utils/nodes.h b/src/utils/nodes.h index 8bbf8b3a..2cc06b33 100644 --- a/src/utils/nodes.h +++ b/src/utils/nodes.h @@ -167,6 +167,7 @@ public: public slots: void connectToNode(); void connectToNode(const FeatherNode &node); + void disconnectCurrentNode(); void onWSNodesReceived(QList& nodes); void onNodeSourceChanged(NodeSource nodeSource); void setCustomNodes(const QList& nodes);