Compare commits

...

1040 Commits

Author SHA1 Message Date
7f56a77e7d [nostalgia/studio] Add version to Nostalgia Studio
All checks were successful
Build / build (push) Successful in 2m17s
2023-12-31 23:20:40 -06:00
055d64b125 [olympic] Add support for an AppLib app specific version
All checks were successful
Build / build (push) Successful in 2m20s
2023-12-31 23:18:17 -06:00
de9f842640 [ox/std] Add error.hpp include to memory.hpp
All checks were successful
Build / build (push) Successful in 2m15s
2023-12-31 22:52:10 -06:00
200e586768 Add .idea to .gitignore 2023-12-31 22:52:10 -06:00
f1609519a7 [olympic] Cleanup 2023-12-31 22:52:10 -06:00
e452d9db4f [nostalgia] Add python3-mypy to Debian deps 2023-12-31 22:52:10 -06:00
43a87b606e [nostalgia] Ensure pkg-gba reads .current_build without a new line
All checks were successful
Build / build (push) Successful in 2m20s
2023-12-30 13:59:10 -06:00
8acc6244d5 [olympic/keel] Improve error clarity on pack some common failures 2023-12-30 13:58:42 -06:00
bd2aeee276 [ox/claw] Improve error clarity when loading ModelObjects 2023-12-30 13:57:51 -06:00
89fab5cc20 [ox/fs] Remove stdc++fs from library list on Linux
All checks were successful
Build / build (push) Successful in 2m10s
2023-12-30 01:05:46 -06:00
1c06ea677f [nostalgia] Add links to Tonc and GBATEK to developer-handbook
All checks were successful
Build / build (push) Successful in 2m7s
2023-12-29 19:05:10 -06:00
6b948ee069 Merge commit '932c3e57e93d63dc98c454015afea941416ff423'
All checks were successful
Build / build (push) Successful in 2m8s
2023-12-29 18:44:06 -06:00
72dddcaee5 [ox] Fix TypeDescWriter segfault 2023-12-29 18:42:59 -06:00
7c824e910c [nostalgia] Remove Jenkinsfiles
All checks were successful
Build / build (push) Successful in 2m5s
2023-12-29 02:28:53 -06:00
a0c8146396 [nostalgia/core/studio] East const some function args
All checks were successful
Build / build (push) Successful in 2m5s
2023-12-29 00:06:18 -06:00
d5b232f5d5 [olympic/studio] Fix array bounds issue
All checks were successful
Build / build (push) Successful in 2m5s
2023-12-28 23:52:31 -06:00
c79fe3be43 [buildcore] Make CMake configure failure trigger failed return code
Some checks failed
Build / build (push) Has been cancelled
2023-12-28 23:50:30 -06:00
1df4e78084 [olympic/studio] Add new project menu, make file creation open file
Some checks failed
Build / build (push) Failing after 2m7s
2023-12-28 23:45:38 -06:00
ffbdb09c31 [olympic/turbine/glfw] Add shift key support 2023-12-28 23:41:33 -06:00
b35a956e4f [olympic/studio] Cleanup unused expression
All checks were successful
Build / build (push) Successful in 2m10s
2023-12-28 01:08:35 -06:00
d3847caab4 [olympic/studio] Make Project::writeObj only write descriptor if it does not already exist or if debug build
All checks were successful
Build / build (push) Successful in 2m9s
2023-12-28 00:24:18 -06:00
ae066a914c [olympic/studio] Fix Project::writeObj to ensure parent directory of file exists
All checks were successful
Build / build (push) Successful in 2m7s
2023-12-28 00:06:15 -06:00
67543af806 [ox/oc] Remove some unnecessary code
All checks were successful
Build / build (push) Successful in 2m3s
2023-12-27 23:50:02 -06:00
6b774ec285 [ox/oc] Fix array writing to write all values
All checks were successful
Build / build (push) Successful in 2m6s
This is necessary because OC array sizes are determined through the presence of the data.
2023-12-27 23:47:52 -06:00
4b9758f478 [nostalgia/core] Move most TileSheet member functions out of class
All checks were successful
Build / build (push) Successful in 2m4s
2023-12-27 23:10:38 -06:00
bf12b15fe6 [nostalgia/sample_project] Update some tilesheets to version 4 format 2023-12-26 20:28:55 -06:00
a7328eb5ef [nostalgia/core/studio] Reduce indent for Subsheet editor 2023-12-26 20:18:07 -06:00
b52124a0c5 [nostalgia/core/studio] Revert new subsheet index increment to happen after index assignment 2023-12-26 20:14:30 -06:00
eae9972f85 [nostalgia/sample_project] Add missing type descriptors 2023-12-26 18:55:35 -06:00
d83e392964 [nostalgia/core] Cleanup, revert CompactTileSheet version to 1
All checks were successful
Build / build (push) Successful in 2m2s
2023-12-26 18:50:33 -06:00
e2d0a784f1 [olympic/keel] Cleanup 2023-12-26 18:37:02 -06:00
f08821422a [nostalgia/core/studio] Change TileSheets to back to MC
All checks were successful
Build / build (push) Successful in 2m4s
2023-12-26 17:56:03 -06:00
6a2954f82b [nostalgia/core] Remove id from TileSheetV3::Subsheet, add TileSheetV4
Some checks failed
Build / build (push) Has been cancelled
2023-12-26 17:28:41 -06:00
9c19655ce2 [nostalgia/core] Fix build, add SubSheet ID to SubSheet Editor view
All checks were successful
Build / build (push) Successful in 2m5s
2023-12-26 16:37:09 -06:00
087c834b25 [nostalgia/core/studio] Fix Add SubSheet to increment idIt before using it
Some checks failed
Build / build (push) Failing after 23s
2023-12-26 16:34:40 -06:00
79bdbf2eaa [nostalgia/core] Add id to TileSheetV3::SubSheet model 2023-12-26 16:31:54 -06:00
2bdc3def74 [nostalgia/core/opengl] Implement flip X and flip Y for BG tiles
All checks were successful
Build / build (push) Successful in 2m4s
2023-12-26 12:34:35 -06:00
e7a663901a [nostalgia/core/opengl] Fix duplicate and missing symbol
All checks were successful
Build / build (push) Successful in 2m6s
2023-12-26 11:59:14 -06:00
ffdc0ddb97 [nostalgia/core] Add support for specifying palette banks
Some checks failed
Build / build (push) Failing after 40s
2023-12-26 11:54:31 -06:00
e941781f21 [ox/std] Cleanup Result::copyTo variants
All checks were successful
Build / build (push) Successful in 2m4s
2023-12-25 00:54:59 -06:00
b869f490c3 [ox/std] Add or_value to Optional, Result
All checks were successful
Build / build (push) Successful in 2m4s
2023-12-25 00:51:17 -06:00
caf8d93c21 [nostalgia] Delete .gitlab-ci.yml
All checks were successful
Build / build (push) Successful in 2m6s
2023-12-25 00:42:36 -06:00
afbf2caf97 [nostalgia] Remove conan from devenv
All checks were successful
Build / build (push) Successful in 2m5s
2023-12-24 06:41:18 -06:00
20914eaade [nostalgia] Add Gitea action file 2023-12-24 06:38:28 -06:00
c5f76ff558 [nostalgia/core] Add setBgBpp function 2023-12-23 21:33:52 -06:00
050339ba09 [nostalgia] Update developer-handbook 2023-12-23 19:08:18 -06:00
45ec39f77b [ox/std] Add Result::orVal 2023-12-23 17:52:20 -06:00
319fbb2600 [nostalgia] Add .lldbinit 2023-12-23 17:41:18 -06:00
f43d97a17e [nostalgia] Add missing type descriptors 2023-12-23 17:40:17 -06:00
a0974637a3 [nostalgia] Add missing test tilesheets 2023-12-23 17:39:43 -06:00
c90a8449be [olympic/turbine] Fix some broken CMake vars 2023-12-23 15:30:54 -06:00
95dcd6bee7 [teagba] Fix not to rely on TURBINE_BUILD_TYPE 2023-12-23 15:30:22 -06:00
5b167fd53b [nfde] Bump minimum CMake for NFDE to silence CMake warning 2023-12-23 15:01:21 -06:00
a701a241eb [imgui] Add target_include_directories for ImGui 2023-12-23 14:35:12 -06:00
9907bb8f1d [nostalgia] Allow building Studio mods without Studio app 2023-12-23 14:34:32 -06:00
9cb6bd4a32 [teagba] Cleanup CMake 2023-12-23 12:25:12 -06:00
2dba592a42 [nostalgia,olympic] Cleanup CMake 2023-12-23 12:23:47 -06:00
978f2f9c4f [nostalgia/core/gba] Cleanup 2023-12-23 01:50:26 -06:00
2bad4ee416 Add OLYMPIC_BUILD_STUDIO CMake var 2023-12-23 01:25:51 -06:00
46d1313797 [nostalgia/core] Get TileSheetSet working with 8bpp setting 2023-12-23 01:24:56 -06:00
fcf6f00797 [nostalgia/core] Get TileSheetSet working 2023-12-22 22:38:46 -06:00
ef6e3af735 [ox/model] Fix infinite recursion caused by have a vector of the same type in ModelValue 2023-12-22 19:44:04 -06:00
80d0df2f46 [ox/fs] Cleanup FileAddress model 2023-12-22 19:40:30 -06:00
9db10ec4a1 [ox/mc] Fix serialization of negative numbers in non-64 bit values 2023-12-22 19:36:42 -06:00
c460e0f9e0 [olympic/studio] Fix NewMenu to clear item name on reopen 2023-12-22 04:49:13 -06:00
3fa9d132ae [ox/mc] Fix issue with -1 union index 2023-12-22 04:42:13 -06:00
907ead2948 [ox/std] Fix Optional deref operator, in_place constructor 2023-12-22 04:41:39 -06:00
8526b3fa51 [nostalgia/core] Add loading multiple tile sheets 2023-12-22 01:03:41 -06:00
6de0e882e9 [teagba] Change sprite buffer to fully update on every VSync 2023-12-22 01:02:24 -06:00
d29118d783 [nostalgia/core] Cleanup graphics API 2023-12-21 21:18:31 -06:00
8395128efa [teagba] Update to newer conventions 2023-12-21 21:18:01 -06:00
77c86b9516 [ox/preloader] Add missing typenames 2023-12-20 23:04:34 -06:00
6d2a20e8bd [nostalgia/core/opengl] Allow GL implementation to customize sprite count and size 2023-12-20 23:01:56 -06:00
056284c857 [sample_project] Add ~ and | to charset 2023-12-20 22:08:26 -06:00
3787f6adb2 Make gitignore ignore all .gba and .sav files 2023-12-20 22:06:49 -06:00
ce34d450b9 [nostalgia/player] Turn player back into test sandbox 2023-12-20 20:13:54 -06:00
8fa47e961d [nostalgia/core/opengl] Disable depth testing once core scene is drawn 2023-12-20 19:22:47 -06:00
4e4cec1b64 [teagba] Change a reinterpret_cast to bit_cast 2023-12-20 19:01:31 -06:00
9840b6fdee [nostalgia/core] Add a background priority option 2023-12-20 19:00:23 -06:00
d0c90c39e0 [nostalgia/core/opengl] Cleanup priority, ensure sprites draw over BGs by default 2023-12-20 18:59:41 -06:00
7ba6fb3ac5 [ox/fs] Fix log message 2023-12-19 23:38:29 -06:00
8dd6adc554 [nostalgia/core] Specify a maximum for priority level 2023-12-19 23:06:14 -06:00
0093778f64 [nostalgia/core/opengl] Cleanup sprite enable/disable code 2023-12-19 22:55:41 -06:00
59016ee894 [nostalgia/core] Fix OpenGL sprites, add priority 2023-12-19 22:37:18 -06:00
2b8dbb88b2 [teagba] Fix applySpriteUpdates to reset update counter 2023-12-17 18:40:12 -06:00
7bc1d90be8 Restore some global CMake setting that were moved to nostalgia 2023-12-16 20:08:26 -06:00
cfb7d4f861 [nostalgia/studio] Add icon 2023-12-16 10:51:14 -06:00
7a6e94959c [nostalgia] Move nostalgia install vars to nostalgia dir CMakeLists.txt 2023-12-16 10:45:04 -06:00
eb1846278b [nostalgia/studio] Update app name 2023-12-16 10:35:28 -06:00
00c2a39dba [olympic] Cleanup 2023-12-16 03:05:57 -06:00
56f59b29fe [nostalgia/core/studio] Add scale option to TileSheet export 2023-12-16 02:58:54 -06:00
9b11fa4e91 [olympic/keel] Fix some unsafe pointer accesses, disconnect signals on asset move 2023-12-15 01:33:08 -06:00
72e54da017 [olympic/turbine] East const Turbine, cleanup 2023-12-15 00:54:55 -06:00
58d13a3ad9 [olympic/studio/modlib] East const Studio 2023-12-15 00:49:55 -06:00
5ae6df7e05 [olympic/applib] East const applib 2023-12-15 00:26:31 -06:00
f71d4d3efd [olympic/keel] Finish east consting Keel 2023-12-15 00:22:56 -06:00
4b824ddef4 [olympic] Change readClaw to take ref to TypeStore 2023-12-14 23:56:14 -06:00
8b3b8d50d6 [ox/claw] Change readClaw to take ref to TypeStore 2023-12-14 23:56:02 -06:00
1f2e9917f1 [nostalgia/core/opengl] Cleanup fragment shader 2023-12-14 23:47:00 -06:00
13ddbd981e [olympic,nostalgia] Cleanup some reinterpret_casts 2023-12-14 23:39:30 -06:00
3a781f6704 [ox/std] Improve r/l-value correctness of Result::to, make unwrap nodiscard 2023-12-14 22:41:05 -06:00
30909f85a3 [ox/std] Fix Result::copyTo 2023-12-14 22:33:03 -06:00
9cc27f5be9 [ox/std] Fix error handling for Result::copyTo 2023-12-14 22:28:16 -06:00
cdc7428eb6 [olympic,nostalgia] Update Result copyTo and moveTo calls to take refs 2023-12-14 22:26:55 -06:00
d31938ba4f [ox] Make Result copyTo and moveTo take refs 2023-12-14 22:26:17 -06:00
935099f8d4 [nostalgia] Re-enable Scene module 2023-12-14 22:03:39 -06:00
63608229e1 [nostalgia/scene/studio] Remove Scene maker from New Item wizard 2023-12-14 22:01:26 -06:00
e6803af22f [ox/mc] Fix more Clang issues 2023-12-14 21:35:02 -06:00
db961739ad [olympic/studio] Fix several crashes 2023-12-14 21:34:46 -06:00
2167a46266 [olympic/studio] Make copy/cut/paste enabled function noexcept 2023-12-14 19:37:24 -06:00
d1c6ab9f77 [nostalgia/core/studio] Cleanup TileSheetEditor, make it set copy/cut/paste enabled/disabled 2023-12-14 19:36:10 -06:00
c426decd99 [ox/oc] Fix C string writing 2023-12-14 19:28:14 -06:00
496afd66ea [ox/fs] Fix segfault in FileAddress 2023-12-14 19:27:47 -06:00
ad7f696a71 [glutils] Fix GLFrameBuffer to use right delete function 2023-12-14 19:08:37 -06:00
819e93bb1c [olympic/studio,nostalgia] Change Editor item name to item path, make
TileSheetEditorImGui inherit from Editor
2023-12-13 23:15:53 -06:00
960889749d [ox] Fix some template issue that come up with some versions of Clang, fix empty string read in OC 2023-12-13 22:46:13 -06:00
1b93b2038f [olympic,nostalgia] Move item name/path studio::Editor 2023-12-12 23:06:14 -06:00
d056323679 [nostalgia,olympic] Remove src as include directory 2023-12-12 20:31:05 -06:00
b10d9b6118 [developer-handbook] Cleanup ordering of Claw section 2023-12-12 20:24:31 -06:00
bd44fcf6ad [nfde] Update minimum CMake version 2023-12-12 20:24:20 -06:00
a1de7fbd8a [olympic,nostalgia] Make Applib an interface library that publicly exports applib.cpp 2023-12-12 20:23:54 -06:00
debeb83119 [glutils] Move glutils to deps 2023-12-11 22:57:59 -06:00
e2545a956b [olympic] Move keel, turbine, and studio to olympic 2023-12-11 22:48:22 -06:00
a60765b338 Use project name in Makefile throughout and pass to pkg-gba 2023-12-11 22:26:20 -06:00
dc233286b4 [nostalgia] Update logo 2023-12-11 22:21:45 -06:00
5b929b8796 [nostalgia] Move Olympic app parameters to NostalgiaProfile library 2023-12-11 22:21:01 -06:00
aea1aabcd7 [nostalgia] Restructure module register guards to behave more like include guards 2023-12-11 22:19:10 -06:00
3b8a9af97b [keel] Remove NostalgiaKeelModules as a dependency of keel 2023-12-11 22:16:16 -06:00
d54853a8b5 [studio/applib] Cleanup 2023-12-10 22:18:48 -06:00
d06412a6fe [nostalgia/tools] Remove old pack.cpp file 2023-12-10 22:16:23 -06:00
937e88ce7a [keel] Add missing file 2023-12-10 22:14:06 -06:00
9a5bdebbd7 [nostalgia] Rename nost-pack to nostalgia-pack 2023-12-10 22:12:02 -06:00
a2361c3fd9 [keel,nostalgia] AppLib-ize nost-pack 2023-12-10 22:10:37 -06:00
d6f0fe0cc8 [studio/applib] Remove separate logger instantiation 2023-12-10 21:35:01 -06:00
e3b2c66d70 [olympic/applib] Change applib run arguments 2023-12-10 21:33:45 -06:00
6dec1bf5ed [olympic/applib] Cleanup unused header 2023-12-10 21:10:35 -06:00
af1f674bc0 [olympic/applib] Move run function to olympic namespace 2023-12-10 21:07:17 -06:00
6a1e2f7566 [olympic/applib] Make applib module loading optional 2023-12-10 20:59:15 -06:00
393259a010 [nostalgia,olympic,studio] Add Olympic applib system, convert Studio to use it 2023-12-10 20:39:08 -06:00
b6b59e77f5 [nostalgia/core/studio] Cleanup TileSheetEditor commands 2023-12-10 17:27:18 -06:00
4a94672fdc [nostalgia/core/studio] Fix some use after move bugs 2023-12-10 17:17:03 -06:00
d22c968561 [nostalgia/core/studio] String hygiene change 2023-12-10 17:13:42 -06:00
79c85c2a33 [turbine] Cleanup 2023-12-10 17:03:58 -06:00
3ac3b7b5e6 [nostalgia,studio] Cleanup 2023-12-10 17:03:51 -06:00
8c9ebbedae [nostalgia,studio] Replace some String returns with StringView 2023-12-10 15:09:51 -06:00
dbd98fe18b [nostalgia/core/studio] Really pedantic formatting change 2023-12-10 02:00:54 -06:00
7418a7126a [nostalgia/core/studio] Restructure core studio for maintainability 2023-12-10 01:50:52 -06:00
d5a1e11ec5 [nostalgia/scene/studio] Fix vertical resizing to crop from bottom of view 2023-12-10 00:16:02 -06:00
f4a93d8419 [glutils] Change frame buffers to just use linear filtering 2023-12-10 00:10:51 -06:00
e923c73c91 [nostalgia/scene/studio] Simplify check for framebuffer resizing 2023-12-09 23:53:34 -06:00
4a9f035014 Disable some annoying clang-tidy warnings 2023-12-09 23:39:03 -06:00
b5ee68c90b [nostalgia/scene/studio] Fix SceneEditorView to work after switching tabs 2023-12-09 23:24:14 -06:00
e906237d76 [nostalgia/core/opengl] Remove debug line 2023-12-09 23:23:39 -06:00
6bcf29b8f2 [nostalgia/core] Cleanup 2023-12-09 23:20:48 -06:00
406388c042 [README] Add libgtk-3-dev to Debian dependency list 2023-12-09 23:20:12 -06:00
371044d63d [nostalgia] Fix scaling of SceneEditorView not to be completely broken 2023-12-09 23:18:04 -06:00
62c671e823 [nostalgia/core] Cleanup on TileSheet 2023-12-09 17:46:16 -06:00
0ac494998f [glutils] Add wrapper function around resizeInitFrameBuffer 2023-12-09 17:13:58 -06:00
500c012713 [nostalgia/core/studio] Cleanup TileSheetEditor constructor 2023-12-09 17:12:04 -06:00
1c4fb80702 Remove debug build from GitLab CI 2023-12-09 15:18:51 -06:00
a4fac4c1d3 [ox/fs] Some cleanup for FileAddress 2023-12-09 15:06:06 -06:00
115941a787 [nostalgia/core/studio] Fix palette selection reversion on undo of palette change 2023-12-09 12:57:16 -06:00
65a179e314 [nostalgia/player] Make error output actually check for error 2023-12-09 11:22:10 -06:00
eed240eacc [ox/mc] Fix test struct model, fix zeroing out of empty vectors in unions 2023-12-09 11:21:27 -06:00
cc7c7ac9d7 [ox/std] Fix more functions to work with UPter custom deleters 2023-12-09 01:33:33 -06:00
9a80196fa6 [nostalgia/core] Make Context definition private 2023-12-09 01:27:31 -06:00
8804819e17 [ox/model] Remove another const_cast 2023-12-09 00:50:14 -06:00
ade6af8698 [ox] Add optional typename to satisfy clangd 2023-12-09 00:49:37 -06:00
cd0958c691 [ox] Cleanup some const_casts 2023-12-09 00:49:03 -06:00
40a3c28fbf [turbine] Remove dead code 2023-12-09 00:32:39 -06:00
def994f406 [turbine/glfw] Enable GLFW_OPENGL_FORWARD_COMPAT on all platforms 2023-12-09 00:18:10 -06:00
e808859e29 [nostalgia/player] Give player a mechanism for reporting failure in release builds 2023-12-09 00:14:30 -06:00
9e9f30fb18 [nostalgia/core] Fix some GL rendering issues 2023-12-09 00:05:14 -06:00
facde6bdce [keel,nostalgia,studio,turbine] Cleanup structure of Turbine 2023-12-09 00:03:31 -06:00
1298051a1a [ox/std] Give UPter alias the other template parameter of UniquePtr 2023-12-08 22:33:36 -06:00
f169c96e78 [ox/claw] Remove ReadClaw from build 2023-12-07 00:15:08 -06:00
1547e8e550 Add OX_NODEBUG to GitLab CI 2023-12-07 00:08:37 -06:00
795b1add64 [nostalgia,studio] Fix includes 2023-12-06 23:59:03 -06:00
db91ea6a63 [glutils,nostalgia] Ptr to ref changes 2023-12-06 23:56:49 -06:00
7e19f45c69 [ox/std] Add SpanView::data() 2023-12-05 22:51:18 -06:00
57ba1caf90 [nostalgia] Cleanup headers 2023-12-05 22:50:03 -06:00
a5bdad448f [nostalgia/core] Cleanup headers, TileSheet versioning 2023-12-05 22:37:22 -06:00
54fcbb1a33 [studio] Adjust size of NewMenu, sort items, rename Quit to Cancel 2023-12-04 21:45:59 -06:00
195fd7a113 [nostalgia,studio] Cleanup, simplify string handling 2023-12-04 21:45:23 -06:00
0d606643f5 [ox/mc,ox/oc] Fix write for ox::Array, cleanup 2023-12-04 21:43:22 -06:00
402f54b3e3 [sample_project] Add ox FileAddress type descriptors 2023-12-04 00:45:59 -06:00
ed5fc079ee [studio/modlib] Fix project data directory in Project 2023-12-04 00:45:31 -06:00
140005799f [glutils,nostalgia/core] Move GlslVersion from GlUtils to Nostalgia Core 2023-12-04 00:40:25 -06:00
7d9a1676e8 [ox/claw] Test cleanup 2023-12-04 00:26:08 -06:00
b61f81abf0 [ox] Make tests more consistent 2023-12-04 00:22:00 -06:00
775efbddc8 [keel] Formatting fixes 2023-12-03 23:49:02 -06:00
1505d7ea37 [keel,nostalgia/tools,studio] Convert some pointers to references 2023-12-03 22:48:30 -06:00
26a2d340d6 [keel,studio] Cleanup string handling 2023-12-03 22:26:25 -06:00
ce514d586c [keel] Cleanup string handling 2023-12-03 22:15:22 -06:00
5cbf789374 [ox/std] Add lastIndexOf(StringView, char) 2023-12-03 22:14:42 -06:00
3f83a254d2 [keel] Fix UUID to path lookups to fail properly 2023-12-03 22:02:00 -06:00
348193ae9e [nostalgia,studio] Cleanup string handling 2023-12-03 22:01:38 -06:00
6b7c002a10 [nostalgia] Style updates 2023-12-03 21:14:20 -06:00
34081a0414 [turbine/gba] Make wake up time static 2023-12-03 20:38:23 -06:00
d23b69ce17 [nostalgia,studio] Cleanup 2023-12-03 19:59:27 -06:00
5717d67462 [nostalgia/core] Cleanup 2023-12-03 19:10:27 -06:00
7666bcc2db [keel,nostalgia] Cleanup pack, move toward further library-ization 2023-12-03 19:09:23 -06:00
8f5173e52a [ox/std] Add CStringView::CStringView(StringLiteral) 2023-12-03 19:06:37 -06:00
9ab3543b32 [ox/std] Rename Result::get to Result::copyTo 2023-12-03 19:03:42 -06:00
d16bbef282 [ox/std] Remove ox_strcpy 2023-12-03 19:03:08 -06:00
a8db357360 [ox/fs] Cleanup unnecessary constructors in FileAddress 2023-12-03 19:02:36 -06:00
566b724d36 [nostalgia] Update to new FileAddress constructor 2023-12-03 10:18:33 -06:00
b13eb0ef70 [ox/fs] Make FileAddress constructor take a StringLiteral 2023-12-03 10:17:24 -06:00
9855a0bcf0 [ox/std] Cleanup 2023-12-02 04:02:42 -06:00
611e2fa7cb [ox/std] Cleanup 2023-12-02 01:13:03 -06:00
95d9aee0cf [ox/std] Cleanup stdlib/non-stdlib specific build path in logging 2023-12-02 00:26:18 -06:00
3de03bf1fd [ox] Make String::String(String const&) explicit 2023-12-01 23:39:40 -06:00
742427584a [keel,nostalgia/core] Remove implicit String::String(String const&) calls 2023-12-01 23:38:59 -06:00
91fd0d0786 Disable GLFW tests, example programs, and docs in build 2023-12-01 23:00:17 -06:00
53262c53c4 [keel] Fix formatting 2023-12-01 22:54:27 -06:00
b212385b17 [studio] Cleanup ItemMaker constructors 2023-12-01 22:54:00 -06:00
453e08497d [keel,nostalgia] Make core calls take Context references instead of pointers 2023-12-01 22:53:21 -06:00
72c130d8a9 [ox/std] Fix Result move constructor, add & and && variants of unwrap 2023-12-01 22:50:25 -06:00
9904399724 [keel,studio,turbine] Finish removing implicit String(const char*) calls 2023-12-01 22:44:24 -06:00
1a1c8ae6cc [ox] Make ox::String::String(const char*) explicit 2023-12-01 22:36:24 -06:00
e9822bf124 [nostalgia,studio] Remove implicit ox::String::String(const char*) calls 2023-12-01 22:35:02 -06:00
644abd7f22 Get rid of separate test stage in gitlab-ci 2023-12-01 01:03:53 -06:00
1e8d8c8b9e [buildcore] Use python3 variable instead of python3 directly 2023-12-01 01:00:58 -06:00
eccb8c4fb3 Make gitlab-ci build release and test with release, debug, and asan 2023-12-01 00:53:51 -06:00
6b3974eb93 [buildcore] Make mypy run with python3 -m 2023-12-01 00:51:23 -06:00
f6058f4e07 Add gitlab-ci file 2023-12-01 00:50:45 -06:00
ecb09930db [turbine/glfw] Partially revert debug change 2023-12-01 00:06:58 -06:00
fc5e63a4d7 [ox/std] Make substr support CStringView, and always return a StringView 2023-11-30 23:15:51 -06:00
232a166833 [keel,nostalgia,studio] Make keel use references in place of a lot of pointers 2023-11-30 23:15:16 -06:00
95ba8eb138 [glutils] Do some cleanup with ox::CStringView 2023-11-30 22:06:03 -06:00
a37df08c19 [keel] Make Context::appName a BasicString<32> to generally avoid allocations while ensuring that Context owns a copy 2023-11-30 21:46:17 -06:00
0fc7e7005c [keel,nostalgia/tools/pack,studio] Cleanup 2023-11-30 21:45:03 -06:00
68a0dd9660 [ox/std] Give Vector MaybeSV in places where it makes sense 2023-11-30 21:28:11 -06:00
d635a954fa [ox/std] Add missing file, add more string types 2023-11-30 21:24:05 -06:00
d0f19fd51d [teagba] Make some globals static 2023-11-30 01:29:53 -06:00
dd16577b50 [ox/fs] Change substr function form 2023-11-30 01:02:29 -06:00
c0aa119155 [ox/fs] Add FileSystem::write variants that take Spans 2023-11-30 01:02:05 -06:00
3c9ce4436a [ox/fs] Make FileAddress::getPath return a StringView 2023-11-30 01:01:01 -06:00
2a692fc46e [ox/std] Add Span::data() 2023-11-30 01:00:38 -06:00
e543131f0d [nostalgia,studio] Cleanup Studio 2023-11-30 00:57:47 -06:00
c085c50b30 [nostalgia/pack] Update for Keel 2023-11-30 00:56:53 -06:00
bb8fb0469a [keel] Cleanup pack 2023-11-29 20:33:09 -06:00
15bc41dd35 [ox/std] Fix StringView(BaseStringView const&) constructor 2023-11-29 00:35:34 -06:00
85e7375f6f [buildcore] Cleanup 2023-11-28 23:34:12 -06:00
da98aa864c [keel,nostalgia,studio,turbine] Fixes for ox::String explicit change 2023-11-28 23:32:29 -06:00
3a62650d62 [ox/std] Make String(StringView) constructor explicit, add StringLiteral 2023-11-28 23:31:11 -06:00
7008ebfb40 [ox/std] Make HashMap use StringView for string lookups 2023-11-28 23:29:10 -06:00
709dc36d0b [ox/mc] Fix read test 2023-11-27 22:02:38 -06:00
540ed9b3f9 [keel,nostalgia,turbine] Change log channel delimiter from :: to . 2023-11-25 20:59:01 -06:00
ecc49a63b0 [ox] Change log channel delimiter from :: to . 2023-11-25 20:58:35 -06:00
c8ad05215f [glutils] Fix destructors 2023-11-24 13:46:46 -06:00
79b6046813 [nostalgia/studio] Fix main argc and argv for Windows 2023-11-24 11:10:28 -06:00
ed5271166e Update developer handbook 2023-11-23 18:22:22 -06:00
b946e428ad [keel,nostalgia,turbine] Cleanup 2023-11-23 01:46:11 -06:00
a84a829769 [ox] Cleanup String/StringView conversions, MallocaPtr 2023-11-23 01:34:16 -06:00
5b91ad25c2 [teagba] Fix MSVC warning 2023-11-14 20:24:21 -06:00
98983d1229 [nostalgia/core] Cleanup 2023-11-14 20:23:50 -06:00
b12097769e [ox/std] Fix MSVC warnings 2023-11-14 20:23:21 -06:00
99a7a2cbfc [buildcore] Fix arch output for host_env to be more consistent 2023-11-14 20:21:49 -06:00
e9c5134286 [ox/model] Fix compile error when instantiating ModelHandlerAdaptor for readers 2023-11-14 20:21:02 -06:00
b7a1236bae [ox/model] Fix MSVC warning 2023-11-14 20:19:25 -06:00
d386bc8c91 [ox/mc] Fix MC read alloca in a loop 2023-11-13 23:42:09 -06:00
3eec0a149d [ox/mc] Cleanup 2023-11-13 22:59:11 -06:00
8d2c8df014 [ox/mc] Fix an unwanted formatting "correction" from Visual Studio 2023-11-13 21:53:21 -06:00
18ace3ceff [ox/mc] Fix use of uncaptured var in lambda 2023-11-13 21:50:11 -06:00
8ddc8f40e5 [buildcore] Fix hostevn cmd to return OS instead of hostname 2023-11-13 21:46:53 -06:00
d7a6bc4ae4 [nostalgia/core/opengl] Fix sprite drawing for instances of core that are not application wide 2023-11-13 21:43:35 -06:00
597a8c736e [ox/mc] Fix alloca use in loop 2023-11-12 00:53:25 -06:00
d9b676d1b2 [ox/std] 32 bit system fixes 2023-11-12 00:41:47 -06:00
158115c29f [ox] Fix most MSVC warnings 2023-11-12 00:31:13 -06:00
109f272650 [nostalgia] More changes to accommodate for Windows 2023-11-12 00:14:52 -06:00
77e475980d [ox/model] Restore assert in modelFieldCount 2023-11-11 23:30:34 -06:00
f6d2d96ff9 [turbine] Cleanup 2023-11-11 23:24:21 -06:00
81d092e967 [buildcore] Windows fixes 2023-11-11 22:35:34 -06:00
3fbb2a0086 [ox/logconn] MSVC fixes 2023-11-11 21:57:25 -06:00
59c11e5309 [nostalgia] Make Windows builds of player and studio WIN32 apps 2023-11-11 21:45:23 -06:00
ce20282be0 [ox/std] MSVC fix 2023-11-11 21:14:59 -06:00
7ee52db6a1 [ox] MSVC fixes 2023-11-11 20:24:11 -06:00
868adae053 [nostalgia] Cleanup 2023-11-05 10:19:27 -06:00
4ae6fd7c17 [ox/std] Add uint_t 2023-11-05 10:18:39 -06:00
4d09eecb0d [ox/std] Fix Linux-AArch64 build 2023-10-30 01:20:21 -05:00
66d7627ed8 [ox/claw] Add missing file 2023-10-22 21:16:39 -05:00
bd9e27f977 Make gba-run and pkg-gba trigger build 2023-10-22 21:14:29 -05:00
ebb8b12c4e [ox/fs] Add ox::Buffer constructor to FileSystemTemplate 2023-10-22 20:35:57 -05:00
1f78ea1f37 [ox] Add Reader_c and make MetalClawReader use it 2023-10-22 16:42:03 -05:00
4ab710b155 [nostalgia/core] Move most TileSheet functions to cpp file 2023-10-21 01:19:04 -05:00
5eaa86a934 Update main Makefile to use host debugger 2023-09-30 13:40:13 -05:00
ba30caa9b2 [ox/std] Add SpanView 2023-09-30 13:38:19 -05:00
72346162a5 [keel,nostalgia] Add id() function to Keel modules 2023-09-30 13:34:45 -05:00
5cdf241321 [ox/preloader] Fix for what appears to be a bug in Apple Clang 2023-09-28 21:01:18 -05:00
b797b937f8 [nostalgia] Add Debian section to README.md 2023-09-24 10:17:18 -05:00
206b2825c8 [ox/std] Add Span type 2023-09-16 18:32:06 -05:00
b6f86551e9 [ox/std] Make assert functions take StringViews instead of C strings 2023-09-02 01:11:40 -05:00
1a7e551025 [ox/std] Fix Vector for MSVC 2023-08-30 21:01:20 -05:00
cc0da5dd6a [ox] Tell CMake that Ox is C++ only 2023-08-26 22:39:33 -05:00
e0bdb06b2a [buildcore] Update buildcore 2023-08-26 00:53:28 -05:00
6e0de04591 [buildcore] Update buildcore 2023-08-25 00:13:32 -05:00
897ee83984 Update main Makefile for new buildcore 2023-08-25 00:12:49 -05:00
84e82b224b [buildcore] Update buildcore 2023-08-25 00:12:40 -05:00
257389129f [buildcore] Update buildcore 2023-08-24 00:04:24 -05:00
6bd7a84ddd [ox] Cleanup, fix GBA build 2023-08-10 00:26:45 -05:00
f4ef762952 [ox/std] Fix broken invocation of Vector::reserveInsert 2023-08-09 00:31:56 -05:00
c1c41cfc99 [nfde] Cleanup CMakeLists to label UNIX systems generically as UNIX 2023-08-09 00:06:37 -05:00
987cd34df0 [ox/std] Fix Linux build 2023-08-09 00:04:08 -05:00
da6eb40966 [ox/std] Make ox::make handle std::exception to report what() 2023-08-09 00:01:17 -05:00
ead3fd39c4 [nostalgia/core/studio] Cleanup error handling for TileSheet open fail 2023-08-09 00:00:42 -05:00
d2b77804ff [glfw] Make GLFW use default library type 2023-08-08 23:59:33 -05:00
df709ad391 [nostalgia] Fix FreeBSD build 2023-08-08 23:58:08 -05:00
020a3ec3f4 [nfde] Fix FreeBSD build 2023-08-08 23:57:43 -05:00
e5a7d8c0a9 [ox] Fix FreeBSD build 2023-08-08 23:57:09 -05:00
ea266da691 [buildcore] Fix setup-build.py for FreeBSD 2023-08-05 19:01:44 -05:00
30017fd32e [nostalgia] Run liccor 2023-08-04 22:11:19 -05:00
22f8504e5a [turbine] Make window render during resizing 2023-07-16 14:18:29 -05:00
f514b33b06 [ox/std] Fix some type implicit conversions in ox_itoa 2023-07-16 13:53:28 -05:00
6e94c2be8d [studio] Remove debug print 2023-07-16 10:14:27 -05:00
3b24d6dee7 [studio] Add border to project explorer 2023-07-16 00:23:45 -05:00
660c320ee9 [studio] Cleanup main window drawing 2023-07-15 21:10:24 -05:00
4cf96878a9 [keel,nostalgia/core/studio] Fix asset update notifications 2023-07-15 20:14:35 -05:00
9ceb1df49e [nostalgia/core/studio] Remove unnecessary netsting level in PaletteEditor 2023-07-15 13:16:05 -05:00
ddcb53a535 [ox/std] Make mgba logging functions compile on all platforms 2023-07-11 21:58:22 -05:00
8ba461d77c [nostalgia] Update Mac path for run-studio 2023-07-02 18:31:04 -05:00
2b7e3c93e0 [nostalgia] Change pkg-gba to use the build copy of nost-pack 2023-07-02 00:10:58 -05:00
016f567c04 [nostalgia] Rewrite pkg-gba in Python 2023-07-01 19:58:57 -05:00
79d43b56fb [gbabuildcore] Fix for updated build paths 2023-07-01 16:19:29 -05:00
261b28f59f [nostalgia] Remove host from build path 2023-07-01 16:18:22 -05:00
d04d48124e [keel] Correct test path 2023-07-01 16:18:08 -05:00
280130c3cd [ox] Correct tests path 2023-07-01 16:17:41 -05:00
e89751dd72 Make libraries build as shared libraries on non-Apple/MS systems 2023-07-01 16:04:24 -05:00
da27447a4a [lodepng] Add install for lodepng 2023-07-01 16:03:58 -05:00
6166ab15db [ox] Make tests search in {build output}/bin dir for tests 2023-07-01 16:03:19 -05:00
39eb82596b [nostalgia/core,turbine] Give Turbine and NostalgiaCore Context types virtual destructors 2023-06-27 19:38:16 -05:00
de6308418e [studio] Add GlUtils as Studio dependency 2023-06-27 19:15:59 -05:00
7755168004 [ox/logconn] Change some C strings to StringViews, add macro for initializing logger 2023-06-26 23:58:10 -05:00
cf5786a4ed [ox/std] Change InitTraceMsg::appName from C string to BString<128> 2023-06-26 23:57:17 -05:00
874592cffd [nostalgia/core] Cleanup 2023-06-26 23:51:23 -05:00
741026680a [ox/std] Add Result::to for passing value to functions 2023-06-25 17:21:56 -05:00
822090f309 [ox/std] Make Vector functions also noexcept for pointers 2023-06-25 17:21:29 -05:00
696bae0721 [nostalgia/core/gba] Cleanup 2023-06-25 17:12:14 -05:00
07fb60ed3d [nostalgia/core] Add a function for resizing tile sheets 2023-06-25 17:11:18 -05:00
341217b78e [nostalgia] Make run commands not require install 2023-06-24 12:41:41 -05:00
56f2533754 [nostalgia/core/studio] Cleanup reinterpret_cast 2023-06-24 12:38:39 -05:00
3a149fad6d [nostalgia/core/studio] Fix scaling of controls panel in TileSheetEditorImGui 2023-06-24 00:16:38 -05:00
de50a5392a [keel] Make keel init not be a template anymore 2023-06-20 19:27:36 -05:00
c5233e0d1d [keel,nostalgia,studio,turbine] Make turbine::Context have a keel::Context instead of being one 2023-06-20 00:56:55 -05:00
d4eaade326 [studio] Make all libraries and includes install correctly 2023-06-19 23:37:37 -05:00
690935e4ec [nostalgia/core] Cleanup 2023-06-19 20:28:27 -05:00
56e980385c [nostalgia,turbine] Make GBA files (other than ARM asm) build on all platforms 2023-06-18 23:03:06 -05:00
7c1c9a697e [teagba] Make TeaGBA (other than the ARM asm) build on all platforms 2023-06-18 22:59:01 -05:00
bac3eed958 [nostalgia/scene] Cleanup 2023-06-18 20:28:08 -05:00
de45e7a075 [nostalgia/core/opengl] Cleanup 2023-06-18 17:58:01 -05:00
0f797a17d5 [studio] Make clear screen before redraw 2023-06-18 17:56:01 -05:00
47858ef619 [studio] Fix crash in NewMenu 2023-06-18 17:54:34 -05:00
a95aae2b68 [nostalgia/scene] Delete duplicate keelmodule.cpp 2023-06-18 17:36:10 -05:00
50e0dd4c8e [nostalgia/player] Fix GBA debug build 2023-06-18 10:23:41 -05:00
969914ce41 [keel] Add convert function to bare metal build so that the symbol is available 2023-06-18 10:23:00 -05:00
9ba13b17b1 [nostalgia/scene] Make Scene::setupDisplay const 2023-06-18 01:40:34 -05:00
7437487340 [ox/std] Make many Vector functions conditionally noexcept 2023-06-18 01:39:35 -05:00
7a0312ba91 [nostalgia] CMake cleanup, install studiomodules.hpp 2023-06-17 21:24:19 -05:00
bb694b9b13 [nostalgia] CMake cleanup 2023-06-17 20:53:08 -05:00
76a8499630 [nostalgia] Cleanup Keel modules 2023-06-17 20:52:44 -05:00
6680ffa7a8 [keel] Make most of pack build regardless of platform 2023-06-17 20:51:36 -05:00
04cb710d56 [glutils,keel,nostalgia,turbine] Cleanup sign conversion warnings that are now enabled universal 2023-06-17 20:03:45 -05:00
2974fa5863 [nostalgia] Reorganize Keel components of modules into own directories 2023-06-17 19:37:34 -05:00
ecde759bec [nostalgia] Move modules into modules directory 2023-06-17 17:22:56 -05:00
dd54e7363f [nostalgia/core] Cleanup 2023-06-17 16:21:35 -05:00
bde511dd85 [teagba] Wrap BIOS functions in namespaced C++ functions 2023-06-17 16:20:56 -05:00
32df55ea43 [buildcore] Make configure-xcode only available on Mac 2023-06-15 19:49:05 -05:00
cbb67c51ef [keel] Cleanup 2023-06-14 00:05:41 -05:00
ba50b083ff [nostalgia,studio] Update for Ox changes, cleanup 2023-06-14 00:05:24 -05:00
dde51151ff [ox] Cleanup Vector 2023-06-13 23:51:13 -05:00
20e5b7e617 [ox/std] Fix code duplication 2023-06-10 01:15:55 -05:00
bb85e6ab6c [ox/std] Add UUID::toString variant that takes a Writer_c 2023-06-09 22:07:19 -05:00
fb43c956e7 [keel] Cleanup 2023-06-09 22:06:16 -05:00
952a2f153e [nostalgia,keel] Update for Ox changes 2023-06-09 21:15:22 -05:00
b67359ddb0 [ox] Make StringView write function take a Writer_c reference 2023-06-09 21:14:28 -05:00
b2103e558e [ox/mc] Make write's setTypeInfo return Error if unable to allocate field presence buff 2023-06-09 20:53:20 -05:00
fbfc0afc89 [nostalgia/core/gba] Update for Ox changes 2023-06-09 20:50:10 -05:00
e22743961a [ox] Make model system's setTypeInfo return an Error 2023-06-09 20:49:36 -05:00
7c3aaf99c2 [keel] Update for Ox changes 2023-06-08 22:13:38 -05:00
5a021043f4 [ox] Make OC and Claw writers take const values 2023-06-08 21:57:43 -05:00
23054c9f6f [ox] Remove SerStr 2023-06-08 21:34:33 -05:00
e0289ee7e0 [keel,studio] Update for Ox changes 2023-06-08 21:18:30 -05:00
2c8e073172 [ox] Cleanup serialization writers, make MC and Claw use Writer_c 2023-06-08 21:18:26 -05:00
6f5f2c7219 [ox/mc] Make writeOC work with const inputs 2023-06-08 01:13:24 -05:00
ce4dcdcd18 [ox/mc] Make MC Write use Writer_c 2023-06-08 00:56:02 -05:00
ae3f0bb5db [teagba] Fix type conversions 2023-06-07 21:14:39 -05:00
f5b1da09b5 [nostalgia/core/opengl] Fix type conversion 2023-06-07 21:11:54 -05:00
d0579014d8 [buildcore] Enable implicit type conversion warnings 2023-06-07 00:42:01 -05:00
aa19cdf535 [keel,nostalgia,studio] Fix implicit conversions 2023-06-07 00:41:31 -05:00
3fdfee33a9 [ox] Fix remaining implicit conversion issues 2023-06-07 00:41:09 -05:00
acf04665bc [ox/fs] Cleanup formatting 2023-06-06 00:29:17 -05:00
13b2df57fe [glutils,nostalgia,studio] Fix Xcode build errors 2023-06-06 00:28:22 -05:00
7bccfc8a00 [ox] Fix Xcode build errors 2023-06-06 00:17:51 -05:00
4549569746 [nostalgia/core/studio] Fix pixel line grid scaling on zoom 2023-06-06 00:09:49 -05:00
aff3b04fe2 [buildcore] Make cmake-build command ignore build directories that are not directories 2023-06-05 21:17:50 -05:00
f8eaf9b325 [nostalgia/core] Make Context::turbineCtx private 2023-06-04 09:48:04 -05:00
1bff41d9f1 [nostalgia/core] Cleanup 2023-06-03 23:45:20 -05:00
2887fa7819 [nostaliga] Cleanup 2023-06-03 22:06:08 -05:00
8c7f6ffafc [ox/fs] Make directAccess functions const 2023-06-03 22:04:02 -05:00
5dd3b678ae [nostalgia/core] Delete all of core::Context's friendships 2023-06-03 21:20:04 -05:00
7d0dcae00e [nostalgia,turbine] Change NOSTALGIA_BUILD_TYPE to TURBINE_BUILD_TYPE 2023-06-03 20:51:18 -05:00
65268408cd [turbine] Remove default appName 2023-06-03 20:40:26 -05:00
ff242e3488 [studio] Put StudioAppLib in studio namespace 2023-06-03 19:35:40 -05:00
6137a2b892 [studio/modlib] Fix Linux build 2023-06-03 19:29:02 -05:00
1097990113 [turbine/gba] Change isr to turbine_isr 2023-06-03 16:50:31 -05:00
c6706f743d [nostalgia] Cleanup 2023-06-03 16:34:01 -05:00
e1a8c6de01 [nostalgia/core/studio] Cleanup module 2023-06-03 15:50:20 -05:00
8d07f6110e [keel] Replace last Nostalgia reference in Keel 2023-06-03 15:44:08 -05:00
6f4b869fa2 [keel] Fix string comparison bug in K1 header check 2023-06-03 15:43:38 -05:00
ed169eb9b8 [nostalgia,studio] Make module handling consistent 2023-06-03 15:36:28 -05:00
2874620bc6 [nostalgia] Add .clang-tidy 2023-06-03 14:36:41 -05:00
fee0a73b0d [nostalgia/core/opengl] Cleanup 2023-06-03 12:44:35 -05:00
10d1e860bb [nostalgia,studio] Make studio a library 2023-06-03 12:42:13 -05:00
6593d429fe [nostaliga,turbine] Move rest of ImGui init to Turbine 2023-06-03 12:41:52 -05:00
37f6c388fc [nostaliga/studio] Remove old studio profiles 2023-06-02 20:30:43 -05:00
25954d5503 [ox/std] Make stacktrace code more readable 2023-06-02 20:29:58 -05:00
68b6942606 [nostalgia/scene/studio] Replace glutils::bind with glutils::FrameBufferBind 2023-06-02 20:29:17 -05:00
ce2ac2e29e [nostalgia/appmodules] Cleanup 2023-06-02 20:28:45 -05:00
536f0ee8b7 [glutils] Fix FrameBufferBind unbind to no frame buffer 2023-06-02 20:28:26 -05:00
e1a1938762 [nostalgia/studio] Update year in Info.plist 2023-06-02 20:16:04 -05:00
1741822ba0 [nostalgia/studio] Replace NostalgiaCore with Turbine as NostalgiaStudio dependency 2023-06-02 20:15:49 -05:00
be7b32906f [nostalgia/studio] Move BuiltinModules to a cpp file 2023-06-02 20:14:51 -05:00
db3f29d52f [nostalgia] Make drawMainView render size seting come from function param 2023-06-02 00:55:57 -05:00
022f148701 [teagba] Make install library 2023-06-02 00:21:41 -05:00
b484d601e5 [glutils] Make static lib instead of object lib 2023-06-02 00:06:37 -05:00
60aad6335c [keel] Enable sign-conversion warning 2023-06-02 00:00:39 -05:00
8cd2ef2d8b [nostalgia] Move GlUtils out of Nostalgia 2023-06-01 23:58:39 -05:00
5c8242490e [ox] Make panic always print message 2023-06-01 23:48:39 -05:00
4364911229 [nostalgia,keel] Move core::TypeStore to Keel 2023-06-01 23:43:19 -05:00
1d35f6ce70 [nostalgia/core/studio] Remove old unused files 2023-06-01 23:27:07 -05:00
8c43baedea [nostalgia] Break part of core out into Turbine and TeaGBA libraries 2023-06-01 23:22:31 -05:00
07284ac595 [ox/std] Cleanup geo types to not depend on ox/model 2023-06-01 23:19:51 -05:00
437b33cdb5 [nostalgia] Remove anti-references policy from dev handbook 2023-05-30 20:55:20 -05:00
d598efb5ea [ox] Put oxReturnError and oxThrowError in brackets 2023-05-30 20:51:54 -05:00
fa4e3c6329 [ox] Cleanup 2023-05-30 20:50:47 -05:00
90ef5866dd [ox] Add makeCatch function 2023-05-30 20:49:57 -05:00
03a1a8abca [nostalgia] Move geo types to Ox 2023-05-30 20:44:22 -05:00
4e0ce57594 [ox/std] Add geo types 2023-05-30 20:43:39 -05:00
220f272867 [nostalgia/scene/studio] Cleanup 2023-05-30 20:01:56 -05:00
79e6838ab3 [nostalgia/studio] Make file open error report which file failed to open 2023-05-30 19:58:52 -05:00
78eeb30b15 [nostalgia/glutils] Add bind(FrameBuffer) function 2023-05-30 19:42:05 -05:00
8679f6b5a3 [nostalgia/core] Make core::setMainViewEnabled take a Context 2023-05-25 00:37:43 -05:00
323d5d8d53 [nostalgia/core] Cleanup 2023-05-24 20:43:00 -05:00
bd665cfc35 [ox] GCC13 fix 2023-05-19 21:35:00 -05:00
fcf0a9be95 [ox] Fix for a broken new memory safety check in GCC13 2023-05-19 21:32:18 -05:00
f63fe6c995 [nostalgia/core] Cleanup 2023-05-16 21:20:07 -05:00
2c7e134606 [keel,nostalgia] Remove keel and nostalgia subdirs in lib install path 2023-04-19 23:21:52 -05:00
dd12509d7d [glfw] Make GLFW an object library 2023-04-19 23:17:55 -05:00
546ce9b253 [ox] Get rid of ox subdirectory in lib install path 2023-04-19 20:45:18 -05:00
fddc6c2d04 [keel] Cleanup 2023-04-05 01:41:06 -05:00
7194f81b5b [keel] Make Keel preload functions templates to allow for different plat specs 2023-04-05 01:37:10 -05:00
9af8530e24 [ox/std] Cleanup 2023-04-02 09:42:49 -05:00
b8c0bbe03a [ox] Switch Mac to use builtin bit_cast 2023-04-01 23:23:36 -05:00
a36a642cf5 [keel] Change Nostalgia media and preload headers to Keel 2023-04-01 20:29:24 -05:00
834d01226d [keel] Cleanup 2023-04-01 20:18:16 -05:00
651db7a842 [nostalgia] Fix pkg-gba to use uname -n instead of hostname 2023-04-01 19:52:03 -05:00
b56d3692d0 [keel] Make PreloadPtr 64 bit 2023-04-01 19:51:31 -05:00
2a8f7e074f [keel] Fix PreloadPtr type id 2023-04-01 19:19:43 -05:00
bccc58c463 [keel] Fix variable name 2023-04-01 19:16:34 -05:00
272aba8eb5 [nostalgia/sample_project] Change Nostalgia headers to Keel headers 2023-04-01 19:12:37 -05:00
ab7dd9189e [keel] Cleanup headers 2023-04-01 19:12:33 -05:00
7beb3cc6fc [keel] Split out Nostalgia Foundation and Pack lib into Keel 2023-03-24 21:26:17 -05:00
4a95a79926 [nostalgia/scene] ACTUALLY add Scene Studio module 2023-03-11 18:45:35 -06:00
986ee3d7b0 [nostalgia/tools/pack] Fix build 2023-03-11 18:18:41 -06:00
ae9272841f [nostalgia] Add start for Scene editor in Studio 2023-03-11 16:59:26 -06:00
19d5641c6e [ox/oc] Fix unnecessary copy 2023-03-11 16:57:04 -06:00
21131a35a3 [ox/preloader] Cleanup NativePlatSpec 2023-03-11 16:56:44 -06:00
b58431c09a [ox/std] Add all_of and any_of range functions, cleanup 2023-03-11 16:46:17 -06:00
488f73f60f [nostalgia/core/studio] Cleanup, make FrameBuffer resize use resizeInitFrameBuffer 2023-03-11 15:00:04 -06:00
a5547487f8 [nostalgia/glutils] Add resizeInitFrameBuffer function, cleanup inconsistent argument names 2023-03-11 14:53:55 -06:00
9583b223ca [ox/std] Add test for non-constexpr version of UUID::isNull() 2023-03-04 16:12:51 -06:00
aab02f25c0 [ox/std] Updated UUID test for changed random num gen 2023-03-04 02:49:52 -06:00
c75ff7881f [ox/std] Add UUID::isNull() 2023-03-03 23:24:38 -06:00
3510e38ae5 [nostalgia/core] Rename userland to opengl 2023-03-03 01:13:38 -06:00
06f6656c85 [ox/std] Shift away 4 lowest bits of random numbers generated in UUID,
as Xoroshiro128+ is apparently weaker for those bits
2023-03-03 00:57:25 -06:00
b576a7ec12 [nostalgia/appmodules] Cleanup 2023-03-01 00:16:19 -06:00
8c1ad5ed63 [nostalgia/foundation] Removed unused member from AssetContainer 2023-02-28 00:45:10 -06:00
e9965a63ce [nostalgia/tools/pack] Update for GbaPlatSpec for preloader cleanup 2023-02-25 22:25:43 -06:00
317e714373 [ox/preloader] Cleanup 2023-02-25 22:25:14 -06:00
1767821161 [ox/std] Fix various issues with Optional copy and move constructors 2023-02-19 16:48:35 -06:00
edd21017d3 [ox/std] Make Optional more like std::optional 2023-02-19 01:40:29 -06:00
2e051f947d [ox/mc,oc] Add support for ox::Array serialization 2023-02-18 17:07:14 -06:00
58b7f813cc [nostalgia/core/studio] Make Edit Subsheet popup close on escape press 2023-02-18 00:52:49 -06:00
762804905a [ox] Make UUID serializable, and make serialize as a string in OC 2023-02-16 01:36:20 -06:00
b53e8626d7 [nostalgia/core/studio] Make TileSheets use UUIDs to refer to Palettes 2023-02-14 00:45:56 -06:00
71354fcbbc [nostalgia] Fix the initialization of UUIDs for new assets 2023-02-13 23:16:41 -06:00
044a87b1c4 [nostalgia/studio] Seed UUID generator at the start of Studio 2023-02-13 21:55:19 -06:00
53229b05da [nostalgia] Fix to allow building UUID map later 2023-02-13 21:45:54 -06:00
d17f536832 [ox/std] Add write(Writer_c, StringView) 2023-02-13 21:35:37 -06:00
b6ed919b01 [ox/std] Fix ox::join to work with list types that done have a front function 2023-02-13 19:08:46 -06:00
777a6d54f0 [ox/std] Add test for UUID::generate() and fix bug 2023-02-13 19:08:04 -06:00
86a3bf1248 [nostalgia] Make assets loadable through UUID references 2023-02-13 19:00:25 -06:00
a96d173fdc [ox/std] Fix BString(StringView) constructor 2023-02-12 22:30:28 -06:00
5e43eff631 [nostalgia] Add UUID to file path mapping 2023-02-12 22:13:32 -06:00
ba7ee92ad2 [ox/fs] Add error messgae to PassthroughFS::statPath 2023-02-12 21:45:18 -06:00
6d4c57d37d [ox/std] Fix BString == and != operators 2023-02-12 21:14:16 -06:00
54eebf81da [ox/std] Add UUID str conv test and fix bugs found 2023-02-12 20:38:29 -06:00
1b7b6e306e [nostalgia] Add support for asset UUID headers 2023-02-12 00:02:41 -06:00
2b821b73ff [ox/std] Add UUID fromString 2023-02-12 00:02:07 -06:00
e19559d7a7 [ox/claw] Add non-ox::Buffer version of readClaw function 2023-02-11 23:59:37 -06:00
af3de01e1b [ox/preloader] clang-tidy fix 2023-02-11 23:56:03 -06:00
9561a68483 [ox/std] Fix BString assign and compare 2023-02-11 02:32:24 -06:00
08899074cf [nostalgia/studio] Add Module types to Project TypeStore 2023-02-09 01:21:12 -06:00
86f639c7f7 [ox/std] Add tests for UUID int to hex str conversion 2023-02-08 21:40:29 -06:00
014daa6b57 [nostalgia/core/userland] Fix magic numbers 2023-02-08 21:37:25 -06:00
4f906f6e47 [ox/std] Add UUID implementation 2023-02-08 21:37:17 -06:00
3b05d4e16b [nostalgia] Add type registration to Module, fix FileAddress conversion in vectors for nost-pack 2023-02-08 03:06:57 -06:00
dba31d2cd9 [ox/model] Fix ModelUnion to copy type on copy and move 2023-02-07 23:19:18 -06:00
8077aaf0ae [nostalgia] Fill out basic Scene system functionality 2023-02-07 23:17:58 -06:00
eb55144211 [ox/std] Make ox::min/max use values instead of refs for integrals, add CommonRefWith 2023-02-07 01:35:50 -06:00
5de5eee215 [ox/std] Fix alignment of Optional's buffer 2023-02-07 01:33:30 -06:00
d571d49cce [ox/std] Fix String to StringView compare 2023-02-07 01:30:59 -06:00
6769bb63d9 [ox/std] Fix Optional 2023-02-06 22:43:30 -06:00
b064239ab1 [nostalgia] Remove World package 2023-02-06 00:18:16 -06:00
24ea7fee39 [nostalgia] Update liccor file 2023-02-06 00:17:24 -06:00
8a4ce3c8f1 [nostalgia/foundation] Fix CMake install 2023-02-05 02:25:22 -06:00
3c9e6d10ea [ox/std] Add StringView split and find functions 2023-02-05 00:33:27 -06:00
4b9b70a90e [nostalgia] Remove .trace.json 2023-02-04 16:57:28 -06:00
4ddf7a88c9 [nostalgia/foundation] Make transformRule include type params in type id 2023-02-03 23:13:51 -06:00
78798f69af [nostalgia] Add module for Scene 2023-02-03 23:07:31 -06:00
ccf47c0e4b [nostalgia/core] Cleanup typeconv.hpp 2023-02-03 22:32:43 -06:00
05a46c3b07 [nostalgia] Move pack transforms to modules 2023-02-03 22:16:01 -06:00
b1b2780eb9 [ox] GBA fixes 2023-02-03 21:56:30 -06:00
535480ef26 [nostalgia/toos/pack] Cleanup 2023-02-03 02:04:33 -06:00
26a1f2e4ad [ox/fs] Add error message to an error 2023-02-03 02:02:57 -06:00
8bcffc73ff [nostalgia/tools/pack] Fix nost-pack to pass in proper Context 2023-02-03 01:54:56 -06:00
7868b0678f [nostalgia] Split part of Core out into Foundation, add module system 2023-02-03 00:55:44 -06:00
83589287bc [ox/model] Add default type params arg to buildTypeId 2023-02-03 00:22:11 -06:00
cd28fee8fd [nostalgia/player] Add PC controls and Bullock integration 2023-02-01 22:50:08 -06:00
231f460668 [nostalgia/core] Cleanup 2023-02-01 22:46:18 -06:00
09d30acd7b [nostalgia/studio] Add Bullock integration 2023-02-01 22:44:11 -06:00
fea6a0764c [nostalgia/studio] Cleanup 2023-02-01 22:43:50 -06:00
fad8837ad1 [nostalgia/tools/pack] Add Bullock integration and cleanup FS access 2023-02-01 22:41:04 -06:00
1cc3549d00 [nostalgia/core/userland] Fix sprite location wrapping 2023-02-01 21:01:20 -06:00
4bcef4bd35 [nostalgia/core/userland] Add support for multiple sprite size/shapes 2023-02-01 02:07:55 -06:00
17cb40c0ec [ox/model] Add type name and version functions overload option 2023-01-30 23:13:07 -06:00
838187797a [ox/fs] Fix a log message's channel 2023-01-27 01:34:43 -06:00
1aceeebd5d [nostalgia/core/gba] Update for Ox FS changes 2023-01-27 00:01:14 -06:00
1cfa594c92 [ox/fs] Wrap overloaded virtual functions in FileSystem 2023-01-27 00:00:35 -06:00
94cb2e982a [ox] Add logconn for Bullock logging 2023-01-25 02:08:52 -06:00
e1fa48ea2f [ox/model] Fix FieldCounter to count CString fields 2023-01-25 00:21:23 -06:00
4cb6992178 [ox/std] Add Vector::emplace 2023-01-14 19:42:17 -06:00
5fa614ab83 [nostalgia/sample_project] Add Studio logo source to sample_project 2023-01-03 03:40:59 -06:00
7a4fbd1160 [gbastartup] Correct enabled languages in CMake 2023-01-03 03:39:53 -06:00
bb643bce42 [nostalgia] Add implementation of single tile sprites on OpenGL 2023-01-03 03:37:51 -06:00
cf6c05f4c6 [nostalgia/tools/pack] Fix for a non-compliant implementation of fstream 2023-01-03 03:33:54 -06:00
497bbc1a17 [nostalgia/studio] Update for new String beginsWith API 2023-01-03 03:32:16 -06:00
3cd638737a [ox] Update more C strings to StringViews 2023-01-03 03:31:22 -06:00
5508dc5dc0 [ox/std] Make String::beginsWtih and endsWith functions that take StringViews 2023-01-03 03:30:33 -06:00
03378ebe43 [nostalgia/core/gba] Fix buttonDown to return false for non-gamepad buttons 2023-01-03 00:13:40 -06:00
2669aafe81 [nostalgia] Cleanup frequent allocations and const correctness in project explorer 2023-01-01 15:27:28 -06:00
679226ef73 [nostalgia] Replace C strings with ox::StringView 2022-12-31 17:14:43 -06:00
55ea405a54 [ox/std] Add toStdStringView and endsWith functions 2022-12-31 17:14:09 -06:00
6cfa8dd40d [nostalgia] Replace unnecessary ox::Strings with ox::StringViews 2022-12-31 15:48:47 -06:00
5a09918b64 [nostalgia/studio] Add logo 2022-12-31 15:28:04 -06:00
2c2fce2c5a [nostalgia] Replace C strings with StringViews 2022-12-31 15:03:04 -06:00
ca07dc6152 [ox] Replace C strings in FS with StringView 2022-12-31 14:58:35 -06:00
5cae7cbd24 [nostalgia/studio] Cleanup 2022-12-30 18:19:39 -06:00
887d3b3d13 [ox/std] Remove some unnecessary/breaking checks in BasicString::set functions 2022-12-29 02:12:11 -06:00
b08559b3f3 [ox/model] MSVC fix 2022-12-19 00:19:28 -06:00
c9f1b3aaa3 [ox/claw] MSVC fix 2022-12-18 23:27:59 -06:00
907393dfe6 [nostalgia/studio] Fix MSVC issue 2022-12-18 23:18:24 -06:00
bd192ba47a [nostalgia/studio] Fix FDFilterItem to work on Windows 2022-12-18 21:56:30 -06:00
e2d5090f44 [nostalgia/core/userland] Fix namespace of forward declared Palette 2022-12-18 21:13:04 -06:00
b818c1e3d6 [ox/std] Change __has_include_nexts to __has_include 2022-12-18 21:11:41 -06:00
706f5b345a [ox/claw] Remove ambiguous second TypeInfoCatcher::setTypeInfo 2022-12-18 21:11:12 -06:00
22a7ff74ce [ox/std] Fix unnecessary implicit sign conversion 2022-12-18 21:04:44 -06:00
d8153e71e1 [nostalgia] Fix for Windows 2022-12-18 21:04:44 -06:00
4077f0bddc [ox] Fix for Windows 2022-12-18 21:04:44 -06:00
ad412177ab [nostalgia/studio] MSVC fixes for NFDE file dialog 2022-12-18 21:04:44 -06:00
1dddf4ad9d [ox] MSVC fixes 2022-12-18 16:39:20 -06:00
31e9af032a [nostalgia] Replace most new calls with ox::make 2022-12-17 22:30:49 -06:00
716b3d6022 [nostalgia/core/studio] Cleanup 2022-12-17 14:05:35 -06:00
9b36381b00 [nostalgia/studio] Fix config dir creation not create duplicate dirs 2022-12-17 14:00:39 -06:00
839a791ddd [ox/std] Add ox::make to wrap new in exception handling 2022-12-17 13:54:26 -06:00
0d040ad752 [nostalgia/tools/pack] Add PtrSize to GbaPlatSpec 2022-12-17 13:41:59 -06:00
b506c5defb [nostalgia/sample_project] Update type descriptors 2022-12-17 13:40:01 -06:00
26d6143006 [ox/model] Change <> markers for type params to ## in type IDs to deal with NTFS' ineptitude 2022-12-17 13:38:59 -06:00
44f45e64e9 [nostalgia/studio] Add ClawViewer for unknown types 2022-12-15 01:36:55 -06:00
79d255b63f [nostalgia/core/userland] Make palettes swappable in GL renderer 2022-12-11 08:38:38 -06:00
461e3d61ef [ox/preloader] Add ptr handling 2022-12-05 17:40:22 -06:00
030d46a999 [ox/std] Cleanup mGBA logging 2022-12-05 17:28:42 -06:00
cd4a9300a5 [ox/preloader] Fix Vector preloading 2022-12-04 22:31:51 -06:00
fe42702e88 [ox/oc] Fix to iterate to next field of parent after reading array 2022-12-04 14:55:29 -06:00
ea7ccf40b1 [ox/model] Fix null ptr use when describing nested Vectors 2022-12-04 01:48:56 -06:00
8e956c68b3 [nostalgia/core/glfw] Increase uninterruptedRefreshes from user input to 25 2022-12-03 20:29:09 -06:00
7434d949e7 [ox/std] Begin mGBA registers with REG_MGBA_ 2022-12-03 17:24:58 -06:00
1868d53ecb [ox/std] Remove write size output from mGBA logging function 2022-12-03 17:00:00 -06:00
abaa970396 [gbastartup] Add mGBA logging 2022-12-03 16:50:00 -06:00
3f86932ad8 [ox/std] Add mGBA logging 2022-12-03 16:48:07 -06:00
3040e6c90a [ox/preloader] Make Preloader use small string section of strings when able 2022-12-03 16:32:56 -06:00
86cbf66699 [nostalgia/tools/pack] Wrap preload operations with start/end allocs 2022-12-03 01:54:53 -06:00
ab8b1e4925 [nostalgia/core] Give preload version of AssetRef a default constructor 2022-12-03 01:53:45 -06:00
b39a125264 [nostalgia/core] Handle error in getting preload addr 2022-12-03 01:52:39 -06:00
517ffddf04 [ox/preloader] Fix ox::String handling, add start and end alloc functions 2022-12-03 01:47:04 -06:00
5bac497293 [ox/preloader] Fix SizeCather::pad 2022-12-03 01:43:45 -06:00
86c33019fe [ox/std] Fix VectorMemMap sizeOf 2022-12-03 01:42:23 -06:00
a946f8dae1 [ox/model] Fix sizeOf functions 2022-12-03 01:32:09 -06:00
7c07fc9726 [ox/preloader] Make Preloader::pad protected 2022-12-01 02:33:45 -06:00
640ea95c24 [nostalgia/core] Remove SignalHandler as parent to GBA version of AssetRef 2022-12-01 02:02:51 -06:00
7322056df2 [nostalgia/tools/pack] Use ox::preload function instead of bare model function in preloading 2022-12-01 02:02:28 -06:00
d68d8531e9 [nostalgia/tools/pack] Fix error message for missing rom-bin path 2022-12-01 02:01:07 -06:00
5be8ed533e [ox/preloader] Fix alignment and add preload function 2022-12-01 01:59:27 -06:00
0e0f43895a [nostalgia/tools/pack] Improve output and fix a sign conversion 2022-12-01 00:15:37 -06:00
8329bf9217 [nostalgia/core/gba] Remove unnecessary include 2022-12-01 00:14:20 -06:00
593a57a0ce [ox] Make setTypeInfo functions in model handlers consistent 2022-12-01 00:09:05 -06:00
50e2fadcd1 [ox/oc] Fix sub-object read not to return early 2022-11-30 22:51:57 -06:00
d82ec27296 [nostalgia/tools/pack] Update for BufferWriter::buff() change 2022-11-30 20:51:39 -06:00
ae26838324 [ox/preloader] Rename BufferWriter::data() to BufferWriter::buff(), make return type const ref 2022-11-30 20:49:52 -06:00
e0381cd98a [ox/preloader] Remove unused files 2022-11-30 20:49:13 -06:00
512522711a [ox/fs] Cleanup unnecessary c_str()s 2022-11-30 20:48:52 -06:00
858a30ee08 [ox/fs] Fix FileAddress paths initialized from StringView to null terminate 2022-11-30 20:48:09 -06:00
1839b68a4a [ox/claw] Remove temporary assert that was placed for debugging 2022-11-30 20:47:28 -06:00
3abcd0af8f [nostalgia/tools/pack] Add GbaPlatSpec 2022-11-30 20:47:02 -06:00
04c882388e [ox/preloader] Remove GbaPlatSpec 2022-11-30 02:26:24 -06:00
090fe28b44 [nostalgia] Integrate Ox Preloader 2022-11-30 01:51:45 -06:00
cbb496c59f [ox] Add StringView, Writer system, Preloader system 2022-11-30 01:45:11 -06:00
98f35140fe [nostalgia] Make GBA project setup respect host specific build dir 2022-11-23 00:05:28 -06:00
94c663ff77 [buildcore] Add ability to setup host specific build directories 2022-11-23 00:04:42 -06:00
52efae287b [nostalgia/core] Cleanup CMakeLists.txt 2022-11-10 21:55:37 -06:00
64ac8f7dbf [nostalgia/core/glfw] Add ImGui theme 2022-10-29 20:09:48 -05:00
a049861f3a [nostalgia/core] Fix clang-tidy warnings 2022-09-24 23:54:17 -05:00
ea55a33b60 [nostalgia/core] Fix possible div by zero in idxToPt 2022-09-24 20:38:49 -05:00
cef415d34f [buildcore] Fix type annotation error in pybb 2022-08-18 00:31:29 -05:00
c6c18c18d3 [ox/std] Add support for custom allocators in Vector 2022-08-16 01:30:12 -05:00
bc98c42be6 [ox/model] Make TypeStore::getInit always overwrite old value 2022-08-13 20:42:06 -05:00
b0faac199f [buildcore] Cleanup type annotations in Python scripts 2022-08-13 20:32:53 -05:00
84d54ba340 [ox/mc] Fix decoding of int64s 2022-08-13 20:30:48 -05:00
714d9fe433 [ox/std] Add support for integral types as keys in HashMap 2022-08-07 10:23:09 -05:00
28960dd680 [ox/std] Add toLittleEndian and toBigEndian functions 2022-08-07 10:22:45 -05:00
c0081619e6 [buildcore] Put Python detection inside ENV_RUN call 2022-08-03 00:47:08 -05:00
a119f96a73 [buildcore] Cleanup pybb error handling and type annotations 2022-08-03 00:42:10 -05:00
fb5934975d [nostalgia/core] Cleanup formatting error in typeconv.hpp 2022-08-03 00:40:13 -05:00
e822bf2ccb [nostalgia/core] Add missing nodiscards to clipboard types 2022-08-03 00:39:40 -05:00
d9f0415074 [nostalgia/core/gba] Make GBA CBB data static 2022-08-03 00:38:54 -05:00
ef04e03d11 [nostalgia/core/userland] Fix CLion warnnings 2022-08-03 00:38:01 -05:00
41b1c6eb25 [nostalgia/player] Make sprites in demo scene auto-scroll slower 2022-08-03 00:37:18 -05:00
6a02161b37 [nostalgia/player] Make sprites in demo scene auto-scroll 2022-08-02 01:32:46 -05:00
3b19909eb1 [nostalgia/core/glfw] Set window title to app name 2022-08-02 01:31:18 -05:00
35ae54b336 [nostalgia/core] Add ability to set a BG's CBB 2022-08-02 01:30:53 -05:00
c6ba893583 [ox/std] Add default constructor to ox::Error 2022-08-01 21:49:34 -05:00
57785ebf99 [ox/model] Remove unused includes 2022-08-01 21:49:07 -05:00
379c939208 [nostalgia/core/studio] Move Select tool to first tool in TileSheetEditor toolbox 2022-07-30 21:13:41 -05:00
0d9c7867aa [ox/std] Add is_const_v 2022-07-30 18:28:57 -05:00
ed025bfa31 [nostalgia/studio] Make Project update file index when a file is added 2022-07-30 18:26:20 -05:00
29fd9b8c4f [nostalgia/core] Make invalid palette lookups return 0 instead of garbage memory 2022-07-30 14:47:44 -05:00
c8dc14dd8e [nostalgia/core/studio] Add key binding to for switching tools in TileSheetEditor 2022-07-30 14:45:17 -05:00
275e9dbff1 [nostalgia] Add NewMenu for creating new files 2022-07-30 14:28:50 -05:00
b14e41d057 [ox/fs] Change FileAddress default type from Inode to None 2022-07-29 21:37:58 -05:00
f8f5b059ed [ox/std] Fix Result::moveTo to not move if error 2022-07-24 01:22:40 -05:00
1a8f2ce69d [nostalgia/core/userland] Cleanup 2022-07-21 02:47:44 -05:00
1302d5bf85 [ox] Add const char *const* fieldString handlers to OC and MC writers 2022-07-21 02:18:56 -05:00
6b9d9c50c7 [ox/fs] Add separate case for write in FileLocation model 2022-07-21 02:17:11 -05:00
fd89a9abb0 [nostalgia/core/glfw] Cleanup and add Escape button 2022-07-21 02:16:26 -05:00
d2d9aae9d5 [nostalgia/sample_project] Update integer type descriptor names 2022-07-21 02:14:40 -05:00
3a2995a67b [ox/std] Fix Vector move to not do small vector opt in consteval 2022-07-19 21:10:50 -05:00
6ddeb29c92 [ox/model] Fix move constructors and operators in ModelValue system 2022-07-19 21:09:02 -05:00
e71866b1a2 [ox/model] Remove _t from integer type descriptors 2022-07-19 20:49:13 -05:00
63c8503cb6 [ox/std] Remove std::iterator 2022-07-14 21:37:04 -05:00
94e3ed217a [ox] Fix for GCC pedantry around potential null ptrs that will never happen 2022-07-13 21:20:11 -05:00
db3e9c5d93 [nostalgia/studio] Fix config path for Windows 2022-07-12 02:07:43 -05:00
dac33e63fd [nostalgia] Cleanup .gitignore 2022-07-12 01:48:00 -05:00
a6ff2e81c7 [nostalgia] Update model example code in Developer Handbook 2022-07-12 00:56:33 -05:00
ca9bf786b1 [ox/fs] Make some PassThroughFS functions noexcept 2022-07-12 00:52:28 -05:00
82dc1895d5 [ox/std] Fix VectorAllocator copy constructor to take a const reference 2022-07-10 16:01:55 -05:00
6908199428 [nostalgia/studio] Change configio functions to take auto string type 2022-07-10 15:52:36 -05:00
fdc57ce7b8 [nostalgia/core/studio] Fix cast of 32 bit int to pointer 2022-07-10 15:48:14 -05:00
c80a8838a4 [nostalgia] Setup Glad as GL loader 2022-07-10 02:46:26 -05:00
e7ecb65f7a [buildcore] Fix setup-build.py to omit win platform for non-Windows builds 2022-07-10 02:43:12 -05:00
a413dd06ec [nostalgia] Explicitly specify OBJC as requirement for Mac build 2022-07-10 01:38:40 -05:00
3310dbba51 [jsoncpp] Add MSVC check 2022-07-09 22:05:53 -05:00
99bdf30c52 [nostalgia] Fix MSVC build 2022-07-09 21:42:26 -05:00
2fa74069a9 [imgui] Add MSVC check to build script 2022-07-09 21:39:19 -05:00
d417d20bef [glad] Add glad 2022-07-09 21:39:19 -05:00
10deddfd07 [nostalgia] Fixes for MSVC 2022-07-09 21:39:19 -05:00
399f117eab [buildcore] Add support for MSVC 2022-07-09 21:39:10 -05:00
6e51c221af [nostalgia/sample_project] Update type descriptors 2022-07-09 21:31:51 -05:00
793f635d2c [ox/model] Change B:* type names to B.* 2022-07-09 21:30:11 -05:00
e8a3f5ea9a [nostalgia/tools/pack] Implement the long stubbed out pathToInode replacement 2022-07-09 03:07:04 -05:00
522bb42e8f [ox/model] Remove ModelObject copyModel and moveModel operations
These operations will require a lot more work to work correctly. This feature might be worth revisiting at some point though.
2022-07-09 01:43:21 -05:00
3ca252320f [ox/model] Remove ModelValue::operator= and add iterators to ModelObject 2022-07-09 01:02:30 -05:00
f8d2b9e1a7 [ox/mc] Remove debug line from test 2022-07-09 00:43:28 -05:00
4223aae280 [nostalgia/sample_project] Update type descriptors 2022-07-07 20:05:00 -05:00
93e72ae938 [ox/model] Fix Vector support for ModelValue system 2022-07-07 20:02:26 -05:00
7d95dbaa99 [ox/fs] Fix PassthroughFS mkdir for recursive cases 2022-07-04 12:40:57 -05:00
6653715795 [nostalgia/core/gba] Fix GBA for updated model system 2022-07-04 12:40:22 -05:00
8d01882ed5 [nostalgia/core] Update TypeStore::loadDescriptor to take type version 2022-07-04 12:36:58 -05:00
ca64f95be3 [ox] Overhaul serialization/model system and add ModelValue/ModelObject/ModelUnion variant system 2022-07-04 02:39:20 -05:00
bc391b45fc [ox/model] Cleanup alreadyExisted checks in DescWriter 2022-05-29 22:35:36 -05:00
a574cfc2aa [nostalgia/sample_project] Update TileSheet type descriptor 2022-05-29 22:27:59 -05:00
53f03eac22 [nostalgia/core/gba] Use actual types for type info for GBA target models 2022-05-29 22:23:44 -05:00
c4a1655a8f [ox] Make model type version mandatory 2022-05-29 22:21:05 -05:00
3834de3318 [nostalgia/studio] Use Nostalgia TypeStore for Project 2022-05-29 01:29:33 -05:00
285a0f9b24 [nostalgia/core] Add custom TypeStore with type desc loader 2022-05-29 01:27:35 -05:00
ab1dc83630 [nostalgia/studio] Make studio only pass key input to Editors if it does not consume it itself 2022-05-29 01:24:48 -05:00
313e60c3d8 [nostalgia/sample_project] Update type descriptors 2022-05-29 01:24:37 -05:00
ee851d7013 [ox/claw] Add readClaw function that uses an existing instance of T 2022-05-29 01:19:25 -05:00
40cc222cd8 [ox/model] Add Reflect op type, fix union field type output, bump desc type versions 2022-05-29 01:17:10 -05:00
ff473bf465 [nostalgia/sample_project] Add new type descriptors 2022-05-28 22:21:47 -05:00
d5252a45d3 [ox/oc] Make write omit lists if length is 0 2022-05-28 20:33:05 -05:00
717bbd2e0f [nostalgia/studio] Update for new model type store system 2022-05-28 20:00:28 -05:00
885f4a8713 [ox/std] Make Optional run destructor and constexpr friendly 2022-05-28 19:56:43 -05:00
9c3a46d144 [ox] Make TypeStore own all type info 2022-05-28 19:55:46 -05:00
440d9c0a46 [ox/std] Add another redundant check to suppress GCC's pedantry 2022-05-28 18:58:33 -05:00
bfb441594f [nostalgia/core] Update for Ox HashMap::at return type change 2022-05-28 03:22:05 -05:00
779b18e410 [ox/std] Add operator std::string and operator const char* to String 2022-05-28 03:19:50 -05:00
addc2233e7 [ox/std] Make HashMap::at return a pointer instead of reference 2022-05-28 03:18:10 -05:00
dfd6670dfe [ox/std] Delete UniquePtr copy operators 2022-05-28 02:37:15 -05:00
5e2e459650 [nostalgia] Remove tea-v dependency 2022-05-26 00:34:03 -05:00
296ebe9d78 [nfde] Suppress warnings 2022-05-25 21:40:46 -05:00
857094a454 [nostalgia] Update root CMake file for new dependencies 2022-05-25 21:23:24 -05:00
0adfaa7901 [nostalgia/studio] Add export option to tilesheet editor 2022-05-25 21:22:29 -05:00
2448bdcc82 [nostalgia/studio] Add null check for key input to active editor 2022-05-25 21:19:59 -05:00
0e8d2d7640 [nostalgia/studio] Switch file dialog to NFDE and add save file dialog 2022-05-25 21:19:27 -05:00
a9d5272176 [nostalgia/geo] GCC 12 fix 2022-05-25 21:18:41 -05:00
729cde5bf9 [lodepng] Add lodepng 2022-05-25 21:15:43 -05:00
246db22162 [nfde] Update deprecated function and make library an object library 2022-05-25 20:39:10 -05:00
f62d29a273 Merge commit '004534c8e7e16c6414b6f7203be81829b0650411' as 'deps/nfde' 2022-05-25 20:36:50 -05:00
004534c8e7 Squashed 'deps/nfde/' content from commit 28ade5a5c
git-subtree-dir: deps/nfde
git-subtree-split: 28ade5a5cc5d17cea8fe4034572cac8fd54eb53f
2022-05-25 20:36:50 -05:00
9ad5771767 [nostalgia/core] Make type conv system access type info correctly 2022-05-25 01:58:11 -05:00
a8244b9313 [nostalgia/core/gba] Fix GCC 12 breaks 2022-05-25 01:15:07 -05:00
9417307a8e [ox/std] Fix problems in building with GCC 12 2022-05-25 01:07:48 -05:00
fd0d15b28e [nostalgia/studio] Fix memory leak of ProjectExplorer not getting freed 2022-05-25 01:04:43 -05:00
c7af7bc54c [ox/fs] Fix memory leak in FileAddress move 2022-05-24 20:31:30 -05:00
74effd3611 [nostalgia/core/studio] Add insert/delete tile actions and make double click on subsheet open SubsheetEditor 2022-05-22 16:15:58 -05:00
4a921cf65f [nostalgia] Fix compiler warnings 2022-05-21 20:08:45 -05:00
1529c82bec [nostalgia/core] Make AssetContainer non-copyable and non-movable 2022-05-21 19:36:44 -05:00
ec5898a897 [buildcore] Only append Qt path to CMake command if using Qt 2022-05-21 16:22:15 -05:00
bab9776fe4 [buildcore] Fix Python 3 detection to work if python command missing 2022-05-21 16:21:24 -05:00
f2ddd15d63 [ox] Fix compiler warnings 2022-05-21 16:17:32 -05:00
062fa07f4d [nostalgia/core/studio] Remove unimplemented functions from TileSheetEditorView 2022-05-21 03:22:52 -05:00
f6ebb5b29f [nostalgia/core] Fix unnecessary ox::String instantiations 2022-05-21 03:09:04 -05:00
7a942ac83c [nostalgia/core] Remove unnecessary serialization and deserialization from type conversion 2022-05-20 02:02:14 -05:00
4ee08441b0 [ox/claw] Fix error codes to differ 2022-05-19 22:22:31 -05:00
6854e658a0 [nostalgia/studio] Fix TileSheetEditor to switch to appropriate subsheet on undo/redo 2022-05-18 21:15:11 -05:00
71f6364ea3 [ox/fs] Fix FileAddress(String) to allocate correct amount of memory 2022-05-18 03:27:45 -05:00
5c5f8e748a [nostalgia/core/studio] Add key shortcuts for changing the selected color 2022-05-17 21:24:20 -05:00
1edd72dc7d [nostalgia/studio] Add BaseEditor::keyStateChanged 2022-05-17 21:23:49 -05:00
eac471b21b [nostalgia] Add constructors needed by construct_at 2022-04-10 03:04:24 -05:00
b5210ff897 [ox/std] Add ox::errCode for extracting error code from Error 2022-04-10 03:04:15 -05:00
9d74eca436 [ox/std] Use std::construct_at in Vector instead placement new 2022-04-10 03:03:07 -05:00
cf7f9b9088 [ox/std] Add std::construct_at 2022-04-10 03:02:57 -05:00
edf4571ff7 [nostalgia] Split studio::Editor into Editor and BaseEditor 2022-04-09 16:20:39 -05:00
56964e197a [nostalgia] Split PaletteEditor into Imgui and general files, other cleanup 2022-04-08 01:05:32 -05:00
632ade60b9 [nostalgia/studio] Add active editor tab to config 2022-04-04 01:11:01 -05:00
f0cbcbbddf [nostalgia/core/studio] Fix unnecessary copies 2022-04-04 01:10:16 -05:00
a40c768872 [nostalgia/core/studio] Fix subsheet editor height 2022-04-03 02:20:16 -05:00
60d67218db [nostalgia/studio] Make opening a file switch to its tab 2022-04-03 00:34:37 -05:00
83ad1623d3 [nostalgia/core/studio] Add PaletteEditorImGui::itemDisplayName() 2022-04-03 00:30:53 -05:00
3fd25782c0 [nostalgia/core/studio] Add unsaved changes indicator to editor tabs 2022-04-02 21:13:08 -05:00
0375f4b785 [buildcore] Enable universal binaries for Mac release builds 2022-04-02 16:49:07 -05:00
71e0f181ea [nostalgia] Add PaletteEditor 2022-04-02 16:47:48 -05:00
99987ee423 [nostalgia/geo] Add Bounds::setPt2 2022-04-01 20:54:45 -05:00
dd12857ba8 [nostalgia/studio] Add UndoCommand::mergeWith 2022-03-31 01:38:59 -05:00
10d2f2c064 [nostalgia/core/studio] Fix TileSheetEditor cut to use undo stack 2022-03-27 03:19:20 -05:00
041e571626 [nostalgia/core/studio] Fix select not to go beyond the appropriate idx 2022-03-27 02:35:35 -05:00
a02d496de5 [ox/std] Add Result::Result(const Result<U> other) 2022-03-26 16:53:00 -05:00
053d35b31c [nostalgia] Make core::shutdown return void and add GBA implementation 2022-03-25 01:28:26 -05:00
6eb4070d97 [nostalgia/core/studio] Add palette picker combo box 2022-03-24 20:54:17 -05:00
ef3a28846c [nostalgia/studio] Add ability to index and list files of different types in Project 2022-03-24 20:53:29 -05:00
27b7b11146 [nostalgia/studio] Remove toolbar 2022-03-24 20:53:04 -05:00
c7c1029ad8 [nostalgia] Specifiy needed languages in CMake project declaration 2022-03-24 20:47:47 -05:00
82021b8ee5 [ox] Cleanup mc and std tests 2022-03-24 20:47:25 -05:00
803cd28087 [ox/fs] Add FileAddress::FileAddress(ox::String) and FileAddress::operator==(ox::String) 2022-03-24 20:45:22 -05:00
6e742e5d45 [nostalgia/core/glfw] Cleanup key input system 2022-03-24 01:00:45 -05:00
b4a7b7690e [nostalgia] Remove conan from README 2022-03-24 00:58:38 -05:00
e1c82117f9 [nostalgia/core] Fix GBA input 2022-03-23 03:21:34 -05:00
b214a7612a [nostalgia/core/glfw] Fix key down initial state 2022-03-23 03:20:38 -05:00
033ffc2e15 [nostalgia/core/gba] Fix GBA input 2022-03-23 03:19:55 -05:00
9161a1a8ef [ox/std] Add BasicString::beginsWith 2022-03-23 03:08:04 -05:00
ccfc7d5405 [ox/std] Remove placement new from Array 2022-03-23 03:05:50 -05:00
0790d8e9c2 [jsoncpp] Remove install from CMake file 2022-03-20 02:17:00 -05:00
d76d525054 [nostalgia/studio] Add keyboard shortcuts 2022-03-20 02:08:54 -05:00
ea318bb6c8 [nostalgia/core] Add key event handler 2022-03-20 01:56:48 -05:00
2223fe7863 [nostalgia/core] Rename event handler to update handler 2022-03-19 20:11:53 -05:00
8e660f6b15 [nostalgia/geo] Make geo an object library 2022-03-19 19:40:35 -05:00
3041ce55f6 [nostalgia/studio] Fix Studio lib install location 2022-03-19 19:34:04 -05:00
96ca0cb686 [nostalgia/studio] Add finished signal to Task 2022-03-19 19:32:30 -05:00
2881a28dc8 [nostalgia/core/studio] Fix click bounds checking for TileSheet editor 2022-03-17 04:15:54 -05:00
2a552326e9 [nostalgia/glutils] Fix glutils install 2022-03-17 04:14:01 -05:00
a6f9dfaa2e [nostalgia/studio] Set constant refrest to false 2022-03-17 04:06:30 -05:00
0a9bc78a8d [jsoncpp] Remove bin path CMake settings 2022-03-17 03:54:18 -05:00
b43f5e3b98 [ox/std] Fix MaxValue for signed ints 2022-03-17 03:53:46 -05:00
38cb3fc962 [nostalgia] Make default constant refresh setting false 2022-03-17 03:42:39 -05:00
5c783da3fc [ox/mc] Re-enable test 2022-03-16 03:20:24 -05:00
179d311598 [ox/std] Fix C++20 deprecation issue with Vector::iterator 2022-03-16 03:19:45 -05:00
0739c7d611 [ox] Fix for MSVC 2022-03-16 02:53:07 -05:00
c6780e41dd [nostalgia] Put CMake project call before buildcore include 2022-03-13 03:09:16 -05:00
4b6b069bf1 [imgui] Add missing CMakeLists.txt 2022-03-12 11:59:23 -06:00
428a47bab8 [nostalgia/core/studio] Add sizing policy to palette table 2022-03-12 11:41:30 -06:00
91036aaaeb [buildcore] Make using a package manager optional 2022-03-12 02:58:41 -06:00
58514a80cc [nostalgia] Remove conanfile 2022-03-12 02:56:00 -06:00
b4238279ab [nostalgia/core] Switch away from Conan ImGui 2022-03-12 02:55:35 -06:00
bc6128b198 [nostalgia] Fix OBJCXX option not to set for GBA builds 2022-03-12 02:55:22 -06:00
919e637822 [nostalgia/studio] Switch awayy from removed ImGui function 2022-03-12 02:38:35 -06:00
9f02c544d4 [nostalgia/studio] Remove imgui as direct dependency 2022-03-12 02:38:06 -06:00
3a5a4894c0 [nostalgia] Remove conan from main CMakeLists.txt, remove glfw & imgui includes from GBA build 2022-03-12 02:36:32 -06:00
52df6efcfc [jsoncpp] Switch to object library 2022-03-12 02:35:48 -06:00
41cc78db66 [ox] Fix jsoncpp include path export 2022-03-12 02:34:04 -06:00
f910961111 Merge commit 'f9801a968fb15cb74371f18a507c2004b852b4b6' as 'deps/imgui' 2022-03-11 22:44:06 -06:00
f9801a968f Squashed 'deps/imgui/' content from commit f33737806
git-subtree-dir: deps/imgui
git-subtree-split: f3373780668fba1f9bd64c208d05c20b781c9a39
2022-03-11 22:44:06 -06:00
d294bbde85 [imgui] Remove conan dest imgui dir 2022-03-11 22:43:06 -06:00
7005ef0bcf [ox] Make jsoncpp only included for builds using stdlib 2022-03-11 22:36:14 -06:00
1b49962a8e [nostalgia] Remove Conan jsoncpp package 2022-03-11 22:30:59 -06:00
5a4b539ac1 [ox] Bundle jsoncpp under deps 2022-03-11 22:30:42 -06:00
b96d33bbb9 Merge commit '7eef3bf1545663791252b2a3cad437ec9fcfc9cc' as 'deps/ox/deps/jsoncpp' 2022-03-11 22:21:02 -06:00
7eef3bf154 Squashed 'deps/ox/deps/jsoncpp/' content from commit 5defb4ed
git-subtree-dir: deps/ox/deps/jsoncpp
git-subtree-split: 5defb4ed1a4293b8e2bf641e16b156fb9de498cc
2022-03-11 22:21:02 -06:00
c152bb9a66 [nostalgia] Switch from Conan to bundled dep glfw 2022-03-11 22:16:59 -06:00
3e080b95d5 Merge commit 'a120e3f70101ebe90f92fe59436a37e6caf42adf' as 'deps/glfw' 2022-03-11 22:04:50 -06:00
a120e3f701 Squashed 'deps/glfw/' content from commit 7d5a16ce
git-subtree-dir: deps/glfw
git-subtree-split: 7d5a16ce714f0b5f4efa3262de22e4d948851525
2022-03-11 22:04:50 -06:00
6885aca0e8 [nostalgia] Cleanup 2022-03-11 22:01:31 -06:00
7df978605f [nostalgia/core] Add Fill command to tilesheet editor and make ClipboardObject more efficient 2022-03-11 20:41:36 -06:00
ae80d22769 [nostalgia/core/studio] Fix TileSheet Editor paste bounds checking 2022-03-11 02:11:58 -06:00
415c2574bb [nostalgia/core/studio] Add copy/cut/paste support to TileSheet Editor 2022-03-10 20:42:21 -06:00
a6983ce53b [nostalgia/core] Add object clipboard in addition to text clipboard 2022-03-10 20:41:22 -06:00
92651973ce [nostalgia/studio] Hook up Copy/Cut/Paste commands 2022-03-10 20:40:51 -06:00
4dd1d4331b [nostalgia/geo] Fix Point + and * operators to return the computed result 2022-03-10 19:43:28 -06:00
b502b8cc30 [nostalgia/core/studio] Add ability to select pixels for copy/paste 2022-03-10 02:39:22 -06:00
3486734b50 [nostalgia/geo] Add ability to init Bounds from two Points 2022-03-10 02:38:25 -06:00
0b6a36bedc [nostalgia/studio] Make opening a new project close all currently open files 2022-03-06 14:57:19 -06:00
e4f3ec52d0 [nostalgia/core/studio] Add initialization for SubSheetEditor show var 2022-03-06 01:23:01 -06:00
e0b2f37925 [nostalgia/core/studio] Adjust size of SubSheet Editor in cases without size input 2022-03-05 18:29:50 -06:00
94653cb9af [nostalgia/core] Fix TileSheet::SubSheet::setPixelCount 2022-03-05 18:27:45 -06:00
b225d976f5 [nostalgia/core/studio] Cleanup 2022-03-05 17:49:12 -06:00
f40c912365 [nostalgia/core] Cleanup reading of SubSheet::pixels 2022-03-05 16:00:32 -06:00
20a61de9fd [nostalgia/core/studio] Fix subsheet editor to allocate correct number of pixels 2022-03-05 15:51:39 -06:00
2f7c62f2ef [nostalgia/core/studio] Add SubSheet editor 2022-03-05 11:40:54 -06:00
921cb97a14 [nostalgia/core] Make clicks trigger 10 refreshes 2022-03-05 11:40:05 -06:00
4966aaffe4 [nostalgia/studio] Make About modal and ProjectExplorer hide-able 2022-03-05 11:39:13 -06:00
a092c393a6 [ox/claw] Improve Claw read error reporting 2022-03-05 11:38:20 -06:00
1372ea9bc9 [ox/std] Make toStr(Error)'s return type template-able 2022-03-05 11:37:55 -06:00
e90d6da01b [ox/std] Fix problem with calling Vector::insert on end of list 2022-03-05 11:37:07 -06:00
191298a4ca [nostalgia/core/studio] Change some lambdas to capture by reference 2022-03-03 19:24:55 -06:00
ebb7d54403 [nostalgia/core] Fix TileSheet::validateSubSheetIdx 2022-03-03 19:24:24 -06:00
d983746f6c [nostalgia/sample_project] Change Claw headers to MC 2 2022-03-03 01:26:38 -06:00
6cebe52904 [ox] Fix MC negative int encoding and bump MC version to 2 2022-03-03 01:25:54 -06:00
bd2dd3f000 [ox/std] Add Integer_c concept to fix string + and += duplication of std::size_t with some compilers/platforms 2022-03-02 23:42:12 -06:00
187edcd1d3 [ox/std] Add is_move_constructible 2022-02-26 22:53:50 -06:00
0a48692ee1 [nostalgia] Update Developer Handbook 2022-02-26 22:52:35 -06:00
e8a046c2dc [nostalgia] Add basic support for subsheets 2022-02-26 22:48:18 -06:00
329ecb3266 [ox/model] Cleanup template style 2022-02-26 22:47:19 -06:00
9762a38a44 [nostalgia/core] Make readObj move output object instead of copy 2022-02-26 10:12:25 -06:00
13ba8430c7 [ox/std] Change Result(type&&) to use forward 2022-02-26 10:05:11 -06:00
8d0bf40037 [ox/std] Fix Vector copy assign not to assign to uninitialized memory 2022-02-26 03:02:16 -06:00
21883a046e [ox/std] Add ox::join(del, strList) 2022-02-23 23:41:31 -06:00
7c6df56414 [ox/std] Add String::operator+=(std::size_t) 2022-02-23 23:40:48 -06:00
642b2b04b7 [ox/std] Make ResizedInt use static_cast to get better error messages 2022-02-23 23:40:02 -06:00
69b3245ba3 [ox/std] Make ~Vector constexpr 2022-02-23 23:36:28 -06:00
294c4547d0 [nostalgia/core] Remove TileSheet::SubSheet::size 2022-02-23 22:12:41 -06:00
778cb78f31 [nostalgia/studio] Add creation of StudioContext 2022-02-21 20:11:48 -06:00
4843e28b9a [nostalgia/studio] Add StudioContext 2022-02-21 20:05:51 -06:00
9bd10bac78 [nostalgia/geo] Cleanup geo package 2022-02-21 20:02:27 -06:00
9b1275e704 [nostalgia/core/studio] Add support for TileSheetEditor unsaved changes status 2022-02-21 20:00:21 -06:00
bc9b896d3d [nostalgia/studio] Add missing Signal to UndoStack 2022-02-21 19:58:03 -06:00
917d88f997 [nostalgia/core/studio] Make TileSheetEditorModel write type descriptor 2022-02-21 19:55:24 -06:00
5c28ebe6d7 [nostalgia/studio] Fix UndoStack to trigger signals on initial command push 2022-02-21 19:43:10 -06:00
d14bab7abd [nostalgia/studio] Add missing Editor header to studioapp.hpp 2022-02-21 02:26:09 -06:00
3dd60965c4 [nostalgia] Replace delete with safeDelete 2022-02-21 02:21:03 -06:00
eea466750c [ox/std] Cleanup BasicString 2022-02-21 02:12:12 -06:00
8a93e44aba [ox] Replace delete invocations with safeDelete 2022-02-21 02:10:26 -06:00
812e4b4c96 [ox/std] Add safeDelete functions 2022-02-21 02:07:53 -06:00
af97a834c0 [ox/std] Add safeDelete functions 2022-02-21 02:00:11 -06:00
5faafad54c [ox/std] Fix BasicString(const char*) for Linux 2022-02-20 21:15:30 -06:00
05224e3fb5 [nostalgia/studio] Remove unnecessary c_str conversion 2022-02-20 20:07:33 -06:00
64c74cb9c1 [ox/std] Fix infinite recursing in BasicString(const char*) 2022-02-20 15:02:36 -06:00
4e2d7ea9dd [ox/std] Fix Vector::expandCap to deallocate the correct amount of memory 2022-02-19 16:42:21 -06:00
b517cf6858 [nostalgia/core/studio] Cleanup TileSheetEditorModel update tracking 2022-02-19 03:06:18 -06:00
db2a225855 [nostalgia/studio] Add redo and undo triggered signals to UndoStack 2022-02-19 03:05:45 -06:00
56ec063658 [nostalgia/studio] Get save working 2022-02-19 01:45:37 -06:00
5b7dacd51f [ox/claw] Set default write format to MetalClaw 2022-02-19 01:44:27 -06:00
53939a28c6 [ox/std] Add const char *toStr(const ox::Error&) 2022-02-19 01:43:29 -06:00
dc2a5039f8 [ox/std] Fix hardware detection for GCC on ARM64 2022-02-19 01:34:43 -06:00
f9c3c17592 [ox/std] Make Vector::back constexpr 2022-02-19 01:34:20 -06:00
713f5c4bce [nostalgia/core] Add ability to chain converters 2022-02-18 00:54:10 -06:00
1ceb76ee6d [buildcore] Fix lldb command to allow args 2022-02-17 21:31:56 -06:00
00852fad5a [nostalgia/tools/pack] Add conversion from TileSheet to CompactTileSheet 2022-02-17 21:31:25 -06:00
b87c2f0c50 [nostalgia/core] Expand conversion system to allow raw-to-raw 2022-02-17 21:29:46 -06:00
fba203a1e7 [nostalgia/core] Add NostalgiaCore-Headless 2022-02-17 21:26:56 -06:00
c1fc3d48b2 [ox/std] Replace some OX_USE_STDLIBs with __has_include 2022-02-17 21:26:16 -06:00
3f446a64c5 [nostalgia/geo] Fix Vec2 test 2022-02-17 06:33:50 -06:00
77b270e084 [nostalgia/core] Change TileSheet version conv pixels copy to a move 2022-02-17 04:31:15 -06:00
7ac7909510 [nostalgia/core] Upgrade TileSheet format to support subsheets and add conversion system 2022-02-17 04:27:23 -06:00
3c44c86e91 [nostalgia/studio] Replace Editor opening error logging with oxErrorf 2022-02-17 04:27:04 -06:00
21d12fee94 [ox] Make model TypeVersion mandatory so Claw can do version checking 2022-02-17 04:09:44 -06:00
3389656ecf [ox/claw] Fix typo in error msg 2022-02-17 03:31:20 -06:00
0c6e47e0b3 [ox/claw] Fix Claw read to check for type/version compatibility 2022-02-17 02:50:14 -06:00
1d17b3df82 [ox/std] Remove use of emplace_back from ox::Array constructor 2022-02-17 01:52:12 -06:00
22216c66d6 [nostalgia/core/studio] Add color preview to color picker in TileSheetEditor 2022-02-16 20:52:34 -06:00
462375aa5d [nostalgia/core] Rename NostalgiaGraphic and NostalgiaPalette to TileSheet and Palette 2022-02-16 20:25:00 -06:00
75f0b3a606 [nostalgia/core/studio] Cleanup 2022-02-16 20:20:48 -06:00
5eea7abc4d [nostalgia/core] Fix NostalgiaGraphic::getPixel4Bpp 2022-02-16 20:18:17 -06:00
302dd23a36 [nostalgia/core/studio] Get Undo/Redo working 2022-02-16 20:17:33 -06:00
c92ecdf499 [nostalgia/studio] Get Undo/Redo working 2022-02-16 20:16:49 -06:00
72ce8ea4d9 [nostalgia/geo] Simplify Vec2 2022-02-16 20:16:16 -06:00
8927f0e9c8 [ox/std] Cleanup oxDebug static_asserts 2022-02-16 20:13:31 -06:00
ff5b7577a4 [buildcore] Fix pybb mkdir 2022-02-16 20:12:51 -06:00
b7f726f4fd [nostalgia/core] Get TileSheetEditor's palette view working 2022-02-16 02:34:43 -06:00
c1a374ca04 [nostalgia/core/glfw] Add extra draw before waiting for event to handle possible user input 2022-02-16 02:32:27 -06:00
0e4bebcc3d [ox/std] Change initial Vector size to small vector size 2022-02-16 02:28:00 -06:00
bb0592ade8 [nostalgia/core] Fix NostalgiaGraphic::setPixel 2022-02-16 02:11:27 -06:00
627fb387e6 [ox/std] Add operator+(...) to BString 2022-02-16 01:57:03 -06:00
99cc853b94 [nostalgia/core/studio] Fix issue with pixel idx lookup in draw command 2022-02-14 01:38:56 -06:00
60e259ca34 [nostalgia/geo] Add comparison operators to Vec 2022-02-14 01:37:00 -06:00
0e041a666a [nostalgia/core/studio] Fix DrawCommand not to allow appending of duplicates 2022-02-13 23:49:44 -06:00
95f3c5b62a [nostalgia/core/studio] Cleanup to ensure ongoing draw command ending 2022-02-13 23:34:57 -06:00
d792e4c515 [nostalgia/core/studio] Put TileSheetEditor draw command in UndoCommand 2022-02-13 23:23:59 -06:00
4f69f027ef [nostalgia/studio] Make UndoCommand::redo execute as soon as pushed 2022-02-13 23:22:48 -06:00
3785d192f9 [nostalgia/geo] Add model to Vec2 2022-02-13 14:22:11 -06:00
71f70cb2e6 [nostalgia/world] Update models 2022-02-13 13:39:10 -06:00
18f02ae25e [ox/model] Add oxModelFieldRename macro 2022-02-13 13:37:48 -06:00
f89d69e293 [nostalgia] Update developer handbook 2022-02-13 12:07:44 -06:00
f112f060c9 [nostalgia/geo] Rename library artifact to NostalgiaGeo 2022-02-13 12:07:18 -06:00
90723b718b [nostalgia/geo] Add iterators to Vec2 2022-02-13 12:04:58 -06:00
8774f1c062 [nostalgia/core/studio] Break out TileSheetEditor application logic 2022-02-13 11:17:57 -06:00
320df614a9 [nostalgia] Rename common package to geo 2022-02-13 04:03:10 -06:00
0aa71f1dbb [nostalgia/core/studio] Decouple core TileSheetEditor from ImGui 2022-02-13 03:34:12 -06:00
7370b23c9d [nostalgia/core/studio] Cleanup and decouple main TileSheetEditor drawing from ImGui 2022-02-13 02:25:14 -06:00
779dd1fd05 [nostalgia/core] Cleanup 2022-02-13 02:24:01 -06:00
41cebff5fc [nostalgia/core] Add Context buttonDown function 2022-02-13 02:23:00 -06:00
0e7a090d28 [nostalgia/common] Add Vec2 type 2022-02-13 02:18:53 -06:00
142c78db0e [nostalgia/core] Add missing change for constant refresh option 2022-02-12 16:06:58 -06:00
34221f086c [nostalgia] Update for compatibility with Ox changes 2022-02-12 14:39:04 -06:00
610dc2ceca [ox/std] Move ox::defines::OS to ox::OS 2022-02-12 14:22:28 -06:00
8847b2b2ed [nostalgia/core/glfw] Put wait for event in main loop to prevent processor waste 2022-02-10 21:31:00 -06:00
f9d3521fe7 [nostalgia/core] Change how gba_timer_t is configured 2022-02-10 21:28:54 -06:00
0841b56399 [nostalgia/core/gba] Fix code formatting error 2022-02-10 02:20:00 -06:00
2390ae9f7d [nostalgia/glutils] Make framebuffer default size 1x1 2022-02-10 02:17:23 -06:00
5ea36836bd [ox/model] Make model friend macro constexpr and noexcept 2022-02-10 02:06:13 -06:00
f4895948e2 [nostalgia] Update developer handbook 2022-02-10 02:05:11 -06:00
a64aa8b586 [nostalgia/studo] Misc cleanup 2022-02-10 02:04:38 -06:00
959f75d2db [ox/fs] Cleanup unnecessary reinterpret_casts 2022-02-10 02:02:44 -06:00
0d368b3c02 [ox/std] Add min and max tests 2022-02-10 02:00:59 -06:00
f5c7c26340 [ox/std] Remove unnecessary functions from ox::Array 2022-02-08 02:11:59 -06:00
50eb01115d [ox/std] Silently suppress small Vector in constexpr 2022-02-05 01:33:08 -06:00
60b97094b0 [nostalgia] Update README to require C++20 2022-02-04 23:48:27 -06:00
96e2510e64 [nostalgia/core/studio] Add scrolling support to TileSheetEditor 2022-02-04 22:51:17 -06:00
9af7eb2fd7 [imgui] Add new warning exception 2022-02-04 22:49:47 -06:00
4e0cd1444d [ox/std] Add missing iterator functions to String and Vector 2022-02-04 22:48:49 -06:00
60aa172d98 [ox/std] Make release version of oxAssert constexpr 2022-02-04 22:45:22 -06:00
44df6df75d [nostalgia/core] Remove unnecessary file 2022-02-04 00:19:06 -06:00
f34a09351f [nostalgia/core/studio] Add some missing nodiscards 2022-02-04 00:06:07 -06:00
40ce78c684 [ox/std] Add array.hpp to install list 2022-02-03 22:21:37 -06:00
73dba0ce86 [nostalgia/core] Remove attribute list from Context friend function 2022-02-03 22:05:21 -06:00
a3643a4036 [nostalgia/core/userland] Replace std::array with ox::Array 2022-02-03 21:46:03 -06:00
27f5523e70 [ox/std] Add ox::Array 2022-02-03 21:45:45 -06:00
7459d687b0 [nostalgia/core] Rename customData functions in Context and move them out of Context 2022-02-03 21:06:44 -06:00
c7cd54ae52 [nostalgia/core] Remove renderer funcions from Context friends 2022-02-03 20:48:58 -06:00
8174d04b06 [nostalgia] Collapse NostalgiaCore down to a single library and cleanup impl data access 2022-02-03 20:01:12 -06:00
d4e903b593 [ox/std] Remove unnecessary include 2022-02-03 00:40:14 -06:00
be3d094f13 [nostalgia/studio] Remove unnecessary try/catch block 2022-02-03 00:39:40 -06:00
395e262e3e [ox/mc] Add writer fieldString function 2022-02-03 00:38:28 -06:00
57164c1811 [nostalgia/glutils] Add missing assert.hpp include 2022-02-03 00:28:27 -06:00
d4e198ecc3 [nostalgia/core/studio] Add zoom support to TileSheetEditor 2022-02-03 00:24:40 -06:00
78942ce21d [ox/std] Add ox::clamp 2022-02-03 00:22:37 -06:00
1aebe93c52 [ox/std] Replace std::cerr with oxErrf 2022-02-02 01:48:04 -06:00
ac9cd26367 [ox/std] Make oxAssert sort of usable in constexpr 2022-02-01 21:20:13 -06:00
180cac5cc6 [ox/std] Add std::is_constant_evaluated() 2022-02-01 20:06:10 -06:00
0d76129a0e [nostalgia/core/glfw] Fix keyboard support for ImGui 2022-02-01 02:15:49 -06:00
87c03c0d98 [nostalgia/studio] Fix closing of file dialog not to change cursor 2022-01-30 02:45:07 -06:00
35433563c6 [nostalgia] Upgrade ImGui version to 1.86 2022-01-30 02:27:26 -06:00
f6be36741c [nostalgia/core/studio] Add pixel outline to tile sheet editor 2022-01-30 01:43:27 -06:00
99550b60ee [ox/std] Move most macros to def.hpp in anticipation of C++20 modules 2022-01-28 19:57:19 -06:00
f10373864d [ox/fs] Fix duplication of dir entries on update of file 2022-01-28 19:44:20 -06:00
2be5b0f6bc [ox] Add a new oxfs tool 2022-01-28 02:07:42 -06:00
df782129bb [ox/mc] Fix string support in MC and add support for ox::BasicString 2022-01-27 20:58:33 -06:00
fd7510d14f [nostalgia] Remove instruction to install gmake on Mac 2022-01-27 02:28:49 -06:00
ff76d2f453 [ox/std] Make HashMap::expand move new Pair Vector instead of copy 2022-01-27 01:47:35 -06:00
81f2865fcc [ox/std] Move bit.hpp static_asserts to cpp file 2022-01-26 21:14:32 -06:00
2d429d30a3 [ox/std] Add print of assert condition to assert output 2022-01-26 21:14:11 -06:00
4a9b0e5dc3 [ox/std] Change default small Vector size to 0 2022-01-26 01:43:26 -06:00
fcc4cf3308 [ox/model] Add macros to simplify model definition 2022-01-26 01:36:29 -06:00
f687134943 [ox/fs] Improve const-correctness of FileSystem 2022-01-26 01:27:31 -06:00
9ee7cd5d53 [nostalgia/devenv] Re-add devkitpro to devenv 2022-01-13 02:06:16 -06:00
9ee6cfbbfd [ox] Run liccor 2022-01-13 02:05:02 -06:00
a139f19749 [nostalgia] Run liccor 2022-01-13 02:04:29 -06:00
1a43fd5c89 [nostalgia/devenv] Add missing pacman.conf 2022-01-13 02:04:21 -06:00
fe4c98b970 [nostalgia] Put run and debug of artifacts outside of the Docker devenv 2021-12-18 17:51:46 -06:00
439da668ae [nostaliga/core/gba] Cleanup 2021-12-18 17:50:07 -06:00
0a0476e4ce [nostalgia] Downgrade Docker devenv to Fedora 34 2021-12-17 22:00:36 -06:00
fe5fe179f2 [ox/sd] Remove ox::move 2021-12-17 21:02:50 -06:00
775008a513 [nostalgia] Start on new TileSheetEditor 2021-12-17 21:02:35 -06:00
ed074d07be [nostalgia] Update Dockerfile devenv 2021-12-17 20:57:25 -06:00
56b4612487 [buildcore] Fix conan to work in Docker devenv 2021-12-17 20:55:15 -06:00
0e73f75322 [nostalgia/common] Make models noexcept 2021-12-11 19:16:29 -06:00
20a8d34e11 [nostalgia/glutils] Upgrade non-Apple platforms to GLES 3.2 2021-12-11 19:16:29 -06:00
5ed806f4c0 [ox/std] Make sfmt usable as constexpr 2021-12-11 19:16:29 -06:00
6da3d3b8f5 [nostalgia] Remove std::move calls that suppressed copy elision 2021-12-11 19:16:29 -06:00
163fcf1785 [ox] Remove std::move calls that suppressed copy elision 2021-12-11 19:16:29 -06:00
37664ede05 [ox/std] Deprecate ox::move 2021-12-11 19:16:29 -06:00
e0364925a3 [nostalgia] Use requireTypeNameModel in place of getTypeNameModel where it makes sense 2021-12-11 19:16:29 -06:00
7aead742eb [ox/model] Add requireModelTypeName 2021-12-11 19:16:29 -06:00
eef1bfcbd6 [nostalgia/core] Make AssetManager type name verification a static_assert 2021-12-11 19:16:29 -06:00
596c0718e1 [gbastartup] Fix incorrect bit_cast usages 2021-12-11 19:16:29 -06:00
97bf81ba23 [ox/model] Add string type template parameter to getModelTypeName 2021-12-11 19:16:29 -06:00
2c8f4cec2c [ox/std] Enable small string optimization by default 2021-12-11 19:16:29 -06:00
457b97afba [ox/std] Remove iostream include from vector.hpp 2021-12-11 19:16:29 -06:00
6e8bb8adc6 [nostalgia/studio] Fix closing last tab 2021-12-11 19:16:29 -06:00
a94051644b [ox/std] Make Vector::erase return iterator item after removed item 2021-12-11 19:16:29 -06:00
1f24912ddd [ox] Correct bad bit_cast uses and improve constexpr-ness 2021-12-11 19:16:29 -06:00
22f08f83c5 [ox/std] Rename Vector alloc and dealloc methods 2021-12-11 19:16:29 -06:00
46fe5c3b8f [ox/std] Add char8_t* constructor to String 2021-12-11 19:16:29 -06:00
15947d2fa9 [ox/std] Make toCString(std::string) constexpr 2021-12-11 19:16:29 -06:00
84da41ffc9 [ox/std] Make BString::operator== const 2021-12-11 19:16:29 -06:00
6bee2d12d7 [ox/std] Add std::allocator 2021-12-11 19:16:29 -06:00
2bcea545f5 [ox/std] Make most of Optional constexpr 2021-12-11 19:16:29 -06:00
9a8bb557a6 [ox/std] Make most of Vector constexpr 2021-12-11 19:16:29 -06:00
263ed4f7e7 [ox/std] Make Vector use std::allocator 2021-12-11 19:16:29 -06:00
380dd1cd76 [ox/std] Set default small string size of 8 bytes 2021-12-11 19:16:29 -06:00
15111078de [buildcore] Upgrade to C++20 and fix conan setup to use project specific profile 2021-12-11 19:16:29 -06:00
d622ab380d [nostalgia/core/sdl] Fix SDL implementation of Core 2021-12-11 19:16:29 -06:00
f61efbafaf [ox] Fix for C++20 2021-12-11 19:16:29 -06:00
e91d2653a3 [nostalgia/core] Fix incorrect bit_cast uses 2021-12-11 19:16:29 -06:00
9fd14b0744 [nostalgia/core] Add gc function to AssetManager 2021-12-11 19:16:29 -06:00
e3a48d0045 [ox/std] Add ox::find(...) and HashMap::erase(K) 2021-12-11 19:16:29 -06:00
ad743565b2 [nostalgia] Update Studio to handle tabs and open directory dialog on Mac, Update core::init 2021-12-11 19:16:29 -06:00
e29f65f351 [nostalgia/core] Add AssetManager 2021-12-11 19:16:29 -06:00
a3dd2b59cc [imgui] Make imgui-glfw an object library 2021-12-11 19:16:29 -06:00
708d7382d8 [ox/std] Cleanup stacktrace code 2021-12-11 19:16:29 -06:00
ceb876b6ae [ox/model] Add typenamecatcher.hpp to model.hpp 2021-12-11 19:16:29 -06:00
0133ea30dc [ox/std] Fix UniquePtr reset to work when copying from a UniquePtr to subclass type 2021-12-11 19:16:29 -06:00
31dcd0d280 [ox/std] Add missing pragma once to initializerlist.hpp 2021-12-11 19:16:29 -06:00
a14eb5a0bc [ox/std] Make HashMap use default constructor for T 2021-12-11 19:16:29 -06:00
fa06821d90 [ox/std] Add Optional 2021-12-11 19:16:29 -06:00
45d79e99e8 [nostalgia] Move much of the OpenGL code to glutils 2021-12-11 19:16:29 -06:00
51f3c01c4e [ox/claw] Fix CMake generator expression OX_USE_STDLIB switch 2021-12-11 19:16:29 -06:00
9394db44b1 [buildcore] Add type annotations to pybb 2021-12-11 19:16:29 -06:00
e2b9cd16b3 [nostalgia/core] Add redf, greenf, and bluef functions 2021-12-11 19:16:29 -06:00
badd07e27f [nostalgia/tools/pack] Make toMetalClaw ensure data portion is in fact MetalClaw 2021-12-11 19:16:29 -06:00
5e85f18b60 [ox/claw] Add readClawHeader to public API 2021-12-11 19:16:29 -06:00
5f7bb2e1ae [ox/std] Make oxIgnoreError take const ref 2021-12-11 19:16:29 -06:00
e2b9823ae2 [ox/std] Fix Vector reverse iterators 2021-12-11 19:16:29 -06:00
4a4f380a11 [nostalgia/studio] Fix file dialog to close properly 2021-12-11 19:16:29 -06:00
8a6f08ae73 [ox/std] Update strops nodiscard use to match current style 2021-12-11 19:16:29 -06:00
bb4afd79d5 [nostalgia] Fix typo in developer handbook 2021-12-11 19:16:29 -06:00
4bc3da40b4 [ox][std] Fix UniquePtr to use provided deleter 2021-12-11 19:16:29 -06:00
1bf882c674 [nostalgia/glutils] Add FrameBuffer type 2021-12-11 19:16:29 -06:00
c7499f4241 [nostalgia/studio] Remove oxDebug line 2021-12-11 19:16:29 -06:00
b0f9218ba5 [nostalgia] Remove QDark from main CMakeLists.txt 2021-12-11 19:16:29 -06:00
c6f0c58a46 [QDark] Remove QDark 2021-12-11 19:16:29 -06:00
ddd63bc45f [nostalgia/studio] Start on ImGui version of Studio 2021-12-11 19:16:29 -06:00
1595 changed files with 270044 additions and 55177 deletions

65
.clang-tidy Normal file
View File

@ -0,0 +1,65 @@
# Generated from CLion Inspection settings
---
Checks: '-*,
cppcoreguidelines-interfaces-global-init,
cppcoreguidelines-narrowing-conversions,
cppcoreguidelines-pro-type-member-init,
-cppcoreguidelines-pro-type-static-cast-downcast,
cppcoreguidelines-slicing,
google-default-arguments,
google-runtime-operator,
hicpp-exception-baseclass,
hicpp-multiway-paths-covered,
mpi-buffer-deref,
mpi-type-mismatch,
openmp-use-default-none,
performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
performance-inefficient-string-concatenation,
performance-inefficient-vector-operation,
performance-move-const-arg,
performance-move-constructor-init,
performance-no-automatic-move,
performance-noexcept-move-constructor,
performance-trivially-destructible,
performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
performance-unnecessary-value-param,
readability-avoid-const-params-in-decls,
readability-const-return-type,
readability-container-size-empty,
readability-convert-member-functions-to-static,
readability-delete-null-pointer,
readability-deleted-default,
readability-inconsistent-declaration-parameter-name,
readability-make-member-function-const,
readability-misleading-indentation,
readability-misplaced-array-index,
readability-non-const-parameter,
readability-redundant-control-flow,
readability-redundant-declaration,
readability-redundant-function-ptr-dereference,
readability-redundant-smartptr-get,
readability-redundant-string-cstr,
readability-redundant-string-init,
readability-simplify-subscript-expr,
readability-static-accessed-through-instance,
readability-static-definition-in-anonymous-namespace,
readability-string-compare,
readability-uniqueptr-delete-release,
readability-use-anyofallof,
cert-*,
misc-*,
-misc-include-cleaner
-misc-use-anonymous-namespace,
readability-duplicate-include,
-misc-non-private-member-variables-in-classes,
-misc-no-recursion,
bugprone-*,
clang-analyzer-*,
modernize-*,
portability-*,
-modernize-use-trailing-return-type,
-bugprone-easily-swappable-parameters'

View File

@ -0,0 +1,19 @@
name: Build
run-name: ${{ gitea.actor }} build and test
on: [push]
jobs:
build:
runs-on: nostalgia
steps:
- name: Check out repository code
uses: actions/checkout@v3
- run: make purge configure-debug
- run: make build
- run: make test
- run: make purge configure-asan
- run: make build
- run: make test
- run: make purge configure-release
- run: make build
- run: make test

27
.gitignore vendored
View File

@ -1,18 +1,21 @@
.cache
.clangd
.current_build
scripts/__pycache__
deps/imgui/src
compile_commands.json
build
.conanbuild
dist
tags
nostalgia.gba
nostalgia.sav
nostalgia_media.oxfs
media_header.txt
studio_state.json
.idea
.mypy_cache
.stfolder
.stignore
scripts/__pycache__
CMakeLists.txt.user
Session.vim
ROM.oxfs
Session.vim
build
compile_commands.json
dist
graph_info.json
imgui.ini
*.gba
*.sav
studio_state.json
tags

View File

@ -2,7 +2,7 @@
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="ClangTidy" enabled="true" level="WARNING" enabled_by_default="true">
<option name="clangTidyChecks" value="-*,bugprone-argument-comment,bugprone-assert-side-effect,bugprone-bad-signal-to-kill-thread,bugprone-branch-clone,bugprone-copy-constructor-init,bugprone-dangling-handle,bugprone-dynamic-static-initializers,bugprone-fold-init-type,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-inaccurate-erase,bugprone-incorrect-roundings,bugprone-integer-division,bugprone-lambda-function-name,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects,bugprone-misplaced-operator-in-strlen-in-alloc,bugprone-misplaced-pointer-arithmetic-in-alloc,bugprone-misplaced-widening-cast,bugprone-move-forwarding-reference,bugprone-multiple-statement-macro,bugprone-no-escape,bugprone-not-null-terminated-result,bugprone-parent-virtual-call,bugprone-posix-return,bugprone-reserved-identifier,bugprone-sizeof-container,bugprone-sizeof-expression,bugprone-spuriously-wake-up-functions,bugprone-string-constructor,bugprone-string-integer-assignment,bugprone-string-literal-with-embedded-nul,bugprone-suspicious-enum-usage,bugprone-suspicious-include,bugprone-suspicious-memset-usage,bugprone-suspicious-missing-comma,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare,bugprone-swapped-arguments,bugprone-terminating-continue,bugprone-throw-keyword-missing,bugprone-too-small-loop-variable,bugprone-undefined-memory-manipulation,bugprone-undelegated-constructor,bugprone-unhandled-self-assignment,bugprone-unused-raii,bugprone-unused-return-value,bugprone-use-after-move,bugprone-virtual-near-miss,cert-dcl21-cpp,cert-dcl58-cpp,cert-err34-c,cert-err52-cpp,cert-err58-cpp,cert-err60-cpp,cert-flp30-c,cert-msc50-cpp,cert-msc51-cpp,cert-str34-c,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-pro-type-static-cast-downcast,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,misc-misplaced-const,misc-new-delete-overloads,misc-non-copyable-objects,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,misc-uniqueptr-reset-release,modernize-avoid-bind,modernize-concat-nested-namespaces,modernize-deprecated-headers,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-make-shared,modernize-make-unique,modernize-pass-by-value,modernize-raw-string-literal,modernize-redundant-void-arg,modernize-replace-auto-ptr,modernize-replace-disallow-copy-and-assign-macro,modernize-replace-random-shuffle,modernize-return-braced-init-list,modernize-shrink-to-fit,modernize-unary-static-assert,modernize-use-auto,modernize-use-bool-literals,modernize-use-emplace,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nodiscard,modernize-use-noexcept,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,modernize-use-uncaught-exceptions,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,portability-simd-intrinsics,readability-avoid-const-params-in-decls,readability-const-return-type,readability-container-size-empty,readability-convert-member-functions-to-static,readability-delete-null-pointer,readability-deleted-default,readability-inconsistent-declaration-parameter-name,readability-make-member-function-const,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-smartptr-get,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-subscript-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-string-compare,readability-uniqueptr-delete-release,readability-use-anyofallof" />
<option name="clangTidyChecks" value="-*,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-pro-type-static-cast-downcast,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,readability-avoid-const-params-in-decls,readability-const-return-type,readability-container-size-empty,readability-convert-member-functions-to-static,readability-delete-null-pointer,readability-deleted-default,readability-inconsistent-declaration-parameter-name,readability-make-member-function-const,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-smartptr-get,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-subscript-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-string-compare,readability-uniqueptr-delete-release,readability-use-anyofallof,cert-*,misc-*,readability-duplicate-include,-misc-non-private-member-variables-in-classes,-misc-no-recursion,bugprone-*,clang-analyzer-*,modernize-*,portability-*,-modernize-use-trailing-return-type,-bugprone-easily-swappable-parameters" />
</inspection_tool>
<inspection_tool class="Clazy" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ConstantConditionsOC" enabled="false" level="WARNING" enabled_by_default="false" />
@ -13,6 +13,7 @@
<inspection_tool class="InfiniteRecursion" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="LocalValueEscapesScope" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="LoopDoesntUseConditionVariable" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="NullDereference" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="NullDereferences" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="UnreachableCallsOfFunction" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="UnreachableCode" enabled="false" level="WARNING" enabled_by_default="false" />

8
.idea/modules.xml generated
View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/nostalgia.iml" filepath="$PROJECT_DIR$/.idea/nostalgia.iml" />
</modules>
</component>
</project>

8
.idea/nostalgia.iml generated
View File

@ -1,2 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="External" external.linked.project.id="nostalgia" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="CompDB" type="CPP_MODULE" version="4" />
<module version="4">
<component name="FacetManager">
<facet type="Python" name="Python facet">
<configuration sdkName="Python 3.8" />
</facet>
</component>
</module>

View File

@ -2,8 +2,4 @@
source:
- src
copyright_notice: |-
Copyright 2016 - 2021 gary@drinkingtea.net
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved.

1
.lldbinit Normal file
View File

@ -0,0 +1 @@
type summary add --summary-string "${var.m_buff.m_items}" ox::String

View File

@ -1,16 +0,0 @@
{
"init_functions": [
{
"bin_path": "/home/gary/projects/nostalgia/dist/linux-x86_64-debug/lib/ox/libOxTraceHook.so",
"function": "oxTraceInitHook",
"ignore_frames": 3
}
],
"log_functions": [
{
"bin_path": "/home/gary/projects/nostalgia/dist/linux-x86_64-debug/lib/ox/libOxTraceHook.so",
"function": "oxTraceHook",
"ignore_frames": 3
}
]
}

View File

@ -1,62 +1,62 @@
cmake_minimum_required(VERSION 3.19)
set(CMAKE_POLICY_DEFAULT_CMP0110 NEW) # requires CMake 3.19
project(nostalgia)
if(BUILDCORE_TARGET STREQUAL "gba")
project(nostalgia ASM CXX)
elseif(APPLE)
project(nostalgia C CXX OBJC OBJCXX)
else()
project(nostalgia C CXX)
endif()
include(deps/buildcore/base.cmake)
set(NOSTALGIA_BUILD_PLAYER ON CACHE BOOL "Build Player")
set(NOSTALGIA_BUILD_STUDIO ON CACHE BOOL "Build Studio")
set(OX_ENABLE_TRACEHOOK OFF CACHE BOOL "Generate OxTraceHook shared library for uprobes")
if(BUILDCORE_TARGET STREQUAL "gba")
set(NOSTALGIA_BUILD_STUDIO OFF)
set(NOSTALGIA_BUILD_TYPE "GBA")
include(deps/gbabuildcore/base.cmake)
else()
set(NOSTALGIA_BUILD_TYPE "Native")
set(NOSTALGIA_CONAN_PATHS ${CMAKE_SOURCE_DIR}/.conanbuild/conan_paths.cmake)
if(EXISTS ${NOSTALGIA_CONAN_PATHS})
include(${NOSTALGIA_CONAN_PATHS})
endif()
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QTDIR})
endif()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
if(APPLE)
set(CMAKE_MACOSX_RPATH OFF)
set(CMAKE_INSTALL_NAME_DIR "@executable_path/../Library/nostalgia")
set(NOSTALGIA_DIST_BIN nostalgia-studio.app/Contents/MacOS)
set(NOSTALGIA_DIST_LIB nostalgia-studio.app/Contents/Library)
set(NOSTALGIA_DIST_MODULE nostalgia-studio.app/Contents/Plugins)
set(NOSTALGIA_DIST_RESOURCES nostalgia-studio.app/Contents/Resources)
set(NOSTALGIA_DIST_MAC_APP_CONTENTS nostalgia-studio.app/Contents)
else()
set(CMAKE_INSTALL_RPATH "$ORIGIN" "$ORIGIN/../lib/ox" "$ORIGIN/../lib/nostalgia" "$ORIGIN/../")
if(QTDIR)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${QTDIR}/lib")
if(UNIX)
set(BUILD_SHARED_LIBS ON)
endif()
set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(NOSTALGIA_DIST_BIN bin)
set(NOSTALGIA_DIST_LIB lib)
set(NOSTALGIA_DIST_MODULE lib/nostalgia/modules)
set(NOSTALGIA_DIST_RESOURCES share)
endif()
add_subdirectory(deps/ox)
include_directories(
SYSTEM
deps/imgui/src
deps/ox/src
deps/ox/src
)
add_subdirectory(deps/teagba)
if(BUILDCORE_TARGET STREQUAL "gba")
add_subdirectory(deps/gbastartup)
else()
if(NOSTALGIA_BUILD_STUDIO)
add_subdirectory(deps/QDark)
endif()
if(NOT BUILDCORE_TARGET STREQUAL "gba")
include_directories(
SYSTEM
deps/glfw/include
deps/imgui
deps/imgui/backends
deps/nfde/src/include
/usr/local/include
)
add_subdirectory(deps/glad)
set(GLFW_BUILD_EXAMPLES OFF)
set(GLFW_BUILD_TESTS OFF)
set(GLFW_BUILD_DOCS OFF)
add_subdirectory(deps/glfw)
add_subdirectory(deps/glutils)
add_subdirectory(deps/imgui)
add_subdirectory(deps/lodepng)
add_subdirectory(deps/nfde)
endif()
add_subdirectory(src)

View File

@ -1,47 +1,50 @@
FROM fedora:32
FROM fedora:36
RUN dnf update -y
###############################################################################
# Install gosu
RUN dnf install -y curl gnupg
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
RUN curl -o /usr/local/bin/gosu -SL "https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64" && \
curl -o /usr/local/bin/gosu.asc -SL "https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64.asc" && \
gpg --verify /usr/local/bin/gosu.asc && \
rm /usr/local/bin/gosu.asc && \
chmod +x /usr/local/bin/gosu
RUN dnf install -y curl
RUN curl -o /usr/local/bin/gosu -SL "https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64"
RUN chmod +x /usr/local/bin/gosu
###############################################################################
# Install dev tools
RUN dnf install -y clang
RUN dnf install -y llvm
RUN dnf install -y libasan
RUN dnf install -y mingw64-gcc-c++
RUN dnf install -y cmake
RUN dnf install -y make
RUN dnf install -y git
RUN dnf install -y vim
RUN dnf install -y sudo
RUN dnf install -y fuse-devel
RUN dnf install -y qt5-devel
RUN dnf install -y findutils
RUN dnf install -y ninja-build
RUN dnf install -y libcxx-devel libcxxabi-devel
RUN dnf install -y unzip
RUN dnf install -y ccache
RUN dnf install -y pacman
RUN dnf install -y clang \
llvm \
libasan \
mingw64-gcc-c++ \
cmake \
make \
git \
vim \
sudo \
fuse-devel \
findutils \
ninja-build \
libcxx-devel libcxxabi-devel \
unzip \
ccache \
pacman \
python3-pip \
libglvnd-devel \
gtk3-devel
###############################################################################
# Install devkitARM
#RUN dnf install -y lbzip2
#RUN curl -o /tmp/devkitArm.tar.bz2 -SL https://phoenixnap.dl.sourceforge.net/project/devkitpro/devkitARM/devkitARM_r47/devkitARM_r47-x86_64-linux.tar.bz2
#WORKDIR /opt
#RUN tar xf /tmp/devkitArm.tar.bz2
#ENV DEVKITARM /opt/devkitARM
RUN pacman-key --init
RUN pacman-key --recv BC26F752D25B92CE272E0F44F7FD5492264BB9D0 --keyserver keyserver.ubuntu.com
RUN pacman-key --lsign BC26F752D25B92CE272E0F44F7FD5492264BB9D0
RUN curl -o devkitpro-keyring.pkg.tar.xz https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.xz
RUN pacman -Syu --noconfirm
RUN pacman -U --noconfirm devkitpro-keyring.pkg.tar.xz
ADD devenv/pacman.conf /etc/pacman.conf
RUN pacman -Syu --noconfirm gba-dev
ENV DEVKITPRO /opt/devkitpro
ENV DEVKITARM /opt/devkitpro/devkitARM
###############################################################################
# Setup sudoers

373
LICENSE
View File

@ -1,373 +0,0 @@
Mozilla Public License Version 2.0
==================================
1. Definitions
--------------
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
--------------------------------
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
-------------------
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
--------------
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
8. Litigation
-------------
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
----------------
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
10. Versions of the License
---------------------------
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
-------------------------------------------
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.

View File

@ -1,41 +1,40 @@
PROJECT_NAME=nostalgia
BC_VAR_PROJECT_NAME=nostalgia
BC_VAR_PROJECT_NAME_CAP=Nostalgia
BUILDCORE_PATH=deps/buildcore
VCPKG_PKGS=sdl2 jsoncpp
include ${BUILDCORE_PATH}/base.mk
ifeq ($(OS),darwin)
NOSTALGIA_STUDIO=./dist/${CURRENT_BUILD}/nostalgia-studio.app/Contents/MacOS/nostalgia-studio
ifeq ($(BC_VAR_OS),darwin)
NOSTALGIA_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio.app/Contents/MacOS/${BC_VAR_PROJECT_NAME_CAP}Studio
MGBA=/Applications/mGBA.app/Contents/MacOS/mGBA
else
NOSTALGIA_STUDIO=./dist/${CURRENT_BUILD}/bin/nostalgia-studio
NOSTALGIA_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio
MGBA=mgba-qt
endif
.PHONY: pkg-gba
pkg-gba:
${ENV_RUN} ${CMAKE_BUILD} build install
${ENV_RUN} ./scripts/pkg-gba sample_project
pkg-gba: build
${BC_CMD_ENVRUN} ${BC_PY3} ./scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME}
.PHONY: run
run: install
${ENV_RUN} ./dist/${CURRENT_BUILD}/bin/nostalgia sample_project
run: build
./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
.PHONY: run-studio
run-studio: install
${ENV_RUN} ${NOSTALGIA_STUDIO}
run-studio: build
${NOSTALGIA_STUDIO}
.PHONY: gba-run
gba-run: pkg-gba
${MGBA} nostalgia.gba
${MGBA} ${BC_VAR_PROJECT_NAME}.gba
.PHONY: debug
debug: install
${ENV_RUN} ${DEBUGGER} ./dist/${CURRENT_BUILD}/bin/nostalgia sample_project
debug: build
${BC_CMD_HOST_DEBUGGER} ./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME} sample_project
.PHONY: debug-studio
debug-studio: install
${ENV_RUN} ${DEBUGGER} ${NOSTALGIA_STUDIO}
debug-studio: build
${BC_CMD_HOST_DEBUGGER} ${NOSTALGIA_STUDIO}
.PHONY: configure-gba
configure-gba:
${ENV_RUN} ${SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=release
${BC_CMD_SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=release --build_root=${BC_VAR_BUILD_PATH}
.PHONY: configure-gba-debug
configure-gba-debug:
${ENV_RUN} ${SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=debug
${BC_CMD_SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=debug --build_root=${BC_VAR_BUILD_PATH}

View File

@ -2,25 +2,26 @@
## Prerequisites
* Install GCC, Clang, or Visual Studio with C++17 support (including std::filesystem)
* Install GCC, Clang, or Visual Studio with C++20 support
* Install [devkitPro](https://devkitpro.org/wiki/Getting_Started) to build for GBA
* Install Python 3
* Install Conan
* Install Ninja, Make, and CMake
* Consider also installing ccache for faster subsequent build times
## Platform Specific Setup
### Debian
### macOS
Install and use gmake instead of the make that comes with the system.
For Debian (and probably other Linux distros, but the package names will
probably differ), install the following additional packages:
* pkg-config
* xorg-dev
* libgtk-3-dev
* python3-mypy
## Build
Build options: release, debug, asan, gba, gba-debug
make conan-config
make purge conan configure-{gba,release,debug} install
make purge configure-{gba,release,debug} install
## Run

View File

@ -1,14 +0,0 @@
from conans import ConanFile, CMake
class NostalgiaConan(ConanFile):
settings = 'os', 'compiler', 'build_type', 'arch'
requires = 'jsoncpp/1.9.4', 'glfw/3.3.4', 'imgui/1.82'
generators = 'cmake', 'cmake_find_package', 'cmake_paths'
default_options = {
}
def imports(self):
self.copy('imgui_impl_glfw.cpp', dst='../deps/imgui/src', src='./res/bindings')
self.copy('imgui_impl_opengl3.cpp', dst='../deps/imgui/src', src='./res/bindings')
self.copy('imgui_impl_glfw.h', dst='../deps/imgui/src', src='./res/bindings')
self.copy('imgui_impl_opengl3.h', dst='../deps/imgui/src', src='./res/bindings')

View File

@ -1,5 +0,0 @@
docs/* linguist-documentation
qdarkstyle/style_rc.py linguist-generated
qdarkstyle/style.qrc linguist-generated
qdarkstyle/style.qss linguist-generated
qdarkstyle/rc/* linguist-generated

View File

@ -1,54 +0,0 @@
<!-- You can erase any parts of this template not applicable/known to your Issue. -->
### Describe Your Environment
Please, report the output of the command (from v2.6+) or fill the information below:
`$ qdarkstyle --all`
Or use the helpdev if you have
`$ helpdev`
[Versions from your environment]
- QDarkStyle:
- OS:
- Python:
[If used, please inform their versions]
- PySide:
- PyQt:
- PyQtGraph:
- QtPy:
- QT_API:
- PYQTGRAPH_QT_LIB:
### Language
[Python] or [C++]
### Description / Steps to Reproduce [if necessary]
[Description of the issue]
1. [First Step]
2. [Second Step]
3. [and so on...]
### Actual Result
[A description, output ou image of the actual result]
### Expected Results / Proposed Result
[A description, output ou image of the expected/proposed result]
### Relevant Code [if necessary]
[A piece of code to reproduce and/or fix this issue]
```
# code here to reproduce the problem
```

41
deps/QDark/.gitignore vendored
View File

@ -1,41 +0,0 @@
*.pyc
*.orig
dist/
build/
*.egg-info/
__pycache__
.coverage
*.tar
*.tar.*
*.log
*.log.*
*.sig
pkg/
src/
# stdeb files
*.tar.gz
deb_dist
/gpg_key
# gedit temp files
*~
# hackedit project files
.hackedit
# vs code project files
.vscode
.mypy_cache
.cache
.env
./.idea
/.idea/
.tox
# OSX files
.DS_Store

View File

@ -1,51 +0,0 @@
dist: xenial
language: python
services:
# to be able to display
- xvfb
before_install:
- sudo apt-get update
matrix:
include:
- python: 3.6
env: TOXENV=py36-pyqt5
- python: 3.6
env: TOXENV=py36-pyside2
- python: 3.8
env: TOXENV=py38-pyqt5
- python: 3.8
env: TOXENV=py38-pyside2
- python: 3.8
env: TOXENV=py38-lint
- python: 3.8
env: TOXENV=py38-safety
- python: 3.8
env: TOXENV=py38-metric
- python: 3.8
env: TOXENV=py38-develop
- python: 3.8
env: TOXENV=py38-pyqt5-doc
- python: 3.8
env: TOXENV=py38-release
install:
# to make sure it has everything up to date
- python -V
- python -m ensurepip
- python -m pip install -U pip
- python -m pip install -U setuptools
- python -m pip install -U wheel
- python -m pip install -U virtualenv
- python -m pip install -U tox
script:
- tox

View File

@ -1,32 +0,0 @@
Authors
=======
Mainteiner(s)
-------------
These people were/are mainteiners of this project.
- 2013-current `Colin Duquesnoy <https://github.com/ColinDuquesnoy>`__ - colin.duquesnoy@gmail.com - original author.
- 2018-current `Daniel Pizetta <https://github.com/dpizetta>`__ - daniel.pizetta@usp.br - bug fixes, improvements, features.
- 2019-current `Gonzalo Peña-Castellanos <https://github.com/goanpeca>`__ - bug fixes, improvements, features.
- 2019-current `Carlos Cordoba <https://github.com/ccordoba12>`__
Contributor(s)
--------------
These people contribute to bug fixes, improvements and so on. Please,
insert your information after the last one.
- Year - Name - ``<contact>`` - contribution.
- 2018 - `mowoolli <https://github.com/mowoolli>`__ - bug fixes.
- 2018 - Xingyun Wu - ``xingyun.wu@foxmail.com`` - bug fixes.
- 2018 - `KcHNST <https://github.com/KcHNST>`__ - bug fixes.
- 2019 - `goanpeca <https://github.com/goanpeca>`__ - bug fixes, improvements, features.
- 2020 - `tsilia <https://github.com/tsilia>`__ - bug fixes.
And all people that reported bugs, thank you all!

204
deps/QDark/CHANGES.rst vendored
View File

@ -1,204 +0,0 @@
Changelog
=========
- 2.8.1:
- Fix rst file formats and links #229
- Add .gitattributes for generated and documentation files
- Add more complete tox and Travis envs with many checks
- Fix removing message format argument
- Fix QGroupBox small indicator size #218
- Fix QGroupBox incorrect indicator icon when unfocused #219
- Fix QDateTimeEdit incorrect drop-down arrow icon #220
- Fix documentation
- 2.8:
- Fix tooltip giant rectangle #174
- Fix QTextEdit wihout borders inside frame #188
- Fix PyQt5 issuies on dropbown #191
- Fix combo box with icons #169
- Fix QToolbBar vertical handle #210
- Fix pane tab labelcropped on activation #199
- Enhance vertical/horiontal lines #184
- Enhance tool button size and spacing #181, #183, #202
- Enhance buttons and inputs with focus, blue border #194, #211
- Enhance QSplitter #207
- Removed QStatusBar vertical lines #205
- 2.7:
- Remove utils from import in qdarkstyle, #170
- Fix border colors in tool button #176
- Fix scroll area and stacked with 2px padding, #159
- Fix backgroung submenu color, #179
- Fix extra border aside header's arrow indicator, #180
- Fix menu right arrrow indicator
- Fix slide bars colors, #150
- Fix QLabels problems, #163, #139
- Fix problems with example settings using PySide2 and --no\_dark #167
- Provide SVG files for all images, standard names and sizes, fix images, #149
- Improve images and add high resolution images, #140
- Improve docs
- Add check to scripts for generating images, #137
- Fix tox and travis scripts #76
- Provide docs in RTD, part of #160
- Add helpdev depedency for reports and checks, #147
- Update authors and maintainers
- 2.6.8:
- Fix double border in QtabWidget for pyqt5
- Fix widgets border in QTabWidget as QLabel #141, #123, #126
- Fix QTab scroller buttons background #136
- Update color from images, fix #127
- Add retina resolution @2x, fix #140
- Intermediate version before merge PR #142 adding scripts
- 2.6.7:
- Fix combobox indicator and padding #132
- Fix PyQtGraph plot axes covered by padding #134
- Update authors
- 2.6.6:
- Fix tabbed bordeless frames and add more examples, #123, #126
- Add feedback to pressed buttons, #133
- Change future warning to pending deprecation for developers, #125 in v2.x
- Fix hover in qtabwidget, #128
- 2.6.5:
- Fix borderless widgets inside QTabWidget, #123
- Fix palette table inside CSS file, header using the last column
- Tested on Python 27, 34, 36, 37
- 2.6.4:
- Python 2.7 compatibility, #121
- Fix MANIFEST
- 2.6.3:
- Palette color enhance, better contrast, contribute to #118
- Fixes Qslider background
- Better colors and format for tab and toolbox, contribute to #118
- 2.6.2:
- Enhance command link button
- Enhance tab colors and spacing, closes #118
- Start using tox, helping partially #77
- Fix example and other scripts issues
- 2.6.1:
- Fix and improve QSplitter and separators from tool bar and windows #115
- Fix README version screenshots and update them
- Add reset function into example to reset GUI settings, after you mess up with
- 2.6:
- Many other enhancements and fix #103, #111, #106
- Fix tab disabled, background and color
- Enhance tab selection
- Enhance spacing (padding and margin)
- Enhance table, list, tree and combo box selection
- Fix slider disabled and enhance size
- Fix the wrong upload of style.qss - sorry
- Fix almost all widgets backgrounds, and other not previously covered widgets with new style
- New palette color, almost whole new qss file, simplify configuration, partially #112, #101, #109,
- Add changes made by other people in the new style - merge does not work there #93, #92, #102
- Update README with Qt.py and PySide 2 information #110, #107, #83
- Update **init** info
- Improve scripts for processing ui and qrc
- Add **main** and setup entry, to access function directly
- Add function to get information about bindings and abstraction layers for debbuging and/or issue tracker
- PySide 2 support
- Improve menu indicator position on QPushButton, #102
- 2.5.4
- Fix indicator image of checkable QGroupBox for check/uncheck states, #93
- Fix wrong comma position, #95
- Added image for the missing QTreeView/QListView undeterminated state, fix #92
- 2.5.3
- Add future warning and pending deprecation for 3.0 version preparation #89
- Add ISSUE\_TEMPLATE to ask for default information on issue tracker
- 2.5.2:
- Modularize files from example/ui to simplify edition (developers)
- Add scripts to process files and run example more easiy (developers)
- Better documentation (developers)
- Add CONTRIBUTE, CODE\_OF\_CONDUCT, and PRODUCTION files
- Lint markdown to standardize files
- Fix and add mor information in C++ example
- 2.5.1:
- Fix travis files, needs more improvement #74
- Improve modules description
- Update setup.py, remove license
- Update and improve README, CHANGES and AUTHORS
- 2.5:
- Add new complete example with new files
- Add new screenshots for new example
- Update travis files
- Add support to example of QtPy and PyQtGraph
- Move scripts for compiling to scrip folder
- Update README, CHANGES
- 2.4:
- Add function to get Qt information from environment variable #69, #70, #73
- Add CC-BY license for images and transfer COPYING to LICENSE file #68
- Fix tabs style - selected tab color and shift #59, #72
- Restructure README creating AUTHORS, CHANGES, and LICENSE #71
- 2.3.1:
- Improve checkbox color (use accent color used in other widgets) and
darken view hover/selected colors to play nicer with other widget colors
- Shift to the right the first tab
- Update license year
- Update README (fix snapshots links and formatting)
- Removed QLineEdit top/bottom padding which cut off text while editing QListView items
- 2.3.0:
- Add support for QDateEdit
- 2.2.2:
- Add hover to unselected item in QListView/QTreeView
- Fixes for vertical QToolBar, QToolBar Extend Button & QTabWidget's Pane Misalignment
- Fixed consistency of QTabBar depending on position
- 2.2.1:
- Remove border of status bar widgets
- 2.2:
- Major update of the color scheme based on the Breeze Dark theme of KDE 5
- Fix issues #29, #30, #31, #32 and #35
- 2.1:
- Add style for QPushButton:checked
- Improve QCheckBox and QRadioButton style
- Add style for QMenu::right-arrow
- **2.0**:
- Improve stylesheet to make it look a bit more modern (see pull request #25)
- 1.16:
- Fix QGroupBox title padding (see issue #20)
- 1.15:
- Improve tristate checkbox graphics: undetermined state is now represented by a dash
- 1.14:
- Add support for tristate check boxes and for vertical and horizontal lines
- 1.13:
- Fix issue with horizontal scrollbar arrows, left and right were inversed.
- 1.12:
- Fix minimum size of input widgets (see issue #14)
- 1.11:
- Fix QDockWidget title position on Mac.
- Add QStatusBar support
- Improve QToolButton especially the MenuButtonPopup and InstantPopup modes
- 1.10:
- Add PyQt5 support
- Fix bug #12 (dock widget title not dark on OSX. Note that this reopens issue #8 for MAC users)
- 1.9:
- Improve QTabBar consistency and make selected tabs more distinctive
- 1.8:
- Add support for QToolBox
- Fix issue with grid line in QTableView if there is only ONE row/column
- 1.7:
- Fix appearance of bottom tab bars (invert gradient)
- Improve QTableView: add grid line and fix section borders
- Fix bug #7: bug when resizing QTableView
- Fix bug #8: text elidation no working on QDockWidget
- 1.6:
- Improve QToolButton style
- Add support for InstantPopup and MenuButtonPopup
- Improve QMenu style (better spacing with icons)
- Add \_\_version\_\_ to python package.
- 1.5:
- Improve QTabBar style: now works with all tab bar positions (North, South, West and East)
- Fix bug #6: hide QTabBar base to avoid stange lines at the base of the tab bar.
- 1.4:
- Add style.qss to qrc file, this fix issues with cx\_freeze
- 1.3:
- Remove outline on button, checkbox and radio button
- Add support for closable tabs
- Better disabled buttons
- Fix QTextEdit background color to match the color of QPlainTextEdit
and QLineEdit
- Better hover/selected states for QTreeView and QListView
- Add QHeaderView support
- 1.2:
- Improve QTableView support
- 1.1:
- Switch to MIT license
- Add python 3 support
- **1.0**:
- First public release (LGPL v2)

View File

@ -1,23 +0,0 @@
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
add_library(
QDarkStyle OBJECT
theme.cpp
qdarkstyle/style.qrc
)
target_include_directories(
QDarkStyle PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(
QDarkStyle
Qt${QT_VERSION_MAJOR}::Widgets
)

View File

@ -1,82 +0,0 @@
Contributor Covenant Code of Conduct
====================================
Our Pledge
----------
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our
project and our community a harassment-free experience for everyone,
regardless of age, body size, disability, ethnicity, gender identity and
expression, level of experience, nationality, personal appearance, race,
religion, or sexual identity and orientation.
Our Standards
-------------
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual
attention or advances
- Trolling, insulting/derogatory comments, and personal or political
attacks
- Public or private harassment
- Publishing others' private information, such as a physical or
electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
Our Responsibilities
--------------------
Project maintainers are responsible for clarifying the standards of
acceptable behavior and are expected to take appropriate and fair
corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit,
or reject comments, commits, code, wiki edits, issues, and other
contributions that are not aligned to this Code of Conduct, or to ban
temporarily or permanently any contributor for other behaviors that they
deem inappropriate, threatening, offensive, or harmful.
Scope
-----
This Code of Conduct applies both within project spaces and in public
spaces when an individual is representing the project or its community.
Examples of representing a project or community include using an
official project e-mail address, posting via an official social media
account, or acting as an appointed representative at an online or
offline event. Representation of a project may be further defined and
clarified by project maintainers.
Enforcement
-----------
Instances of abusive, harassing, or otherwise unacceptable behavior may
be reported by contacting the project team at daniel.pizetta@usp.br. The
project team will review and investigate all complaints, and will
respond in a way that it deems appropriate to the circumstances. The
project team is obligated to maintain confidentiality with regard to the
reporter of an incident. Further details of specific enforcement
policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in
good faith may face temporary or permanent repercussions as determined
by other members of the project's leadership.
Attribution
-----------
This Code of Conduct is adapted from the `Contributor
Covenant <http://contributor-covenant.org>`__, version 1.4, available at
`http://contributor-covenant.org/version/1/4 <http://contributor-covenant.org/version/1/4/>`__

View File

@ -1,391 +0,0 @@
Contributing
============
This file describes a path to contribute to this project. Check out our
`CODE OF CONDUCT <./CODE_OF_CONDUCT.rst>`__.
Bug Reports and Feature Requests
--------------------------------
If you have encountered a problem with QDarkStyle or have an idea for a
new feature, please submit it to the `issue
tracker <https://github.com/ColinDuquesnoy/QDarkStyleSheet/issues>`__.
Contributing to QDarkStyle
--------------------------
The recommended way for new contributors to submit code to QDarkStyle is
to fork the repository on GitHub and then submit a pull request after
committing the changes. The pull request will then need to be approved
by one of the manteiners before it is merged into the main repository.
- Check for open issues or open a fresh issue to start a discussion
around a feature idea or a bug.
- Fork `the
repository <https://github.com/ColinDuquesnoy/QDarkStyleSheet>`__ on
GitHub to start making your changes to the master branch.
- Write a test which shows that the bug was fixed or that the feature
works as expected if its a function, or create a screenshot if you
are changing the stylesheet evidencing the changes.
- Send a pull request and bug the maintainer until it gets merged and
published. Make sure to add yourself to `AUTHORS <./AUTHORS.rst>`__
and the change(s) to `CHANGES <./CHANGES.rst>`__.
Getting Started
---------------
These are the basic steps needed to start developing on QDarkStyle.
- Create an account on GitHub
- Fork the main `QDarkStyle
repository <https://github.com/ColinDuquesnoy/QDarkStyleSheet>`__
using the GitHub interface.
- Clone the forked repository to your machine
.. code:: bash
git clone https://github.com/USERNAME/qdarkstyle
cd qdarkstyle
- Checkout the appropriate branch
.. code:: bash
git checkout master
- Setup a virtual environment (not essential, but highly recommended)
.. code:: bash
virtualenv ~/.venv
. ~/.venv/bin/activate
pip install -e .
- Create a new working branch. Choose any name you like
.. code:: bash
git checkout -b feature-xyz
- Hands on
For tips on working with the code, see the Code Guide.
- Test, test, test
Testing is best done through ``tox``, which provides a number of
targets and allows testing against multiple different Python
environments:
- Add you and your changes
Please add a list item to `CHANGES <./CHANGES.rst>`__ if the fix or
feature is not trivial (small doc updates, typo fixes). Please add
you as an author to `AUTHORS <./AUTHORS.rst>`__.
- Add files to commit
Add files that are part of your changes, remember that each commit
must represent a small but functional change. Remember to add
CHANGES.rst and AUTHORS.rst too. To add all files changed do:
::
```bash
git add .
```
- Commiting changes.
GitHub recognizes certain phrases that can be used to automatically
update the issue tracker, so you can commit like this:
::
```bash
git commit -m "Add useful new feature that does this, close #42"
```
```bash
git commit -m "Fix returning problem for get_style(), fix #78"
```
- Push changes in the branch to your forked repository on GitHub.
::
```bash
git push origin feature-xyz
```
- Submit a pull request (PR).
Do it from your branch to the respective branch using the `GitHub
PR <https://github.com/ColinDuquesnoy/QDarkStyleSheet/pulls>`__
interface.
- Wait for a mainteiner to review your changes.
Logging
-------
Inside modules we provided a logging that should be used to inform the
user. Please, follow the levels bellow.
- debug: for debug information, high detailed one, directed to
programers;
- info: something important for common user to know;
- warning: something that should not be a big problem or a desicision
changed;
- error: some error, but not capable of stop program;
- critical: something that could stop the running program.
Documentation
-------------
Documentation is the key to keep all information and necessary
instructions to others. We use the reStructured text format (rst) for
all docs.
All new functions, classes, files, must be documented with all
arguments, returns, exceptions. Whithout this it should not pass the
tests.
The better example is to see the current files to get the style. We are
using the Google Format and Sphinx for generating the docs.
Guide to QDarkStyle
-------------------
Structure of the Example
~~~~~~~~~~~~~~~~~~~~~~~~
Now you can use our example to work on the stylesheet. It has all
possible widget provided by Qt - common ones. Feel free to add more to
them.
To simplify the structure, there are separated files in
`example.ui <./example/ui/>`__ folder.
- ``dw_buttons.ui``: all types of buttons;
- ``dw_containers_no_tabs.ui``: all types of containers except for
tabs;
- ``dw_containers_tabs.ui``: all containers tabs;
- ``dw_displays.ui``: all types of displays;
- ``dw_inputs_fields.ui``: all types of inputs with fields;
- ``dw_inputs_no_fields.ui``: all types of inputs without fields;
- ``dw_views.ui``: all types of views;
- ``dw_widgets.ui``: all types of widgets;
- ``mw_menus.ui``: main window with all menus and toolbars.
*Obs.: ``dw`` stands for dock widget and ``mw`` for main window.*
The entire example is built at runtime, in
`example.py <./example/example.py>`__. To see more information about it,
see its documentation.
Modifying UI Files
~~~~~~~~~~~~~~~~~~
Feel free to modify `ui <./example/ui>`__ files with Qt Designer and
recompile UI using `process\_ui.py <./script/process_ui.py>`__ script,
inside script folder, using:
::
```bash
python process_ui.py
```
It will generate all ``_ui.py`` files for PyQt4, PyQt5, PySide, QtPy,
PyQtGraph.
Modifying QSS File
~~~~~~~~~~~~~~~~~~
If you are changing the `stylesheet <./qdarkstyle/style.qss>`__, you
will need to recompile the QRC files using
`process\_qrc.py <./script/process_qrc.py>`__ script, inside script
folder.
::
```bash
python process_qrc.py
```
This generates all ``_rc.py`` files for PyQt4, PyQt5, PySide, QtPy,
PyQtGraph.
Making It Easy
~~~~~~~~~~~~~~
To simplify this process for the developer, if you are changing many
things, use the script
`run\_ui\_css\_edition.py <./script/run_ui_css_edition.py>`__:
::
```bash
python run_ui_css_edition.py
```
This creates a loop that restarts the application, process ui and css
files.
For more information about those scripts, see their documentation.
Qt, Stylesheets, Palettes and Icons
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `Box model <http://doc.qt.io/qt-5/images/stylesheet-boxmodel.png>`__
- `Box model with height and
width <https://www.tutorialrepublic.com/lib/images/css-box-model.jpg>`__
- `Customizing
Widgets <http://doc.qt.io/qt-5/stylesheet-customizing.html>`__
- `Window
structure <http://doc.qt.io/qt-5/images/mainwindowlayout.png>`__
- `QMainWindow <http://doc.qt.io/qt-5/qmainwindow.html>`__
- `References <http://doc.qt.io/qt-5/stylesheet.html>`__
Create good palettes with these tools. For example, on paletton, choose
three colors from greyish light (foreground), greyish dark (background)
and three more colorfull colors (selection). Greyish colors have a litle
bit of the main color, so it is nice to change it if you change the main
color.
- `Paletton.com <http://paletton.com/>`__
- `Coolors.co <https://coolors.co/>`__
As a minimal guide to create new icons (svg) images, we list two main
sources.
- `Material <https://material.io/design/iconography/product-icons.html#grid-keyline-shapes>`__
- `KDE <https://hig.kde.org/style/icon.html>`__
Main characteristics of SVG images are:
- Base size: 32px X 32px;
- Border: 2px space, except continuous lines;
- Corners and line end's: rounded;
- Line: 2px minimum thickness. Complementary thickness using multiples
of 2px;
- Spacing: 4px when needed;
- Color: #ff0000, red for all images - programatically changed;
- Keep only structural changes in images, not colors, e.g, states hover
and disabled;
- Lines and shapes should align with the grid centralized;
- Names: from basic form to specific, so they keep grouped. Ex.:
arrow\_left, arrow\_up.
Some example are given below for the horizontal Handle, Minimize, and
checked Checkbox.
.. raw:: html
<table style="width:100%">
.. raw:: html
<tr>
::
<th colspan=3>Examples of icons</th>
.. raw:: html
</tr>
.. raw:: html
<tr>
::
<td><img src="./images/icon_checkbox_indeterminated.png"/></td>
<td><img src="./images/icon_minimize.png"/></td>
<td><img src="./images/move.png"/></td>
.. raw:: html
</tr>
.. raw:: html
</table>
Unit Testing and Fix Preview
----------------------------
It is a good practice, if you are writing functions to QDarkStyle or
fixing something related to those functions (not style), that you
provide a test for it.
If you are fixing something about style, please, at least, provide an
screenshot before and after the fix to comparison. This could be
inserted in the issue tracker, as a message. Better than that, use
modules provided in test folder to create a GUI test, creating a new
file for it.
Check `test <./test>`__ files to more details. Tests will keep our
application stable.
If You Are a Mantainer, Go Ahead to Production
----------------------------------------------
Of course, until you start these steps, make sure the package have
passed all tests and checkers before continue. You must have accoutns to
both test and oficial PyPI website below along with be inserted as a
maintainer in both.
1. Install ``twine``
``pip install twine``
2. Generate a distribution (code package and wheel)
``python setup.py sdist bdist_wheel``
3. Check with ``twine``, which also tests README format for PyPI
``twine check dist/*``
4. Try upload in `PyPI test
page <https://test.pypi.org/project/QDarkStyle>`__ platform before
the oficial
``twine upload --repository-url https://test.pypi.org/legacy/ dist/*``
5. Try to install from test
``pip install --no-deps --index-url https://test.pypi.org/simple/ qdarkstyle``
6. Then, remove it
``pip uninstall qdarkstyle -y``
7. Upload to `PyPI official
page <https://pypi.python.org/pypi/QDarkStyle>`__
``twine upload --repository-url https://upload.pypi.org/legacy/ dist/*``
8. Try to install from oficial
``pip install qdarkstyle``
You can also use the tox environment to produce the release and upload
the distribution.
::
`tox -e release`

405
deps/QDark/LICENSE.rst vendored
View File

@ -1,405 +0,0 @@
License
=======
The MIT License (MIT) - Code
----------------------------
Copyright (c) 2013-2019 Colin Duquesnoy
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Creative Commons Attribution International 4.0 - Images
-------------------------------------------------------
QDarkStyle (c) 2013-2019 Colin Duquesnoy
QDarkStyle (c) 2019-2019 Daniel Cosmo Pizetta
Creative Commons Corporation (“Creative Commons”) is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an “as-is” basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright and
certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
- **Considerations for licensors:** Our public licenses are intended
for use by those authorized to give the public permission to use
material in ways otherwise restricted by copyright and certain other
rights. Our licenses are irrevocable. Licensors should read and
understand the terms and conditions of the license they choose before
applying it. Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the material as
expected. Licensors should clearly mark any material not subject to
the license. This includes other CC-licensed material, or material
used under an exception or limitation to copyright. `More
considerations for
licensors <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors>`__.
- **Considerations for the public:** By using one of our public
licenses, a licensor grants the public permission to use the licensed
material under specified terms and conditions. If the licensors
permission is not necessary for any reasonfor example, because of
any applicable exception or limitation to copyrightthen that use is
not regulated by the license. Our licenses grant only permissions
under copyright and certain other rights that a licensor has
authority to grant. Use of the licensed material may still be
restricted for other reasons, including because others have copyright
or other rights in the material. A licensor may make special
requests, such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to respect
those requests where reasonable. `More considerations for the
public <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees>`__.
Creative Commons Attribution 4.0 International Public License
-------------------------------------------------------------
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of these
terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the Licensed
Material available under these terms and conditions.
Section 1 Definitions
~~~~~~~~~~~~~~~~~~~~~~~
a. **Adapted Material** means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material and
in which the Licensed Material is translated, altered, arranged,
transformed, or otherwise modified in a manner requiring permission
under the Copyright and Similar Rights held by the Licensor. For
purposes of this Public License, where the Licensed Material is a
musical work, performance, or sound recording, Adapted Material is
always produced where the Licensed Material is synched in timed
relation with a moving image.
b. **Adapter's License** means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. **Copyright and Similar Rights** means copyright and/or similar
rights closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or categorized.
For purposes of this Public License, the rights specified in Section
2(b)(1)-(2) are not Copyright and Similar Rights.
d. **Effective Technological Measures** means those measures that, in
the absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright Treaty
adopted on December 20, 1996, and/or similar international
agreements.
e. **Exceptions and Limitations** means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. **Licensed Material** means the artistic or literary work, database,
or other material to which the Licensor applied this Public License.
g. **Licensed Rights** means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to all
Copyright and Similar Rights that apply to Your use of the Licensed
Material and that the Licensor has authority to license.
h. **Licensor** means the individual(s) or entity(ies) granting rights
under this Public License.
i. **Share** means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such as
reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the public
may access the material from a place and at a time individually
chosen by them.
j. **Sui Generis Database Rights** means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases, as
amended and/or succeeded, as well as other essentially equivalent
rights anywhere in the world.
k. **You** means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 Scope
~~~~~~~~~~~~~~~~~
a. **License grant.**
1. Subject to the terms and conditions of this Public License, the
Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to exercise the
Licensed Rights in the Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part;
and
B. produce, reproduce, and Share Adapted Material.
2. **Exceptions and Limitations.** For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public License
does not apply, and You do not need to comply with its terms and
conditions.
3. **Term.** The term of this Public License is specified in Section
6(a).
4. **Media and formats; technical modifications allowed.** The Licensor
authorizes You to exercise the Licensed Rights in all media and
formats whether now known or hereafter created, and to make technical
modifications necessary to do so. The Licensor waives and/or agrees
not to assert any right or authority to forbid You from making
technical modifications necessary to exercise the Licensed Rights,
including technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License, simply
making modifications authorized by this Section 2(a)(4) never
produces Adapted Material.
5. **Downstream recipients.**
A. **Offer from the Licensor Licensed Material.** Every recipient
of the Licensed Material automatically receives an offer from the
Licensor to exercise the Licensed Rights under the terms and
conditions of this Public License.
B. **No downstream restrictions.** You may not offer or impose any
additional or different terms or conditions on, or apply any
Effective Technological Measures to, the Licensed Material if doing
so restricts exercise of the Licensed Rights by any recipient of the
Licensed Material.
6. **No endorsement.** Nothing in this Public License constitutes or may
be construed as permission to assert or imply that You are, or that
Your use of the Licensed Material is, connected with, or sponsored,
endorsed, or granted official status by, the Licensor or others
designated to receive attribution as provided in Section
3(a)(1)(A)(i).
b. **Other rights.**
1. Moral rights, such as the right of integrity, are not licensed under
this Public License, nor are publicity, privacy, and/or other similar
personality rights; however, to the extent possible, the Licensor
waives and/or agrees not to assert any such rights held by the
Licensor to the limited extent necessary to allow You to exercise the
Licensed Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this Public
License.
3. To the extent possible, the Licensor waives any right to collect
royalties from You for the exercise of the Licensed Rights, whether
directly or through a collecting society under any voluntary or
waivable statutory or compulsory licensing scheme. In all other cases
the Licensor expressly reserves any right to collect such royalties.
Section 3 License Conditions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. **Attribution.**
1. If You Share the Licensed Material (including in modified form), You
must:
A. retain the following if it is supplied by the Licensor with the
Licensed Material:
i. identification of the creator(s) of the Licensed Material and any
others designated to receive attribution, in any reasonable manner
requested by the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
B. indicate if You modified the Licensed Material and retain an
indication of any previous modifications; and
C. indicate the Licensed Material is licensed under this Public
License, and include the text of, or the URI or hyperlink to, this
Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable
manner based on the medium, means, and context in which You Share the
Licensed Material. For example, it may be reasonable to satisfy the
conditions by providing a URI or hyperlink to a resource that
includes the required information.
3. If requested by the Licensor, You must remove any of the information
required by Section 3(a)(1)(A) to the extent reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's License You
apply must not prevent recipients of the Adapted Material from
complying with this Public License.
Section 4 Sui Generis Database Rights
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Where the Licensed Rights include Sui Generis Database Rights that apply
to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to
extract, reuse, reproduce, and Share all or a substantial portion of
the contents of the database;
b. if You include all or a substantial portion of the database contents
in a database in which You have Sui Generis Database Rights, then the
database in which You have Sui Generis Database Rights (but not its
individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share all
or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 Disclaimer of Warranties and Limitation of Liability
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a. Unless otherwise separately undertaken by the Licensor, to the
extent possible, the Licensor offers the Licensed Material as-is and
as-available, and makes no representations or warranties of any kind
concerning the Licensed Material, whether express, implied,
statutory, or other. This includes, without limitation, warranties of
title, merchantability, fitness for a particular purpose,
non-infringement, absence of latent or other defects, accuracy, or
the presence or absence of errors, whether or not known or
discoverable. Where disclaimers of warranties are not allowed in full
or in part, this disclaimer may not apply to You.
b. To the extent possible, in no event will the Licensor be liable to
You on any legal theory (including, without limitation, negligence)
or otherwise for any direct, special, indirect, incidental,
consequential, punitive, exemplary, or other losses, costs, expenses,
or damages arising out of this Public License or use of the Licensed
Material, even if the Licensor has been advised of the possibility of
such losses, costs, expenses, or damages. Where a limitation of
liability is not allowed in full or in part, this limitation may not
apply to You.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent possible,
most closely approximates an absolute disclaimer and waiver of all
liability.
Section 6 Term and Termination
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a. This Public License applies for the term of the Copyright and Similar
Rights licensed here. However, if You fail to comply with this Public
License, then Your rights under this Public License terminate
automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided it is
cured within 30 days of Your discovery of the violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any right
the Licensor may have to seek remedies for Your violations of this
Public License.
c. For the avoidance of doubt, the Licensor may also offer the Licensed
Material under separate terms or conditions or stop distributing the
Licensed Material at any time; however, doing so will not terminate
this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 Other Terms and Conditions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a. The Licensor shall not be bound by any additional or different terms
or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and independent
of the terms and conditions of this Public License.
Section 8 Interpretation
~~~~~~~~~~~~~~~~~~~~~~~~~~
a. For the avoidance of doubt, this Public License does not, and shall
not be interpreted to, reduce, limit, restrict, or impose conditions
on any use of the Licensed Material that could lawfully be made
without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a
limitation upon, or waiver of, any privileges and immunities that
apply to the Licensor or You, including from the legal processes of
any jurisdiction or authority.
Creative Commons is not a party to its public licenses.
Notwithstanding, Creative Commons may elect to apply one of its
public licenses to material it publishes and in those instances will
be considered the “Licensor.” Except for the limited purpose of
indicating that material is shared under a Creative Commons public
license or as otherwise permitted by the Creative Commons policies
published at
`creativecommons.org/policies <http://creativecommons.org/policies>`__,
Creative Commons does not authorize the use of the trademark
“Creative Commons” or any other trademark or logo of Creative
Commons without its prior written consent including, without
limitation, in connection with any unauthorized modifications to any
of its public licenses or any other arrangements, understandings, or
agreements concerning use of licensed material. For the avoidance of
doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org

View File

@ -1,13 +0,0 @@
#
# MANIFEST.in
#
# Manifest template for creating the PyLudic source distribution.
include MANIFEST.in
include setup.py
include AUTHORS.rst
include CHANGES.rst
include CONTRIBUTING.rst
include LICENSE.rst
include README.rst
include qdarkstyle/*

36
deps/QDark/PKGBUILD vendored
View File

@ -1,36 +0,0 @@
# Submitter: Colin Duquesnoy <colin.duquesnoy@gmail.com>
# Maintainer: Colin Duquesnoy <colin.duquesnoy@gmail.com>
pkgbase=python-qdarkstyle
pkgname=('python2-qdarkstyle' 'python-qdarkstyle')
pkgver=1.16
_pkgver=1.16
pkgrel=1
arch=('any')
url="https://github.com/davidhalter/qdarkstyle"
license=('MIT')
depends=('python2')
makedepends=('python2-setuptools' 'python-setuptools')
source=("https://pypi.python.org/packages/source/Q/QDarkStyle/QDarkStyle-${_pkgver}.tar.gz")
md5sums=('6d742d304406a1a6733a27542402ce82')
build() {
cd "$srcdir/QDarkStyle-${_pkgver}"
}
package_python-qdarkstyle() {
pkgdesc="A dark stylesheet for pyside/pyqt applications"
depends=('python')
cd "$srcdir/QDarkStyle-${_pkgver}"
python3 setup.py install --root="$pkgdir/" --optimize=1
install -D -m644 "$srcdir/QDarkStyle-${_pkgver}/COPYING" $pkgdir/usr/share/licenses/$pkgname/LICENSE
}
package_python2-qdarkstyle() {
pkgdesc="A dark stylesheet for pyside/pyqt applications"
depends=('python2')
cd "$srcdir/QDarkStyle-${_pkgver}"
python2 setup.py install --root="$pkgdir/" --optimize=1
install -D -m644 "$srcdir/QDarkStyle-${_pkgver}/COPYING" $pkgdir/usr/share/licenses/$pkgname/LICENSE
}

292
deps/QDark/README.rst vendored
View File

@ -1,292 +0,0 @@
QDarkStylesheet
===============
|Build Status| |Docs Status| |Latest PyPI version| |License: MIT|
|License: CC BY 4.0| |Conduct|
The most complete dark stylesheet for Qt application (Qt4, Qt5, PySide,
PySide2, PyQt4, PyQt5, QtPy, PyQtGraph, Qt.Py).
Installation
------------
Python
~~~~~~
From PyPI: Get the latest stable version of ``qdarkstyle`` package using
*pip* (preferable):
.. code:: bash
pip install qdarkstyle
From code: Download/clone the project, go to ``qdarkstyle`` folder then:
- You can use the *setup* script and pip install.
.. code:: bash
pip install .
- Or, you can use the *setup* script with Python:
.. code:: bash
python setup.py install
C++
~~~
- Download/clone the project and copy the following files to your
application directory (keep the existing directory hierarchy):
- **qdarkstyle/style.qss**
- **qdarkstyle/style.qrc**
- **qdarkstyle/rc/** (the whole directory)
- Add **qdarkstyle/style.qrc** to your **.pro file** as follows:
.. code:: c++
RESOURCES += qdarkstyle/style.qrc
- Load the stylesheet:
.. code:: c++
QFile f(":qdarkstyle/style.qss");
if (!f.exists()) {
printf("Unable to set stylesheet, file not found\n");
}
else {
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
}
Note: The ":" in the file name is necessary to define that file as a
resource library. For more information see the discussion
`here <https://github.com/ColinDuquesnoy/QDarkStyleSheet/pull/87>`__.
Usage
-----
If your project already uses QtPy or you need to set it programmatically,
it is far more simple
.. code:: python
import sys
import qdarkstyle
import os
# set the environment variable to use a specific wrapper
# it can be set to pyqt, pyqt5, pyside or pyside2 (not implemented yet)
# you do not need to use QtPy to set this variable
os.environ['QT_API'] = 'pyqt5'
# import from QtPy instead of doing it directly
# note that QtPy always uses PyQt5 API
from qtpy import QtWidgets
# create the application and the main window
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
# setup stylesheet
# the default system in qdarkstyle uses qtpy environment variable
app.setStyleSheet(qdarkstyle.load_stylesheet())
# run
window.show()
app.exec_()
If you are using PyQt5 directly, see the complete example
.. code:: python
import sys
import qdarkstyle
from PyQt5 import QtWidgets
# create the application and the main window
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
# setup stylesheet
app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
# or in new API
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5'))
# run
window.show()
app.exec_()
Here is an example using PySide2
.. code:: python
import sys
import qdarkstyle
from PyQt5 import QtWidgets
# create the application and the main window
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
# setup stylesheet
app.setStyleSheet(qdarkstyle.load_stylesheet_pyside2())
# or in new API
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
# run
window.show()
app.exec_()
If you use PyQtGraph, then the code is
.. code:: python
import sys
import qdarkstyle
import os
# set the environment variable to use a specific wrapper
# it can be set to PyQt, PyQt5, PySide or PySide2 (not implemented yet)
os.environ['PYQTGRAPH_QT_LIB'] = 'PyQt5'
# import from pyqtgraph instead of doing it directly
# note that PyQtGraph always uses PyQt4 API
from pyqtgraph.Qt import QtGui
# create the application and the main window
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
# setup stylesheet
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api=os.environ['PYQTGRAPH_QT_LIB'])
# run
window.show()
app.exec_()
If you are using Qt.py, which is different from qtpy, you should install
qtpy then set both to the same binding.
*There is an example included in the *example* folder. You can run the
script without installing qdarkstyle. You only need to have PySide or
PySide2 or PyQt4 or PyQt5 installed on your system.*
What is new?
------------
In the version 2.6 and later, a reestructure stylesheet is provided. The
palette has only 9 colors. Most widgets are revised and their styles
were improved. We also provide a command line (script) to get info that
could be used when opening issues. See the image below.
From 2.7, we have added SCSS, so the palette can be accessed programatically.
Also many scripts were added to give freedom fro developers who wants to
change the colors of our palette. All images and icons were revised, also
creating SVG files for all of them.
From 2.8, we moved to QtPy to simplify your code, thus this is a
required dependency now.
Screenshots
-----------
Here are a few snapshots comparing the use of QDarkStyle and the
default style. Click in the image to zoom.
Containers (no tabs) and Buttons
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/dark_containers_buttons.png
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/images/no_dark_containers_buttons.png
Containers (tabs) and Displays
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/dark_containers_tabs_displays.png
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/no_dark_containers_tabs_displays.png
Widgets and Inputs (fields)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/dark_widgets_inputs_fields.png
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/no_dark_widgets_inputs_fields.png
Views and Inputs (no fields)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/dark_views_inputs_no_fields.png
.. image:: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/images/no_dark_views_inputs_no_fields.png
Changelog
---------
Please, see `CHANGES <CHANGES.rst>`__ file.
License
-------
This project is licensed under the MIT license. Images contained in this
project are licensed under CC-BY license.
For more information see `LICENSE <LICENSE.rst>`__ file.
Authors
-------
For more information see `AUTHORS <AUTHORS.rst>`__ file.
Contributing
------------
Most widgets have been styled. If you find a widget that has not been
style, just open an issue on the issue tracker or, better, submit a pull
request.
If you want to contribute, see `CONTRIBUTING <CONTRIBUTING.rst>`__ file.
.. |Build Status| image:: https://travis-ci.org/ColinDuquesnoy/QDarkStyleSheet.png?branch=master
:target: https://travis-ci.org/ColinDuquesnoy/QDarkStyleSheet
.. |Docs Status| image:: https://readthedocs.org/projects/qdarkstylesheet/badge/?version=latest&style=flat
:target: https://qdarkstylesheet.readthedocs.io
.. |Latest PyPI version| image:: https://img.shields.io/pypi/v/QDarkStyle.svg
:target: https://pypi.python.org/pypi/QDarkStyle
.. |License: MIT| image:: https://img.shields.io/dub/l/vibe-d.svg?color=lightgrey
:target: https://opensource.org/licenses/MIT
.. |License: CC BY 4.0| image:: https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg
:target: https://creativecommons.org/licenses/by/4.0/
.. |Conduct| image:: https://img.shields.io/badge/code%20of%20conduct-contributor%20covenant-green.svg?style=flat&color=lightgrey
:target: http://contributor-covenant.org/version/1/4/

View File

@ -1,20 +0,0 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = QDarkStyle
SOURCEDIR = .
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

View File

@ -1 +0,0 @@
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 434 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,3 +0,0 @@
/* sphinx_rtd_theme version 0.4.3 | MIT license */
/* Built 20190212 16:02 */
require=function r(s,a,l){function c(e,n){if(!a[e]){if(!s[e]){var i="function"==typeof require&&require;if(!n&&i)return i(e,!0);if(u)return u(e,!0);var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}var o=a[e]={exports:{}};s[e][0].call(o.exports,function(n){return c(s[e][1][n]||n)},o,o.exports,r,s,a,l)}return a[e].exports}for(var u="function"==typeof require&&require,n=0;n<l.length;n++)c(l[n]);return c}({"sphinx-rtd-theme":[function(n,e,i){var jQuery="undefined"!=typeof window?window.jQuery:n("jquery");e.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(e){var i=this;void 0===e&&(e=!0),i.isRunning||(i.isRunning=!0,jQuery(function(n){i.init(n),i.reset(),i.win.on("hashchange",i.reset),e&&i.win.on("scroll",function(){i.linkScroll||i.winScroll||(i.winScroll=!0,requestAnimationFrame(function(){i.onScroll()}))}),i.win.on("resize",function(){i.winResize||(i.winResize=!0,requestAnimationFrame(function(){i.onResize()}))}),i.onResize()}))},enableSticky:function(){this.enable(!0)},init:function(i){i(document);var t=this;this.navBar=i("div.wy-side-scroll:first"),this.win=i(window),i(document).on("click","[data-toggle='wy-nav-top']",function(){i("[data-toggle='wy-nav-shift']").toggleClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift")}).on("click",".wy-menu-vertical .current ul li a",function(){var n=i(this);i("[data-toggle='wy-nav-shift']").removeClass("shift"),i("[data-toggle='rst-versions']").toggleClass("shift"),t.toggleCurrent(n),t.hashChange()}).on("click","[data-toggle='rst-current-version']",function(){i("[data-toggle='rst-versions']").toggleClass("shift-up")}),i("table.docutils:not(.field-list,.footnote,.citation)").wrap("<div class='wy-table-responsive'></div>"),i("table.docutils.footnote").wrap("<div class='wy-table-responsive footnote'></div>"),i("table.docutils.citation").wrap("<div class='wy-table-responsive citation'></div>"),i(".wy-menu-vertical ul").not(".simple").siblings("a").each(function(){var e=i(this);expand=i('<span class="toctree-expand"></span>'),expand.on("click",function(n){return t.toggleCurrent(e),n.stopPropagation(),!1}),e.prepend(expand)})},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),i=e.find('[href="'+n+'"]');if(0===i.length){var t=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(i=e.find('[href="#'+t.attr("id")+'"]')).length&&(i=e.find('[href="#"]'))}0<i.length&&($(".wy-menu-vertical .current").removeClass("current"),i.addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l1").parent().addClass("current"),i.closest("li.toctree-l1").addClass("current"),i.closest("li.toctree-l2").addClass("current"),i.closest("li.toctree-l3").addClass("current"),i.closest("li.toctree-l4").addClass("current"),i[0].scrollIntoView())}catch(o){console.log("Error expanding nav for anchor",o)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,i=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(i),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",function(){this.linkScroll=!1})},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:e.exports.ThemeNav,StickyNav:e.exports.ThemeNav}),function(){for(var r=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),t=Math.max(0,16-(i-r)),o=window.setTimeout(function(){n(i+t)},t);return r=i+t,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(n){clearTimeout(n)})}()},{jquery:"jquery"}]},{},["sphinx-rtd-theme"]);

View File

@ -1 +0,0 @@
.. include:: ../AUTHORS.rst

View File

@ -1 +0,0 @@
.. include:: ../CHANGES.rst

View File

@ -1 +0,0 @@
.. include:: ../CODE_OF_CONDUCT.rst

View File

@ -1,181 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# QDarkStyle documentation build configuration file, created by
# sphinx-quickstart on Tue May 8 14:23:26 2018.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
import os
import sys
sys.path.insert(0, os.path.abspath('..'))
import qdarkstyle
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinx.ext.githubpages',
'sphinx.ext.napoleon']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
source_suffix = ['.rst']
#source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = 'QDarkStyle'
copyright = '2020, Colin Duquesnoy'
author = 'Colin Duquesnoy'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = qdarkstyle.__version__
# The full version, including alpha/beta/rc tags.
release = ''
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# This is required for the alabaster theme
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
html_sidebars = {
'**': [
'relations.html', # needs 'show_related': True theme option to display
'searchbox.html',
]
}
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'QDarkStyledoc'
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'QDarkStyle.tex', 'QDarkStyle Documentation',
'Colin Duquesnoy', 'manual'),
]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'qdarkstyle', 'QDarkStyle Documentation',
[author], 1)
]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'QDarkStyle', 'QDarkStyle Documentation',
author, 'QDarkStyle', 'One line description of project.',
'Miscellaneous'),
]
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None}

View File

@ -1 +0,0 @@
.. include:: ../CONTRIBUTING.rst

View File

@ -1,7 +0,0 @@
example module
==============
.. automodule:: example
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
example
=======
.. toctree::
:maxdepth: 4
example

View File

@ -1,28 +0,0 @@
.. QDarkStyle documentation master file, created by
sphinx-quickstart on Tue May 8 14:23:26 2018.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to QDarkStyle's documentation!
======================================
.. toctree::
:maxdepth: 2
readme.rst
example/modules.rst
reference/modules.rst
scripts/modules.rst
known_issues.rst
contributing.rst
changes.rst
authors.rst
license.rst
code_of_conduct.rst
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -1,7 +0,0 @@
Known Issues
============
Combo Box
---------
Describe the problem, add some images and code.

View File

@ -1 +0,0 @@
.. include:: ../LICENSE.rst

View File

@ -1,36 +0,0 @@
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=build
set SPHINXPROJ=QDarkStyle
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
:end
popd

View File

@ -1 +0,0 @@
.. include:: ../README.rst

View File

@ -1,7 +0,0 @@
qdarkstyle
==========
.. toctree::
:maxdepth: 4
qdarkstyle

View File

@ -1,7 +0,0 @@
qdarkstyle.\_\_main\_\_ module
==============================
.. automodule:: qdarkstyle.__main__
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
qdarkstyle.palette module
=========================
.. automodule:: qdarkstyle.palette
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,23 +0,0 @@
qdarkstyle package
==================
.. automodule:: qdarkstyle
:members:
:undoc-members:
:show-inheritance:
Subpackages
-----------
.. toctree::
qdarkstyle.utils
Submodules
----------
.. toctree::
qdarkstyle.__main__
qdarkstyle.palette
qdarkstyle.style_rc

View File

@ -1,7 +0,0 @@
qdarkstyle.style\_rc module
===========================
.. automodule:: qdarkstyle.style_rc
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
qdarkstyle.utils.images module
==============================
.. automodule:: qdarkstyle.utils.images
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,15 +0,0 @@
qdarkstyle.utils package
========================
.. automodule:: qdarkstyle.utils
:members:
:undoc-members:
:show-inheritance:
Submodules
----------
.. toctree::
qdarkstyle.utils.images
qdarkstyle.utils.scss

View File

@ -1,7 +0,0 @@
qdarkstyle.utils.scss module
============================
.. automodule:: qdarkstyle.utils.scss
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,9 +0,0 @@
scripts
=======
.. toctree::
:maxdepth: 4
process_qrc
process_ui
run_ui_css_edition

View File

@ -1,7 +0,0 @@
process\_qrc module
===================
.. automodule:: process_qrc
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
process\_ui module
==================
.. automodule:: process_ui
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,7 +0,0 @@
run\_ui\_css\_edition module
============================
.. automodule:: run_ui_css_edition
:members:
:undoc-members:
:show-inheritance:

View File

@ -1,372 +0,0 @@
#!python
# -*- coding: utf-8 -*-
"""Example of qdarkstyle use for Python and Qt applications.
This module a main window with every item that could be created with
Qt Design (common ones) in the basic states (enabled/disabled), and
(checked/unchecked) for those who has this attribute.
Requirements:
- Python 2 or Python 3
- QtPy
- PyQt5 or PyQt4 or PySide2 or PySide
- PyQtGraph or Qt.Py (if choosen)
To run this example using PyQt5, simple do
.. code-block:: python
python example.py
or
.. code-block:: python
python example.py --qt_from=pyqt5
Other options for qt_from are: pyqt5, pyside2, pyqt, pyside, qtpy, pyqtgraph, and qt.py.
Also, you can run the example without dark theme (no_dark), to check for problems.
.. code-block:: python
python example.py --qt_from=pyqt5 --no_dark
Note:
qdarkstyle does not have to be installed to run the example.
"""
# Standard library imports
import argparse
import logging
import os
import sys
import platform
import time
# Make the example runnable without the need to install and include ui
sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + '/..'))
sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + '/ui'))
# Must be in this place, after setting path, to not need to install
import qdarkstyle # noqa: E402
# Set log for debug
logging.basicConfig(level=logging.DEBUG)
_logger = logging.getLogger(__name__)
# Constants
SCREENSHOTS_PATH = qdarkstyle.IMAGES_PATH
def main():
"""Execute QDarkStyle example."""
parser = argparse.ArgumentParser(description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('--qt_from', default='qtpy', type=str,
choices=['pyqt5', 'pyqt', 'pyside2', 'pyside', 'qtpy', 'pyqtgraph', 'qt.py'],
help="Choose which binding and/or abstraction is to be used to run the example.")
parser.add_argument('--no_dark', action='store_true',
help="Exihibts the original window (without qdarkstyle).")
parser.add_argument('--test', action='store_true',
help="Auto close window after 2s.")
parser.add_argument('--reset', action='store_true',
help="Reset GUI settings (position, size) then opens.")
parser.add_argument('--screenshots', action='store_true',
help="Generate screenshots on images folder.")
# Parsing arguments from command line
args = parser.parse_args()
# To avoid problems when testing without screen
if args.test or args.screenshots:
os.environ['QT_QPA_PLATFORM'] = 'offscreen'
# Set QT_API variable before importing QtPy
if args.qt_from in ['pyqt', 'pyqt5', 'pyside', 'pyside2']:
os.environ['QT_API'] = args.qt_from
elif args.qt_from == 'pyqtgraph':
os.environ['QT_API'] = os.environ['PYQTGRAPH_QT_LIB']
elif args.qt_from in ['qt.py', 'qt']:
try:
import Qt
except ImportError:
print('Could not import Qt (Qt.Py)')
else:
os.environ['QT_API'] = Qt.__binding__
# QtPy imports
from qtpy import API_NAME, QT_VERSION, PYQT_VERSION, PYSIDE_VERSION
from qtpy import __version__ as QTPY_VERSION
from qtpy.QtWidgets import (QApplication, QMainWindow, QDockWidget,
QStatusBar, QLabel, QPushButton, QMenu)
from qtpy.QtCore import QTimer, Qt, QSettings
# Set API_VERSION variable
API_VERSION = ''
if PYQT_VERSION:
API_VERSION = PYQT_VERSION
elif PYSIDE_VERSION:
API_VERSION = PYSIDE_VERSION
else:
API_VERSION = 'Not found'
# Import examples UI
from mw_menus_ui import Ui_MainWindow as ui_main
from dw_buttons_ui import Ui_DockWidget as ui_buttons
from dw_displays_ui import Ui_DockWidget as ui_displays
from dw_inputs_fields_ui import Ui_DockWidget as ui_inputs_fields
from dw_inputs_no_fields_ui import Ui_DockWidget as ui_inputs_no_fields
from dw_widgets_ui import Ui_DockWidget as ui_widgets
from dw_views_ui import Ui_DockWidget as ui_views
from dw_containers_tabs_ui import Ui_DockWidget as ui_containers_tabs
from dw_containers_no_tabs_ui import Ui_DockWidget as ui_containers_no_tabs
# create the application
app = QApplication(sys.argv)
app.setOrganizationName('QDarkStyle')
app.setApplicationName('QDarkStyle Example')
style = ''
if not args.no_dark:
style = qdarkstyle.load_stylesheet()
app.setStyleSheet(style)
# create main window
window = QMainWindow()
window.setObjectName('mainwindow')
ui = ui_main()
ui.setupUi(window)
title = ("QDarkStyle Example - "
+ "(QDarkStyle=v" + qdarkstyle.__version__
+ ", QtPy=v" + QTPY_VERSION
+ ", " + API_NAME + "=v" + API_VERSION
+ ", Qt=v" + QT_VERSION
+ ", Python=v" + platform.python_version() + ")")
_logger.info(title)
window.setWindowTitle(title)
# Create docks for buttons
dw_buttons = QDockWidget()
dw_buttons.setObjectName('buttons')
ui_buttons = ui_buttons()
ui_buttons.setupUi(dw_buttons)
window.addDockWidget(Qt.RightDockWidgetArea, dw_buttons)
# Add actions on popup toolbuttons
menu = QMenu()
for action in ['Action A', 'Action B', 'Action C']:
menu.addAction(action)
ui_buttons.toolButtonDelayedPopup.setMenu(menu)
ui_buttons.toolButtonInstantPopup.setMenu(menu)
ui_buttons.toolButtonMenuButtonPopup.setMenu(menu)
# Create docks for buttons
dw_displays = QDockWidget()
dw_displays.setObjectName('displays')
ui_displays = ui_displays()
ui_displays.setupUi(dw_displays)
window.addDockWidget(Qt.RightDockWidgetArea, dw_displays)
# Create docks for inputs - no fields
dw_inputs_no_fields = QDockWidget()
dw_inputs_no_fields.setObjectName('inputs_no_fields')
ui_inputs_no_fields = ui_inputs_no_fields()
ui_inputs_no_fields.setupUi(dw_inputs_no_fields)
window.addDockWidget(Qt.RightDockWidgetArea, dw_inputs_no_fields)
# Create docks for inputs - fields
dw_inputs_fields = QDockWidget()
dw_inputs_fields.setObjectName('inputs_fields')
ui_inputs_fields = ui_inputs_fields()
ui_inputs_fields.setupUi(dw_inputs_fields)
window.addDockWidget(Qt.RightDockWidgetArea, dw_inputs_fields)
# Create docks for widgets
dw_widgets = QDockWidget()
dw_widgets.setObjectName('widgets')
ui_widgets = ui_widgets()
ui_widgets.setupUi(dw_widgets)
window.addDockWidget(Qt.LeftDockWidgetArea, dw_widgets)
# Create docks for views
dw_views = QDockWidget()
dw_views.setObjectName('views')
ui_views = ui_views()
ui_views.setupUi(dw_views)
window.addDockWidget(Qt.LeftDockWidgetArea, dw_views)
# Create docks for containers - no tabs
dw_containers_no_tabs = QDockWidget()
dw_containers_no_tabs.setObjectName('containers_no_tabs')
ui_containers_no_tabs = ui_containers_no_tabs()
ui_containers_no_tabs.setupUi(dw_containers_no_tabs)
window.addDockWidget(Qt.LeftDockWidgetArea, dw_containers_no_tabs)
# Create docks for containters - tabs
dw_containers_tabs = QDockWidget()
dw_containers_tabs.setObjectName('containers_tabs')
ui_containers_tabs = ui_containers_tabs()
ui_containers_tabs.setupUi(dw_containers_tabs)
window.addDockWidget(Qt.LeftDockWidgetArea, dw_containers_tabs)
# Tabify right docks
window.tabifyDockWidget(dw_buttons, dw_displays)
window.tabifyDockWidget(dw_displays, dw_inputs_fields)
window.tabifyDockWidget(dw_inputs_fields, dw_inputs_no_fields)
# Tabify left docks
window.tabifyDockWidget(dw_containers_no_tabs, dw_containers_tabs)
window.tabifyDockWidget(dw_containers_tabs, dw_widgets)
window.tabifyDockWidget(dw_widgets, dw_views)
# Issues #9120, #9121 on Spyder
qstatusbar = QStatusBar()
qstatusbar.addWidget(QLabel('Issue Spyder #9120, #9121 - background not matching.'))
qstatusbar.addWidget(QPushButton('OK'))
# Add info also in status bar for screenshots get it
qstatusbar.addWidget(QLabel('INFO: ' + title))
window.setStatusBar(qstatusbar)
# Todo: add report info and other info in HELP graphical
# Auto quit after 2s when in test mode
if args.test:
QTimer.singleShot(2000, app.exit)
# Save screenshots for different displays and quit
if args.screenshots:
window.showFullScreen()
create_screenshots(app, window, args.no_dark)
# Do not read settings when taking screenshots - like reset
else:
_read_settings(window, args.reset, QSettings)
window.showMaximized()
app.exec_()
_write_settings(window, QSettings)
def _write_settings(window, QSettings):
"""Get window settings and write it into a file."""
settings = QSettings('QDarkStyle', 'QDarkStyle Example')
settings.setValue('pos', window.pos())
settings.setValue('size', window.size())
settings.setValue('state', window.saveState())
def _read_settings(window, reset, QSettings):
"""Read and set window settings from a file."""
settings = QSettings('QDarkStyle', 'QDarkStyle Example')
try:
pos = settings.value('pos', window.pos())
size = settings.value('size', window.size())
state = settings.value('state', window.saveState())
except Exception:
pos = settings.value('pos', window.pos(), type='QPoint')
size = settings.value('size', window.size(), type='QSize')
state = settings.value('state', window.saveState(), type='QByteArray')
if not reset:
window.restoreState(state)
window.resize(size)
window.move(pos)
def create_screenshots(app, window, no_dark):
"""Save screenshots for different application views and quit."""
from qtpy.QtCore import QCoreApplication
from qtpy.QtGui import QGuiApplication
from qtpy.QtWidgets import QDockWidget, QTabWidget
theme = 'no_dark' if no_dark else 'dark'
print('\nCreating {} screenshots'.format(theme))
docks = window.findChildren(QDockWidget)
tabs = window.findChildren(QTabWidget)
widget_data = {
'containers_no_tabs_buttons.png': [
'Containers - No Tabs',
'Buttons',
],
'containers_tabs_displays.png': [
'Containers - Tabs',
'Displays',
],
'widgets_inputs_fields.png': [
'Widgets',
'Inputs - Fields',
],
'views_inputs_no_fields.png': [
'Views',
'Inputs - No Fields',
]
}
# Central widget tabs of with examples, reset positions
tab = [tab for tab in tabs if tab.count() >= 12][0]
tab.setCurrentIndex(0)
QCoreApplication.processEvents()
for fname_suffix, dw_titles in widget_data.items():
png_path = os.path.join(SCREENSHOTS_PATH, theme + '_' + fname_suffix)
print('\t' + png_path)
for dw in docks:
if dw.windowTitle() in dw_titles:
print('Evidencing : ', dw.windowTitle())
dw.raise_()
dw.show()
QCoreApplication.processEvents()
# Attention: any change in update, processEvent and sleep calls
# make those screenshots not working, specially the first one.
# It seems that processEvents are not working properly
window.update()
window.showFullScreen()
QCoreApplication.processEvents()
time.sleep(0.5)
QCoreApplication.processEvents()
screen = QGuiApplication.primaryScreen()
QCoreApplication.processEvents()
pixmap = screen.grabWindow(window.winId())
# Yeah, this is duplicated to avoid screenshot problems
screen = QGuiApplication.primaryScreen()
QCoreApplication.processEvents()
pixmap = screen.grabWindow(window.winId())
img = pixmap.toImage()
img.save(png_path)
QCoreApplication.processEvents()
QCoreApplication.processEvents()
window.close()
print('\n')
app.exit(sys.exit())
if __name__ == "__main__":
sys.exit(main())

View File

@ -1,4 +0,0 @@
# -*- coding: utf-8 -*-
"""
This package contains the qt designer files and ui scripts.
"""

File diff suppressed because it is too large Load Diff

View File

@ -1,505 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'dw_buttons.ui'
#
# Created by: PyQt5 UI code generator 5.14.1
#
# WARNING! All changes made in this file will be lost!
from qtpy import QtCore, QtGui, QtWidgets
class Ui_DockWidget(object):
def setupUi(self, DockWidget):
DockWidget.setObjectName("DockWidget")
DockWidget.resize(652, 491)
self.dockWidgetContents = QtWidgets.QWidget()
self.dockWidgetContents.setObjectName("dockWidgetContents")
self.gridLayout = QtWidgets.QGridLayout(self.dockWidgetContents)
self.gridLayout.setObjectName("gridLayout")
self.label_72 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_72.setFont(font)
self.label_72.setObjectName("label_72")
self.gridLayout.addWidget(self.label_72, 0, 1, 1, 1)
self.label_73 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_73.setFont(font)
self.label_73.setObjectName("label_73")
self.gridLayout.addWidget(self.label_73, 0, 3, 1, 1)
self.label_26 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_26.setMinimumSize(QtCore.QSize(0, 0))
self.label_26.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_26.setFont(font)
self.label_26.setObjectName("label_26")
self.gridLayout.addWidget(self.label_26, 1, 0, 1, 1)
self.pushButton = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButton.setMinimumSize(QtCore.QSize(0, 0))
self.pushButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.pushButton.setObjectName("pushButton")
self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1)
self.pushButtonDis = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButtonDis.setEnabled(False)
self.pushButtonDis.setMinimumSize(QtCore.QSize(0, 0))
self.pushButtonDis.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.pushButtonDis.setDefault(False)
self.pushButtonDis.setObjectName("pushButtonDis")
self.gridLayout.addWidget(self.pushButtonDis, 1, 3, 1, 1)
self.label_74 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_74.setFont(font)
self.label_74.setObjectName("label_74")
self.gridLayout.addWidget(self.label_74, 2, 0, 1, 1)
self.pushButtonChecked = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButtonChecked.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.pushButtonChecked.setCheckable(True)
self.pushButtonChecked.setChecked(True)
self.pushButtonChecked.setObjectName("pushButtonChecked")
self.gridLayout.addWidget(self.pushButtonChecked, 2, 1, 1, 1)
self.pushButtonCheckedDis = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButtonCheckedDis.setEnabled(False)
self.pushButtonCheckedDis.setCheckable(True)
self.pushButtonCheckedDis.setChecked(True)
self.pushButtonCheckedDis.setObjectName("pushButtonCheckedDis")
self.gridLayout.addWidget(self.pushButtonCheckedDis, 2, 3, 1, 1)
self.label_76 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_76.setFont(font)
self.label_76.setObjectName("label_76")
self.gridLayout.addWidget(self.label_76, 3, 0, 1, 1)
self.pushButtonUnchecked = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButtonUnchecked.setCheckable(True)
self.pushButtonUnchecked.setObjectName("pushButtonUnchecked")
self.gridLayout.addWidget(self.pushButtonUnchecked, 3, 1, 1, 1)
self.pushButtonUncheckedDis = QtWidgets.QPushButton(self.dockWidgetContents)
self.pushButtonUncheckedDis.setEnabled(False)
self.pushButtonUncheckedDis.setCheckable(True)
self.pushButtonUncheckedDis.setObjectName("pushButtonUncheckedDis")
self.gridLayout.addWidget(self.pushButtonUncheckedDis, 3, 3, 1, 1)
self.label_33 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_33.setMinimumSize(QtCore.QSize(0, 0))
self.label_33.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_33.setFont(font)
self.label_33.setObjectName("label_33")
self.gridLayout.addWidget(self.label_33, 4, 0, 1, 1)
self.toolButton = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButton.setMinimumSize(QtCore.QSize(0, 0))
self.toolButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.toolButton.setObjectName("toolButton")
self.gridLayout.addWidget(self.toolButton, 4, 1, 1, 1)
self.toolButtonIcon = QtWidgets.QToolButton(self.dockWidgetContents)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/qss_icons/rc/window_undock@2x.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.toolButtonIcon.setIcon(icon)
self.toolButtonIcon.setObjectName("toolButtonIcon")
self.gridLayout.addWidget(self.toolButtonIcon, 4, 2, 1, 1)
self.toolButtonDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonDis.setEnabled(False)
self.toolButtonDis.setMinimumSize(QtCore.QSize(0, 0))
self.toolButtonDis.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.toolButtonDis.setObjectName("toolButtonDis")
self.gridLayout.addWidget(self.toolButtonDis, 4, 3, 1, 1)
self.toolButtonIconDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonIconDis.setEnabled(False)
self.toolButtonIconDis.setObjectName("toolButtonIconDis")
self.gridLayout.addWidget(self.toolButtonIconDis, 4, 4, 1, 1)
self.label_2 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 5, 0, 1, 1)
self.toolButtonChecked = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonChecked.setCheckable(True)
self.toolButtonChecked.setChecked(True)
self.toolButtonChecked.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
self.toolButtonChecked.setObjectName("toolButtonChecked")
self.gridLayout.addWidget(self.toolButtonChecked, 5, 1, 1, 1)
self.toolButtonCheckedIcon = QtWidgets.QToolButton(self.dockWidgetContents)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/qss_icons/rc/window_undock.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.toolButtonCheckedIcon.setIcon(icon1)
self.toolButtonCheckedIcon.setCheckable(True)
self.toolButtonCheckedIcon.setChecked(True)
self.toolButtonCheckedIcon.setObjectName("toolButtonCheckedIcon")
self.gridLayout.addWidget(self.toolButtonCheckedIcon, 5, 2, 1, 1)
self.toolButtonCheckedDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonCheckedDis.setEnabled(False)
self.toolButtonCheckedDis.setCheckable(True)
self.toolButtonCheckedDis.setChecked(True)
self.toolButtonCheckedDis.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
self.toolButtonCheckedDis.setObjectName("toolButtonCheckedDis")
self.gridLayout.addWidget(self.toolButtonCheckedDis, 5, 3, 1, 1)
self.toolButtonCheckedIconDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonCheckedIconDis.setEnabled(False)
self.toolButtonCheckedIconDis.setCheckable(True)
self.toolButtonCheckedIconDis.setChecked(True)
self.toolButtonCheckedIconDis.setObjectName("toolButtonCheckedIconDis")
self.gridLayout.addWidget(self.toolButtonCheckedIconDis, 5, 4, 1, 1)
self.label_3 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 6, 0, 1, 1)
self.gridLayout_3 = QtWidgets.QGridLayout()
self.gridLayout_3.setObjectName("gridLayout_3")
self.toolButtonArrowUp = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowUp.setArrowType(QtCore.Qt.UpArrow)
self.toolButtonArrowUp.setObjectName("toolButtonArrowUp")
self.gridLayout_3.addWidget(self.toolButtonArrowUp, 0, 1, 1, 1)
self.toolButtonArrowLeft = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowLeft.setArrowType(QtCore.Qt.LeftArrow)
self.toolButtonArrowLeft.setObjectName("toolButtonArrowLeft")
self.gridLayout_3.addWidget(self.toolButtonArrowLeft, 0, 3, 1, 1)
self.toolButtonArrowRight = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowRight.setArrowType(QtCore.Qt.RightArrow)
self.toolButtonArrowRight.setObjectName("toolButtonArrowRight")
self.gridLayout_3.addWidget(self.toolButtonArrowRight, 0, 2, 1, 1)
self.toolButtonArrowDown = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowDown.setArrowType(QtCore.Qt.DownArrow)
self.toolButtonArrowDown.setObjectName("toolButtonArrowDown")
self.gridLayout_3.addWidget(self.toolButtonArrowDown, 0, 0, 1, 1)
self.toolButtonDots = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonDots.setObjectName("toolButtonDots")
self.gridLayout_3.addWidget(self.toolButtonDots, 0, 4, 1, 1)
self.gridLayout.addLayout(self.gridLayout_3, 6, 1, 1, 2)
self.gridLayout_2 = QtWidgets.QGridLayout()
self.gridLayout_2.setObjectName("gridLayout_2")
self.toolButtonArrowUpDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowUpDis.setEnabled(False)
self.toolButtonArrowUpDis.setArrowType(QtCore.Qt.UpArrow)
self.toolButtonArrowUpDis.setObjectName("toolButtonArrowUpDis")
self.gridLayout_2.addWidget(self.toolButtonArrowUpDis, 0, 1, 1, 1)
self.toolButtonArrowDownDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowDownDis.setEnabled(False)
self.toolButtonArrowDownDis.setArrowType(QtCore.Qt.DownArrow)
self.toolButtonArrowDownDis.setObjectName("toolButtonArrowDownDis")
self.gridLayout_2.addWidget(self.toolButtonArrowDownDis, 0, 0, 1, 1)
self.toolButtonArrowRightDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowRightDis.setEnabled(False)
self.toolButtonArrowRightDis.setArrowType(QtCore.Qt.RightArrow)
self.toolButtonArrowRightDis.setObjectName("toolButtonArrowRightDis")
self.gridLayout_2.addWidget(self.toolButtonArrowRightDis, 0, 2, 1, 1)
self.toolButtonArrowLeftDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonArrowLeftDis.setEnabled(False)
self.toolButtonArrowLeftDis.setArrowType(QtCore.Qt.LeftArrow)
self.toolButtonArrowLeftDis.setObjectName("toolButtonArrowLeftDis")
self.gridLayout_2.addWidget(self.toolButtonArrowLeftDis, 0, 3, 1, 1)
self.toolButtonDotsDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonDotsDis.setEnabled(False)
self.toolButtonDotsDis.setObjectName("toolButtonDotsDis")
self.gridLayout_2.addWidget(self.toolButtonDotsDis, 0, 4, 1, 1)
self.gridLayout.addLayout(self.gridLayout_2, 6, 3, 1, 2)
self.label_4 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 7, 0, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.toolButtonDelayedPopup = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonDelayedPopup.setArrowType(QtCore.Qt.NoArrow)
self.toolButtonDelayedPopup.setObjectName("toolButtonDelayedPopup")
self.horizontalLayout.addWidget(self.toolButtonDelayedPopup)
self.toolButtonMenuButtonPopup = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonMenuButtonPopup.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
self.toolButtonMenuButtonPopup.setObjectName("toolButtonMenuButtonPopup")
self.horizontalLayout.addWidget(self.toolButtonMenuButtonPopup)
self.toolButtonInstantPopup = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonInstantPopup.setPopupMode(QtWidgets.QToolButton.InstantPopup)
self.toolButtonInstantPopup.setObjectName("toolButtonInstantPopup")
self.horizontalLayout.addWidget(self.toolButtonInstantPopup)
self.gridLayout.addLayout(self.horizontalLayout, 7, 1, 1, 2)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.toolButtonDelayedPopupDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonDelayedPopupDis.setEnabled(False)
self.toolButtonDelayedPopupDis.setArrowType(QtCore.Qt.NoArrow)
self.toolButtonDelayedPopupDis.setObjectName("toolButtonDelayedPopupDis")
self.horizontalLayout_2.addWidget(self.toolButtonDelayedPopupDis)
self.toolButtonMenuButtonPopupDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonMenuButtonPopupDis.setEnabled(False)
self.toolButtonMenuButtonPopupDis.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
self.toolButtonMenuButtonPopupDis.setObjectName("toolButtonMenuButtonPopupDis")
self.horizontalLayout_2.addWidget(self.toolButtonMenuButtonPopupDis)
self.toolButtonInstantPopupDis = QtWidgets.QToolButton(self.dockWidgetContents)
self.toolButtonInstantPopupDis.setEnabled(False)
self.toolButtonInstantPopupDis.setPopupMode(QtWidgets.QToolButton.InstantPopup)
self.toolButtonInstantPopupDis.setObjectName("toolButtonInstantPopupDis")
self.horizontalLayout_2.addWidget(self.toolButtonInstantPopupDis)
self.gridLayout.addLayout(self.horizontalLayout_2, 7, 3, 1, 2)
self.label_75 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_75.setFont(font)
self.label_75.setObjectName("label_75")
self.gridLayout.addWidget(self.label_75, 8, 0, 1, 1)
self.radioButtonChecked = QtWidgets.QRadioButton(self.dockWidgetContents)
self.radioButtonChecked.setChecked(True)
self.radioButtonChecked.setAutoExclusive(False)
self.radioButtonChecked.setObjectName("radioButtonChecked")
self.gridLayout.addWidget(self.radioButtonChecked, 8, 1, 1, 1)
self.radioButtonCheckedDis = QtWidgets.QRadioButton(self.dockWidgetContents)
self.radioButtonCheckedDis.setEnabled(False)
self.radioButtonCheckedDis.setChecked(True)
self.radioButtonCheckedDis.setAutoExclusive(False)
self.radioButtonCheckedDis.setObjectName("radioButtonCheckedDis")
self.gridLayout.addWidget(self.radioButtonCheckedDis, 8, 3, 1, 1)
self.label_29 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_29.setMinimumSize(QtCore.QSize(0, 0))
self.label_29.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_29.setFont(font)
self.label_29.setObjectName("label_29")
self.gridLayout.addWidget(self.label_29, 9, 0, 1, 1)
self.radioButtonUnchecked = QtWidgets.QRadioButton(self.dockWidgetContents)
self.radioButtonUnchecked.setMinimumSize(QtCore.QSize(0, 0))
self.radioButtonUnchecked.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.radioButtonUnchecked.setAutoExclusive(False)
self.radioButtonUnchecked.setObjectName("radioButtonUnchecked")
self.gridLayout.addWidget(self.radioButtonUnchecked, 9, 1, 1, 1)
self.radioButtonUncheckedDis = QtWidgets.QRadioButton(self.dockWidgetContents)
self.radioButtonUncheckedDis.setEnabled(False)
self.radioButtonUncheckedDis.setMinimumSize(QtCore.QSize(0, 0))
self.radioButtonUncheckedDis.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.radioButtonUncheckedDis.setChecked(False)
self.radioButtonUncheckedDis.setAutoExclusive(False)
self.radioButtonUncheckedDis.setObjectName("radioButtonUncheckedDis")
self.gridLayout.addWidget(self.radioButtonUncheckedDis, 9, 3, 1, 1)
self.label_53 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_53.setFont(font)
self.label_53.setObjectName("label_53")
self.gridLayout.addWidget(self.label_53, 10, 0, 1, 1)
self.checkBoxChecked = QtWidgets.QCheckBox(self.dockWidgetContents)
self.checkBoxChecked.setChecked(True)
self.checkBoxChecked.setObjectName("checkBoxChecked")
self.gridLayout.addWidget(self.checkBoxChecked, 10, 1, 1, 1)
self.checkBoxCheckedDis = QtWidgets.QCheckBox(self.dockWidgetContents)
self.checkBoxCheckedDis.setEnabled(False)
self.checkBoxCheckedDis.setChecked(True)
self.checkBoxCheckedDis.setObjectName("checkBoxCheckedDis")
self.gridLayout.addWidget(self.checkBoxCheckedDis, 10, 3, 1, 1)
self.label_30 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_30.setMinimumSize(QtCore.QSize(0, 0))
self.label_30.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_30.setFont(font)
self.label_30.setObjectName("label_30")
self.gridLayout.addWidget(self.label_30, 11, 0, 1, 1)
self.checkBoxEnabled = QtWidgets.QCheckBox(self.dockWidgetContents)
self.checkBoxEnabled.setMinimumSize(QtCore.QSize(0, 0))
self.checkBoxEnabled.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.checkBoxEnabled.setTristate(False)
self.checkBoxEnabled.setObjectName("checkBoxEnabled")
self.gridLayout.addWidget(self.checkBoxEnabled, 11, 1, 1, 1)
self.checkBoxUncheckedDis = QtWidgets.QCheckBox(self.dockWidgetContents)
self.checkBoxUncheckedDis.setEnabled(False)
self.checkBoxUncheckedDis.setMinimumSize(QtCore.QSize(0, 0))
self.checkBoxUncheckedDis.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.checkBoxUncheckedDis.setChecked(False)
self.checkBoxUncheckedDis.setObjectName("checkBoxUncheckedDis")
self.gridLayout.addWidget(self.checkBoxUncheckedDis, 11, 3, 1, 1)
self.label = QtWidgets.QLabel(self.dockWidgetContents)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 12, 0, 1, 1)
self.checkBoxTristate = QtWidgets.QCheckBox(self.dockWidgetContents)
self.checkBoxTristate.setChecked(False)
self.checkBoxTristate.setTristate(True)
self.checkBoxTristate.setObjectName("checkBoxTristate")
self.gridLayout.addWidget(self.checkBoxTristate, 12, 1, 1, 1)
self.checkBoxTristateDis = QtWidgets.QCheckBox(self.dockWidgetContents)
self.checkBoxTristateDis.setEnabled(False)
self.checkBoxTristateDis.setChecked(False)
self.checkBoxTristateDis.setTristate(True)
self.checkBoxTristateDis.setObjectName("checkBoxTristateDis")
self.gridLayout.addWidget(self.checkBoxTristateDis, 12, 3, 1, 1)
self.label_31 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_31.setMinimumSize(QtCore.QSize(0, 0))
self.label_31.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_31.setFont(font)
self.label_31.setObjectName("label_31")
self.gridLayout.addWidget(self.label_31, 13, 0, 1, 1)
self.commandLinkButton = QtWidgets.QCommandLinkButton(self.dockWidgetContents)
self.commandLinkButton.setMinimumSize(QtCore.QSize(0, 0))
self.commandLinkButton.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.commandLinkButton.setObjectName("commandLinkButton")
self.gridLayout.addWidget(self.commandLinkButton, 13, 1, 1, 2)
self.commandLinkButtonDIs = QtWidgets.QCommandLinkButton(self.dockWidgetContents)
self.commandLinkButtonDIs.setEnabled(False)
self.commandLinkButtonDIs.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.commandLinkButtonDIs.setObjectName("commandLinkButtonDIs")
self.gridLayout.addWidget(self.commandLinkButtonDIs, 13, 3, 1, 2)
self.label_32 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_32.setMinimumSize(QtCore.QSize(0, 0))
self.label_32.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_32.setFont(font)
self.label_32.setObjectName("label_32")
self.gridLayout.addWidget(self.label_32, 14, 0, 1, 1)
self.buttonBox = QtWidgets.QDialogButtonBox(self.dockWidgetContents)
self.buttonBox.setMinimumSize(QtCore.QSize(0, 0))
self.buttonBox.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.gridLayout.addWidget(self.buttonBox, 14, 1, 1, 2)
self.buttonBoxDis = QtWidgets.QDialogButtonBox(self.dockWidgetContents)
self.buttonBoxDis.setEnabled(False)
self.buttonBoxDis.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBoxDis.setObjectName("buttonBoxDis")
self.gridLayout.addWidget(self.buttonBoxDis, 14, 3, 1, 2)
spacerItem = QtWidgets.QSpacerItem(20, 4, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem, 15, 0, 1, 1)
self.label_36 = QtWidgets.QLabel(self.dockWidgetContents)
self.label_36.setAlignment(QtCore.Qt.AlignCenter)
self.label_36.setObjectName("label_36")
self.gridLayout.addWidget(self.label_36, 16, 0, 1, 5)
DockWidget.setWidget(self.dockWidgetContents)
self.retranslateUi(DockWidget)
self.radioButtonChecked.clicked['bool'].connect(self.radioButtonCheckedDis.setChecked)
self.radioButtonUnchecked.clicked['bool'].connect(self.radioButtonUncheckedDis.setChecked)
self.checkBoxChecked.clicked['bool'].connect(self.checkBoxCheckedDis.setChecked)
self.checkBoxEnabled.clicked['bool'].connect(self.checkBoxUncheckedDis.setChecked)
self.checkBoxTristate.clicked['bool'].connect(self.checkBoxTristateDis.setChecked)
self.commandLinkButton.clicked['bool'].connect(self.commandLinkButtonDIs.setChecked)
self.toolButton.clicked['bool'].connect(self.toolButtonDis.setChecked)
self.pushButtonChecked.clicked['bool'].connect(self.pushButtonCheckedDis.setChecked)
self.pushButtonUnchecked.clicked['bool'].connect(self.pushButtonUncheckedDis.setChecked)
self.pushButton.clicked['bool'].connect(self.pushButtonDis.click)
QtCore.QMetaObject.connectSlotsByName(DockWidget)
def retranslateUi(self, DockWidget):
_translate = QtCore.QCoreApplication.translate
DockWidget.setWindowTitle(_translate("DockWidget", "Buttons"))
self.label_72.setText(_translate("DockWidget", "Enabled"))
self.label_73.setText(_translate("DockWidget", "Disabled"))
self.label_26.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_26.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_26.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_26.setText(_translate("DockWidget", "PushButton"))
self.pushButton.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.pushButton.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.pushButton.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.pushButton.setText(_translate("DockWidget", "OK"))
self.pushButtonDis.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.pushButtonDis.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.pushButtonDis.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.pushButtonDis.setText(_translate("DockWidget", "OK"))
self.label_74.setText(_translate("DockWidget", "PushButton"))
self.pushButtonChecked.setText(_translate("DockWidget", "Checked"))
self.pushButtonCheckedDis.setText(_translate("DockWidget", "Checked"))
self.label_76.setText(_translate("DockWidget", "PushButton"))
self.pushButtonUnchecked.setText(_translate("DockWidget", "Unchecked"))
self.pushButtonUncheckedDis.setText(_translate("DockWidget", "Unchecked"))
self.label_33.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_33.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_33.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_33.setText(_translate("DockWidget", "ToolButton"))
self.toolButton.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.toolButton.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.toolButton.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.toolButton.setText(_translate("DockWidget", "Tool"))
self.toolButtonIcon.setText(_translate("DockWidget", "Icon"))
self.toolButtonDis.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.toolButtonDis.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.toolButtonDis.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.toolButtonDis.setText(_translate("DockWidget", "Tool"))
self.toolButtonIconDis.setText(_translate("DockWidget", "Icon"))
self.label_2.setText(_translate("DockWidget", "<html><head/><body><p><span style=\" font-weight:600;\">ToolButton</span></p></body></html>"))
self.toolButtonChecked.setText(_translate("DockWidget", "Tool Checked"))
self.toolButtonCheckedIcon.setText(_translate("DockWidget", "Icon Checked"))
self.toolButtonCheckedDis.setText(_translate("DockWidget", "Tool Checked"))
self.toolButtonCheckedIconDis.setText(_translate("DockWidget", "Icon Checked"))
self.label_3.setText(_translate("DockWidget", "<html><head/><body><p><span style=\" font-weight:600;\">ToolButton</span></p></body></html>"))
self.toolButtonArrowUp.setText(_translate("DockWidget", "..."))
self.toolButtonArrowLeft.setText(_translate("DockWidget", "..."))
self.toolButtonArrowRight.setText(_translate("DockWidget", "..."))
self.toolButtonArrowDown.setText(_translate("DockWidget", "..."))
self.toolButtonDots.setText(_translate("DockWidget", "..."))
self.toolButtonArrowUpDis.setText(_translate("DockWidget", "..."))
self.toolButtonArrowDownDis.setText(_translate("DockWidget", "..."))
self.toolButtonArrowRightDis.setText(_translate("DockWidget", "..."))
self.toolButtonArrowLeftDis.setText(_translate("DockWidget", "..."))
self.toolButtonDotsDis.setText(_translate("DockWidget", "..."))
self.label_4.setText(_translate("DockWidget", "<html><head/><body><p><span style=\" font-weight:600;\">ToolButton</span></p></body></html>"))
self.toolButtonDelayedPopup.setText(_translate("DockWidget", "Delayed"))
self.toolButtonMenuButtonPopup.setText(_translate("DockWidget", "Menu"))
self.toolButtonInstantPopup.setText(_translate("DockWidget", "Instant"))
self.toolButtonDelayedPopupDis.setText(_translate("DockWidget", "Delayed"))
self.toolButtonMenuButtonPopupDis.setText(_translate("DockWidget", "Menu"))
self.toolButtonInstantPopupDis.setText(_translate("DockWidget", "Instant"))
self.label_75.setText(_translate("DockWidget", "RadioButton"))
self.radioButtonChecked.setText(_translate("DockWidget", "Checked"))
self.radioButtonCheckedDis.setText(_translate("DockWidget", "Checked"))
self.label_29.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_29.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_29.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_29.setText(_translate("DockWidget", "RadioButton"))
self.radioButtonUnchecked.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.radioButtonUnchecked.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.radioButtonUnchecked.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.radioButtonUnchecked.setText(_translate("DockWidget", "Unchecked"))
self.radioButtonUncheckedDis.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.radioButtonUncheckedDis.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.radioButtonUncheckedDis.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.radioButtonUncheckedDis.setText(_translate("DockWidget", "Unchecked"))
self.label_53.setText(_translate("DockWidget", "CheckBox"))
self.checkBoxChecked.setText(_translate("DockWidget", "Checked"))
self.checkBoxCheckedDis.setText(_translate("DockWidget", "Checked"))
self.label_30.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_30.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_30.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_30.setText(_translate("DockWidget", "CheckBox"))
self.checkBoxEnabled.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.checkBoxEnabled.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.checkBoxEnabled.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.checkBoxEnabled.setText(_translate("DockWidget", "Unchecked"))
self.checkBoxUncheckedDis.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.checkBoxUncheckedDis.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.checkBoxUncheckedDis.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.checkBoxUncheckedDis.setText(_translate("DockWidget", "Unchecked"))
self.label.setText(_translate("DockWidget", "CheckBox"))
self.checkBoxTristate.setText(_translate("DockWidget", "Tristate"))
self.checkBoxTristateDis.setText(_translate("DockWidget", "Tristate"))
self.label_31.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_31.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_31.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_31.setText(_translate("DockWidget", "CommandLinkButton"))
self.commandLinkButton.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.commandLinkButton.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.commandLinkButton.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.commandLinkButton.setText(_translate("DockWidget", "Command"))
self.commandLinkButtonDIs.setText(_translate("DockWidget", "Command"))
self.label_32.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_32.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_32.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_32.setText(_translate("DockWidget", "ButtonBox"))
self.buttonBox.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.buttonBox.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.buttonBox.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_36.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_36.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_36.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_36.setText(_translate("DockWidget", "Inside DockWidget"))
from qdarkstyle import style_rc

View File

@ -1,987 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DockWidget</class>
<widget class="QDockWidget" name="DockWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>497</width>
<height>566</height>
</rect>
</property>
<property name="windowTitle">
<string>Containers - No Tabs</string>
</property>
<widget class="QWidget" name="dockWidgetContents">
<layout class="QGridLayout" name="gridLayout_45">
<item row="0" column="3" rowspan="2">
<widget class="QLabel" name="label_126">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Disabled</string>
</property>
</widget>
</item>
<item row="0" column="2" rowspan="2">
<widget class="QLabel" name="label_124">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QLabel" name="label_133">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>MDI Area</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QGroupBox" name="groupBoxDis_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="title">
<string>GroupBox</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>Inside GroupBox</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="2">
<widget class="QStackedWidget" name="stackedWidget_2">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="page1_2">
<layout class="QGridLayout" name="gridLayout_35">
<item row="0" column="0">
<widget class="QLabel" name="label_57">
<property name="text">
<string>Inside Stacked Page 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page2_2">
<layout class="QGridLayout" name="gridLayout_36">
<item row="0" column="0">
<widget class="QLabel" name="label_58">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside Stacked Page 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="5" column="3">
<widget class="QStackedWidget" name="stackedWidgetDis_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="page1Dis_2">
<layout class="QGridLayout" name="gridLayout_37">
<item row="0" column="0">
<widget class="QLabel" name="label_113">
<property name="text">
<string>Inside Stacked Page 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page2Dis_2">
<layout class="QGridLayout" name="gridLayout_38">
<item row="0" column="0">
<widget class="QLabel" name="label_114">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside Stacked Page 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_131">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Frame</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QFrame" name="frame_2">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_43">
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside Frame</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="6" column="3">
<widget class="QFrame" name="frameDis_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_40">
<item row="0" column="0">
<widget class="QLabel" name="label_8">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside Frame</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QLabel" name="label_132">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Widget</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QGroupBox" name="groupBox_2">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="title">
<string>GroupBox</string>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0">
<widget class="QLabel" name="label_10">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside GroupBox</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="8" column="3">
<widget class="QMdiArea" name="mdiAreaDis_2">
<property name="enabled">
<bool>false</bool>
</property>
<widget class="QWidget" name="subwindow1Dis_2">
<property name="windowTitle">
<string>Subwindow</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QLabel" name="label_111">
<property name="text">
<string>Inside MDI Area 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="subwindow2Dis_2">
<property name="windowTitle">
<string>Subwindow</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<item>
<widget class="QLabel" name="label_112">
<property name="text">
<string>Inside MDI Area 2 </string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="label_127">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>GroupBox</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QWidget" name="widget_2" native="true">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<layout class="QGridLayout" name="gridLayout_39">
<item row="0" column="0">
<widget class="QLabel" name="label_59">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside Widget</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="7" column="3">
<widget class="QWidget" name="widgetDis_2" native="true">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<layout class="QGridLayout" name="gridLayout_44">
<item row="0" column="0">
<widget class="QLabel" name="label_125">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside Widget</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="8" column="2">
<widget class="QMdiArea" name="mdiArea_2">
<widget class="QWidget" name="subwindow1_2">
<property name="windowTitle">
<string>Subwindow</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
<item>
<widget class="QLabel" name="label_29">
<property name="text">
<string>Inside MDI Area 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="subwindow2_2">
<property name="windowTitle">
<string>Subwindow</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QLabel" name="label_56">
<property name="text">
<string>Inside MDI Area 2 </string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QLabel" name="label_128">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QScrollArea" name="scrollArea_2">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>181</width>
<height>246</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_14">
<item>
<widget class="QLabel" name="label_70">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_71">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_75">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_76">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_77">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_78">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_79">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_80">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_81">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="3" column="3">
<widget class="QScrollArea" name="scrollAreaDis_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContentsDis_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>181</width>
<height>246</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_13">
<item>
<widget class="QLabel" name="label_115">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_116">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_117">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_118">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_119">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_120">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_121">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_122">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>ScroolArea</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_123">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ScroolArea</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QLabel" name="label_129">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ToolBox</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QToolBox" name="toolBox_2">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>196</width>
<height>73</height>
</rect>
</property>
<attribute name="label">
<string>Page 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_41">
<item row="2" column="0">
<widget class="QLabel" name="label_60">
<property name="text">
<string>Inside ToolBox Page 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_8">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>163</width>
<height>38</height>
</rect>
</property>
<attribute name="label">
<string>Page 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_42">
<item row="0" column="0">
<widget class="QLabel" name="label_61">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ToolBox Page 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="4" column="3">
<widget class="QToolBox" name="toolBoxDis_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_6">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>196</width>
<height>73</height>
</rect>
</property>
<attribute name="label">
<string>Page 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_29">
<item row="2" column="0">
<widget class="QLabel" name="label_109">
<property name="text">
<string>Inside ToolBox Page 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_7">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>163</width>
<height>38</height>
</rect>
</property>
<attribute name="label">
<string>Page 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_34">
<item row="0" column="0">
<widget class="QLabel" name="label_110">
<property name="toolTip">
<string>This is a tool tip</string>
</property>
<property name="statusTip">
<string>This is a status tip</string>
</property>
<property name="whatsThis">
<string>This is &quot;what is this&quot;</string>
</property>
<property name="text">
<string>Inside ToolBox Page 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QLabel" name="label_130">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Stacked</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,511 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'dw_containers_no_tabs.ui'
#
# Created by: PyQt5 UI code generator 5.14.1
#
# WARNING! All changes made in this file will be lost!
from qtpy import QtCore, QtGui, QtWidgets
class Ui_DockWidget(object):
def setupUi(self, DockWidget):
DockWidget.setObjectName("DockWidget")
DockWidget.resize(497, 566)
self.dockWidgetContents = QtWidgets.QWidget()
self.dockWidgetContents.setObjectName("dockWidgetContents")
self.gridLayout_45 = QtWidgets.QGridLayout(self.dockWidgetContents)
self.gridLayout_45.setObjectName("gridLayout_45")
self.label_126 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_126.setFont(font)
self.label_126.setObjectName("label_126")
self.gridLayout_45.addWidget(self.label_126, 0, 3, 2, 1)
self.label_124 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_124.setFont(font)
self.label_124.setObjectName("label_124")
self.gridLayout_45.addWidget(self.label_124, 0, 2, 2, 1)
self.label_133 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_133.setFont(font)
self.label_133.setObjectName("label_133")
self.gridLayout_45.addWidget(self.label_133, 8, 0, 1, 2)
self.groupBoxDis_2 = QtWidgets.QGroupBox(self.dockWidgetContents)
self.groupBoxDis_2.setEnabled(False)
self.groupBoxDis_2.setObjectName("groupBoxDis_2")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBoxDis_2)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.label_7 = QtWidgets.QLabel(self.groupBoxDis_2)
self.label_7.setObjectName("label_7")
self.verticalLayout_4.addWidget(self.label_7)
self.gridLayout_45.addWidget(self.groupBoxDis_2, 2, 3, 1, 1)
self.stackedWidget_2 = QtWidgets.QStackedWidget(self.dockWidgetContents)
self.stackedWidget_2.setObjectName("stackedWidget_2")
self.page1_2 = QtWidgets.QWidget()
self.page1_2.setObjectName("page1_2")
self.gridLayout_35 = QtWidgets.QGridLayout(self.page1_2)
self.gridLayout_35.setObjectName("gridLayout_35")
self.label_57 = QtWidgets.QLabel(self.page1_2)
self.label_57.setObjectName("label_57")
self.gridLayout_35.addWidget(self.label_57, 0, 0, 1, 1)
self.stackedWidget_2.addWidget(self.page1_2)
self.page2_2 = QtWidgets.QWidget()
self.page2_2.setObjectName("page2_2")
self.gridLayout_36 = QtWidgets.QGridLayout(self.page2_2)
self.gridLayout_36.setObjectName("gridLayout_36")
self.label_58 = QtWidgets.QLabel(self.page2_2)
self.label_58.setObjectName("label_58")
self.gridLayout_36.addWidget(self.label_58, 0, 0, 1, 1)
self.stackedWidget_2.addWidget(self.page2_2)
self.gridLayout_45.addWidget(self.stackedWidget_2, 5, 2, 1, 1)
self.stackedWidgetDis_2 = QtWidgets.QStackedWidget(self.dockWidgetContents)
self.stackedWidgetDis_2.setEnabled(False)
self.stackedWidgetDis_2.setObjectName("stackedWidgetDis_2")
self.page1Dis_2 = QtWidgets.QWidget()
self.page1Dis_2.setObjectName("page1Dis_2")
self.gridLayout_37 = QtWidgets.QGridLayout(self.page1Dis_2)
self.gridLayout_37.setObjectName("gridLayout_37")
self.label_113 = QtWidgets.QLabel(self.page1Dis_2)
self.label_113.setObjectName("label_113")
self.gridLayout_37.addWidget(self.label_113, 0, 0, 1, 1)
self.stackedWidgetDis_2.addWidget(self.page1Dis_2)
self.page2Dis_2 = QtWidgets.QWidget()
self.page2Dis_2.setObjectName("page2Dis_2")
self.gridLayout_38 = QtWidgets.QGridLayout(self.page2Dis_2)
self.gridLayout_38.setObjectName("gridLayout_38")
self.label_114 = QtWidgets.QLabel(self.page2Dis_2)
self.label_114.setObjectName("label_114")
self.gridLayout_38.addWidget(self.label_114, 0, 0, 1, 1)
self.stackedWidgetDis_2.addWidget(self.page2Dis_2)
self.gridLayout_45.addWidget(self.stackedWidgetDis_2, 5, 3, 1, 1)
self.label_131 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_131.setFont(font)
self.label_131.setObjectName("label_131")
self.gridLayout_45.addWidget(self.label_131, 6, 0, 1, 1)
self.frame_2 = QtWidgets.QFrame(self.dockWidgetContents)
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_2.setObjectName("frame_2")
self.gridLayout_43 = QtWidgets.QGridLayout(self.frame_2)
self.gridLayout_43.setObjectName("gridLayout_43")
self.label_9 = QtWidgets.QLabel(self.frame_2)
self.label_9.setObjectName("label_9")
self.gridLayout_43.addWidget(self.label_9, 0, 0, 1, 1)
self.gridLayout_45.addWidget(self.frame_2, 6, 2, 1, 1)
self.frameDis_2 = QtWidgets.QFrame(self.dockWidgetContents)
self.frameDis_2.setEnabled(False)
self.frameDis_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frameDis_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.frameDis_2.setObjectName("frameDis_2")
self.gridLayout_40 = QtWidgets.QGridLayout(self.frameDis_2)
self.gridLayout_40.setObjectName("gridLayout_40")
self.label_8 = QtWidgets.QLabel(self.frameDis_2)
self.label_8.setObjectName("label_8")
self.gridLayout_40.addWidget(self.label_8, 0, 0, 1, 1)
self.gridLayout_45.addWidget(self.frameDis_2, 6, 3, 1, 1)
self.label_132 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_132.setFont(font)
self.label_132.setObjectName("label_132")
self.gridLayout_45.addWidget(self.label_132, 7, 0, 1, 2)
self.groupBox_2 = QtWidgets.QGroupBox(self.dockWidgetContents)
self.groupBox_2.setObjectName("groupBox_2")
self.gridLayout_7 = QtWidgets.QGridLayout(self.groupBox_2)
self.gridLayout_7.setObjectName("gridLayout_7")
self.label_10 = QtWidgets.QLabel(self.groupBox_2)
self.label_10.setObjectName("label_10")
self.gridLayout_7.addWidget(self.label_10, 0, 0, 1, 1)
self.gridLayout_45.addWidget(self.groupBox_2, 2, 2, 1, 1)
self.mdiAreaDis_2 = QtWidgets.QMdiArea(self.dockWidgetContents)
self.mdiAreaDis_2.setEnabled(False)
self.mdiAreaDis_2.setObjectName("mdiAreaDis_2")
self.subwindow1Dis_2 = QtWidgets.QWidget()
self.subwindow1Dis_2.setObjectName("subwindow1Dis_2")
self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.subwindow1Dis_2)
self.verticalLayout_9.setObjectName("verticalLayout_9")
self.label_111 = QtWidgets.QLabel(self.subwindow1Dis_2)
self.label_111.setObjectName("label_111")
self.verticalLayout_9.addWidget(self.label_111)
self.subwindow2Dis_2 = QtWidgets.QWidget()
self.subwindow2Dis_2.setObjectName("subwindow2Dis_2")
self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.subwindow2Dis_2)
self.verticalLayout_10.setObjectName("verticalLayout_10")
self.label_112 = QtWidgets.QLabel(self.subwindow2Dis_2)
self.label_112.setObjectName("label_112")
self.verticalLayout_10.addWidget(self.label_112)
self.gridLayout_45.addWidget(self.mdiAreaDis_2, 8, 3, 1, 1)
self.label_127 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_127.setFont(font)
self.label_127.setObjectName("label_127")
self.gridLayout_45.addWidget(self.label_127, 2, 0, 1, 2)
self.widget_2 = QtWidgets.QWidget(self.dockWidgetContents)
self.widget_2.setObjectName("widget_2")
self.gridLayout_39 = QtWidgets.QGridLayout(self.widget_2)
self.gridLayout_39.setObjectName("gridLayout_39")
self.label_59 = QtWidgets.QLabel(self.widget_2)
self.label_59.setObjectName("label_59")
self.gridLayout_39.addWidget(self.label_59, 0, 0, 1, 1)
self.gridLayout_45.addWidget(self.widget_2, 7, 2, 1, 1)
self.widgetDis_2 = QtWidgets.QWidget(self.dockWidgetContents)
self.widgetDis_2.setEnabled(False)
self.widgetDis_2.setObjectName("widgetDis_2")
self.gridLayout_44 = QtWidgets.QGridLayout(self.widgetDis_2)
self.gridLayout_44.setObjectName("gridLayout_44")
self.label_125 = QtWidgets.QLabel(self.widgetDis_2)
self.label_125.setObjectName("label_125")
self.gridLayout_44.addWidget(self.label_125, 0, 0, 1, 1)
self.gridLayout_45.addWidget(self.widgetDis_2, 7, 3, 1, 1)
self.mdiArea_2 = QtWidgets.QMdiArea(self.dockWidgetContents)
self.mdiArea_2.setObjectName("mdiArea_2")
self.subwindow1_2 = QtWidgets.QWidget()
self.subwindow1_2.setObjectName("subwindow1_2")
self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.subwindow1_2)
self.verticalLayout_11.setObjectName("verticalLayout_11")
self.label_29 = QtWidgets.QLabel(self.subwindow1_2)
self.label_29.setObjectName("label_29")
self.verticalLayout_11.addWidget(self.label_29)
self.subwindow2_2 = QtWidgets.QWidget()
self.subwindow2_2.setObjectName("subwindow2_2")
self.verticalLayout_12 = QtWidgets.QVBoxLayout(self.subwindow2_2)
self.verticalLayout_12.setObjectName("verticalLayout_12")
self.label_56 = QtWidgets.QLabel(self.subwindow2_2)
self.label_56.setObjectName("label_56")
self.verticalLayout_12.addWidget(self.label_56)
self.gridLayout_45.addWidget(self.mdiArea_2, 8, 2, 1, 1)
self.label_128 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_128.setFont(font)
self.label_128.setObjectName("label_128")
self.gridLayout_45.addWidget(self.label_128, 3, 0, 1, 2)
self.scrollArea_2 = QtWidgets.QScrollArea(self.dockWidgetContents)
self.scrollArea_2.setWidgetResizable(True)
self.scrollArea_2.setObjectName("scrollArea_2")
self.scrollAreaWidgetContents_2 = QtWidgets.QWidget()
self.scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 181, 246))
self.scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents_2)
self.verticalLayout_14.setObjectName("verticalLayout_14")
self.label_70 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_70.setObjectName("label_70")
self.verticalLayout_14.addWidget(self.label_70)
self.label_71 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_71.setObjectName("label_71")
self.verticalLayout_14.addWidget(self.label_71)
self.label_75 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_75.setObjectName("label_75")
self.verticalLayout_14.addWidget(self.label_75)
self.label_76 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_76.setObjectName("label_76")
self.verticalLayout_14.addWidget(self.label_76)
self.label_77 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_77.setObjectName("label_77")
self.verticalLayout_14.addWidget(self.label_77)
self.label_78 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_78.setObjectName("label_78")
self.verticalLayout_14.addWidget(self.label_78)
self.label_79 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_79.setObjectName("label_79")
self.verticalLayout_14.addWidget(self.label_79)
self.label_80 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_80.setObjectName("label_80")
self.verticalLayout_14.addWidget(self.label_80)
self.label_81 = QtWidgets.QLabel(self.scrollAreaWidgetContents_2)
self.label_81.setObjectName("label_81")
self.verticalLayout_14.addWidget(self.label_81)
self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
self.gridLayout_45.addWidget(self.scrollArea_2, 3, 2, 1, 1)
self.scrollAreaDis_2 = QtWidgets.QScrollArea(self.dockWidgetContents)
self.scrollAreaDis_2.setEnabled(False)
self.scrollAreaDis_2.setWidgetResizable(True)
self.scrollAreaDis_2.setObjectName("scrollAreaDis_2")
self.scrollAreaWidgetContentsDis_2 = QtWidgets.QWidget()
self.scrollAreaWidgetContentsDis_2.setGeometry(QtCore.QRect(0, 0, 181, 246))
self.scrollAreaWidgetContentsDis_2.setObjectName("scrollAreaWidgetContentsDis_2")
self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContentsDis_2)
self.verticalLayout_13.setObjectName("verticalLayout_13")
self.label_115 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_115.setObjectName("label_115")
self.verticalLayout_13.addWidget(self.label_115)
self.label_116 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_116.setObjectName("label_116")
self.verticalLayout_13.addWidget(self.label_116)
self.label_117 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_117.setObjectName("label_117")
self.verticalLayout_13.addWidget(self.label_117)
self.label_118 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_118.setObjectName("label_118")
self.verticalLayout_13.addWidget(self.label_118)
self.label_119 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_119.setObjectName("label_119")
self.verticalLayout_13.addWidget(self.label_119)
self.label_120 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_120.setObjectName("label_120")
self.verticalLayout_13.addWidget(self.label_120)
self.label_121 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_121.setObjectName("label_121")
self.verticalLayout_13.addWidget(self.label_121)
self.label_122 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_122.setObjectName("label_122")
self.verticalLayout_13.addWidget(self.label_122)
self.label_123 = QtWidgets.QLabel(self.scrollAreaWidgetContentsDis_2)
self.label_123.setObjectName("label_123")
self.verticalLayout_13.addWidget(self.label_123)
self.scrollAreaDis_2.setWidget(self.scrollAreaWidgetContentsDis_2)
self.gridLayout_45.addWidget(self.scrollAreaDis_2, 3, 3, 1, 1)
self.label_129 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_129.setFont(font)
self.label_129.setObjectName("label_129")
self.gridLayout_45.addWidget(self.label_129, 4, 0, 1, 2)
self.toolBox_2 = QtWidgets.QToolBox(self.dockWidgetContents)
self.toolBox_2.setObjectName("toolBox_2")
self.page_3 = QtWidgets.QWidget()
self.page_3.setGeometry(QtCore.QRect(0, 0, 196, 73))
self.page_3.setObjectName("page_3")
self.gridLayout_41 = QtWidgets.QGridLayout(self.page_3)
self.gridLayout_41.setObjectName("gridLayout_41")
self.label_60 = QtWidgets.QLabel(self.page_3)
self.label_60.setObjectName("label_60")
self.gridLayout_41.addWidget(self.label_60, 2, 0, 1, 1)
self.toolBox_2.addItem(self.page_3, "")
self.page_8 = QtWidgets.QWidget()
self.page_8.setGeometry(QtCore.QRect(0, 0, 163, 38))
self.page_8.setObjectName("page_8")
self.gridLayout_42 = QtWidgets.QGridLayout(self.page_8)
self.gridLayout_42.setObjectName("gridLayout_42")
self.label_61 = QtWidgets.QLabel(self.page_8)
self.label_61.setObjectName("label_61")
self.gridLayout_42.addWidget(self.label_61, 0, 0, 1, 1)
self.toolBox_2.addItem(self.page_8, "")
self.gridLayout_45.addWidget(self.toolBox_2, 4, 2, 1, 1)
self.toolBoxDis_2 = QtWidgets.QToolBox(self.dockWidgetContents)
self.toolBoxDis_2.setEnabled(False)
self.toolBoxDis_2.setObjectName("toolBoxDis_2")
self.page_6 = QtWidgets.QWidget()
self.page_6.setGeometry(QtCore.QRect(0, 0, 196, 73))
self.page_6.setObjectName("page_6")
self.gridLayout_29 = QtWidgets.QGridLayout(self.page_6)
self.gridLayout_29.setObjectName("gridLayout_29")
self.label_109 = QtWidgets.QLabel(self.page_6)
self.label_109.setObjectName("label_109")
self.gridLayout_29.addWidget(self.label_109, 2, 0, 1, 1)
self.toolBoxDis_2.addItem(self.page_6, "")
self.page_7 = QtWidgets.QWidget()
self.page_7.setGeometry(QtCore.QRect(0, 0, 163, 38))
self.page_7.setObjectName("page_7")
self.gridLayout_34 = QtWidgets.QGridLayout(self.page_7)
self.gridLayout_34.setObjectName("gridLayout_34")
self.label_110 = QtWidgets.QLabel(self.page_7)
self.label_110.setObjectName("label_110")
self.gridLayout_34.addWidget(self.label_110, 0, 0, 1, 1)
self.toolBoxDis_2.addItem(self.page_7, "")
self.gridLayout_45.addWidget(self.toolBoxDis_2, 4, 3, 1, 1)
self.label_130 = QtWidgets.QLabel(self.dockWidgetContents)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_130.setFont(font)
self.label_130.setObjectName("label_130")
self.gridLayout_45.addWidget(self.label_130, 5, 0, 1, 2)
DockWidget.setWidget(self.dockWidgetContents)
self.retranslateUi(DockWidget)
self.stackedWidget_2.setCurrentIndex(1)
self.stackedWidgetDis_2.setCurrentIndex(1)
self.toolBox_2.setCurrentIndex(0)
self.toolBoxDis_2.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(DockWidget)
def retranslateUi(self, DockWidget):
_translate = QtCore.QCoreApplication.translate
DockWidget.setWindowTitle(_translate("DockWidget", "Containers - No Tabs"))
self.label_126.setText(_translate("DockWidget", "Disabled"))
self.label_124.setText(_translate("DockWidget", "Enabled"))
self.label_133.setText(_translate("DockWidget", "MDI Area"))
self.groupBoxDis_2.setTitle(_translate("DockWidget", "GroupBox"))
self.label_7.setText(_translate("DockWidget", "Inside GroupBox"))
self.stackedWidget_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.stackedWidget_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.stackedWidget_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_57.setText(_translate("DockWidget", "Inside Stacked Page 1"))
self.label_58.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_58.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_58.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_58.setText(_translate("DockWidget", "Inside Stacked Page 2"))
self.stackedWidgetDis_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.stackedWidgetDis_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.stackedWidgetDis_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_113.setText(_translate("DockWidget", "Inside Stacked Page 1"))
self.label_114.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_114.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_114.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_114.setText(_translate("DockWidget", "Inside Stacked Page 2"))
self.label_131.setText(_translate("DockWidget", "Frame"))
self.frame_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.frame_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.frame_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_9.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_9.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_9.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_9.setText(_translate("DockWidget", "Inside Frame"))
self.frameDis_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.frameDis_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.frameDis_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_8.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_8.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_8.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_8.setText(_translate("DockWidget", "Inside Frame"))
self.label_132.setText(_translate("DockWidget", "Widget"))
self.groupBox_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.groupBox_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.groupBox_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.groupBox_2.setTitle(_translate("DockWidget", "GroupBox"))
self.label_10.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_10.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_10.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_10.setText(_translate("DockWidget", "Inside GroupBox"))
self.subwindow1Dis_2.setWindowTitle(_translate("DockWidget", "Subwindow"))
self.label_111.setText(_translate("DockWidget", "Inside MDI Area 1"))
self.subwindow2Dis_2.setWindowTitle(_translate("DockWidget", "Subwindow"))
self.label_112.setText(_translate("DockWidget", "Inside MDI Area 2 "))
self.label_127.setText(_translate("DockWidget", "GroupBox"))
self.widget_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.widget_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.widget_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_59.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_59.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_59.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_59.setText(_translate("DockWidget", "Inside Widget"))
self.widgetDis_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.widgetDis_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.widgetDis_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_125.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_125.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_125.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_125.setText(_translate("DockWidget", "Inside Widget"))
self.subwindow1_2.setWindowTitle(_translate("DockWidget", "Subwindow"))
self.label_29.setText(_translate("DockWidget", "Inside MDI Area 1"))
self.subwindow2_2.setWindowTitle(_translate("DockWidget", "Subwindow"))
self.label_56.setText(_translate("DockWidget", "Inside MDI Area 2 "))
self.label_128.setText(_translate("DockWidget", "ScroolArea"))
self.scrollArea_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.scrollArea_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.scrollArea_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_70.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_70.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_70.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_70.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_71.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_71.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_71.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_71.setText(_translate("DockWidget", "ScroolArea "))
self.label_75.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_75.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_75.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_75.setText(_translate("DockWidget", "Inside ScroolArea "))
self.label_76.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_76.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_76.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_76.setText(_translate("DockWidget", "ScroolArea"))
self.label_77.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_77.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_77.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_77.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_78.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_78.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_78.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_78.setText(_translate("DockWidget", "ScroolArea"))
self.label_79.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_79.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_79.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_79.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_80.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_80.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_80.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_80.setText(_translate("DockWidget", "ScroolArea"))
self.label_81.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_81.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_81.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_81.setText(_translate("DockWidget", "Inside ScroolArea"))
self.scrollAreaDis_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.scrollAreaDis_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.scrollAreaDis_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_115.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_115.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_115.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_115.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_116.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_116.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_116.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_116.setText(_translate("DockWidget", "ScroolArea "))
self.label_117.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_117.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_117.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_117.setText(_translate("DockWidget", "Inside ScroolArea "))
self.label_118.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_118.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_118.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_118.setText(_translate("DockWidget", "ScroolArea"))
self.label_119.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_119.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_119.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_119.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_120.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_120.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_120.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_120.setText(_translate("DockWidget", "ScroolArea"))
self.label_121.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_121.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_121.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_121.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_122.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_122.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_122.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_122.setText(_translate("DockWidget", "ScroolArea"))
self.label_123.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_123.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_123.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_123.setText(_translate("DockWidget", "Inside ScroolArea"))
self.label_129.setText(_translate("DockWidget", "ToolBox"))
self.toolBox_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.toolBox_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.toolBox_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_60.setText(_translate("DockWidget", "Inside ToolBox Page 1"))
self.toolBox_2.setItemText(self.toolBox_2.indexOf(self.page_3), _translate("DockWidget", "Page 1"))
self.label_61.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_61.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_61.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_61.setText(_translate("DockWidget", "Inside ToolBox Page 2"))
self.toolBox_2.setItemText(self.toolBox_2.indexOf(self.page_8), _translate("DockWidget", "Page 2"))
self.toolBoxDis_2.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.toolBoxDis_2.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.toolBoxDis_2.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_109.setText(_translate("DockWidget", "Inside ToolBox Page 1"))
self.toolBoxDis_2.setItemText(self.toolBoxDis_2.indexOf(self.page_6), _translate("DockWidget", "Page 1"))
self.label_110.setToolTip(_translate("DockWidget", "This is a tool tip"))
self.label_110.setStatusTip(_translate("DockWidget", "This is a status tip"))
self.label_110.setWhatsThis(_translate("DockWidget", "This is \"what is this\""))
self.label_110.setText(_translate("DockWidget", "Inside ToolBox Page 2"))
self.toolBoxDis_2.setItemText(self.toolBoxDis_2.indexOf(self.page_7), _translate("DockWidget", "Page 2"))
self.label_130.setText(_translate("DockWidget", "Stacked"))

View File

@ -1,377 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DockWidget</class>
<widget class="QDockWidget" name="DockWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>578</width>
<height>515</height>
</rect>
</property>
<property name="windowTitle">
<string>Containers - Tabs</string>
</property>
<widget class="QWidget" name="dockWidgetContents">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Disabled</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QTabWidget" name="tabWidgetNorth">
<property name="currentIndex">
<number>0</number>
</property>
<property name="documentMode">
<bool>false</bool>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab_7">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0">
<widget class="QLabel" name="label_52">
<property name="text">
<string>Inside TabWidget North Closable Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_8">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_48">
<property name="text">
<string>Inside TabWidget North Closable Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="1">
<widget class="QTabWidget" name="tabWidgetNorth_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<property name="documentMode">
<bool>false</bool>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab_9">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_10">
<item row="0" column="0">
<widget class="QLabel" name="label_53">
<property name="text">
<string>Inside TabWidget North Closable Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_10">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_19">
<item row="0" column="0">
<widget class="QLabel" name="label_49">
<property name="text">
<string>Inside TabWidget North Closable Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="0">
<widget class="QTabWidget" name="tabWidgetWest">
<property name="tabPosition">
<enum>QTabWidget::West</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_39">
<property name="text">
<string>Inside TabWidget West Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_6">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
<widget class="QLabel" name="label_54">
<property name="text">
<string>Inside TabWidget West Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="1">
<widget class="QTabWidget" name="tabWidgetWest_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="tabPosition">
<enum>QTabWidget::West</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_11">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_20">
<item row="0" column="0">
<widget class="QLabel" name="label_50">
<property name="text">
<string>Inside TabWidget West Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_12">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_21">
<item row="0" column="0">
<widget class="QLabel" name="label_72">
<property name="text">
<string>Inside TabWidget West Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="3" column="0">
<widget class="QTabWidget" name="tabWidgetEast">
<property name="tabPosition">
<enum>QTabWidget::East</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_38">
<property name="text">
<string>Inside TabWidget East Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_11">
<item row="0" column="0">
<widget class="QLabel" name="label_55">
<property name="text">
<string>Inside TabWidget East Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="3" column="1">
<widget class="QTabWidget" name="tabWidgetEast_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="tabPosition">
<enum>QTabWidget::East</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_13">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_22">
<item row="0" column="0">
<widget class="QLabel" name="label_51">
<property name="text">
<string>Inside TabWidget East Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_14">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_30">
<item row="0" column="0">
<widget class="QLabel" name="label_73">
<property name="text">
<string>Inside TabWidget East Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="4" column="0">
<widget class="QTabWidget" name="tabWidgetSouth">
<property name="tabPosition">
<enum>QTabWidget::South</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_34">
<property name="text">
<string>Inside TabWidget South Closable Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_18">
<item row="0" column="0">
<widget class="QLabel" name="label_62">
<property name="text">
<string>Inside TabWidget South Closable Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="4" column="1">
<widget class="QTabWidget" name="tabWidgetSouth_2">
<property name="enabled">
<bool>false</bool>
</property>
<property name="tabPosition">
<enum>QTabWidget::South</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>
<widget class="QWidget" name="tab_15">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_31">
<item row="0" column="0">
<widget class="QLabel" name="label_35">
<property name="text">
<string>Inside TabWidget South Closable Tab 1</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_16">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_32">
<item row="0" column="0">
<widget class="QLabel" name="label_74">
<property name="text">
<string>Inside TabWidget South Closable Tab 2</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

Some files were not shown because too many files have changed in this diff Show More