get_directory_property(DEVICE_TREZOR_READY DIRECTORY "monero" DEFINITION DEVICE_TREZOR_READY)
get_directory_property(TREZOR_DEP_LIBS DIRECTORY "monero" DEFINITION TREZOR_DEP_LIBS)
+# pthread
+find_package(Threads REQUIRED)
+
# Easylogging
include_directories(${EASYLOGGING_INCLUDE})
link_directories(${EASYLOGGING_LIBRARY_DIRS})
# QrEncode
find_package(QREncode REQUIRED)
-# ZBAR
-find_package(ZBAR REQUIRED)
-message(STATUS "libzbar: include dir at ${ZBAR_INCLUDE_DIR}")
-message(STATUS "libzbar: libraries at ${ZBAR_LIBRARIES}")
-
# Polyseed
find_package(Polyseed REQUIRED)
if(Polyseed_SUBMODULE)
add_subdirectory(src/third-party/polyseed EXCLUDE_FROM_ALL)
endif()
+# ZBAR
+if(WITH_SCANNER)
+ find_package(ZBAR REQUIRED)
+ message(STATUS "libzbar: include dir at ${ZBAR_INCLUDE_DIR}")
+ message(STATUS "libzbar: libraries at ${ZBAR_LIBRARIES}")
+endif()
+
# libzip
-set(ZLIB_USE_STATIC_LIBS "ON")
-find_package(ZLIB REQUIRED)
-find_path(LIBZIP_INCLUDE_DIRS zip.h)
-find_library(LIBZIP_LIBRARIES zip)
+if(CHECK_UPDATES)
+ set(ZLIB_USE_STATIC_LIBS "ON")
+ find_package(ZLIB REQUIRED)
+ find_path(LIBZIP_INCLUDE_DIRS zip.h)
+ find_library(LIBZIP_LIBRARIES zip)
+endif()
# Boost
if(DEBUG)
set(EXTRA_LIBRARIES ${RT})
endif()
-list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})
-
if(APPLE)
cmake_policy(SET CMP0042 NEW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default -std=c++11")
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
-# pthread
-find_package(Threads REQUIRED)
-
set(QT_COMPONENTS
Core
Widgets
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
add_subdirectory(third-party/singleapplication)
-add_subdirectory(openpgp)
+if (CHECK_UPDATES)
+ add_subdirectory(openpgp)
+endif()
qt_add_resources(RESOURCES assets.qrc assets_tor.qrc)
"plugins/*/*.h"
)
+if (CHECK_UPDATES)
+ file(GLOB UPDATER_FILES
+ "utils/updater/*.h"
+ "utils/updater/*.cpp")
+endif()
+
+if (WITH_SCANNER)
+ file(GLOB QRCODE_UTILS_FILES
+ "qrcode/utils/*.h"
+ "qrcode/utils/*.cpp")
+endif()
+
if (WITH_SCANNER AND NOT Qt6_FOUND)
file(GLOB SCANNER_FILES
"qrcode/scanner/*.h"
endif()
list(APPEND SOURCE_FILES
+ ${UPDATER_FILES}
+ ${QRCODE_UTILS_FILES}
${SCANNER_FILES})
set(EXECUTABLE_FLAG)
${QtWebSockets_INCLUDE_DIRS}
${LIBZIP_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS}
- ${ZBAR_INCLUDE_DIR}
${POLYSEED_INCLUDE_DIR}
)
if(WITH_SCANNER)
target_include_directories(feather PUBLIC
+ ${ZBAR_INCLUDE_DIR}
${QtMultimedia_INCLUDE_DIRS}
${QtMultimediaWidgets_INCLUDE_DIRS}
)
ringct
${Boost_LIBRARIES}
${OPENSSL_LIBRARIES}
- ${CMAKE_DL_LIBS}
${EXTRA_LIBRARIES}
Qt::Core
Qt::Widgets
Qt::Network
Qt::Svg
Qt::WebSockets
- openpgp
Threads::Threads
${QRENCODE_LIBRARY}
- ${ZBAR_LIBRARIES}
${POLYSEED_LIBRARY}
SingleApplication::SingleApplication
${ICU_LIBRARIES}
${ZLIB_LIBRARIES}
)
+if(CHECK_UPDATES)
+ target_link_libraries(feather openpgp)
+endif()
+
if(DEPENDS)
target_link_libraries(feather ${ICONV_LIBRARIES})
endif()
if (WITH_SCANNER)
target_link_libraries(feather
+ ${ZBAR_LIBRARIES}
Qt::Multimedia
Qt::MultimediaWidgets
)
#include "dialog/ViewOnlyDialog.h"
#include "dialog/WalletInfoDialog.h"
#include "dialog/WalletCacheDebugDialog.h"
-#include "dialog/UpdateDialog.h"
#include "libwalletqt/AddressBook.h"
#include "libwalletqt/CoinsInfo.h"
#include "libwalletqt/Transfer.h"
#include "utils/Icons.h"
#include "utils/SemanticVersion.h"
#include "utils/TorManager.h"
-#include "utils/Updater.h"
#include "utils/WebsocketNotifier.h"
+#ifdef CHECK_UPDATES
+#include "utils/updater/UpdateDialog.h"
+#endif
//#include "misc_log_ex.h"
MainWindow::MainWindow(WindowManager *windowManager, Wallet *wallet, QWidget *parent)
m_splashDialog = new SplashDialog(this);
m_accountSwitcherDialog = new AccountSwitcherDialog(m_wallet, this);
+#ifdef CHECK_UPDATES
m_updater = QSharedPointer<Updater>(new Updater(this));
+#endif
this->restoreGeo();
connect(websocketNotifier(), &WebsocketNotifier::BountyReceived, ui->bountiesWidget->model(), &BountiesModel::updateBounties);
connect(websocketNotifier(), &WebsocketNotifier::RedditReceived, ui->redditWidget->model(), &RedditModel::updatePosts);
connect(websocketNotifier(), &WebsocketNotifier::RevuoReceived, ui->revuoWidget, &RevuoWidget::updateItems);
+#ifdef CHECK_UPDATES
connect(websocketNotifier(), &WebsocketNotifier::UpdatesReceived, m_updater.data(), &Updater::wsUpdatesReceived);
+#endif
#ifdef HAS_XMRIG
connect(websocketNotifier(), &WebsocketNotifier::XMRigDownloadsReceived, m_xmrig, &XMRigWidget::onDownloads);
#endif
connect(torManager(), &TorManager::connectionStateChanged, this, &MainWindow::onTorConnectionStateChanged);
this->onTorConnectionStateChanged(torManager()->torConnected);
+#ifdef CHECK_UPDATES
connect(m_updater.data(), &Updater::updateAvailable, this, &MainWindow::showUpdateNotification);
+#endif
ColorScheme::updateFromWidget(this);
QTimer::singleShot(1, [this]{this->updateWidgetIcons();});
if (hidden) {
m_statusUpdateAvailable->hide();
}
+#ifdef CHECK_UPDATES
else if (m_updater->state == Updater::State::UPDATE_AVAILABLE) {
m_statusUpdateAvailable->show();
}
+#endif
}
void MainWindow::onTorConnectionStateChanged(bool connected) {
}
void MainWindow::showUpdateNotification() {
+#ifdef CHECK_UPDATES
if (config()->get(Config::hideUpdateNotifications).toBool()) {
return;
}
m_statusUpdateAvailable->disconnect();
connect(m_statusUpdateAvailable, &StatusBarButton::clicked, this, &MainWindow::showUpdateDialog);
+#endif
}
void MainWindow::showUpdateDialog() {
+#ifdef CHECK_UPDATES
UpdateDialog updateDialog{this, m_updater};
connect(&updateDialog, &UpdateDialog::restartWallet, m_windowManager, &WindowManager::restartApplication);
updateDialog.exec();
+#endif
}
void MainWindow::onInitiateTransaction() {
#include "utils/config.h"
#include "utils/daemonrpc.h"
#include "utils/EventFilter.h"
-#include "utils/Updater.h"
#include "plugins/ccs/CCSWidget.h"
#include "plugins/reddit/RedditWidget.h"
#include "widgets/TickerWidget.h"
#include "WindowManager.h"
+#ifdef CHECK_UPDATES
+#include "utils/updater/Updater.h"
+#endif
+
#ifdef HAS_LOCALMONERO
#include "plugins/localmonero/LocalMoneroWidget.h"
#endif
EventFilter *m_eventFilter = nullptr;
qint64 m_userLastActive = QDateTime::currentSecsSinceEpoch();
+#ifdef CHECK_UPDATES
QSharedPointer<Updater> m_updater = nullptr;
+#endif
};
#endif // FEATHER_MAINWINDOW_H
#include "utils/AsyncTask.h"
#include "utils/Networking.h"
#include "utils/NetworkManager.h"
-#include "utils/Updater.h"
+#include "utils/updater/Updater.h"
#include "utils/Utils.h"
#include "utils/SemanticVersion.h"
#include <QNetworkReply>
#include <QTimer>
-#include "utils/Updater.h"
+#include "utils/updater/Updater.h"
namespace Ui {
class UpdateDialog;
#include <QScrollBar>
#include "libwalletqt/WalletManager.h"
-#include "qrcode/QrCodeUtils.h"
#include "utils/Utils.h"
+#if defined(WITH_SCANNER)
+#include "qrcode/utils/QrCodeUtils.h"
+#endif
+
PayToEdit::PayToEdit(QWidget *parent) : QPlainTextEdit(parent)
{
this->setFont(Utils::getMonospaceFont());
return;
}
+#if defined(WITH_SCANNER)
image.convertTo(QImage::Format_RGB32);
QString result = QrCodeUtils::scanImage(image);
dataPasted(result);
+#endif
}
void PayToEdit::checkText() {