Split filters into libraries where applicable. (#6293)

* Split filters into libraries where applicable.

Took 23 minutes

Took 2 minutes

* Include filter string.

Took 5 minutes

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL
2025-11-09 12:19:27 +01:00
committed by GitHub
parent 484e8e64a6
commit 9f2ac78609
28 changed files with 109 additions and 68 deletions

View File

@@ -337,6 +337,7 @@ add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_settings ${CMAKE_BINARY_DIR}/
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_card ${CMAKE_BINARY_DIR}/libcockatrice_card)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_utility ${CMAKE_BINARY_DIR}/libcockatrice_utility)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_models ${CMAKE_BINARY_DIR}/libcockatrice_models)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_filters ${CMAKE_BINARY_DIR}/libcockatrice_filters)
if(WITH_SERVER)
add_subdirectory(servatrice)
set(CPACK_INSTALL_CMAKE_PROJECTS "Servatrice;Servatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})

View File

@@ -46,9 +46,6 @@ set(cockatrice_SOURCES
src/interface/widgets/dialogs/tip_of_the_day.cpp
src/filters/deck_filter_string.cpp
src/filters/filter_builder.cpp
src/filters/filter_card.cpp
src/filters/filter_string.cpp
src/filters/filter_tree.cpp
src/filters/filter_tree_model.cpp
src/filters/syntax_help.cpp
src/game/abstract_game.cpp
@@ -364,6 +361,7 @@ if(Qt5_FOUND)
cockatrice
libcockatrice_card
libcockatrice_deck_list
libcockatrice_filters
libcockatrice_utility
libcockatrice_network
libcockatrice_models
@@ -376,6 +374,7 @@ else()
cockatrice
PUBLIC libcockatrice_card
libcockatrice_deck_list
libcockatrice_filters
libcockatrice_utility
libcockatrice_network
libcockatrice_models

View File

@@ -1,8 +1,7 @@
#include "deck_filter_string.h"
#include "filter_string.h"
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/filters/filter_string.h>
#include <libcockatrice/utility/peglib.h>
static peg::parser search(R"(

View File

@@ -1,11 +1,11 @@
#include "filter_builder.h"
#include "../interface/widgets/utility/custom_line_edit.h"
#include "filter_card.h"
#include <QComboBox>
#include <QGridLayout>
#include <QPushButton>
#include <libcockatrice/filters/filter_card.h>
FilterBuilder::FilterBuilder(QWidget *parent) : QWidget(parent)
{

View File

@@ -1,9 +1,8 @@
#include "filter_tree_model.h"
#include "filter_card.h"
#include "filter_tree.h"
#include <QFont>
#include <libcockatrice/filters/filter_card.h>
#include <libcockatrice/filters/filter_tree.h>
FilterTreeModel::FilterTreeModel(QObject *parent) : QAbstractItemModel(parent)
{

View File

@@ -7,9 +7,8 @@
#ifndef FILTERTREEMODEL_H
#define FILTERTREEMODEL_H
#include "filter_card.h"
#include <QAbstractItemModel>
#include <libcockatrice/filters/filter_card.h>
class FilterTree;
class CardFilter;

View File

@@ -1,7 +1,5 @@
#include "dlg_move_top_cards_until.h"
#include "../../filters/filter_string.h"
#include <QDialogButtonBox>
#include <QLabel>
#include <QLineEdit>
@@ -12,6 +10,7 @@
#include <QWidget>
#include <libcockatrice/card/database/card_database.h>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/filters/filter_string.h>
DlgMoveTopCardsUntil::DlgMoveTopCardsUntil(QWidget *parent, QStringList exprs, uint _numberOfHits, bool autoPlay)
: QDialog(parent)

View File

@@ -7,7 +7,6 @@
#ifndef PLAYER_H
#define PLAYER_H
#include "../../filters/filter_string.h"
#include "../../interface/widgets/menus/tearoff_menu.h"
#include "../board/abstract_graphics_item.h"
#include "../dialogs/dlg_create_token.h"
@@ -24,6 +23,7 @@
#include <QPoint>
#include <QTimer>
#include <libcockatrice/card/card_info.h>
#include <libcockatrice/filters/filter_string.h>
#include <libcockatrice/protocol/pb/card_attributes.pb.h>
#include <libcockatrice/protocol/pb/game_event.pb.h>

View File

@@ -13,6 +13,7 @@
#include <QMenu>
#include <QObject>
#include <libcockatrice/card/relation/card_relation_type.h>
#include <libcockatrice/filters/filter_string.h>
#include <libcockatrice/protocol/pb/card_attributes.pb.h>
namespace google

View File

@@ -7,12 +7,12 @@
#ifndef ZONEVIEWERZONE_H
#define ZONEVIEWERZONE_H
#include "../../filters/filter_string.h"
#include "logic/view_zone_logic.h"
#include "select_zone.h"
#include <QGraphicsLayoutItem>
#include <QLoggingCategory>
#include <libcockatrice/filters/filter_string.h>
#include <libcockatrice/protocol/pb/commands.pb.h>
inline Q_LOGGING_CATEGORY(ViewZoneLog, "view_zone");

View File

@@ -1,10 +1,10 @@
#include "visual_database_display_color_filter_widget.h"
#include "../../../filters/filter_tree.h"
#include "../cards/additional_info/mana_symbol_widget.h"
#include <QSet>
#include <QTimer>
#include <libcockatrice/filters/filter_tree.h>
/**
* This widget provides a graphical control element for the CardFilter::Attr::AttrColor filters applied to the filter

View File

@@ -1,13 +1,13 @@
#include "visual_database_display_filter_save_load_widget.h"
#include "../../../client/settings/cache_settings.h"
#include "../../../filters/filter_tree.h"
#include "visual_database_filter_display_widget.h"
#include <QHBoxLayout>
#include <QJsonArray>
#include <QJsonObject>
#include <QMessageBox>
#include <libcockatrice/filters/filter_tree.h>
VisualDatabaseDisplayFilterSaveLoadWidget::VisualDatabaseDisplayFilterSaveLoadWidget(QWidget *parent,
FilterTreeModel *_filterModel)

View File

@@ -1,12 +1,12 @@
#include "visual_database_display_main_type_filter_widget.h"
#include "../../../filters/filter_tree.h"
#include "../../../filters/filter_tree_model.h"
#include <QPushButton>
#include <QSpinBox>
#include <QTimer>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/filters/filter_tree.h>
VisualDatabaseDisplayMainTypeFilterWidget::VisualDatabaseDisplayMainTypeFilterWidget(QWidget *parent,
FilterTreeModel *_filterModel)

View File

@@ -1,7 +1,6 @@
#include "visual_database_display_set_filter_widget.h"
#include "../../../client/settings/cache_settings.h"
#include "../../../filters/filter_tree.h"
#include "../../../filters/filter_tree_model.h"
#include <QLineEdit>
@@ -9,6 +8,7 @@
#include <QTimer>
#include <algorithm>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/filters/filter_tree.h>
VisualDatabaseDisplayRecentSetFilterSettingsWidget::VisualDatabaseDisplayRecentSetFilterSettingsWidget(QWidget *parent)
: QWidget(parent)

View File

@@ -1,6 +1,5 @@
#include "visual_database_display_sub_type_filter_widget.h"
#include "../../../filters/filter_tree.h"
#include "../../../filters/filter_tree_model.h"
#include <QLineEdit>
@@ -8,6 +7,7 @@
#include <QSpinBox>
#include <QTimer>
#include <libcockatrice/card/database/card_database_manager.h>
#include <libcockatrice/filters/filter_tree.h>
VisualDatabaseDisplaySubTypeFilterWidget::VisualDatabaseDisplaySubTypeFilterWidget(QWidget *parent,
FilterTreeModel *_filterModel)

View File

@@ -0,0 +1,24 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(HEADERS libcockatrice/filters/filter_card.h libcockatrice/filters/filter_string.h
libcockatrice/filters/filter_tree.h
)
if(Qt6_FOUND)
qt6_wrap_cpp(MOC_SOURCES ${HEADERS})
elseif(Qt5_FOUND)
qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
endif()
add_library(
libcockatrice_filters STATIC ${MOC_SOURCES} libcockatrice/filters/filter_card.cpp
libcockatrice/filters/filter_string.cpp libcockatrice/filters/filter_tree.cpp
)
add_dependencies(libcockatrice_filters libcockatrice_card)
target_include_directories(libcockatrice_filters PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(libcockatrice_filters PUBLIC libcockatrice_card ${QT_CORE_MODULE})

View File

@@ -2,40 +2,11 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(HEADERS
libcockatrice/models/database/card_database_model.h
libcockatrice/models/database/card_database_display_model.h
libcockatrice/models/database/card/card_completer_proxy_model.h
libcockatrice/models/database/card/card_search_model.h
libcockatrice/models/database/card_set/card_sets_model.h
libcockatrice/models/database/token/token_display_model.h
libcockatrice/models/database/token/token_edit_model.h
libcockatrice/models/deck_list/deck_list_model.h
libcockatrice/models/deck_list/deck_list_sort_filter_proxy_model.h
libcockatrice/models/deck_list/deck_loader.h
)
add_subdirectory(libcockatrice/models/database)
add_subdirectory(libcockatrice/models/deck_list)
if(Qt6_FOUND)
qt6_wrap_cpp(MOC_SOURCES ${HEADERS})
elseif(Qt5_FOUND)
qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
endif()
add_library(libcockatrice_models INTERFACE)
add_library(
libcockatrice_models STATIC
${MOC_SOURCES}
libcockatrice/models/database/card_database_model.cpp
libcockatrice/models/database/card_database_display_model.cpp
libcockatrice/models/database/card/card_completer_proxy_model.cpp
libcockatrice/models/database/card/card_search_model.cpp
libcockatrice/models/database/card_set/card_sets_model.cpp
libcockatrice/models/database/token/token_display_model.cpp
libcockatrice/models/database/token/token_edit_model.cpp
libcockatrice/models/deck_list/deck_list_model.cpp
libcockatrice/models/deck_list/deck_list_sort_filter_proxy_model.cpp
libcockatrice/models/deck_list/deck_loader.cpp
)
target_include_directories(libcockatrice_models INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(libcockatrice_models PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(libcockatrice_models PUBLIC libcockatrice_card libcockatrice_deck_list ${COCKATRICE_QT_MODULES})
target_link_libraries(libcockatrice_models INTERFACE libcockatrice_models_database libcockatrice_models_deck_list)

View File

@@ -0,0 +1,37 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(HEADERS
card_database_model.h
card_database_display_model.h
card/card_completer_proxy_model.h
card/card_search_model.h
card_set/card_sets_model.h
token/token_display_model.h
token/token_edit_model.h
)
if(Qt6_FOUND)
qt6_wrap_cpp(MOC_SOURCES ${HEADERS})
elseif(Qt5_FOUND)
qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
endif()
add_library(
libcockatrice_models_database STATIC
${MOC_SOURCES}
card_database_model.cpp
card_database_display_model.cpp
card/card_completer_proxy_model.cpp
card/card_search_model.cpp
card_set/card_sets_model.cpp
token/token_display_model.cpp
token/token_edit_model.cpp
)
target_include_directories(libcockatrice_models_database PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(
libcockatrice_models_database PUBLIC libcockatrice_card libcockatrice_filters ${COCKATRICE_QT_MODULES}
)

View File

@@ -8,12 +8,11 @@
#ifndef COCKATRICE_CARD_DATABASE_DISPLAY_MODEL_H
#define COCKATRICE_CARD_DATABASE_DISPLAY_MODEL_H
#include "filter_string.h"
#include <QList>
#include <QSet>
#include <QSortFilterProxyModel>
#include <QTimer>
#include <libcockatrice/filters/filter_string.h>
class FilterTree;
class CardDatabaseDisplayModel : public QSortFilterProxyModel

View File

@@ -0,0 +1,22 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(HEADERS deck_list_model.h deck_list_sort_filter_proxy_model.h deck_loader.h)
if(Qt6_FOUND)
qt6_wrap_cpp(MOC_SOURCES ${HEADERS})
elseif(Qt5_FOUND)
qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
endif()
add_library(
libcockatrice_models_deck_list STATIC ${MOC_SOURCES} deck_list_model.cpp deck_list_sort_filter_proxy_model.cpp
deck_loader.cpp
)
target_include_directories(libcockatrice_models_deck_list PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(
libcockatrice_models_deck_list PUBLIC libcockatrice_card libcockatrice_deck_list ${COCKATRICE_QT_MODULES}
)

View File

@@ -31,20 +31,11 @@ add_test(NAME carddatabase_test COMMAND carddatabase_test)
# ------------------------
# Filter String Test
# ------------------------
add_executable(
filter_string_test
${MOCKS_SOURCES}
${VERSION_STRING_CPP}
../../cockatrice/src/filters/filter_card.cpp
../../cockatrice/src/filters/filter_string.cpp
../../cockatrice/src/filters/filter_tree.cpp
filter_string_test.cpp
mocks.cpp
)
add_executable(filter_string_test ${MOCKS_SOURCES} ${VERSION_STRING_CPP} filter_string_test.cpp mocks.cpp)
target_link_libraries(
filter_string_test
PRIVATE libcockatrice_card
PRIVATE libcockatrice_filters
PRIVATE Threads::Threads
PRIVATE ${GTEST_BOTH_LIBRARIES}
PRIVATE ${TEST_QT_MODULES}

View File

@@ -1,8 +1,8 @@
#include "../../cockatrice/src/filters/filter_string.h"
#include "mocks.h"
#include "test_card_database_path_provider.h"
#include "gtest/gtest.h"
#include <libcockatrice/filters/filter_string.h>
#include <libcockatrice/interfaces/noop_card_preference_provider.h>
#include <libcockatrice/interfaces/noop_card_set_priority_controller.h>