diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ec6928..768ea1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,4 +19,4 @@ endif () add_subdirectory(renderer-api) add_subdirectory(utilities) add_subdirectory(qt-utilities) -add_subdirectory(programs/labs1_5) \ No newline at end of file +add_subdirectory(programs/labs1_2) diff --git a/programs/labs1_5/CMakeLists.txt b/programs/labs1_2/CMakeLists.txt similarity index 75% rename from programs/labs1_5/CMakeLists.txt rename to programs/labs1_2/CMakeLists.txt index b3af060..e8a97db 100644 --- a/programs/labs1_5/CMakeLists.txt +++ b/programs/labs1_2/CMakeLists.txt @@ -1,9 +1,8 @@ add_executable( - labs + labs1_2 src/main.cpp src/variants/sprite_data.hpp - src/keyboard_catcher_widget.hpp src/variants/variants.hpp src/variants/lab1/variant1.cpp @@ -16,4 +15,4 @@ add_executable( src/variants/lab1/variant9.cpp src/variants/lab2/variant3.cpp ) -target_link_libraries(labs PRIVATE Qt5::Core Qt5::Widgets renderer_api utilities qt_utilities) +target_link_libraries(labs1_2 PRIVATE Qt5::Core Qt5::Widgets renderer_api utilities qt_utilities) \ No newline at end of file diff --git a/programs/labs1_5/src/main.cpp b/programs/labs1_2/src/main.cpp similarity index 57% rename from programs/labs1_5/src/main.cpp rename to programs/labs1_2/src/main.cpp index 7286879..f63aa9e 100644 --- a/programs/labs1_5/src/main.cpp +++ b/programs/labs1_2/src/main.cpp @@ -9,10 +9,8 @@ #include #include #include -#include -#include +#include #include "variants/sprite_data.hpp" -#include "keyboard_catcher_widget.hpp" #include "pixel_grid_sprite.hpp" #include "variants/variants.hpp" #include "zoomed_scene_sprite.hpp" @@ -45,24 +43,24 @@ namespace BGTU::ComputerGraphicsLabWork::Impl { QMainWindow w{}; - KeyboardCatcherWidget kbd{&w}; - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_PageDown, &sprites_data, &SpriteData::Provider::decrease_pixel_size); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_PageUp, &sprites_data, &SpriteData::Provider::increase_pixel_size); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_G, &sprites_data, &SpriteData::Provider::invert_show_grid); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_1, &vmngr, &Variants::VariantsManager::set_variant_1); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_2, &vmngr, &Variants::VariantsManager::set_variant_2); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_3, &vmngr, &Variants::VariantsManager::set_variant_3); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_4, &vmngr, &Variants::VariantsManager::set_variant_4); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_5, &vmngr, &Variants::VariantsManager::set_variant_5); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_6, &vmngr, &Variants::VariantsManager::set_variant_6); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_7, &vmngr, &Variants::VariantsManager::set_variant_7); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_8, &vmngr, &Variants::VariantsManager::set_variant_8); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_9, &vmngr, &Variants::VariantsManager::set_variant_9); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_F1, &vmngr, &Variants::VariantsManager::set_lab_1); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_F2, &vmngr, &Variants::VariantsManager::set_lab_2); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_F3, &vmngr, &Variants::VariantsManager::set_lab_3); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_F4, &vmngr, &Variants::VariantsManager::set_lab_4); - QObject::connect(&kbd, &KeyboardCatcherWidget::key_pressed_F5, &vmngr, &Variants::VariantsManager::set_lab_5); + QtUtilities::KeyboardCatcherWidget kbd{&w}; + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_PageDown, &sprites_data, &SpriteData::Provider::decrease_pixel_size); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_PageUp, &sprites_data, &SpriteData::Provider::increase_pixel_size); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_G, &sprites_data, &SpriteData::Provider::invert_show_grid); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_1, &vmngr, &Variants::VariantsManager::set_variant_1); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_2, &vmngr, &Variants::VariantsManager::set_variant_2); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_3, &vmngr, &Variants::VariantsManager::set_variant_3); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_4, &vmngr, &Variants::VariantsManager::set_variant_4); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_5, &vmngr, &Variants::VariantsManager::set_variant_5); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_6, &vmngr, &Variants::VariantsManager::set_variant_6); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_7, &vmngr, &Variants::VariantsManager::set_variant_7); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_8, &vmngr, &Variants::VariantsManager::set_variant_8); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_9, &vmngr, &Variants::VariantsManager::set_variant_9); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_F1, &vmngr, &Variants::VariantsManager::set_lab_1); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_F2, &vmngr, &Variants::VariantsManager::set_lab_2); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_F3, &vmngr, &Variants::VariantsManager::set_lab_3); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_F4, &vmngr, &Variants::VariantsManager::set_lab_4); + QObject::connect(&kbd, &QtUtilities::KeyboardCatcherWidget::key_pressed_F5, &vmngr, &Variants::VariantsManager::set_lab_5); QtUtilities::SeparateThreadedDefaultRendererLinear renderer{}; renderer.set_sprite_data_provider(&sprites_data); diff --git a/programs/labs1_5/src/pixel_grid_sprite.hpp b/programs/labs1_2/src/pixel_grid_sprite.hpp similarity index 100% rename from programs/labs1_5/src/pixel_grid_sprite.hpp rename to programs/labs1_2/src/pixel_grid_sprite.hpp diff --git a/programs/labs1_5/src/variants/lab1/common_sprites.hpp b/programs/labs1_2/src/variants/lab1/common_sprites.hpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/common_sprites.hpp rename to programs/labs1_2/src/variants/lab1/common_sprites.hpp diff --git a/programs/labs1_5/src/variants/lab1/variant1.cpp b/programs/labs1_2/src/variants/lab1/variant1.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant1.cpp rename to programs/labs1_2/src/variants/lab1/variant1.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant2.cpp b/programs/labs1_2/src/variants/lab1/variant2.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant2.cpp rename to programs/labs1_2/src/variants/lab1/variant2.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant3.cpp b/programs/labs1_2/src/variants/lab1/variant3.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant3.cpp rename to programs/labs1_2/src/variants/lab1/variant3.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant4.cpp b/programs/labs1_2/src/variants/lab1/variant4.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant4.cpp rename to programs/labs1_2/src/variants/lab1/variant4.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant5.cpp b/programs/labs1_2/src/variants/lab1/variant5.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant5.cpp rename to programs/labs1_2/src/variants/lab1/variant5.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant6.cpp b/programs/labs1_2/src/variants/lab1/variant6.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant6.cpp rename to programs/labs1_2/src/variants/lab1/variant6.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant8.cpp b/programs/labs1_2/src/variants/lab1/variant8.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant8.cpp rename to programs/labs1_2/src/variants/lab1/variant8.cpp diff --git a/programs/labs1_5/src/variants/lab1/variant9.cpp b/programs/labs1_2/src/variants/lab1/variant9.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab1/variant9.cpp rename to programs/labs1_2/src/variants/lab1/variant9.cpp diff --git a/programs/labs1_5/src/variants/lab2/variant3.cpp b/programs/labs1_2/src/variants/lab2/variant3.cpp similarity index 100% rename from programs/labs1_5/src/variants/lab2/variant3.cpp rename to programs/labs1_2/src/variants/lab2/variant3.cpp diff --git a/programs/labs1_5/src/variants/sprite_data.hpp b/programs/labs1_2/src/variants/sprite_data.hpp similarity index 100% rename from programs/labs1_5/src/variants/sprite_data.hpp rename to programs/labs1_2/src/variants/sprite_data.hpp diff --git a/programs/labs1_5/src/variants/variants.hpp b/programs/labs1_2/src/variants/variants.hpp similarity index 100% rename from programs/labs1_5/src/variants/variants.hpp rename to programs/labs1_2/src/variants/variants.hpp diff --git a/programs/labs1_5/src/zoomed_scene_sprite.hpp b/programs/labs1_2/src/zoomed_scene_sprite.hpp similarity index 100% rename from programs/labs1_5/src/zoomed_scene_sprite.hpp rename to programs/labs1_2/src/zoomed_scene_sprite.hpp diff --git a/qt-utilities/CMakeLists.txt b/qt-utilities/CMakeLists.txt index b1a6a34..3be93e8 100644 --- a/qt-utilities/CMakeLists.txt +++ b/qt-utilities/CMakeLists.txt @@ -4,6 +4,7 @@ add_library( include/bgtu/computer_graphics_lab_work/qt_utilities/_separate_threaded_renderer.hpp include/bgtu/computer_graphics_lab_work/qt_utilities/_renderer_widget.hpp include/bgtu/computer_graphics_lab_work/qt_utilities/owned_qimage.hpp + include/bgtu/computer_graphics_lab_work/qt_utilities/keyboard_catcher_widget.hpp ) target_include_directories(qt_utilities PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_link_libraries(qt_utilities PUBLIC Qt5::Core Qt5::Widgets Qt5::Gui renderer_api utilities) \ No newline at end of file diff --git a/programs/labs1_5/src/keyboard_catcher_widget.hpp b/qt-utilities/include/bgtu/computer_graphics_lab_work/qt_utilities/keyboard_catcher_widget.hpp similarity index 95% rename from programs/labs1_5/src/keyboard_catcher_widget.hpp rename to qt-utilities/include/bgtu/computer_graphics_lab_work/qt_utilities/keyboard_catcher_widget.hpp index d0cb3ce..b9330cc 100644 --- a/programs/labs1_5/src/keyboard_catcher_widget.hpp +++ b/qt-utilities/include/bgtu/computer_graphics_lab_work/qt_utilities/keyboard_catcher_widget.hpp @@ -4,7 +4,7 @@ #include #include -namespace BGTU::ComputerGraphicsLabWork::Impl { +namespace BGTU::ComputerGraphicsLabWork::QtUtilities { class KeyboardCatcherWidget : public QWidget { Q_OBJECT public: @@ -12,6 +12,10 @@ namespace BGTU::ComputerGraphicsLabWork::Impl { this->grabKeyboard(); } + ~KeyboardCatcherWidget() { + this->releaseKeyboard(); + } + signals: void key_pressed_PageUp();