mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2025-12-21 23:00:24 -08:00
Compare commits
1 Commits
tooomm-doc
...
tooomm-dox
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
067d9797be |
@@ -122,7 +122,7 @@ if [[ $MAKE_SERVER ]]; then
|
|||||||
flags+=("-DWITH_SERVER=1")
|
flags+=("-DWITH_SERVER=1")
|
||||||
fi
|
fi
|
||||||
if [[ $MAKE_NO_CLIENT ]]; then
|
if [[ $MAKE_NO_CLIENT ]]; then
|
||||||
flags+=("-DWITH_CLIENT=0" "-DWITH_ORACLE=0")
|
flags+=("-DWITH_CLIENT=0" "-DWITH_ORACLE=0" "-DWITH_DBCONVERTER=0")
|
||||||
fi
|
fi
|
||||||
if [[ $MAKE_TEST ]]; then
|
if [[ $MAKE_TEST ]]; then
|
||||||
flags+=("-DTEST=1")
|
flags+=("-DTEST=1")
|
||||||
@@ -246,7 +246,7 @@ fi
|
|||||||
|
|
||||||
if [[ $RUNNER_OS == macOS ]]; then
|
if [[ $RUNNER_OS == macOS ]]; then
|
||||||
echo "::group::Inspect Mach-O binaries"
|
echo "::group::Inspect Mach-O binaries"
|
||||||
for app in cockatrice oracle servatrice; do
|
for app in cockatrice oracle servatrice dbconverter; do
|
||||||
binary="$GITHUB_WORKSPACE/build/$app/$app.app/Contents/MacOS/$app"
|
binary="$GITHUB_WORKSPACE/build/$app/$app.app/Contents/MacOS/$app"
|
||||||
echo "Inspecting $app..."
|
echo "Inspecting $app..."
|
||||||
vtool -show-build "$binary"
|
vtool -show-build "$binary"
|
||||||
|
|||||||
4
.gitmodules
vendored
4
.gitmodules
vendored
@@ -1,3 +1,7 @@
|
|||||||
[submodule "vcpkg"]
|
[submodule "vcpkg"]
|
||||||
path = vcpkg
|
path = vcpkg
|
||||||
url = https://github.com/microsoft/vcpkg.git
|
url = https://github.com/microsoft/vcpkg.git
|
||||||
|
|
||||||
|
[submodule "doxygen-awesome-css"]
|
||||||
|
path = doc/doxygen/theme
|
||||||
|
url = https://github.com/jothepro/doxygen-awesome-css.git
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ option(WITH_SERVER "build servatrice" OFF)
|
|||||||
option(WITH_CLIENT "build cockatrice" ON)
|
option(WITH_CLIENT "build cockatrice" ON)
|
||||||
# Compile oracle
|
# Compile oracle
|
||||||
option(WITH_ORACLE "build oracle" ON)
|
option(WITH_ORACLE "build oracle" ON)
|
||||||
|
# Compile dbconverter
|
||||||
|
option(WITH_DBCONVERTER "build dbconverter" ON)
|
||||||
# Compile tests
|
# Compile tests
|
||||||
option(TEST "build tests" OFF)
|
option(TEST "build tests" OFF)
|
||||||
# Use vcpkg regardless of OS
|
# Use vcpkg regardless of OS
|
||||||
@@ -354,6 +356,11 @@ if(WITH_ORACLE)
|
|||||||
set(CPACK_INSTALL_CMAKE_PROJECTS "Oracle;Oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
set(CPACK_INSTALL_CMAKE_PROJECTS "Oracle;Oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_DBCONVERTER)
|
||||||
|
add_subdirectory(dbconverter)
|
||||||
|
set(CPACK_INSTALL_CMAKE_PROJECTS "Dbconverter;Dbconverter;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(TEST)
|
if(TEST)
|
||||||
include(CTest)
|
include(CTest)
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN mkdir build && cd build && \
|
RUN mkdir build && cd build && \
|
||||||
cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 && \
|
cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 -DWITH_DBCONVERTER=0 && \
|
||||||
make -j$(nproc) && \
|
make -j$(nproc) && \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
|||||||
9
Doxyfile
9
Doxyfile
@@ -1068,6 +1068,8 @@ RECURSIVE = YES
|
|||||||
|
|
||||||
EXCLUDE = build/ \
|
EXCLUDE = build/ \
|
||||||
cmake/ \
|
cmake/ \
|
||||||
|
doc/doxygen/theme/docs/ \
|
||||||
|
doc/doxygen/theme/include/ \
|
||||||
vcpkg/ \
|
vcpkg/ \
|
||||||
webclient/
|
webclient/
|
||||||
|
|
||||||
@@ -1430,7 +1432,8 @@ HTML_STYLESHEET =
|
|||||||
# documentation.
|
# documentation.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
HTML_EXTRA_STYLESHEET = doc/doxygen/css/doxygen_style.css
|
HTML_EXTRA_STYLESHEET = doc/doxygen/css/doxygen_style.css \
|
||||||
|
doc/doxygen/theme/doxygen-awesome.css
|
||||||
|
|
||||||
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
|
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
|
||||||
# other source files which should be copied to the HTML output directory. Note
|
# other source files which should be copied to the HTML output directory. Note
|
||||||
@@ -1453,7 +1456,7 @@ HTML_EXTRA_FILES = doc/doxygen/js/graph_toggle.js
|
|||||||
# The default value is: AUTO_LIGHT.
|
# The default value is: AUTO_LIGHT.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
HTML_COLORSTYLE = AUTO_DARK
|
HTML_COLORSTYLE = LIGHT # required with doxygen-awesome-css theme, Auto Dark Mode will still work
|
||||||
|
|
||||||
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
|
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
|
||||||
# will adjust the colors in the style sheet and background images according to
|
# will adjust the colors in the style sheet and background images according to
|
||||||
@@ -1764,7 +1767,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project
|
|||||||
# The default value is: NO.
|
# The default value is: NO.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
DISABLE_INDEX = YES
|
DISABLE_INDEX = NO # YES is bugged in the theme, see jothepro/doxygen-awesome-css/issues/201
|
||||||
|
|
||||||
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
|
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
|
||||||
# structure should be generated to display hierarchical information. If the tag
|
# structure should be generated to display hierarchical information. If the tag
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ Join our [Discord community](https://discord.gg/3Z9yzmA) to connect with other p
|
|||||||
- [Official Discord](https://discord.gg/3Z9yzmA)
|
- [Official Discord](https://discord.gg/3Z9yzmA)
|
||||||
- [reddit r/Cockatrice](https://reddit.com/r/cockatrice)
|
- [reddit r/Cockatrice](https://reddit.com/r/cockatrice)
|
||||||
|
|
||||||
> [!IMPORTANT]
|
>[!IMPORTANT]
|
||||||
> For support regarding specific servers, please contact that server's admin/mods and use their dedicated communication channels rather than contacting the team building the software.
|
>For support regarding specific servers, please contact that server's admin/mods and use their dedicated communication channels rather than contacting the team building the software.
|
||||||
|
|
||||||
|
|
||||||
# Contribute
|
# Contribute
|
||||||
@@ -131,8 +131,8 @@ You can then
|
|||||||
make package
|
make package
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
>[!NOTE]
|
||||||
> Detailed compiling instructions can be found in the Cockatrice wiki at [Compiling Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/Compiling-Cockatrice)
|
>Detailed compiling instructions can be found in the Cockatrice wiki at [Compiling Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/Compiling-Cockatrice)
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ tell disk image_name
|
|||||||
set position of item "Cockatrice.app" to { 139, 214 }
|
set position of item "Cockatrice.app" to { 139, 214 }
|
||||||
set position of item "Oracle.app" to { 139, 414 }
|
set position of item "Oracle.app" to { 139, 414 }
|
||||||
set position of item "Servatrice.app" to { 139, 614 }
|
set position of item "Servatrice.app" to { 139, 614 }
|
||||||
|
set position of item "dbconverter.app" to { 1400, 1400 }
|
||||||
set position of item "Applications" to { 861, 414 }
|
set position of item "Applications" to { 861, 414 }
|
||||||
end tell
|
end tell
|
||||||
update without registering applications
|
update without registering applications
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
# Find a compatible Qt version
|
# Find a compatible Qt version
|
||||||
# Inputs: WITH_SERVER, WITH_CLIENT, WITH_ORACLE, FORCE_USE_QT5
|
# Inputs: WITH_SERVER, WITH_CLIENT, WITH_ORACLE, WITH_DBCONVERTER, FORCE_USE_QT5
|
||||||
# Optional Input: QT6_DIR -- Hint as to where Qt6 lives on the system
|
# Optional Input: QT6_DIR -- Hint as to where Qt6 lives on the system
|
||||||
# Optional Input: QT5_DIR -- Hint as to where Qt5 lives on the system
|
# Optional Input: QT5_DIR -- Hint as to where Qt5 lives on the system
|
||||||
# Output: COCKATRICE_QT_VERSION_NAME -- Example values: Qt5, Qt6
|
# Output: COCKATRICE_QT_VERSION_NAME -- Example values: Qt5, Qt6
|
||||||
# Output: SERVATRICE_QT_MODULES
|
# Output: SERVATRICE_QT_MODULES
|
||||||
# Output: COCKATRICE_QT_MODULES
|
# Output: COCKATRICE_QT_MODULES
|
||||||
# Output: ORACLE_QT_MODULES
|
# Output: ORACLE_QT_MODULES
|
||||||
|
# Output: DBCONVERTER_QT_MODULES
|
||||||
# Output: TEST_QT_MODULES
|
# Output: TEST_QT_MODULES
|
||||||
|
|
||||||
set(REQUIRED_QT_COMPONENTS Core)
|
set(REQUIRED_QT_COMPONENTS Core)
|
||||||
@@ -28,12 +29,15 @@ endif()
|
|||||||
if(WITH_ORACLE)
|
if(WITH_ORACLE)
|
||||||
set(_ORACLE_NEEDED Concurrent Network Svg Widgets)
|
set(_ORACLE_NEEDED Concurrent Network Svg Widgets)
|
||||||
endif()
|
endif()
|
||||||
|
if(WITH_DBCONVERTER)
|
||||||
|
set(_DBCONVERTER_NEEDED Network Widgets)
|
||||||
|
endif()
|
||||||
if(TEST)
|
if(TEST)
|
||||||
set(_TEST_NEEDED Widgets)
|
set(_TEST_NEEDED Widgets)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(REQUIRED_QT_COMPONENTS ${REQUIRED_QT_COMPONENTS} ${_SERVATRICE_NEEDED} ${_COCKATRICE_NEEDED} ${_ORACLE_NEEDED}
|
set(REQUIRED_QT_COMPONENTS ${REQUIRED_QT_COMPONENTS} ${_SERVATRICE_NEEDED} ${_COCKATRICE_NEEDED} ${_ORACLE_NEEDED}
|
||||||
${_TEST_NEEDED}
|
${_DBCONVERTER_NEEDED} ${_TEST_NEEDED}
|
||||||
)
|
)
|
||||||
list(REMOVE_DUPLICATES REQUIRED_QT_COMPONENTS)
|
list(REMOVE_DUPLICATES REQUIRED_QT_COMPONENTS)
|
||||||
|
|
||||||
@@ -108,6 +112,7 @@ message(DEBUG "QT_LIBRARY_DIR = ${QT_LIBRARY_DIR}")
|
|||||||
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" SERVATRICE_QT_MODULES "${_SERVATRICE_NEEDED}")
|
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" SERVATRICE_QT_MODULES "${_SERVATRICE_NEEDED}")
|
||||||
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" COCKATRICE_QT_MODULES "${_COCKATRICE_NEEDED}")
|
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" COCKATRICE_QT_MODULES "${_COCKATRICE_NEEDED}")
|
||||||
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" ORACLE_QT_MODULES "${_ORACLE_NEEDED}")
|
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" ORACLE_QT_MODULES "${_ORACLE_NEEDED}")
|
||||||
|
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" DB_CONVERTER_QT_MODULES "${_DBCONVERTER_NEEDED}")
|
||||||
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" TEST_QT_MODULES "${_TEST_NEEDED}")
|
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" TEST_QT_MODULES "${_TEST_NEEDED}")
|
||||||
|
|
||||||
# Core-only export (useful for headless libs)
|
# Core-only export (useful for headless libs)
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ ${AndIf} ${FileExists} "$INSTDIR\portable.dat"
|
|||||||
Delete "$INSTDIR\uninstall.exe"
|
Delete "$INSTDIR\uninstall.exe"
|
||||||
Delete "$INSTDIR\cockatrice.exe"
|
Delete "$INSTDIR\cockatrice.exe"
|
||||||
Delete "$INSTDIR\oracle.exe"
|
Delete "$INSTDIR\oracle.exe"
|
||||||
|
Delete "$INSTDIR\dbconverter.exe"
|
||||||
Delete "$INSTDIR\servatrice.exe"
|
Delete "$INSTDIR\servatrice.exe"
|
||||||
Delete "$INSTDIR\Qt*.dll"
|
Delete "$INSTDIR\Qt*.dll"
|
||||||
Delete "$INSTDIR\libmysql.dll"
|
Delete "$INSTDIR\libmysql.dll"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
string(LENGTH "$ENV{MACOS_CERTIFICATE_NAME}" MACOS_CERTIFICATE_NAME_LEN)
|
string(LENGTH "$ENV{MACOS_CERTIFICATE_NAME}" MACOS_CERTIFICATE_NAME_LEN)
|
||||||
|
|
||||||
if(APPLE AND MACOS_CERTIFICATE_NAME_LEN GREATER 0)
|
if(APPLE AND MACOS_CERTIFICATE_NAME_LEN GREATER 0)
|
||||||
set(APPLICATIONS "cockatrice" "servatrice" "oracle")
|
set(APPLICATIONS "cockatrice" "servatrice" "oracle" "dbconverter")
|
||||||
foreach(app_name IN LISTS APPLICATIONS)
|
foreach(app_name IN LISTS APPLICATIONS)
|
||||||
set(FULL_APP_PATH "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/${app_name}.app")
|
set(FULL_APP_PATH "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/${app_name}.app")
|
||||||
|
|
||||||
|
|||||||
133
dbconverter/CMakeLists.txt
Normal file
133
dbconverter/CMakeLists.txt
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
project(Dbconverter VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||||
|
|
||||||
|
# ------------------------
|
||||||
|
# Sources
|
||||||
|
# ------------------------
|
||||||
|
set(dbconverter_SOURCES src/main.cpp src/mocks.cpp ${VERSION_STRING_CPP})
|
||||||
|
|
||||||
|
# ------------------------
|
||||||
|
# Qt configuration
|
||||||
|
# ------------------------
|
||||||
|
set(QT_DONT_USE_QTGUI TRUE)
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTOUIC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
|
# ------------------------
|
||||||
|
# Build executable
|
||||||
|
# ------------------------
|
||||||
|
add_executable(dbconverter MACOSX_BUNDLE ${dbconverter_SOURCES})
|
||||||
|
|
||||||
|
# ------------------------
|
||||||
|
# Link libraries
|
||||||
|
# ------------------------
|
||||||
|
target_link_libraries(
|
||||||
|
dbconverter
|
||||||
|
PRIVATE libcockatrice_card
|
||||||
|
PRIVATE libcockatrice_interfaces
|
||||||
|
PRIVATE libcockatrice_settings
|
||||||
|
PRIVATE ${DB_CONVERTER_QT_MODULES}
|
||||||
|
)
|
||||||
|
|
||||||
|
# ------------------------
|
||||||
|
# Install rules
|
||||||
|
# ------------------------
|
||||||
|
if(UNIX)
|
||||||
|
if(APPLE)
|
||||||
|
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
|
||||||
|
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}")
|
||||||
|
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}")
|
||||||
|
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
|
||||||
|
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
|
||||||
|
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
|
||||||
|
|
||||||
|
install(TARGETS dbconverter BUNDLE DESTINATION ./)
|
||||||
|
else()
|
||||||
|
# Linux
|
||||||
|
install(TARGETS dbconverter RUNTIME DESTINATION bin/)
|
||||||
|
endif()
|
||||||
|
elseif(WIN32)
|
||||||
|
install(TARGETS dbconverter RUNTIME DESTINATION ./)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ------------------------
|
||||||
|
# Qt plugin handling
|
||||||
|
# ------------------------
|
||||||
|
if(APPLE)
|
||||||
|
set(plugin_dest_dir dbconverter.app/Contents/Plugins)
|
||||||
|
set(qtconf_dest_dir dbconverter.app/Contents/Resources)
|
||||||
|
|
||||||
|
install(
|
||||||
|
DIRECTORY "${QT_PLUGINS_DIR}/"
|
||||||
|
DESTINATION ${plugin_dest_dir}
|
||||||
|
COMPONENT Runtime
|
||||||
|
FILES_MATCHING
|
||||||
|
PATTERN "*.dSYM" EXCLUDE
|
||||||
|
PATTERN "*_debug.dylib" EXCLUDE
|
||||||
|
PATTERN "platforms/*.dylib"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
CODE "
|
||||||
|
file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths]
|
||||||
|
Plugins = Plugins
|
||||||
|
Translations = Resources/translations\")
|
||||||
|
"
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
CODE "
|
||||||
|
file(GLOB_RECURSE QTPLUGINS
|
||||||
|
\"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dylib\")
|
||||||
|
set(BU_CHMOD_BUNDLE_ITEMS ON)
|
||||||
|
include(BundleUtilities)
|
||||||
|
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/dbconverter.app\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR};${MYSQLCLIENT_LIBRARY_DIR}\")
|
||||||
|
"
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(plugin_dest_dir Plugins)
|
||||||
|
set(qtconf_dest_dir .)
|
||||||
|
|
||||||
|
install(
|
||||||
|
DIRECTORY "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${CMAKE_BUILD_TYPE}/"
|
||||||
|
DESTINATION ./
|
||||||
|
FILES_MATCHING
|
||||||
|
PATTERN "*.dll"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
DIRECTORY "${QT_PLUGINS_DIR}/"
|
||||||
|
DESTINATION ${plugin_dest_dir}
|
||||||
|
COMPONENT Runtime
|
||||||
|
FILES_MATCHING
|
||||||
|
PATTERN "platforms/qdirect2d.dll"
|
||||||
|
PATTERN "platforms/qminimal.dll"
|
||||||
|
PATTERN "platforms/qoffscreen.dll"
|
||||||
|
PATTERN "platforms/qwindows.dll"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
CODE "
|
||||||
|
file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths]
|
||||||
|
Plugins = Plugins
|
||||||
|
Translations = Resources/translations\")
|
||||||
|
"
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
CODE "
|
||||||
|
file(GLOB_RECURSE QTPLUGINS
|
||||||
|
\"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dll\")
|
||||||
|
set(BU_CHMOD_BUNDLE_ITEMS ON)
|
||||||
|
include(BundleUtilities)
|
||||||
|
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/dbconverter.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
|
||||||
|
"
|
||||||
|
COMPONENT Runtime
|
||||||
|
)
|
||||||
|
endif()
|
||||||
66
dbconverter/src/main.cpp
Normal file
66
dbconverter/src/main.cpp
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2019 by Fabio Bas *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
#include "mocks.h"
|
||||||
|
#include "version_string.h"
|
||||||
|
|
||||||
|
#include <QCommandLineParser>
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QFileInfo>
|
||||||
|
#include <QtGlobal>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QCoreApplication app(argc, argv);
|
||||||
|
app.setOrganizationName("Cockatrice");
|
||||||
|
app.setApplicationName("Dbconverter");
|
||||||
|
app.setApplicationVersion(VERSION_STRING);
|
||||||
|
|
||||||
|
QCommandLineParser parser;
|
||||||
|
parser.addPositionalArgument("olddb", "Read existing card database from <file>");
|
||||||
|
parser.addPositionalArgument("newdb", "Write new card database to <file>");
|
||||||
|
parser.addHelpOption();
|
||||||
|
parser.addVersionOption();
|
||||||
|
parser.process(app);
|
||||||
|
|
||||||
|
QString oldDbPath;
|
||||||
|
QString newDbPath;
|
||||||
|
QStringList args = parser.positionalArguments();
|
||||||
|
if (args.count() == 2) {
|
||||||
|
oldDbPath = QFileInfo(args.at(0)).absoluteFilePath();
|
||||||
|
newDbPath = QFileInfo(args.at(1)).absoluteFilePath();
|
||||||
|
} else {
|
||||||
|
qCritical() << "Usage: dbconverter <olddb> <newdb>";
|
||||||
|
parser.showHelp(1);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
CardDatabaseConverter *db = new CardDatabaseConverter;
|
||||||
|
|
||||||
|
qInfo() << "---------------------------------------------";
|
||||||
|
qInfo() << "Loading cards from" << oldDbPath;
|
||||||
|
db->loadCardDatabase(oldDbPath);
|
||||||
|
qInfo() << "---------------------------------------------";
|
||||||
|
qInfo() << "Saving cards to" << newDbPath;
|
||||||
|
db->saveCardDatabase(newDbPath);
|
||||||
|
qInfo() << "---------------------------------------------";
|
||||||
|
}
|
||||||
102
dbconverter/src/main.h
Normal file
102
dbconverter/src/main.h
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
#ifndef MAIN_H
|
||||||
|
#define MAIN_H
|
||||||
|
|
||||||
|
#include "libcockatrice/interfaces/noop_card_set_priority_controller.h"
|
||||||
|
|
||||||
|
#include <libcockatrice/card/database/card_database.h>
|
||||||
|
#include <libcockatrice/card/database/parser/cockatrice_xml_4.h>
|
||||||
|
#include <libcockatrice/interfaces/noop_card_preference_provider.h>
|
||||||
|
|
||||||
|
static const QList<AllowedCount> kConstructedCounts = {{4, "legal"}, {0, "banned"}};
|
||||||
|
|
||||||
|
static const QList<AllowedCount> kSingletonCounts = {{1, "legal"}, {0, "banned"}};
|
||||||
|
|
||||||
|
class CardDatabaseConverter : public CardDatabase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit CardDatabaseConverter()
|
||||||
|
{
|
||||||
|
// Replace querier with one that ignores SettingsCache
|
||||||
|
delete querier;
|
||||||
|
querier = new CardDatabaseQuerier(this, this, new NoopCardPreferenceProvider());
|
||||||
|
};
|
||||||
|
|
||||||
|
LoadStatus loadCardDatabase(const QString &path)
|
||||||
|
{
|
||||||
|
return loader->loadCardDatabase(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool saveCardDatabase(const QString &fileName)
|
||||||
|
{
|
||||||
|
CockatriceXml4Parser parser(new NoopCardPreferenceProvider(), new NoopCardSetPriorityController());
|
||||||
|
|
||||||
|
return parser.saveToFile(createDefaultMagicFormats(), sets, cards, fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
FormatRulesNameMap createDefaultMagicFormats()
|
||||||
|
{
|
||||||
|
// Predefined common exceptions
|
||||||
|
CardCondition superTypeIsBasic;
|
||||||
|
superTypeIsBasic.field = "type";
|
||||||
|
superTypeIsBasic.matchType = "contains";
|
||||||
|
superTypeIsBasic.value = "Basic Land";
|
||||||
|
|
||||||
|
ExceptionRule basicLands;
|
||||||
|
basicLands.conditions.append(superTypeIsBasic);
|
||||||
|
|
||||||
|
CardCondition anyNumberAllowed;
|
||||||
|
anyNumberAllowed.field = "text";
|
||||||
|
anyNumberAllowed.matchType = "contains";
|
||||||
|
anyNumberAllowed.value = "A deck can have any number of";
|
||||||
|
|
||||||
|
ExceptionRule mayContainAnyNumber;
|
||||||
|
mayContainAnyNumber.conditions.append(anyNumberAllowed);
|
||||||
|
|
||||||
|
// Map to store default rules
|
||||||
|
FormatRulesNameMap defaultFormatRulesNameMap;
|
||||||
|
|
||||||
|
// ----------------- Helper lambda to create format -----------------
|
||||||
|
auto makeFormat = [&](const QString &name, int minDeck = 60, int maxDeck = -1, int maxSideboardSize = 15,
|
||||||
|
const QList<AllowedCount> &allowedCounts = kConstructedCounts) -> FormatRulesPtr {
|
||||||
|
FormatRulesPtr f(new FormatRules);
|
||||||
|
f->formatName = name;
|
||||||
|
f->allowedCounts = allowedCounts;
|
||||||
|
f->minDeckSize = minDeck;
|
||||||
|
f->maxDeckSize = maxDeck;
|
||||||
|
f->maxSideboardSize = maxSideboardSize;
|
||||||
|
f->exceptions.append(basicLands);
|
||||||
|
f->exceptions.append(mayContainAnyNumber);
|
||||||
|
defaultFormatRulesNameMap.insert(name.toLower(), f);
|
||||||
|
return f;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------- Standard formats -----------------
|
||||||
|
makeFormat("Standard");
|
||||||
|
makeFormat("Modern");
|
||||||
|
makeFormat("Legacy");
|
||||||
|
makeFormat("Pioneer");
|
||||||
|
makeFormat("Historic");
|
||||||
|
makeFormat("Timeless");
|
||||||
|
makeFormat("Future");
|
||||||
|
makeFormat("OldSchool");
|
||||||
|
makeFormat("Premodern");
|
||||||
|
makeFormat("Pauper");
|
||||||
|
makeFormat("Penny");
|
||||||
|
|
||||||
|
// ----------------- Singleton formats -----------------
|
||||||
|
makeFormat("Commander", 100, 100, 15, kSingletonCounts);
|
||||||
|
makeFormat("Duel", 100, 100, 15, kSingletonCounts);
|
||||||
|
makeFormat("Brawl", 60, 60, 15, kSingletonCounts);
|
||||||
|
makeFormat("StandardBrawl", 60, 60, 15, kSingletonCounts);
|
||||||
|
makeFormat("Oathbreaker", 60, 60, 15, kSingletonCounts);
|
||||||
|
makeFormat("PauperCommander", 100, 100, 15, kSingletonCounts);
|
||||||
|
makeFormat("Predh", 100, 100, 15, kSingletonCounts);
|
||||||
|
|
||||||
|
// ----------------- Restricted formats -----------------
|
||||||
|
makeFormat("Vintage", 60, -1, 15, {{4, "legal"}, {1, "restricted"}, {0, "banned"}});
|
||||||
|
|
||||||
|
return defaultFormatRulesNameMap;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
451
dbconverter/src/mocks.cpp
Normal file
451
dbconverter/src/mocks.cpp
Normal file
@@ -0,0 +1,451 @@
|
|||||||
|
|
||||||
|
#include "mocks.h"
|
||||||
|
|
||||||
|
CardDatabaseSettings::CardDatabaseSettings(const QString &settingPath, QObject *parent)
|
||||||
|
: SettingsManager(settingPath + "cardDatabase.ini", QString(), QString(), parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void CardDatabaseSettings::setSortKey(QString /* shortName */, unsigned int /* sortKey */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void CardDatabaseSettings::setEnabled(QString /* shortName */, bool /* enabled */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void CardDatabaseSettings::setIsKnown(QString /* shortName */, bool /* isknown */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
unsigned int CardDatabaseSettings::getSortKey(QString /* shortName */)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
bool CardDatabaseSettings::isEnabled(QString /* shortName */)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
bool CardDatabaseSettings::isKnown(QString /* shortName */)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
QString SettingsCache::getDataPath()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
QString SettingsCache::getSettingsPath()
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
void SettingsCache::translateLegacySettings()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
QString SettingsCache::getSafeConfigPath(QString /* configEntry */, QString defaultPath) const
|
||||||
|
{
|
||||||
|
return defaultPath;
|
||||||
|
}
|
||||||
|
QString SettingsCache::getSafeConfigFilePath(QString /* configEntry */, QString defaultPath) const
|
||||||
|
{
|
||||||
|
return defaultPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsCache::setUseTearOffMenus(bool /* _useTearOffMenus */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCardViewInitialRowsMax(int /* _cardViewInitialRowsMax */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCardViewExpandedRowsMax(int /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCloseEmptyCardView(const QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setFocusCardViewSearchBar(QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setKnownMissingFeatures(const QString & /* _knownMissingFeatures */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCardInfoViewMode(const int /* _viewMode */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setHighlightWords(const QString & /* _highlightWords */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setMasterVolume(int /* _masterVolume */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setLeftJustified(const QT_STATE_CHANGED_T /* _leftJustified */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCardScaling(const QT_STATE_CHANGED_T /* _scaleCards */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setStackCardOverlapPercent(const int /* _verticalCardOverlapPercent */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setShowMessagePopups(const QT_STATE_CHANGED_T /* _showMessagePopups */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setShowMentionPopups(const QT_STATE_CHANGED_T /* _showMentionPopus */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setRoomHistory(const QT_STATE_CHANGED_T /* _roomHistory */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setLang(const QString & /* _lang */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setShowTipsOnStartup(bool /* _showTipsOnStartup */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSeenTips(const QList<int> & /* _seenTips */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDeckPath(const QString & /* _deckPath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setFiltersPath(const QString & /*_filtersPath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setReplaysPath(const QString & /* _replaysPath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setThemesPath(const QString & /* _themesPath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPicsPath(const QString & /* _picsPath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCardDatabasePath(const QString & /* _cardDatabasePath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCustomCardDatabasePath(const QString & /* _customCardDatabasePath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSpoilerDatabasePath(const QString & /* _spoilerDatabasePath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTokenDatabasePath(const QString & /* _tokenDatabasePath */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setThemeName(const QString & /* _themeName */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setHomeTabBackgroundSource(const QString & /* _backgroundSource */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setHomeTabBackgroundShuffleFrequency(int /* frequency */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabVisualDeckStorageOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabServerOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabAccountOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabDeckStorageOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabReplaysOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabAdminOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabLogOpen(bool /*value*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPicDownload(QT_STATE_CHANGED_T /* _picDownload */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setShowStatusBar(bool /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setNotificationsEnabled(QT_STATE_CHANGED_T /* _notificationsEnabled */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSpectatorNotificationsEnabled(QT_STATE_CHANGED_T /* _spectatorNotificationsEnabled */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setBuddyConnectNotificationsEnabled(QT_STATE_CHANGED_T /* _buddyConnectNotificationsEnabled */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDoubleClickToPlay(QT_STATE_CHANGED_T /* _doubleClickToPlay */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setClickPlaysAllSelected(QT_STATE_CHANGED_T /* _clickPlaysAllSelected */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPlayToStack(QT_STATE_CHANGED_T /* _playToStack */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDoNotDeleteArrowsInSubPhases(QT_STATE_CHANGED_T /* _doNotDeleteArrowsInSubPhases */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setStartingHandSize(int /* _startingHandSize */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setAnnotateTokens(QT_STATE_CHANGED_T /* _annotateTokens */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTabGameSplitterSizes(const QByteArray & /* _tabGameSplitterSizes */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setShowShortcuts(QT_STATE_CHANGED_T /* _showShortcuts */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDisplayCardNames(QT_STATE_CHANGED_T /* _displayCardNames */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setOverrideAllCardArtWithPersonalPreference(QT_STATE_CHANGED_T /* _displayCardNames */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T /* _bumpSetsWithCardsInDeckToTop */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPrintingSelectorSortOrder(int /* _printingSelectorSortOrder */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPrintingSelectorCardSize(int /* _printingSelectorCardSize */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setIncludeRebalancedCards(bool /* _includeRebalancedCards */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T /* _navigationButtonsVisible */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDeckEditorBannerCardComboBoxVisible(
|
||||||
|
QT_STATE_CHANGED_T /* _deckEditorBannerCardComboBoxVisible */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDeckEditorTagsWidgetVisible(QT_STATE_CHANGED_T /* _deckEditorTagsWidgetVisible */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageSortingOrder(int /* _visualDeckStorageSortingOrder */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageShowTagFilter(QT_STATE_CHANGED_T /* _showTags */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageDefaultTagsList(QStringList /* _defaultTagsList */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageSearchFolderNames(QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageShowBannerCardComboBox(QT_STATE_CHANGED_T /* _showBannerCardComboBox */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageShowTagsOnDeckPreviews(QT_STATE_CHANGED_T /* _showTags */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageCardSize(int /* _visualDeckStorageCardSize */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageDrawUnusedColorIdentities(
|
||||||
|
QT_STATE_CHANGED_T /* _visualDeckStorageDrawUnusedColorIdentities */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageUnusedColorIdentitiesOpacity(
|
||||||
|
int /* _visualDeckStorageUnusedColorIdentitiesOpacity */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageTooltipType(int /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStoragePromptForConversion(bool /* _visualDeckStoragePromptForConversion */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageAlwaysConvert(bool /* _visualDeckStorageAlwaysConvert */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageInGame(QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckStorageSelectionAnimation(QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDefaultDeckEditorType(int /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsEnabled(QT_STATE_CHANGED_T /* _enabled */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int /* _amount */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setVisualDeckEditorSampleHandSize(int /* _amount */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setInvertVerticalCoordinate(QT_STATE_CHANGED_T /* _invertVerticalCoordinate */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setMinPlayersForMultiColumnLayout(int /* _minPlayersForMultiColumnLayout */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTapAnimation(QT_STATE_CHANGED_T /* _tapAnimation */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setAutoRotateSidewaysLayoutCards(QT_STATE_CHANGED_T /* _autoRotateSidewaysLayoutCards */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setOpenDeckInNewTab(QT_STATE_CHANGED_T /* _openDeckInNewTab */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setRewindBufferingMs(int /* _rewindBufferingMs */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setChatMention(QT_STATE_CHANGED_T /* _chatMention */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setChatMentionCompleter(const QT_STATE_CHANGED_T /* _enableMentionCompleter */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setChatMentionForeground(QT_STATE_CHANGED_T /* _chatMentionForeground */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setChatHighlightForeground(QT_STATE_CHANGED_T /* _chatHighlightForeground */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setChatMentionColor(const QString & /* _chatMentionColor */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setChatHighlightColor(const QString & /* _chatHighlightColor */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setZoneViewGroupByIndex(int /* _zoneViewGroupByIndex */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setZoneViewSortByIndex(int /* _zoneViewSortByIndex */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setZoneViewPileView(QT_STATE_CHANGED_T /* _zoneViewPileView */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSoundEnabled(QT_STATE_CHANGED_T /* _soundEnabled */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSoundThemeName(const QString & /* _soundThemeName */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setIgnoreUnregisteredUsers(QT_STATE_CHANGED_T /* _ignoreUnregisteredUsers */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setIgnoreUnregisteredUserMessages(QT_STATE_CHANGED_T /* _ignoreUnregisteredUserMessages */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setMainWindowGeometry(const QByteArray & /* _mainWindowGeometry */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setTokenDialogGeometry(const QByteArray & /* _tokenDialogGeometry */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSetsDialogGeometry(const QByteArray & /* _setsDialogGeometry */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setPixmapCacheSize(const int /* _pixmapCacheSize */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setNetworkCacheSizeInMB(const int /* _networkCacheSize */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setNetworkRedirectCacheTtl(const int /* _redirectCacheTtl */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setClientID(const QString & /* _clientID */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setClientVersion(const QString & /* _clientVersion */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
QStringList SettingsCache::getCountries() const
|
||||||
|
{
|
||||||
|
static QStringList countries = QStringList() << "us";
|
||||||
|
return countries;
|
||||||
|
}
|
||||||
|
void SettingsCache::setGameDescription(const QString /* _gameDescription */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setMaxPlayers(const int /* _maxPlayers */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setGameTypes(const QString /* _gameTypes */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setOnlyBuddies(const bool /* _onlyBuddies */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setOnlyRegistered(const bool /* _onlyRegistered */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSpectatorsAllowed(const bool /* _spectatorsAllowed */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSpectatorsNeedPassword(const bool /* _spectatorsNeedPassword */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSpectatorsCanTalk(const bool /* _spectatorsCanTalk */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setSpectatorsCanSeeEverything(const bool /* _spectatorsCanSeeEverything */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCreateGameAsSpectator(const bool /* _createGameAsSpectator */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDefaultStartingLifeTotal(const int /* _startingLifeTotal */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setShareDecklistsOnLoad(const bool /* _shareDecklistsOnLoad */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setRememberGameSettings(const bool /* _rememberGameSettings */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCheckUpdatesOnStartup(QT_STATE_CHANGED_T /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setStartupCardUpdateCheckPromptForUpdate(bool /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setStartupCardUpdateCheckAlwaysUpdate(bool /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setCardUpdateCheckInterval(int /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setLastCardUpdateCheck(QDate /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setNotifyAboutUpdate(QT_STATE_CHANGED_T /* _notifyaboutupdate */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setNotifyAboutNewVersion(QT_STATE_CHANGED_T /* _notifyaboutnewversion */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setDownloadSpoilerStatus(bool /* _spoilerStatus */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setUpdateReleaseChannelIndex(int /* value */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setMaxFontSize(int /* _max */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
void SettingsCache::setRoundCardCorners(bool /* _roundCardCorners */)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CardPictureLoader::clearPixmapCache(CardInfoPtr /* card */)
|
||||||
|
{
|
||||||
|
}
|
||||||
24
dbconverter/src/mocks.h
Normal file
24
dbconverter/src/mocks.h
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Beware of this preprocessor hack used to redefine the settingCache class
|
||||||
|
* instead of including it and all of its dependencies.
|
||||||
|
* Always set header guards of mocked objects before including any headers
|
||||||
|
* with mocked objects.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
#define PICTURELOADER_H
|
||||||
|
|
||||||
|
#include "../../cockatrice/src/client/settings/cache_settings.h"
|
||||||
|
|
||||||
|
#include <libcockatrice/card/database/card_database.h>
|
||||||
|
#include <libcockatrice/utility/macros.h>
|
||||||
|
|
||||||
|
extern SettingsCache *settingsCache;
|
||||||
|
|
||||||
|
class CardPictureLoader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static void clearPixmapCache(CardInfoPtr card);
|
||||||
|
};
|
||||||
@@ -1,16 +1 @@
|
|||||||
@page card_database_schema_and_parsing Card Database Schema and Parsing
|
@page card_database_schema_and_parsing Card Database Schema and Parsing
|
||||||
|
|
||||||
# Card Database Schemas
|
|
||||||
|
|
||||||
Cockatrice uses `XML files` to store information of available cards to be used in the app (`cards.xml`).
|
|
||||||
The token file follows the schema of the card database (`tokens.xml`), too.
|
|
||||||
|
|
||||||
Saved decks (`<deckname>.xml`) use a different schema.
|
|
||||||
|
|
||||||
- [XSD Schema for `Card Databases`](https://github.com/Cockatrice/Cockatrice/blob/master/doc/carddatabase_v4/cards.xsd) <kbd>v4</kbd>
|
|
||||||
- [XSD Schema for `Decks`](https://github.com/Cockatrice/Cockatrice/blob/master/doc/deck.xsd) <kbd>v1</kbd>
|
|
||||||
|
|
||||||
|
|
||||||
# Card Database Parsing
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|||||||
@@ -5,6 +5,4 @@
|
|||||||
This is the **main landing page** of the Cockatrice documentation.
|
This is the **main landing page** of the Cockatrice documentation.
|
||||||
|
|
||||||
- Go to the @subpage user_reference page
|
- Go to the @subpage user_reference page
|
||||||
- Review the @subpage developer_reference
|
- Or check out the @subpage developer_reference
|
||||||
|
|
||||||
Or check out the [Cockatrice Webpage](https://cockatrice.github.io/).
|
|
||||||
@@ -8,8 +8,10 @@ by selecting "Deck Editor" or "Visual Deck Editor" under the "Tabs" application
|
|||||||
|
|
||||||
# Further References
|
# Further References
|
||||||
|
|
||||||
- See @ref editing_decks for information on how to modify the attributes and contents of a deck in the Deck Editor
|
See @ref editing_decks for information on how to modify the attributes and contents of a deck in the Deck Editor
|
||||||
widgets.
|
widgets.
|
||||||
- See @ref exporting_decks for information on how to store and persist your deck either in-client or to external
|
|
||||||
|
See @ref exporting_decks for information on how to store and persist your deck either in-client or to external
|
||||||
services.
|
services.
|
||||||
- See @ref importing_decks for information on how to import existing decks either in-client or from external services
|
|
||||||
|
See @ref importing_decks for information on how to import existing decks either in-client or from external services
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
@page editing_decks Editing Decks
|
@page editing_decks Editing Decks
|
||||||
|
|
||||||
- @subpage editing_decks_classic
|
@subpage editing_decks_classic
|
||||||
- @subpage editing_decks_visual
|
|
||||||
|
|
||||||
- @subpage editing_decks_printings
|
@subpage editing_decks_visual
|
||||||
|
|
||||||
|
@subpage editing_decks_printings
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
@page user_reference User Reference
|
@page user_reference User Reference
|
||||||
|
|
||||||
- @subpage search_syntax_help
|
@subpage search_syntax_help
|
||||||
- @subpage deck_search_syntax_help
|
|
||||||
|
|
||||||
- @subpage creating_decks
|
@subpage deck_search_syntax_help
|
||||||
- @subpage importing_decks
|
|
||||||
- @subpage editing_decks
|
@subpage creating_decks
|
||||||
- @subpage exporting_decks
|
|
||||||
|
@subpage importing_decks
|
||||||
|
|
||||||
|
@subpage editing_decks
|
||||||
|
|
||||||
|
@subpage exporting_decks
|
||||||
1
doc/doxygen/theme
Submodule
1
doc/doxygen/theme
Submodule
Submodule doc/doxygen/theme added at 1f3620084f
@@ -14,6 +14,7 @@ cd "${BASH_SOURCE%/*}/" || exit 2 # could not find path, this could happen with
|
|||||||
|
|
||||||
# defaults
|
# defaults
|
||||||
include=("cockatrice/src" \
|
include=("cockatrice/src" \
|
||||||
|
"dbconverter/src" \
|
||||||
"libcockatrice_card" \
|
"libcockatrice_card" \
|
||||||
"libcockatrice_deck_list" \
|
"libcockatrice_deck_list" \
|
||||||
"libcockatrice_network" \
|
"libcockatrice_network" \
|
||||||
|
|||||||
Reference in New Issue
Block a user