diff --git a/cockatrice/src/client/sound_engine.cpp b/cockatrice/src/client/sound_engine.cpp index 96cafa3d3..18de2264d 100644 --- a/cockatrice/src/client/sound_engine.cpp +++ b/cockatrice/src/client/sound_engine.cpp @@ -94,7 +94,7 @@ QStringMap &SoundEngine::getAvailableThemes() QDir dir; availableThemes.clear(); - // Load themes from user profile dir + // load themes from user profile dir dir.setPath(SettingsCache::instance().getDataPath() + "/sounds"); @@ -104,7 +104,7 @@ QStringMap &SoundEngine::getAvailableThemes() } } - // Load themes from Cockatrice system dir + // load themes from cockatrice system dir dir.setPath(qApp->applicationDirPath() + #ifdef Q_OS_MAC "/../Resources/sounds" diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp index e7e31f5a2..8c81d641d 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include @@ -56,14 +55,7 @@ CardPictureLoader::CardPictureLoader() : QObject(nullptr) CardPictureLoader::~CardPictureLoader() { - if (worker) { - // Capture the thread first: shutdownThread() blocks until the worker has been freed by the - // finished() -> deleteLater chain, after which the worker pointer must not be dereferenced. - QThread *pictureLoaderThread = worker->workerThread(); - worker->shutdownThread(); - worker = nullptr; - delete pictureLoaderThread; - } + worker->deleteLater(); } void CardPictureLoader::getCardBackPixmap(QPixmap &pixmap, QSize size) @@ -303,15 +295,7 @@ void CardPictureLoader::clearPixmapCache() void CardPictureLoader::clearNetworkCache() { - auto &worker = *getInstance().worker; - // The disk cache and redirect cache are owned by the worker thread; clearing them from the - // UI thread would race with the worker's cache reads/writes. Block until the worker thread - // has executed the clear so the "Cached card pictures have been reset." message is truthful. - if (worker.isRunning()) { - QMetaObject::invokeMethod(&worker, "clearNetworkCache", Qt::BlockingQueuedConnection); - } else { - worker.clearNetworkCache(); - } + getInstance().worker->clearNetworkCache(); } void CardPictureLoader::cacheCardPixmaps(const QList &cards) diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp index daac1bff5..fab651d72 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.cpp @@ -60,9 +60,6 @@ CardPictureLoaderWorker::CardPictureLoaderWorker() localLoader = new CardPictureLoaderLocal(this); pictureLoaderThread = new QThread; - // The worker object frees itself once its thread finishes, so no event loop is left - // running and the QThread is never destroyed while still executing. - connect(pictureLoaderThread, &QThread::finished, this, &QObject::deleteLater); pictureLoaderThread->start(QThread::LowPriority); moveToThread(pictureLoaderThread); @@ -86,28 +83,7 @@ CardPictureLoaderWorker::CardPictureLoaderWorker() CardPictureLoaderWorker::~CardPictureLoaderWorker() { saveRedirectCache(); -} - -void CardPictureLoaderWorker::shutdownThread() -{ - // The finished() -> deleteLater chain (wired in the constructor) frees this worker as soon as - // its event loop exits, so nothing - not even a member read - may run once wait() returns. - // QThread::quit() and QThread::wait() are thread-safe and may be called from the owning thread. - QThread *thread = pictureLoaderThread; - if (thread) { - thread->quit(); - thread->wait(); - } -} - -QThread *CardPictureLoaderWorker::workerThread() const -{ - return pictureLoaderThread; -} - -bool CardPictureLoaderWorker::isRunning() const -{ - return pictureLoaderThread != nullptr && pictureLoaderThread->isRunning(); + pictureLoaderThread->deleteLater(); } void CardPictureLoaderWorker::queueRequest(const QUrl &url, CardPictureLoaderWorkerWork *worker) diff --git a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.h b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.h index 96405252f..70bc36419 100644 --- a/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.h +++ b/cockatrice/src/interface/card_picture_loader/card_picture_loader_worker.h @@ -74,37 +74,10 @@ public: */ void onHostRateLimited(const QString &host); - /** - * @brief Stops the worker thread and releases it. - * - * Called from the owning thread (CardPictureLoader) on its way out. QThread::quit() posts an - * exit request to the worker's event loop and QThread::wait() blocks until the loop has - * returned and the thread finished. Only QThread members are touched here, so this method is - * safe to call from the owning thread. The worker object itself is freed by the finished() -> - * deleteLater chain (see the constructor); the QThread object is deleted afterwards by the - * owner (CardPictureLoader::~CardPictureLoader), not by this method. - */ - void shutdownThread(); - - /** @return Whether the worker's thread is currently running. */ - bool isRunning() const; - - /** - * @brief Returns the worker's QThread. - * @return The worker thread - * - * Only meaningful while the worker object is alive; capture it before calling shutdownThread(). - */ - QThread *workerThread() const; + /** @brief Clears the network cache and redirect cache. */ + void clearNetworkCache(); public slots: - /** - * @brief Clears the network cache and redirect cache. - * - * Runs on the worker thread; invoke it via a queued call when coming from another thread, - * since both caches are owned by the worker thread. - */ - void clearNetworkCache(); /** * @brief Makes a network request for the given URL using the specified worker. * @param url URL to load diff --git a/cockatrice/src/interface/deck_loader/deck_file_format.h b/cockatrice/src/interface/deck_loader/deck_file_format.h index 3a25797ec..995de32c0 100644 --- a/cockatrice/src/interface/deck_loader/deck_file_format.h +++ b/cockatrice/src/interface/deck_loader/deck_file_format.h @@ -17,7 +17,7 @@ enum Format PlainText, /** - * This is Cockatrice's native deck file format, and supports deck metadata such as banner cards and tags. + * This is cockatrice's native deck file format, and supports deck metadata such as banner cards and tags. * Stored as .cod files. */ Cockatrice diff --git a/cockatrice/src/interface/deck_loader/deck_loader.cpp b/cockatrice/src/interface/deck_loader/deck_loader.cpp index f29b4eed2..f03339da8 100644 --- a/cockatrice/src/interface/deck_loader/deck_loader.cpp +++ b/cockatrice/src/interface/deck_loader/deck_loader.cpp @@ -50,7 +50,7 @@ DeckLoader::loadFromFile(const QString &fileName, DeckFileFormat::Format fmt, bo result = deckList.loadFromFile_Native(&file); if (!result) { qCInfo(DeckLoaderLog) << "Failed to load " << fileName - << "as Cockatrice format; retrying as plain format"; + << "as cockatrice format; retrying as plain format"; file.seek(0); result = deckList.loadFromFile_Plain(&file, CardNameNormalizer()); fmt = DeckFileFormat::PlainText; diff --git a/cockatrice/src/interface/deck_loader/deck_loader.h b/cockatrice/src/interface/deck_loader/deck_loader.h index be0df311d..b851c6895 100644 --- a/cockatrice/src/interface/deck_loader/deck_loader.h +++ b/cockatrice/src/interface/deck_loader/deck_loader.h @@ -131,7 +131,7 @@ public: static void printDeckList(QPrinter *printer, const DeckList &deckList); /** - * Converts the given deck's file to the Cockatrice file format. + * Converts the given deck's file to the cockatrice file format. * Uses the lastLoadInfo in the LoadedDeck to determine the current name of the file and where to save to. * @param deck The deck to convert. Should have valid lastLoadInfo. Will update the lastLoadInfo. * @return Whether the conversion succeeded. diff --git a/cockatrice/src/interface/theme_manager.cpp b/cockatrice/src/interface/theme_manager.cpp index 12c8fad2c..cc6be175a 100644 --- a/cockatrice/src/interface/theme_manager.cpp +++ b/cockatrice/src/interface/theme_manager.cpp @@ -224,7 +224,7 @@ QStringMap &ThemeManager::getAvailableThemes() } } - // Load themes from Cockatrice system dir + // load themes from cockatrice system dir dir.setPath(systemThemesBasePath()); for (QString themeName : dir.entryList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name)) { diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp index fb559fc4b..de7dd3e97 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_settings.cpp @@ -478,13 +478,13 @@ void DlgSettings::closeEvent(QCloseEvent *event) case Invalid: loadErrorMessage = tr("Your card database is invalid.\n\n" "Cockatrice may not function correctly with an invalid database\n\n" - "You may need to rerun Oracle to update your card database.\n\n" + "You may need to rerun oracle to update your card database.\n\n" "Would you like to change your database location setting?"); break; case VersionTooOld: loadErrorMessage = tr("Your card database version is too old.\n\n" "This can cause problems loading card information or images\n\n" - "Usually this can be fixed by rerunning Oracle to to update your card database.\n\n" + "Usually this can be fixed by rerunning oracle to to update your card database.\n\n" "Would you like to change your database location setting?"); break; case NotLoaded: diff --git a/cockatrice/src/interface/window_main.cpp b/cockatrice/src/interface/window_main.cpp index 3daaeb8d3..ce28fc24a 100644 --- a/cockatrice/src/interface/window_main.cpp +++ b/cockatrice/src/interface/window_main.cpp @@ -92,8 +92,8 @@ #include #define GITHUB_PAGES_URL "https://cockatrice.github.io" -#define GITHUB_CONTRIBUTORS_URL "https://github.com/Cockatrice/Cockatrice/graphs/contributors" -#define GITHUB_CONTRIBUTE_URL "https://github.com/Cockatrice/Cockatrice#" +#define GITHUB_CONTRIBUTORS_URL "https://github.com/Cockatrice/Cockatrice/graphs/contributors?type=c" +#define GITHUB_CONTRIBUTE_URL "https://github.com/Cockatrice/Cockatrice#cockatrice" #define GITHUB_TRANSIFEX_TRANSLATORS_URL "https://github.com/Cockatrice/Cockatrice/wiki/Translator-Hall-of-Fame" #define GITHUB_TRANSLATOR_FAQ_URL "https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ" #define GITHUB_ISSUES_URL "https://github.com/Cockatrice/Cockatrice/issues" @@ -1050,7 +1050,7 @@ void MainWindow::createCardUpdateProcess(bool background) if (dir.exists(binaryName)) { updaterCmd = dir.absoluteFilePath(binaryName); - } else { // try and find the directory Oracle is stored in the build directory + } else { // try and find the directory oracle is stored in the build directory QDir findLocalDir(dir); findLocalDir.cdUp(); findLocalDir.cd(getCardUpdaterBinaryName()); diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index 829e08742..ac77b4241 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -231,7 +231,7 @@ int main(int argc, char *argv[]) // These values are only used by the settings loader/saver // Wrong or outdated values are kept to not break things QCoreApplication::setOrganizationName("Cockatrice"); - QCoreApplication::setOrganizationDomain("cockatrice.github.io"); + QCoreApplication::setOrganizationDomain("cockatrice.de"); QCoreApplication::setApplicationName("Cockatrice"); QCoreApplication::setApplicationVersion(VERSION_STRING); @@ -250,7 +250,7 @@ int main(int argc, char *argv[]) // Command-line parser QCommandLineParser parser; - parser.setApplicationDescription("Cockatrice Client"); + parser.setApplicationDescription("Cockatrice"); parser.addHelpOption(); parser.addVersionOption(); @@ -350,8 +350,8 @@ int main(int argc, char *argv[]) qCInfo(MainLog) << "MainWindow constructor finished"; ui.setWindowIcon(themePixmap(QStringLiteral("cockatrice"))); - // Set name of the app desktop file; used by wayland to load the window icon - QGuiApplication::setDesktopFileName("Cockatrice"); + // set name of the app desktop file; used by wayland to load the window icon + QGuiApplication::setDesktopFileName("cockatrice"); SettingsCache::instance().network().setClientID(generateClientID()); diff --git a/oracle/src/main.cpp b/oracle/src/main.cpp index 0f962f9be..bb88153b1 100644 --- a/oracle/src/main.cpp +++ b/oracle/src/main.cpp @@ -50,8 +50,8 @@ int main(int argc, char *argv[]) QApplication app(argc, argv); QCoreApplication::setOrganizationName("Cockatrice"); - QCoreApplication::setOrganizationDomain("Cockatrice"); - // This can't be changed, as it influences the default save path for cards.xml + QCoreApplication::setOrganizationDomain("cockatrice"); + // this can't be changed, as it influences the default save path for cards.xml QCoreApplication::setApplicationName("Cockatrice"); // If the program is opened with the -s flag, it will only do spoilers. Otherwise it will do MTGJSON/Tokens @@ -83,7 +83,7 @@ int main(int argc, char *argv[]) QIcon icon("theme:appicon.svg"); wizard.setWindowIcon(icon); // set name of the app desktop file; used by wayland to load the window icon - QGuiApplication::setDesktopFileName("Oracle"); + QGuiApplication::setDesktopFileName("oracle"); wizard.show(); diff --git a/oracle/src/pages.cpp b/oracle/src/pages.cpp index df0c3f51d..a10daadb3 100644 --- a/oracle/src/pages.cpp +++ b/oracle/src/pages.cpp @@ -796,7 +796,7 @@ void SaveSetsPage::retranslateUi() { setTitle(tr("Sets imported")); if (wizard()->downloadedPlainXml) { - setSubTitle(tr("A Cockatrice card database file of %1 MB has been downloaded.") + setSubTitle(tr("A cockatrice database file of %1 MB has been downloaded.") .arg(qRound(wizard()->xmlData.size() / 1000000.0))); } else { setSubTitle(tr("The following sets have been found:")); diff --git a/oracle/src/parsehelpers.cpp b/oracle/src/parsehelpers.cpp index ee7c4eb2e..a97bf67c9 100644 --- a/oracle/src/parsehelpers.cpp +++ b/oracle/src/parsehelpers.cpp @@ -20,7 +20,7 @@ * Note that "...enters tapped unless..." returns false. * * @param name The name of the card - * @param text The Oracle text of the card + * @param text The oracle text of the card */ bool parseCipt(const QString &name, const QString &text) { diff --git a/oracle/src/raw_json_scanner.h b/oracle/src/raw_json_scanner.h index 04fcc52e4..086f2b3e3 100644 --- a/oracle/src/raw_json_scanner.h +++ b/oracle/src/raw_json_scanner.h @@ -54,7 +54,7 @@ using ScanProgressCallback = std::function expectedversion) { - qCCritical(DatabaseInterfaceLog) - << poolStr << "Error opening database: the database schema version" << dbversion - << "is too new, you need to update Servatrice" << "(Currently running Servatrice actually uses version" - << expectedversion << ")"; + qCCritical(DatabaseInterfaceLog) << poolStr << "Error opening database: the database schema version" + << dbversion << "is too new, you need to update servatrice" + << "(this servatrice actually uses version" << expectedversion << ")"; return false; } } else {