Compare commits

...

535 Commits

Author SHA1 Message Date
6160335af3 [nostalgia] Cleanup and update developer handbook 2021-10-23 14:10:58 -05:00
6074cf7cd6 [gbastartup] Fix __init_array_start calls 2021-10-23 14:10:58 -05:00
160ef61520 [ox/std] Add implementation of what() to ox::Exception 2021-10-14 19:21:59 -05:00
853f8c25ea [ox/std] Add begin and end methods to BasicString 2021-10-14 19:21:59 -05:00
38596ac941 [ox/event] Move isError into namepsace detail 2021-08-03 00:21:05 -05:00
8f6897225a [ox/std] Fix ptrdiff_t header location 2021-08-02 21:47:45 -05:00
e7bf3d5413 [ox/event] Fix build error in exception variant of Signal 2021-08-02 21:23:19 -05:00
ad0d5c8caf [ox/event] Add variant of Signal that uses exceptions 2021-08-02 21:23:19 -05:00
b61f7a95ad [ox/std] Specify std::bit_cast in Vector 2021-08-02 21:23:19 -05:00
90b2e7a43c [ox/std] Fix another inappropriate assign with constructor 2021-08-02 21:23:19 -05:00
8480eeba0c [ox/oc] Resize vectors before writing to them 2021-08-02 21:23:19 -05:00
313b35f605 [ox/std] Fix problems with Vector using operator= where constructors should be used 2021-08-02 21:23:19 -05:00
d8a0a5f50d [ox/std] Remove preprocessor condition for Vector(initializer_list) constructor implementation 2021-07-30 20:10:20 -05:00
68f829ff2d [ox/std] Improve Vector::iterator to better conform to std::vector::iterator 2021-07-30 20:10:20 -05:00
6165f63d09 [buildcore] Add test-rerun-verbose target 2021-07-30 20:10:20 -05:00
3e3cfcaf7d [buildcore] Add test-verbose target 2021-07-30 20:10:20 -05:00
f4580a742e [nostalgia] Add CLion config 2021-07-30 20:08:23 -05:00
77bc18129b [ox/oc] Remove setTypeInfo invocation from OC write 2021-07-29 23:33:09 -05:00
d8a13a0933 [ox/{mc,oc}] Fix problems caused by making methods const 2021-07-29 23:25:45 -05:00
11873bc3ed [ox/std] Add implementation of initializer_list 2021-07-29 23:25:43 -05:00
f53b8e38dc [ox/std] Make fmt version of logError 2021-07-29 23:25:42 -05:00
5d5198bf4c [ox/std] Make logError inline 2021-07-29 23:25:40 -05:00
cc5cc01e70 [ox/model] Make field counting automatic 2021-07-29 23:25:39 -05:00
55f14eb548 [ox/{mc,oc}] Improve noexcept correctness 2021-07-29 23:25:38 -05:00
24ca5623e8 [ox/std] Add initializer_list constructor to Vector 2021-07-29 23:25:38 -05:00
99d342b8b3 [buildcore] Remove duplicate defines and add extra detection for Python 3 2021-07-29 23:25:36 -05:00
5b9e1928d9 [ox/std] Fix oxDefer macro to work outside ox namespace 2021-07-29 23:25:35 -05:00
2e9b7fe871 [ox] Remove need for explicit fields count in model system, add ox::String handler to OC 2021-07-29 23:25:35 -05:00
9418f54ebc [ox/std] Add support for proper std::bit_cast with C++20 enabled 2021-07-29 23:25:35 -05:00
bd0b8e4ee9 [ox/std] Fix copy/move elision in sfmt 2021-07-29 23:25:35 -05:00
1dac98fbc7 [nostalgia/player] Remove old shutdown function use 2021-07-24 01:53:34 -05:00
32ac497a0e [nostalgia/core] Add focusWindow, cleanup GLFW leak into Userland, change shutdown to stop main loop 2021-07-23 21:52:26 -05:00
7dfa2f5713 [nostalgia/core/gba] Cleanup 2021-07-23 21:44:11 -05:00
7ea0654af6 [ox/std] Add proper forward function 2021-07-23 21:44:11 -05:00
78d444c2e5 [ox/std] Add comparison operators to String 2021-07-23 21:44:10 -05:00
39b1292b91 [ox/std] Add version of OutStream that takes String 2021-07-23 21:44:10 -05:00
0aad2913ea [ox/oc] Fix typo 2021-07-23 21:44:09 -05:00
b6b9837bbf [ox/std] Fix Vector::emplace_back and make_unique to properly forward arguments 2021-07-23 21:44:09 -05:00
bed8c35218 [nostalgia/core] Make Context never move 2021-07-18 16:14:45 -05:00
70fd56ce0b [nostalgia/studio] Update copyright notice in Info.plist 2021-07-18 16:14:44 -05:00
643239e104 [nostalgia] Make core::init take FileSystem and return Context, add core::setWindowTitle 2021-07-18 16:14:44 -05:00
2d3602fd05 [ox/event] Cleanup 2021-07-18 16:14:44 -05:00
3a2acae093 [ox/std] Add BasicString::substr(begin, end) 2021-07-18 16:14:44 -05:00
dce98590fc [nostaliga] Update Developer Handbook paragraph formating to one sentence/line 2021-07-17 18:16:32 -05:00
0420dfb545 [nostaliga/core] Add Drawer system and make ImGui use configurable 2021-07-17 18:13:28 -05:00
d3a3d57773 [nostalgia/studio] Cleanup 2021-07-17 13:04:20 -05:00
724cf7f779 [nostalgia/core] Setup Imgui drawing 2021-07-17 12:38:40 -05:00
5a52d322b2 [nostalgia/core/studio] Replace ox::Error catch with ox::Exception catch 2021-07-17 12:34:44 -05:00
eb39c6aaf0 [ox/std] Add ox::Exception 2021-07-17 12:23:36 -05:00
2f9accf5ba [nostalgia/studio] Cleanup 2021-07-17 12:21:54 -05:00
2be31cca5c [nostalgia/core/glfw] Cleanup up main loop is running check to use GLFW 2021-07-17 01:37:45 -05:00
43c67eacaa [nostalgia/player] Add new line to oxErr output 2021-07-17 01:30:00 -05:00
5c28cef726 [ox/std] Make oxErr not automatically print new line to stderr 2021-07-17 01:26:05 -05:00
efe61bab6f [nostalgia/core] Add clipboard support 2021-07-16 20:51:10 -05:00
950712b85e [ox/event] Add Event package 2021-07-16 20:50:29 -05:00
b27d6671fc [buildcore] Replace gmake < file with pybb cat 2021-07-09 19:29:45 -05:00
6bd21bf1b4 [nostalgia/player] Fix warning about using oxErrf without fmt params 2021-07-08 01:59:54 -05:00
fcff38c3fa [buildcore,gbabuildcore] Move GBA specific warning suppression to GBA CMake 2021-07-08 01:57:35 -05:00
51e7120a7c [imgui] Fix non-Apple builds 2021-07-08 01:41:05 -05:00
c0377f9e91 [nostalgia/core/userland] Add imgui link 2021-07-06 21:02:42 -05:00
3e555d38e5 [nostalgia/core] Fix imgui initialization 2021-07-06 21:02:42 -05:00
14cddf3d36 [nostalgia/core/glfw] Cleanup 2021-07-06 21:02:42 -05:00
aa4a1a9011 [nostalgia/glutils] Add error include 2021-07-06 21:02:42 -05:00
6882dc8404 [nostalglia/core/glfw] Cleanup event handling 2021-07-06 21:02:42 -05:00
faf8fa0668 [nostalgia/core] Cleanup 2021-07-06 21:02:42 -05:00
bae1f05038 [nostalgia] Add scaffolding for ImGui 2021-07-06 21:02:42 -05:00
63e46d7bb4 [nostalgia] Move glutils into separate library 2021-07-06 21:02:42 -05:00
282bdc0fd7 [nostalgia] Add paragraph about choosing between exceptions and ox::Error 2021-07-06 20:59:32 -05:00
032aadafdf [nostalgia/tools/pack] Replace ox::Vector<char> with ox::Buffer 2021-07-06 20:58:53 -05:00
176ef214f2 [ox/std] Make symbolicate return more flexible data 2021-07-06 20:58:43 -05:00
8b976279e5 [nostalgia/core/userland] Fix automatic type conversion warnings 2021-07-06 20:58:25 -05:00
ecc049c35b [nostalgia/tools/pack] Cleanup 2021-07-06 20:58:25 -05:00
90ed515842 [ox/std] Cleanup 2021-07-06 20:56:47 -05:00
ff2f13c99f [ox/std] Add defer 2021-07-06 20:56:47 -05:00
fcdede2064 [ox/fs] Cleanup 2021-07-06 20:56:46 -05:00
66a11eae31 [ox/fs] Cleanup 2021-07-06 20:56:46 -05:00
50715ff663 [ox/claw] Cleanup 2021-07-06 20:56:46 -05:00
9638dc52fe [ox/fs] Make write methods take const buffer pointer 2021-07-06 20:56:46 -05:00
992d3a96d7 [ox/std] Fix formatting error 2021-07-06 20:56:46 -05:00
5672074177 [nostalgia/studio] Add cleanup for module loading 2021-06-04 23:40:41 -05:00
08da9d6a94 [nostalgia/studio] Fix access of null ptr in OxFSTreeView 2021-06-04 23:38:25 -05:00
33775f59ff [ox/std] Fix Vector copy constructor not to move items 2021-06-04 23:37:47 -05:00
db3c2602fd [ox/std] Add is_char_v 2021-06-03 02:02:25 -05:00
77ac48740a [ox/std] Make NullStream constructor noexcept 2021-06-03 02:01:58 -05:00
3ba88e2e27 [ox/fs] Make toString(FileType) noexcept 2021-06-03 02:01:14 -05:00
a9b5bfe438 [ox/std] Add BasicString<0> instantiation 2021-06-03 02:00:19 -05:00
5a449cb40b [ox/std] Remove template integer operators from OutStream 2021-05-30 15:57:27 -05:00
77c7a3ab22 [ox/std] Change fmt toCString to take BasicString<sz> instead of String 2021-05-30 15:54:49 -05:00
0099129a19 [nostalgia] Update for Ox changes 2021-05-29 15:04:59 -05:00
ae62f89fe8 [ox/std] Make oxThrowError do a move to satisfy clang-tidy 2021-05-29 15:04:19 -05:00
196c7844ea [ox/fs] Cleanup 2021-05-29 15:03:31 -05:00
4f2a03db94 [ox/fs] Cleanup 2021-05-28 22:18:37 -05:00
c5326d72af [nostalgia/core/gba] Change sprite update iterator to 32 bit int 2021-05-28 22:18:37 -05:00
1df1e3809f [ox/std] Add a form of small string and small vector optimization 2021-05-28 22:18:36 -05:00
b36cd1694b [nostalgia/core/gba] Make BG CTLs uint16 2021-05-15 01:42:17 -05:00
56269004d7 [ox/std] Cleanup tests 2021-05-15 01:41:50 -05:00
314b177666 [nostalgia/core/userland] Remove unnecessary includes 2021-05-15 01:41:23 -05:00
827ba7dcdb [nostalgia/core/glfw] Move wakeup time to Context 2021-05-15 01:39:41 -05:00
f83e814806 [nostalgia/core/glfw] Remove unnecessary includes 2021-05-14 00:40:15 -05:00
6cda13d10b [nostalgia/core/glfw] Fix OpenGL config for Mac 2021-05-13 20:16:12 -05:00
8ffc2830ae [buildcore] Cleanup 2021-05-13 20:16:12 -05:00
42aa518450 [buildcore] Remove bintray conan repo 2021-05-13 20:16:12 -05:00
307684348e [nostalgia/core] Get building with GLFW (it has a better Conan package than SDL) 2021-05-13 20:16:12 -05:00
a17bc04ee7 [nostalgia/studio] Cleanup error handling 2021-05-12 22:13:12 -05:00
e36f49c7fc [nostalgia/player] Cleanup 2021-05-12 22:07:42 -05:00
c1338d9d87 [ox/oc] Fix ox::String serialization 2021-05-12 21:44:34 -05:00
db71c8f3e9 [nostalgia/player] Cleanup 2021-05-12 21:14:58 -05:00
63f4b96d0f [ox] Cleanup 2021-05-12 21:14:18 -05:00
07415a2607 [ox/std] Add iterator.hpp to install list 2021-05-12 21:12:38 -05:00
ec83ed4c7d [nostalgia/core/studio] Cleanup 2021-05-11 22:11:17 -05:00
98cb3e1670 [ox/model] Replace BString<100> with String as ModelString 2021-05-11 22:10:05 -05:00
7302284095 [ox/std] Make String constructors constexpr 2021-05-11 22:09:26 -05:00
a0c645f25c [ox/fs] Replace some reinterpret_casts with placement-new 2021-05-11 22:08:33 -05:00
cdd1de89f8 [ox/fs] Cleanup, Add error messages for unsupported methods in PassThroughFS 2021-05-11 00:52:47 -05:00
5c66f3e0dc [ox/std] Make toCString(std::string) inline in non-C++20 code 2021-05-11 00:48:11 -05:00
fefe8bacc7 [nostalgia/core/userland] Cleanup 2021-05-11 00:46:44 -05:00
f5ff700bf3 [nostalgia] Cleanup 2021-05-11 00:43:07 -05:00
0bcb78d3da [ox/std] Fix Linux build 2021-05-09 22:46:19 -05:00
8dcd350671 [ox/std] Add memmove 2021-05-09 22:43:31 -05:00
2e71d288b4 [nostalgia/studio] Fix copy pessimization 2021-05-09 22:43:13 -05:00
fee5a33da1 [nostalgia/tools/pack] Cleanup 2021-05-08 23:00:55 -05:00
eb207b2d6c [ox/std] Add copyright header to iterator.hpp 2021-05-08 22:56:31 -05:00
6845ff38de [ox/fs] Cleanup error handling 2021-05-08 22:40:59 -05:00
b3fb724ae7 [nostalgia/studio] Cleanup 2021-05-08 22:33:03 -05:00
15d8e9de5b [ox/std] Add iterator to Vector 2021-05-08 22:03:33 -05:00
9a31e898d0 [ox/std] Add Error return value to {,B}String::append 2021-05-07 16:10:41 -05:00
800e04b3b9 [ox/std] Fix stacktrace shave 2021-05-07 07:01:04 -05:00
0f1fbe40dd [ox/std] Increase trace buffer length 2021-05-07 06:48:17 -05:00
1c509ca20d [ox/std] Improve stacktrace clarity 2021-05-07 06:45:10 -05:00
462f5b580b [ox/std] Add sfmt 2021-05-06 12:39:41 -05:00
fb59d8033b [ox/std] Add append to String and cleanup BString::operator+= 2021-05-06 11:58:27 -05:00
a5bb1eeed0 [ox/std] Add Deleter parameter to UniquePtr 2021-05-06 08:21:54 -04:00
46ea85fa7d [ox] Cleanup unnecessary namespace specifications 2021-05-05 21:19:10 -04:00
72f53b08cb [ox/std] Add size_type and value_type to Vector 2021-05-05 17:00:37 -04:00
5fe91ae577 [nostalgia/core/gba] Remove now unnecessary casts 2021-05-03 22:08:37 -04:00
25504d87af [ox/fs] Make directAccess return const char* 2021-05-03 22:06:24 -04:00
d49576451c [nostalgia] Add models and serialization to Developer Handbook 2021-05-03 21:51:56 -04:00
a415e86ae5 [ox/mc] Cleanup 2021-05-03 21:37:00 -04:00
ed598378ae [ox/oc] Cleanup 2021-05-03 21:16:19 -04:00
af7dbd1aee [ox/claw] Fix writeClawHeader to move return value 2021-05-03 20:59:43 -04:00
8f48042a29 [ox/oc] Fix write to move return value 2021-05-03 20:59:06 -04:00
51ae33aed2 [ox/oc] Replace Vector<char> with Buffer 2021-05-03 20:38:13 -04:00
1da5e60655 [ox/{claw,mc}] Fix write functions to move return values 2021-05-03 20:37:20 -04:00
947b1e7798 [ox/claw] Replace Vector<char> with Buffer 2021-05-03 20:09:08 -04:00
d20a24d10f [ox/std] Switch String from Vector<char> to Buffer 2021-05-03 15:12:19 -04:00
c1418cdd6c [ox/fs] Cleanup 2021-05-03 14:56:00 -04:00
d01ff63527 [ox/{mc,oc}] Cleanup 2021-05-03 14:52:36 -04:00
ceebc05ee9 [ox/std] Add Buffer as Vector<char> alias 2021-05-03 14:42:41 -04:00
504d248ce3 [nostalgia/core] Make FileAddress args const ref 2021-05-03 14:32:02 -04:00
937bf3ad91 [ox/fs] Make FileAddress args into const refs 2021-05-03 14:26:02 -04:00
4f2c0b2e30 [ox] Replace uint8_t* with char* as buffer type in MC, OC, and Model 2021-05-03 14:16:23 -04:00
c4c1979123 [nostalgia/player] Cleanup 2021-05-03 13:51:48 -04:00
35a08a4ce8 [nostalgia/tools/pack] Cleanup 2021-05-03 13:51:20 -04:00
33d40b1839 [nostalgia/core/sdl] Cleanup 2021-05-03 13:50:45 -04:00
6c302b7d1c [nostalgia/core/userland] Cleanup readObj 2021-05-03 13:43:19 -04:00
239f4d149d [nostalgia/core/userland] Cleanup 2021-05-03 13:38:12 -04:00
18491dafd9 [ox/oc] Move vector handling over to isVector_v 2021-05-03 13:35:50 -04:00
3a335084c9 [ox/model] Fix modelEquals string and vector handling 2021-05-03 13:31:31 -04:00
eb1a83d907 [ox/model] Add isVector_v 2021-05-03 13:15:33 -04:00
704b94f471 [ox/mc] Switch Vector detection over to isVector_v 2021-05-03 13:13:40 -04:00
e2e62a235a [ox/claw] Cleanup 2021-05-03 11:42:05 -04:00
8f53dda1e2 [ox/fs] Add move methods to FileAddress and fix copy operator to cleanup 2021-05-03 11:39:29 -04:00
a84eb013c9 [nostalgia] Make use buildcore defined buffer 2021-04-29 23:36:44 -05:00
84c42f3584 [buildcore] Make debugger vary by platform 2021-04-29 23:35:57 -05:00
809dbc69b1 [nostalgia/tools/pack] Cleanup 2021-04-29 01:18:26 -05:00
cbc0fc983c [ox/fs] Cleanup 2021-04-29 01:14:54 -05:00
bccae1c613 [ox/std] Update TraceMsg model 2021-04-28 22:35:53 -05:00
85f3904115 [ox/std] Improve noexcept correctness and make Error parameters into references 2021-04-25 15:05:39 -05:00
ee6929c7f0 [ox/claw] Cleanup error handling 2021-04-25 15:01:11 -05:00
6c629a9f13 [ox/oc] Cleanup test scaffolding and replace cout with oxOut 2021-04-25 14:49:57 -05:00
356d6a5036 [ox/std] Fix UniquePtr comparison operators to take const references to avoid copying 2021-04-25 02:33:39 -05:00
5e78289cbc [ox/std] Make fmt stringify(std::string) require C++20 and remove QString variant 2021-04-25 02:07:08 -05:00
3ead29a8bb [ox/std] Make oxIgnoreError constexpr 2021-04-24 15:50:02 -05:00
a2e1ac8851 [ox/std] Add std::string and QString support to fmt 2021-04-24 15:48:46 -05:00
75902ba2a3 [ox/std] Add cbit_cast as a stop-gap until I can implment a normal constexpr bit_cast 2021-04-24 15:43:11 -05:00
24f26d822a [ox/model] Add modelops with copy, move, and equals 2021-04-24 15:39:05 -05:00
2dc9ce4015 [nostalgia/common] Add constexpr and noexcept where appropriate 2021-04-23 23:24:42 -05:00
4518288745 [ox/fs] Add more detail to log messages of PassThroughFS 2021-04-23 03:54:55 -05:00
5e1d4fcd95 [ox/fs] Make FileAddress methods and models constexpr and noexcept 2021-04-23 03:54:25 -05:00
0cf25f3029 [ox/std] Fix HashMap and Vector move operators 2021-04-22 01:17:57 -05:00
85b101884a [ox/std] Remove unnecessary cast 2021-04-22 01:09:42 -05:00
8887daf7e4 [ox/std] Make make_unique not noexcept 2021-04-22 01:08:19 -05:00
9c63f26684 [ox/clargs] Fix overlapping memcpy that asan is being pedantic about 2021-04-21 01:04:07 -05:00
9bd2a5a5ee [ox/fs] Fix broken test that was hidden because of bad asserts 2021-04-21 01:03:09 -05:00
5073681ff9 [ox/oc] Add move constructor for TestStruct 2021-04-21 00:23:27 -05:00
58dbda48c4 [ox] Add Result<T> read{OC,MC,Claw}<T>(...) 2021-04-21 00:06:24 -05:00
4540b410dc [ox/fs] Add Result<Vector<char>> FileSystem::read 2021-04-21 00:05:37 -05:00
863437fb10 [nostalgia/core] Add missing nodiscards and noexcepts 2021-04-20 23:19:42 -05:00
4814b4f5cc [ox/fs] Remove unnecessary nodiscards 2021-04-20 23:18:24 -05:00
17165f5394 [ox/oc] Add missing nodiscards 2021-04-20 23:18:05 -05:00
a86bad1719 [ox/std] Cleanup 2021-04-20 23:16:58 -05:00
314ed8d05c [ox/std] Reorder Error fields to allow for better packing 2021-04-20 22:16:29 -05:00
4cd8f6a0c1 [nostalgia/core] Make loadRomFs return UniquePtr 2021-04-20 22:12:37 -05:00
abf45112b0 [nostalgia/core/gba] Update panic to take Error reference 2021-04-20 22:11:17 -05:00
841a7436c1 [ox/oc] Replace std::unique_ptr usage with ox::UniquePtr 2021-04-20 22:10:14 -05:00
2b579c58bb [ox/std] Add UniquePtr 2021-04-20 22:09:52 -05:00
a16b56325d [ox/std] Remove unnecessary template parameters from assert functions 2021-04-20 22:08:57 -05:00
6ece0b6f9b [nostalgia] Make almost everyting noexcept 2021-04-20 01:57:04 -05:00
161780cb91 [ox] General cleanup and updating to newer coding standards 2021-04-20 01:55:40 -05:00
c587bf0997 [ox/fs] Fix FileSystemTemplate::directAccess 2021-04-18 16:06:52 -05:00
659830fcdf [ox/model] Improve const correctness of SerStr and UnionView 2021-04-18 15:07:51 -05:00
983000efb8 [nostalgia/core/gba] Update for FileSystem directAccess change 2021-04-18 15:06:10 -05:00
16298d8672 [ox/std] Add const version of Result::get 2021-04-18 15:05:48 -05:00
72cec8e459 [ox/mc] Correct parameter naming 2021-04-18 15:05:00 -05:00
858ba9fe8d [ox/fs] Rename Result<const char*> FileSystem::read to directAccess 2021-04-18 15:03:45 -05:00
9d74c5b464 [ox/fs/ptrarith] Make everything in ptrarith noexcept 2021-04-18 14:33:06 -05:00
5ad7c963b1 [nostalgia] Add new oxRequire variants to handbook 2021-04-17 18:29:40 -05:00
96a2e86a35 [nostalgia/tools/pack] Cleanup 2021-04-17 17:55:47 -05:00
c007b5b874 [nostalgia/tools/pack] Remove unnecessary copies and conversions 2021-04-17 17:35:57 -05:00
28dc5552d4 [ox/fs] Add FileSystem::ls(const String&) 2021-04-17 17:35:21 -05:00
304a43a4b4 [nostalgia/tools/pack] Make Pack lib operate on generic ox::FileSystems 2021-04-17 17:24:37 -05:00
9822a6ec47 [ox/mc] Cleanup field presence indicator code 2021-04-17 16:59:16 -05:00
69fb4acd24 [ox/std] Cleanup 2021-04-17 16:40:19 -05:00
39dc09e3d3 [ox/std] Add move operators to HashMap and cleanup noexcept correctness 2021-04-17 16:38:44 -05:00
394d13df9b [ox/mc] Make read take const buffers 2021-04-17 16:37:58 -05:00
772cc7d954 [ox/fs] Add new version of ls and make direct read return const 2021-04-17 16:36:39 -05:00
fef0ff58c3 [nostalgia/tools/pack] Remove all std references from Pack lib 2021-04-17 16:35:35 -05:00
8f7504c1c8 [ox/std] Add String::endsWith 2021-04-17 16:35:14 -05:00
49fb4d0f0b [ox/oc] Remove redundant move in readOC 2021-04-17 14:06:15 -05:00
21f40a8362 [nostalgia/tools] Revert writeFileBuff path to ox::String 2021-04-17 14:04:22 -05:00
4a0f6420b6 [nostalgia/core/studio] Add oxIgnoreError for new Vector::erase Error 2021-04-17 13:58:03 -05:00
af9991c008 [ox/std] Make HashMap::at return Result<T&> instead of Result<T*> 2021-04-17 13:56:52 -05:00
c46ec57431 [ox/std] Make Vector erase methods return Errors 2021-04-17 12:44:27 -05:00
a22823e3b4 [ox] Cleanup some old style error handling 2021-04-17 11:33:33 -05:00
6664462391 [nostalgia/studio] Update Vector::back usage 2021-04-17 11:32:52 -05:00
09383401e5 [ox/std] Make Vector::{front,back} return Result 2021-04-17 11:29:21 -05:00
6610b501b3 [ox/std] Add is_pointer and is_pointer_v 2021-04-17 10:56:24 -05:00
cd1db371eb [ox/std] Fix oxOut and oxErr to explicitly use OutStream over TraceStream 2021-04-17 01:02:36 -05:00
96f79757cf [ox/fs] Remove noexcept from ls and add it to FileSystemTemplate constructors and destructor 2021-04-17 00:51:05 -05:00
8eb19b4cba [nostalgia/tools/pack] Remove <vector> include 2021-04-16 22:00:26 -05:00
b7d24c998e [ox/fs] Cleanup PassThroughFS detection logic 2021-04-16 21:57:34 -05:00
0f99f7eb91 [ox/fs] Make all FileSystem methods noexcept 2021-04-16 21:52:16 -05:00
be09c60f5d [nostalgia/tools/pack] Replace cout and cerr with oxOut and oxErr 2021-04-16 21:19:10 -05:00
86a38c7197 [ox/std] Add support for explicity printing to stdout and stderr 2021-04-16 21:18:31 -05:00
022bc7e512 [nostalgia/tools/pack] Replace std types with ox types 2021-04-16 20:45:46 -05:00
db49361f8a [ox/std] Add support for appending single chars 2021-04-16 20:00:04 -05:00
86202562fe [nostalgia/tools/pack] Update for new FS error handling 2021-04-16 19:56:36 -05:00
e2d74de9c3 [ox/fs] Cleanup error handling 2021-04-16 19:55:25 -05:00
6a566ed35e [ox/std] Cleanup more unnecessary copies and add new variants of oxRequire 2021-04-16 19:53:02 -05:00
90d9a0a8b0 [ox/claw] Make read take a const char* instead of char* 2021-04-16 19:31:08 -05:00
caca376028 [ox/std] Add operator== to Vector 2021-04-15 23:34:56 -05:00
2dde9473d5 [ox/std] Remove redundant copies from Result constructors 2021-04-11 01:24:20 -05:00
cffc3da622 [nostalgia/core/studio] Add Qt headers as PCHs 2021-04-10 21:34:04 -05:00
b93d86be8e [gbabuildcore] Move GBA cmake files to gbabuildcore 2021-04-03 02:40:57 -05:00
6265c6dc3b [ox/std] Add compile definitions to TraceHook lib 2021-04-03 02:40:01 -05:00
53187e0c67 [nostalgia/core] Make screen size function nodiscard 2021-04-01 22:49:07 -05:00
786892dda1 [nostalgia/tools/pack] Update for new ClArgs interface 2021-04-01 22:00:07 -05:00
61fb5207ea [ox/clargs] Make accessors noexcept 2021-04-01 21:59:04 -05:00
bcc4b5f816 [ox/std] Add oxRequireT for throwing instead of returning Errors 2021-04-01 21:58:03 -05:00
86f0e1ca08 [ox/std] Fix non-const HashMap::at 2021-04-01 21:57:26 -05:00
7bbd7bfdb5 [ox/std] Make HashMap::at return type consistent between const/non-const 2021-04-01 02:41:12 -05:00
291027e41e [ox/std] Replace HashMap::operator[] const with HashMap::at const 2021-04-01 02:32:50 -05:00
392351ba48 [nostalgia/tools/pack] Remove ClArgs copy 2021-04-01 01:47:05 -05:00
749e3155b5 [ox/clargs] Make arg reading methods const 2021-04-01 01:43:18 -05:00
b486a4962e [ox/std] Add const accessor to HashMap 2021-04-01 01:42:38 -05:00
d952b68053 [nostalgia/tools/pack] Fix Pack lib install location 2021-04-01 01:15:09 -05:00
ec711331d1 [nostalgia/common] Update models 2021-03-31 02:40:52 -05:00
8f7de171af [nostalgia/core] Make display size function return common::Size instead of common::Point 2021-03-31 02:30:29 -05:00
445db97d31 [nostalgia/core] Add input.hpp to core.hpp 2021-03-31 02:21:50 -05:00
134f5593e2 [nostalgia/player] Split player application logic into separate files 2021-03-31 00:33:31 -05:00
98272b4da7 [nostalgia][sample_project] Cleanup charset's y 2021-03-30 22:01:19 -05:00
6de38c13ee [nostalgia] Cleanup unnecessary explicit Qt linkages 2021-03-30 21:34:49 -05:00
35d7a4d828 [QDark] Make portable between Qt5 and Qt6 2021-03-30 21:25:41 -05:00
2b469da8c3 [nostalgia] Make portable between Qt5 and Qt6 2021-03-30 21:25:01 -05:00
8d62aca8a7 [QDark] Upgrade to Qt6 2021-03-30 20:36:54 -05:00
5bb98747a9 [nostalgia] Port to Qt6 2021-03-30 20:35:42 -05:00
37c3f117fe [nostalgia/core/gl] Initialize buffers 2021-03-30 02:42:18 -05:00
f0b359597a [nostalgia/core/gba] Cleanup 2021-03-30 02:35:31 -05:00
4cace9d8e0 [nostalgia/core/sdl] Reduce required GL version to 3.0 2021-03-28 03:47:38 -05:00
1750fa688a [nostalgia/jenkins] Update Jenkinsfiles for conan 2021-03-28 02:44:08 -05:00
8512f97cf4 [nostalgia/core/sdl] Correct SDL2 find_package case 2021-03-28 02:27:13 -05:00
54383b38e6 [nostalgia] Replace README instruction for VCPKG requirements with Conan 2021-03-28 02:13:01 -05:00
1c81b2aba8 [nostalgia] Remove Conan setup for GBA builds 2021-03-28 00:58:15 -05:00
504c41fabc [nostalgia] Update make setup-conan to make conan-config 2021-03-28 00:42:20 -05:00
c7cb2176ee [buildcore] Make conan properly use own profile 2021-03-28 00:41:34 -05:00
f1a1d94ac3 [nostalgia] Switch back to conan 2021-03-28 00:25:30 -05:00
2ab6ef201e [buildcore] Switch to conan 2021-03-28 00:24:50 -05:00
6656320359 [ox] Switch back to conan 2021-03-28 00:15:15 -05:00
a474dc56c0 [nostalgia/studio] Disable QDark theme on Mac 2021-03-28 00:08:15 -05:00
f22f7507a9 [ox/std] Fix OX_ARCH_ARM64 detection 2021-03-28 00:06:14 -05:00
2c09de230c [buildcore] Remove whole --target option from cmake --build command (for CMake 3.20) 2021-03-27 23:17:03 -05:00
77fbb95479 [buildcore] Make pybb cmake_build check to see if build directory exists 2021-03-27 22:56:13 -05:00
46d4e11e89 [nostalgia,buildcore] Move a lot of generic CMake stuff to BuildCore 2021-03-26 22:05:31 -05:00
4ce18766cd [nostalgia/core/userland] Remove unnecessary copies 2021-03-24 22:40:33 -05:00
b825e88d29 [ox/fs] Cleanup tests 2021-03-24 01:39:07 -05:00
b3dff0a184 [ox/claw] Cleanup tests 2021-03-24 01:29:35 -05:00
29a4bb920a [ox/std] Cleanup tests 2021-03-24 01:29:01 -05:00
9c08ab458a [ox/fs] Cleanup tests 2021-03-24 01:20:27 -05:00
6dd9e30734 [nostalgia/studio] Add package name to test output 2021-03-24 00:56:38 -05:00
403d124e99 [nostalgia/studio] Cleanup JSON test 2021-03-24 00:55:37 -05:00
084cee44fa [nostalgia/core/sdl] Remove SDL implementation's bgTextures 2021-03-24 00:47:53 -05:00
85e7374446 [ox] Add package name to test output 2021-03-24 00:46:03 -05:00
40f2537c05 [ox] Move ptrarith into fs 2021-03-24 00:44:11 -05:00
5a8e16c3f3 [nostalgia/sample_project/descriptors] Change tiles name to pixels in NostalgiaGraphic 2021-03-23 00:03:14 -05:00
aea43306a4 [nostalgia/core/gl] Cleanup VBO, EBO, and VAO initialization 2021-03-23 00:02:17 -05:00
b278b3881e [nostalgia/core/sdl] Put vsync options in config.hpp 2021-03-23 00:01:09 -05:00
c45f4ccccb [nostalgia/core/userland] Delete now unneccsary eboElements count 2021-03-20 16:10:19 -05:00
cc23947d27 [nostalgia/core/userland] Move Vertex arrays and Buffers to GLobject 2021-03-20 16:08:55 -05:00
8d19f99fac [nostalgia/core/userland] Make Texture copy width and height on move 2021-03-20 15:58:51 -05:00
c2554cebdb [nostalgia/core/userland] Fix GLobject to destruct upon reassignment 2021-03-20 15:50:35 -05:00
6bdee3fc1c [nostalgia/core/userland] Add texture deletion 2021-03-20 15:47:32 -05:00
37ec5eccd0 [nostalgia/core/userland] Remove debug line 2021-03-20 15:33:00 -05:00
fb7b582348 [ox/std] Add moveTo method to Result 2021-03-20 15:32:13 -05:00
47a43fecb1 [nostalgia/core/userland] Cleanup shader cleanup with unique_ptr-like GLobject type 2021-03-20 15:31:13 -05:00
896a7a0a96 [nostalgia/core/userland] Replace FPS debug statement with info statement 2021-03-19 20:53:46 -05:00
351ae69f6f [ox/std] Add oxInfo log event type 2021-03-19 20:52:44 -05:00
f58abd9c3f [nostalgia/core] Cleanup and make FPS print a config.hpp option 2021-03-19 19:22:08 -05:00
1d1ce4d2cf [nostalgia/core/userland/gl] Add other 3 backgrounds 2021-03-18 20:29:52 -05:00
e36b123b33 [nostalgia/core/userland] Add bg control functions for GL 2021-03-18 20:19:37 -05:00
ba91de90fc [nostalgia/core] Move setTile implementation out of header 2021-03-18 20:12:08 -05:00
e76fbb0095 [nostalgia/core] Move color types and functions into separate file 2021-03-18 20:09:40 -05:00
9860fec00e [nostalgia/core/userland] Delete GL shaders when done 2021-03-18 19:43:08 -05:00
ff0a959793 [nostalgia/core/gba] Add functions for controlling background status 2021-03-18 19:31:33 -05:00
736b9342ea [nostalgia/core/sdl] Add tracepoint about vsync/adaptive vsync setting 2021-03-18 19:10:20 -05:00
bfca2193bc [nostalgia/core/sdl] Set OpenGL version 2021-03-18 19:06:21 -05:00
e56fa3a531 [nostalgia/core/userland] Cleanup some extraneous GL calls 2021-03-18 02:13:24 -05:00
c4b9858738 [nostalgia/core/sdl] Make attempt to use adaptive vsync and fall back on vsync 2021-03-18 02:02:40 -05:00
d34db292dc [nostlagia/core/userland] Add running of event handler to main loop 2021-03-18 01:52:36 -05:00
4956534af4 [nostalgia/core/userland] Make shader compile failures oxError and return error instead of panicing 2021-03-18 01:35:32 -05:00
be0de98fc2 [nostalgia] Add oxError to the Developer Handbook 2021-03-18 01:33:29 -05:00
3ca9db5e8a [ox/std] Add oxError and oxErrorf 2021-03-18 01:26:05 -05:00
dc1ead2af4 [nostalgia/core/userland] Cleanup 2021-03-17 21:45:34 -05:00
be3caf1818 [nostalgia/core/userland] Restore proper rendering of background 2021-03-17 21:30:30 -05:00
4796c2e0cb [nostalgia/core] Add support for getting screen dimensions 2021-03-17 21:28:06 -05:00
245424cfad [nostalgia/core/userland] Add VBO and EBO length back to array types 2021-03-17 01:40:03 -05:00
61cc30c475 [nostalgia/core/userland] Add OxClaw as dependency 2021-03-17 01:32:24 -05:00
d000c7f34f [nostalgia/core/userland] Fix Tile row skipping and move some non-SDL code into userland 2021-03-17 01:25:59 -05:00
94011c8b18 [nostalgia] Update Developer Handbook with logging and oxRequire 2021-03-16 21:16:19 -05:00
23a7241622 [nostalgia/core/sdl] Cleanup 2021-03-16 21:15:54 -05:00
e6d271295f [ox/std] Add oxRequire 2021-03-16 21:15:05 -05:00
d6ff337cc0 [nostalgia] Make Jenkins build not use ccache, even if available 2021-03-15 22:09:13 -05:00
763955a9bb [gbastartup] Cleanup, make an object lib, and make dependency public 2021-03-15 22:03:35 -05:00
be31ad48a1 [nostalgia/core/userland] Fix Mac build 2021-03-15 22:02:24 -05:00
87b2963687 [nostalgia/core] Establish foundation for tile support in GL 2021-03-14 20:56:12 -05:00
10f11b95a6 [nostalgia/jenkins] Add env to GBA and Mac Jenkinsfiles 2021-03-12 01:41:16 -06:00
84705e304f [ox] Make OX_NODEBUG a normal variable set in main CMakeLists.txt 2021-03-12 01:39:02 -06:00
582cbf2041 [ox/std] Make oxDebug trigger build failure if OX_NODEBUG is set to ON 2021-03-12 01:30:42 -06:00
15d169dd12 [nostalgia/jenkins] Add shared environment var file 2021-03-12 00:58:12 -06:00
458258e30f [nostalgia/jenkins] Add Mac Jenkinsfile 2021-03-11 21:32:29 -06:00
5774bcfdcf [nostalgia] Remove environment variables from Jenkinsfiles 2021-03-11 21:24:50 -06:00
75a2b8f489 [ox/std] Add option to give oxTrace a msg arg 2021-03-11 21:23:59 -06:00
523e0f8f71 [buildcore] Make Xcode builds not marked as current active build 2021-03-11 21:22:48 -06:00
2f95c0aecc [ox/std] Addressing CLion suggestions 2021-03-11 21:19:55 -06:00
01c0397680 [ox/std] Suppress warning about empyt variadic macro arguments for Clang 2021-03-11 20:27:15 -06:00
07c5ed07ef [ox/std] Make use ##__VA_ARGS__ only non OX_USE_STDLIB builds, which are GCC builds 2021-03-11 20:04:34 -06:00
84a9a9d2fd [ox/std] Fix Mac build 2021-03-11 18:46:48 -06:00
3352625afe [nostalgia/core] Start port of PC gfx to OpenGL 2021-03-11 18:46:13 -06:00
cb6066f81e [ox/std] Add oxDebug and oxDebugf, which are oxTrace aliases for debug channel 2021-03-11 00:35:10 -06:00
2ebce7713d [ox] Cleanup some messy trace points 2021-03-10 20:17:45 -06:00
55a4f2451e [ox/std] Add oxTracef 2021-03-10 20:14:31 -06:00
ef6673067b [ox/std] Make Error constructor explicit 2021-03-10 20:14:15 -06:00
01f29c5258 [ox/std] Fix itoa to handle unsigned ints without conversion warnings 2021-03-09 19:36:04 -06:00
e583cade27 [ox/std] Add ResizedInt to get the same sign int with a different size 2021-03-09 19:35:02 -06:00
f24a0a4aab [nostalgia] Add trace init 2021-03-08 20:12:41 -06:00
662c2e11de [ox/std] Add init hook to tracing system 2021-03-08 20:10:46 -06:00
51387eea3a [buildcore] Add license 2021-03-05 21:48:10 -06:00
1698e39089 [nostalgia] Delete gdblogger config 2021-03-05 21:46:39 -06:00
bcb8c108b2 [ox/std] Add option for building trace hook in shared library 2021-03-05 21:45:37 -06:00
c5773202b5 [ox/std] Make ox_atoi return an ox::Result 2021-03-03 00:30:16 -06:00
28e68adc75 [nostalgia/player] Cleanup dependency selection with generator expressions 2021-03-03 00:07:12 -06:00
2e8d0a421c [ox/std] Cleanup 2021-03-02 23:45:42 -06:00
d7c1d2a6ab [ox/mc] Cleanup 2021-03-02 23:39:44 -06:00
dde4fb017e [ox/claw] Make Claw build in GBA builds, only without OC 2021-03-02 23:38:43 -06:00
5d5917566f [ox/clargs] Make OxClArgs pull in OxStd 2021-03-02 21:47:02 -06:00
f5f8593638 [ox/clargs] Make clargs build in bare metal builds 2021-03-02 21:41:45 -06:00
353b1cf667 [nostalgia] Add tracy config file 2021-03-02 21:38:25 -06:00
cb0645860a [buildcore] Add copyright headers and license 2021-03-02 21:35:42 -06:00
e52ac1f78c [nostalgia][buildcore] Put vcpkg pkgs in variable 2021-03-02 21:32:00 -06:00
ca4b9f7bdc [buildcore] Make pybb executable 2021-03-02 21:20:02 -06:00
01fe1349fb [nostalgia] List Python 3 as dependency in README 2021-03-02 21:17:21 -06:00
896702a66b [nostalgia][buildcore] Move setup-bulid and pybb to buildcore 2021-03-02 21:16:07 -06:00
d4e3af1464 [ox/std] Cleanup OS constexpr/define order in defines 2021-03-02 21:05:07 -06:00
36de17bc2d [nostalgia][buildcore] Remove Nostalgia specific args from setup-build.py 2021-03-02 21:02:16 -06:00
eca8641bec [ox/clargs] Remove std::map and std::string as dependencies 2021-03-02 20:35:14 -06:00
8cd5ff66be [nostalgia][buildcore] Break much of Makefile out into new buildcore to make it reusable 2021-03-02 19:44:10 -06:00
3f0824043e [nostalgia] Replace cmake --build use with pybb cmake-build in Makefile 2021-03-01 22:36:08 -06:00
7b6fad8062 [ox/std] Fix Darwin OS detection 2021-02-28 14:31:32 -06:00
936c922c1e [nostalgia] Address CLion warnings 2021-02-27 02:40:59 -06:00
70168286ab [ox] Address CLion warnings 2021-02-27 02:38:18 -06:00
44f4d67c80 [nostalgia] Address CLion recommendations 2021-02-26 08:55:40 -06:00
d50551cc74 [nostalgia] Cleanup build scripts and add support for configuring Xcode project 2021-02-24 19:18:33 -06:00
b3aa0eb59d [nostalgia/studio] Make NostalgiaStudio library static instead of a CMake object library 2021-02-22 22:23:29 -06:00
9a92dadff7 [ox/std] Remove implicit type conversion from ox_itoa 2021-02-22 22:23:10 -06:00
4e70b459f6 [ox/model] Removes some unnecessary type conversions 2021-02-22 22:21:57 -06:00
034cb97a42 [ox/mc] Removes some unnecessary type conversions 2021-02-22 22:21:07 -06:00
60714d3009 [ox/oc] Cleanup ON check to work as a boolean check 2021-02-22 22:19:16 -06:00
a5194fd972 [ox/claw] Make CMake dependencies PUBLIC 2021-02-22 22:18:13 -06:00
657af980c2 [nostalgia] Make NOSTALGIA_QT_PATH a PATH type instead of STRING 2021-02-22 22:16:23 -06:00
a2aa9c8f82 [ox] Fix OX_USE_STDLIB check to work correctly on Windows 2021-02-22 22:01:16 -06:00
57ad13fc4a [ox/std] Add an unlikely label to ox{Return,Throw}Error for C++20 builds 2021-02-21 00:32:07 -06:00
c82b72d8aa [nostalgia/scripts/pybb] Make gracefully exit upon Ctl-C 2021-02-21 00:30:14 -06:00
20ede1b2d7 [nostalgia/studio] Add namespacing to models 2021-02-21 00:14:43 -06:00
20ec019c36 [nostalgia/scripts/pybb] Add explanation comment 2021-02-20 23:58:23 -06:00
c5dbd724eb [nostalgia] Replace some Makefile macros with a pybb function that will return errors 2021-02-20 23:48:30 -06:00
c399cb3f13 [nostalgia/studio] Cleanup 2021-02-20 23:17:55 -06:00
64b9b6071e [nostalgia/scripts/pybb] Remove permission manipulation from rm 2021-02-20 20:56:31 -06:00
127e3f6df0 [nostalgia/scripts/pybb] Fix directory removal 2021-02-20 20:03:54 -06:00
671acc68c4 [nostalgia/studio] Remove unused consts 2021-02-20 19:04:25 -06:00
cad2f078a0 [nostalgia] Add pybb tool to help with cross platform compatibility 2021-02-20 19:00:47 -06:00
f272555a25 [ox/std] Add OS detection 2021-02-03 19:23:55 -06:00
ba4a854368 [nostalgia/core] Finish removing alpha bit from color 2021-02-02 19:24:59 -06:00
983a9b87d5 [nostalgia/core/studio] Remove alpha bit from PaletteEditor 2021-02-02 02:28:25 -06:00
bc8d50f3e7 [nostalgia] Ensure setup_build.py uses Python 3 2021-01-29 20:13:07 -06:00
17ead36d2f [nostalgia/scene] Add models for Doc types 2021-01-22 22:40:59 -06:00
9db256699d [nostalgia/core] Add a setSprite function that takes a Sprite type 2021-01-22 22:39:31 -06:00
c1239b5656 [nostalgia] Run liccor 2021-01-21 23:35:23 -06:00
546f083346 [ox] Run liccor 2021-01-21 23:35:13 -06:00
5f63e39c27 [ox] Update liccor file 2021-01-21 00:48:30 -06:00
d8d214b3d3 [nostalgia/sample_project] Give Charset's 5 rounded features 2021-01-21 00:43:54 -06:00
f86558dc00 [nostalgia/core/studio] Make some const-ible methods in TileSheetEditor const 2021-01-21 00:39:59 -06:00
442e114f00 [nostalgia] Update liccor file 2021-01-21 00:34:08 -06:00
67cbe6ef7f [nostalgia/core/gba] Fix C++20 compatibility issues 2021-01-21 00:34:08 -06:00
d58570d76b [ox/fs] Fix C++20 compatibility issues 2021-01-21 00:34:08 -06:00
d7b82a6eed [nostalgia/core/studio] Fix the TileSheetEditor color key overflow 2020-12-22 21:21:32 -06:00
45a27800b6 [nostalgia/studio] Bundle default profile in studio executable 2020-12-22 21:21:17 -06:00
4276135e65 [ox/clargs] Add default argument option for ClArgs::getString 2020-12-21 23:35:09 -06:00
d98a5e386a [nostalgia/core/studio] Make number keys map to color indices in TileSheetEditor 2020-12-18 00:04:34 -06:00
843da4a810 [nostalgia] Rename plugin references to module 2020-12-17 20:40:23 -06:00
dcef76b488 [nostalgia] Enable LTO 2020-12-17 20:23:28 -06:00
d09dc5cc01 [nostalgia] Remove dynamic library usage
Will make dynamically loaded Modules impossible, but they add complexity
and really aren't that useful...
2020-12-17 20:08:02 -06:00
7a837502a1 [nostalgia] Rename Studio Plugins to Modules, add support for builtin Studio modules, make existing modules builtin 2020-12-17 19:32:31 -06:00
6497b40e64 [nostalgia/core/gba] Remove err from panic message if err is 0 2020-12-15 23:59:13 -06:00
9c8dc09996 [ox/std] Fix ox::assertFunc<bool> for GBA 2020-12-15 23:54:32 -06:00
c038109806 [nostalgia/core/gba] Add sprite update buffer overflow assert 2020-12-15 23:45:54 -06:00
c7e053668e [nostalgia/scene] Start Scene package 2020-12-07 00:18:15 -06:00
a199cf113a [nostalgia/core/studio] Add Fill tool to TileSheetEditor 2020-12-07 00:11:23 -06:00
b07cbe89a1 [nostalgia] Correct plugin IDs 2020-12-06 03:16:34 -06:00
36e602b2b0 [nostalgia/core/studio] Make handle copy/cut/paste selections off tile lines 2020-12-06 03:04:03 -06:00
3dee59d048 [nostalgia] Set CMP0110 to NEW, this which allows spaces in test names 2020-11-21 23:25:44 -06:00
f35b6f0026 [ox] Set CMP0110 to NEW, this which allows spaces in test names 2020-11-21 23:24:09 -06:00
04c660765e [ox/std] Make placement new function constexpr 2020-11-21 23:23:47 -06:00
a5e518ec7a [ox/std] Make Vector::size() nodiscard 2020-11-21 23:21:11 -06:00
381f2b05e3 [nostalgia/core/gba] Remove unnecessary branch from isr 2020-11-10 23:29:10 -06:00
1d4f03823b [nostalgia] Move Auto-Moc settings to Qt project directories 2020-11-10 21:28:51 -06:00
8e696baa9f Merge branch 'master' of https://github.com/gtalent/nostalgia 2020-11-10 21:11:50 -06:00
30b1670658 [nostalgia] Remove cmake minimum version from a very simple CMakeLists.txt 2020-11-10 21:11:00 -06:00
42aa8c3533 [nostalgia] Remove setup-build 2020-11-08 19:56:38 -06:00
5f4e6740cc [nostalgia] Fix MSVC build 2020-11-07 17:59:36 -06:00
40f3c4ecb5 [ox] Fix MSVC build 2020-11-07 17:59:17 -06:00
ef85eea691 [nostalgia] Get Makefile working on Windows 2020-11-07 17:38:41 -06:00
3430e228c8 [nostalgia/core/studio] Make TileSheetClipboards that are passed around use heap 2020-10-21 00:59:22 -05:00
b960539e5f [nostalgia/core/studio] Fix TileSheetEditor cut to use undo stack 2020-10-21 00:47:46 -05:00
2580dbb7ab [nostalgia/core/studio] Add select and cut/copy/paste to TileSheetEditor 2020-10-20 22:19:48 -05:00
985b2b57ba [ox/std] Replace reinterpret_cast with bit_cast in Vector 2020-10-20 19:34:55 -05:00
84dfb17f7f [ox/std] Remove inappropriate noexcepts and call destructors on erase and resize 2020-10-20 19:22:30 -05:00
81a78bf95e [ox/std] Fix Error to build in Clang 2020-10-20 19:11:06 -05:00
9effdad200 [nostalgia/studio] Add Cut action hook 2020-10-19 20:53:24 -05:00
79acffcc29 [ox/std] Add memsetElements 2020-10-19 19:43:20 -05:00
47171f593c [nostalgia/common] Add != operator to Point 2020-10-19 19:42:34 -05:00
fdda3bd82d [nostalgia/studio] Add Copy/Paste hooks 2020-10-19 19:36:23 -05:00
b6c82c42f0 [ox/std] Replace ox::_error with ox::Error constructor 2020-10-16 20:07:07 -05:00
fe40b2e144 [ox] Cleanup unnecessary ox:: 2020-10-16 19:56:13 -05:00
99a2ad8fc9 [nostalgia/sample_project] Update Charset 2020-10-16 19:43:30 -05:00
5587ecf5e5 [nostalgia] Rename ValErr to Result 2020-10-16 19:43:17 -05:00
6b720042d0 [ox] Rename ValErr to Result 2020-10-16 19:43:10 -05:00
faadcae7e9 [nostalgia/core/studio] Add Mod Greater/Equal To menu to TileSheetEditor 2020-10-16 00:54:59 -05:00
0b3b54b3fd [ox] Remove remaining nodiscards from Error functions 2020-10-16 00:07:43 -05:00
d2eea8c2ec [nostalgia] Remove nodiscards from Error and ValErr functions 2020-10-15 23:58:49 -05:00
75814a2896 [ox] Remove now superfluous [[nodiscards]] from ox::Error functions 2020-10-15 23:55:20 -05:00
ec359a805e [nostalgia] Cleanup 2020-10-15 21:46:34 -05:00
40cf65d509 [nostalgia/player] Cleanup 2020-10-13 00:48:14 -05:00
2ba051906a [nostalgia/studio] Fix to clear open tabs before opening them on start 2020-10-13 00:34:15 -05:00
b1d94782db [ox/std] Add Error's m_i to copy operator and constructor 2020-10-12 21:00:01 -05:00
0bbea9c6d5 [nostalgia] Remove nodiscard from handbook, as ox::Error is always nodiscard now 2020-10-12 20:03:05 -05:00
af71bef4f7 [nostalgia/studio] Fix Context to actually have tab parent 2020-10-12 20:01:21 -05:00
c671c8bd66 [nostalgia] Fix ignored ox::Error's 2020-10-11 19:13:39 -05:00
a725369311 [ox] Make Error its own type, not dependent on Integer and make nodiscard 2020-10-11 19:04:00 -05:00
8204188008 [nostalgia/studio] Use QDark theme 2020-09-05 21:10:15 -05:00
5cd7f0cecf [QDark] Make an Object library 2020-09-05 19:29:41 -05:00
26cbb6dc9c Merge commit 'a743ad9496701894406c0d7ded6a44fcecd4219e' as 'deps/QDark' 2020-09-05 19:26:53 -05:00
a743ad9496 Squashed 'deps/QDark/' content from commit 6aef1de
git-subtree-dir: deps/QDark
git-subtree-split: 6aef1de7e97227899c478a5634d136d80991123e
2020-09-05 19:26:53 -05:00
87c428f422 [nostalgia/core/studio] Fix color selection change detection to work with dragging 2020-09-01 20:59:32 -05:00
ca920e5769 [nostalgia] Make Ninja optional 2020-09-01 19:52:35 -05:00
fba4f6a543 [nostalgia/core/studio] Add 8 bit to 5 bit color conversion optiont to PaletteEditor 2020-08-29 17:25:54 -05:00
cef8c54515 [nostalgia/core/studio] Fix memory leaks 2020-08-28 21:38:06 -05:00
f15ad04d33 [nostalgia/core/studio] Add Move Up/Down buttons to PaletteEditor 2020-08-28 21:17:56 -05:00
a63586d0b8 [nostalgia] Update Dockerfile to support vcpkg 2020-08-28 19:14:35 -05:00
9087d03851 [nostalgia] Add ENV_RUN to build commands in Makefile 2020-08-28 18:58:03 -05:00
36da9d7a4a [nostalgia] Cleanup setup-build script 2020-08-28 18:57:21 -05:00
0bf58024f5 [nostalgia] Cleanup setup-build 2020-08-26 21:22:34 -05:00
619e850bb9 [nostalgia] Rewrite setup-build in Python 2020-08-26 21:13:28 -05:00
58922d393a [nostalgia] Update .gitignore 2020-08-15 21:08:42 -05:00
47a9deb94b [nostalgia] Add support for a persistent external vcpkg dir 2020-08-15 20:59:37 -05:00
7671a379c6 [nostalgia] Fix pkg-gba to work with new current build system 2020-08-14 20:54:16 -05:00
591cff6f04 [nostalgia] Fix vcpkg in .gitignore 2020-08-14 20:49:35 -05:00
72380b0190 [nostalgia] Make current build always use current platform 2020-08-14 20:47:30 -05:00
4ec7f2a24e [nostalgia] Make vcpkg dir name specify platform 2020-08-14 03:04:46 -05:00
88bbcc34e2 [nostalgia/core/sdl] Make only destroy textures that actually exist 2020-08-07 01:03:57 -05:00
3a339ea191 [nostalgia] Add vcpkg prerequisites to README 2020-08-05 20:30:05 -05:00
3d40b6f99a [nostalgia] Update Jenkinsfiles for vcpkg 2020-08-05 20:24:20 -05:00
be1a03c554 [nostalgia] Switch from conan to vcpkg 2020-08-05 20:21:07 -05:00
0b0fd151c8 [ox] Switch to vcpkg 2020-08-05 20:17:30 -05:00
621f88fa6a [nostalgia/docs] Make Ninja required and link Developer Handbook in README 2020-07-29 00:54:22 -05:00
9eee36d18e [nostalgia] Add Claw and OC to handbook 2020-07-29 00:35:31 -05:00
803b90d54c [nostalgia/core] Make sprite functions take core::Context argument 2020-07-29 00:04:21 -05:00
579b328212 [ox/std] Cleanup 2020-07-28 19:11:10 -05:00
0d405ec88a [nostalgia/core] Add Context parameter to event_handler 2020-07-28 19:10:36 -05:00
80f98802b6 [nostalgia/core/gba] Add hideSprite and add flipX parameter to setSrpite 2020-07-28 19:09:24 -05:00
4ad959cd74 [nostalgia/core/gba] Re-order interrupt table to hit more common interrupt first 2020-07-25 23:12:48 -05:00
2e80bf8bbd [nostalgia/sample_project] Modify some characters in Charset 2020-07-18 17:09:26 -05:00
e2f1466e64 [nostalgia/core/gba] Cleanup 2020-07-18 17:00:49 -05:00
d9b0c2c42a [nostalgia/player] Make demo sprites user movable 2020-07-18 01:29:18 -05:00
bf2b08b262 [nostalgia/core/gba] Add sprite shape and size options 2020-07-18 01:24:26 -05:00
e8151ac037 [nostalgia/core/gba] Add user input support 2020-07-18 01:23:43 -05:00
72883285f2 [nostalgia/core/gba] Remove unused interrupt handlers 2020-07-17 01:49:23 -05:00
0051006795 [nostalgia/player] Add moving sprites 2020-07-17 01:39:29 -05:00
dc0667ade4 [nostalgia/core/gba] Fix event cycle and add to setter for event handler 2020-07-17 01:36:51 -05:00
a58467f327 [nostalgia/core/gba] Fix timer addresses 2020-07-15 22:01:09 -05:00
f10d318e54 [nostalgia/core/gba] Add wfi functions 2020-07-15 01:41:04 -05:00
834ca2893b [ox/std] Fix oxPanic errCode parameter name 2020-07-14 22:13:54 -05:00
c6ff015f79 [ox/std] Add memset to memops.h 2020-07-14 22:13:09 -05:00
d73bbfb37a [nostalgia/core/gba] Fix timer frequency 2020-07-14 02:53:20 -05:00
0318ba92ce [nostaliga/core/gba] Cleanup 2020-07-14 01:18:49 -05:00
745ea4a0ed [nostalgia/core] Add ticksMs() function 2020-07-14 01:09:47 -05:00
af494072fb [nostalgia] Add DKP and run instructions to README 2020-07-13 19:02:54 -05:00
408d4c8fa1 [nostalgia/core] Make setSprite use word size 2020-07-13 02:21:16 -05:00
7e565a3162 [nostalgia/core/gba] Add sprite support 2020-07-13 00:25:45 -05:00
b32734d727 [gbastartup] Cleanup 2020-07-12 19:38:00 -05:00
7b7a8d75b4 [ox/std] Add OX_ALIGN8 2020-07-11 23:40:16 -05:00
740e0286d0 [ox/std] Add OX_ALIGN4 2020-07-11 22:24:37 -05:00
22a07afa9e [nostalgia/core/gba] Implement ISR 2020-07-10 00:05:39 -05:00
4f79310084 [nostalgia/core] Fix NostalgiaCore library install location 2020-07-09 23:16:35 -05:00
2da5ff6459 [nostalgia] Fix README formatting 2020-07-04 20:51:59 -05:00
229da694ec [nostalgia] Cleanup README and add prerequisites 2020-06-30 12:26:36 -05:00
5142b20036 [nostalgia/core/gba] Cleanup 2020-06-29 11:40:24 -05:00
6d2d8d77a9 [nostalgia] Add setup-conan to README 2020-06-29 11:32:59 -05:00
b21ec14079 [nostalgia] Make Makefile's setup-conan platform specific 2020-06-29 11:32:02 -05:00
95e752bf3b [nostalgia] Reorganize developer handbook and add section on file I/O 2020-06-29 11:31:11 -05:00
e91e9ad58f [nostalgia/core] Cleanup 2020-06-29 11:30:19 -05:00
30ac257d95 [nostalgia/core/gba] Make sizing a scale factor of the GBA 2020-06-23 08:11:57 -05:00
0de5d6b6c0 [nostalgia/core/gba] Cleanup interrupt globals 2020-06-21 13:47:06 -05:00
89aadfb606 [nostalgia/core/gba] Add IRQ system 2020-06-21 11:49:58 -05:00
d664979868 [nostalgia] Cleanup build files 2020-06-20 05:30:22 -05:00
dbf532df1c [ox/mc] Replace an alloca call with malloca to prevent stack overflow 2020-06-20 03:54:16 -05:00
a9ec635160 [ox/std] Make String comparison operators const correct 2020-06-20 03:49:38 -05:00
676 changed files with 52390 additions and 4103 deletions

View File

@ -1,12 +0,0 @@
{
"log_functions": [
{
"function": "oxTraceHook",
"ignore_frames": 3,
"file_var": "file",
"line_var": "line",
"channel_var": "ch",
"msg_var": "msg"
}
]
}

5
.gitignore vendored
View File

@ -1,7 +1,10 @@
.clangd
.current_build
scripts/__pycache__
deps/imgui/src
compile_commands.json
build
conanbuild
.conanbuild
dist
tags
nostalgia.gba

8
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

22
.idea/codeStyles/Project.xml generated Normal file
View File

@ -0,0 +1,22 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C>
<option name="INDENT_NAMESPACE_MEMBERS" value="0" />
<option name="INDENT_CLASS_MEMBERS" value="8" />
<option name="INDENT_VISIBILITY_KEYWORDS" value="4" />
</Objective-C>
<Objective-C-extensions>
<extensions>
<pair source="cpp" header="hpp" fileNamingConvention="LOWERCASE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
<pair source="cu" header="cuh" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
<codeStyleSettings language="ObjectiveC">
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true" />
<option name="SMART_TABS" value="true" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>

5
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="DrinkingTea" />
</state>
</component>

View File

@ -0,0 +1,17 @@
/*
* 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/.
*/
#[[#pragma]]# once
${NAMESPACES_OPEN}
class ${NAME} {
};
${NAMESPACES_CLOSE}

View File

@ -0,0 +1,13 @@
/*
* 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/.
*/
#[[#include]]# "${HEADER_FILENAME}"
${NAMESPACES_OPEN}
${NAMESPACES_CLOSE}

View File

@ -0,0 +1,23 @@
<component name="InspectionProjectProfileManager">
<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" />
</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" />
<inspection_tool class="ConstantFunctionResult" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ConstantParameter" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="DanglingPointers" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="EndlessLoop" enabled="false" level="WARNING" enabled_by_default="false" />
<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="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" />
<inspection_tool class="UnusedLocalVariable" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="UnusedParameter" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="UnusedValue" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>

17
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompDBSettings">
<option name="linkedExternalProjectsSettings">
<CompDBProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</CompDBProjectSettings>
</option>
</component>
<component name="CompDBWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
<component name="ExternalStorageConfigurationManager" enabled="true" />
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?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>

2
.idea/nostalgia.iml generated Normal file
View File

@ -0,0 +1,2 @@
<?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" />

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -2,7 +2,7 @@
source:
- src
copyright_notice: |-
Copyright 2016 - 2020 gtalent2@gmail.com
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

16
.tracy.json Normal file
View File

@ -0,0 +1,16 @@
{
"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,99 +1,26 @@
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.19)
set(CMAKE_POLICY_DEFAULT_CMP0110 NEW) # requires CMake 3.19
project(nostalgia)
set(NOSTALGIA_BUILD_TYPE "Native" CACHE STRING "The type of build to produce(Native/GBA)")
set(NOSTALGIA_IDE_BUILD ON CACHE STRING "Build for IDE's to run")
set(NOSTALGIA_QT_PATH "" CACHE STRING "Path to Qt Libraries")
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(NOSTALGIA_BUILD_TYPE STREQUAL "GBA")
if(BUILDCORE_TARGET STREQUAL "gba")
set(NOSTALGIA_BUILD_STUDIO OFF)
set(OX_BARE_METAL ON)
set(OX_USE_STDLIB OFF)
set(NOSTALGIA_BUILD_TYPE "GBA")
include(deps/gbabuildcore/base.cmake)
else()
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${NOSTALGIA_QT_PATH})
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
include(GenerateExportHeader)
include(address_sanitizer)
set(NOSTALGIA_CONAN_PATHS ${CMAKE_SOURCE_DIR}/conanbuild/conan_paths.cmake)
if(NOT NOSTALGIA_BUILD_TYPE STREQUAL "GBA" AND EXISTS ${NOSTALGIA_CONAN_PATHS})
include(${NOSTALGIA_CONAN_PATHS})
endif()
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/dist/${NOSTALGIA_BUILD_CONFIG}")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(NOT OX_BARE_METAL)
add_definitions(-DOX_USE_STDLIB)
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)
endif()
# enable ccache
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
endif()
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DDEBUG)
else()
add_definitions(-DNDEBUG)
endif()
if(NOT MSVC)
# forces colored output when using ninja
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color")
# enable warnings
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-align")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdouble-promotion")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat=2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmissing-field-initializers")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnull-dereference")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsign-compare")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsign-conversion")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused-variable")
if(NOSTALGIA_BUILD_TYPE STREQUAL "GBA")
include(GBA)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdinc++")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-unwind-tables")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb-interwork")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthumb")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=arm7tdmi")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=arm7tdmi")
endif()
if (CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
endif()
endif()
if(NOSTALGIA_IDE_BUILD)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QTDIR})
endif()
if(APPLE)
@ -101,28 +28,35 @@ if(APPLE)
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_PLUGIN nostalgia-studio.app/Contents/Plugins)
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/nostalgia" "$ORIGIN/../")
if(NOT ${NOSTALGIA_QT_PATH} STREQUAL "")
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${NOSTALGIA_QT_PATH}/lib")
set(CMAKE_INSTALL_RPATH "$ORIGIN" "$ORIGIN/../lib/ox" "$ORIGIN/../lib/nostalgia" "$ORIGIN/../")
if(QTDIR)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${QTDIR}/lib")
endif()
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(NOSTALGIA_DIST_BIN bin)
set(NOSTALGIA_DIST_LIB lib)
set(NOSTALGIA_DIST_PLUGIN lib/nostalgia/plugins)
set(NOSTALGIA_DIST_MODULE lib/nostalgia/modules)
set(NOSTALGIA_DIST_RESOURCES share)
endif()
enable_testing()
add_subdirectory(deps/ox)
include_directories(SYSTEM deps/ox/src)
include_directories(
SYSTEM
deps/imgui/src
deps/ox/src
)
if(NOSTALGIA_BUILD_TYPE STREQUAL "GBA")
if(BUILDCORE_TARGET STREQUAL "gba")
add_subdirectory(deps/gbastartup)
else()
if(NOSTALGIA_BUILD_STUDIO)
add_subdirectory(deps/QDark)
endif()
add_subdirectory(deps/imgui)
endif()
add_subdirectory(src)

View File

@ -1,4 +1,4 @@
FROM fedora:30
FROM fedora:32
RUN dnf update -y
@ -30,6 +30,9 @@ 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
###############################################################################
# Install devkitARM
@ -59,3 +62,4 @@ ENTRYPOINT ["/entrypoint.sh"]
ENV CC clang
ENV CXX clang++
ENV VCPKG_DIR_BASE /var/vcpkg/

103
Makefile
View File

@ -1,114 +1,41 @@
OS=$(shell uname | tr [:upper:] [:lower:])
HOST_ENV=${OS}-$(shell uname -m)
DEVENV=devenv$(shell pwd | sed 's/\//-/g')
DEVENV_IMAGE=nostalgia-devenv
CURRENT_BUILD=$(file < .current_build)
ifneq ($(shell which docker 2> /dev/null),)
ifeq ($(shell docker inspect --format="{{.State.Status}}" ${DEVENV} 2>&1),running)
ENV_RUN=docker exec -i -t --user $(shell id -u ${USER}) ${DEVENV}
endif
endif
ifeq ($(OS),windows)
RM_RF=Remove-Item -ErrorAction Ignore -Path -Recurse
else
RM_RF=rm -rf
endif
PROJECT_NAME=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
NOSTALGIA_STUDIO_PROFILE=dist/${CURRENT_BUILD}/nostalgia-studio.app/Contents/Resources/nostalgia-studio.json
MGBA=/Applications/mGBA.app/Contents/MacOS/mGBA
else
NOSTALGIA_STUDIO=./dist/${CURRENT_BUILD}/bin/nostalgia-studio
NOSTALGIA_STUDIO_PROFILE=dist/${CURRENT_BUILD}/share/nostalgia-studio.json
MGBA=mgba-qt
endif
.PHONY: build
build:
$(foreach file, $(wildcard build/*), cmake --build $(file) --target;)
.PHONY: pkg-gba
pkg-gba:
$(foreach file, $(wildcard build/*), cmake --build $(file) --target install;)
${ENV_RUN} ./scripts/gba-pkg sample_project
.PHONY: install
install:
$(foreach file, $(wildcard build/*), cmake --build $(file) --target install;)
.PHONY: clean
clean:
$(foreach file, $(wildcard build/*), cmake --build $(file) --target clean;)
.PHONY: purge
purge:
${ENV_RUN} ${RM_RF} build .current_build dist
.PHONY: test
test: build
$(foreach file, $(wildcard build/*), cmake --build $(file) --target test;)
${ENV_RUN} ${CMAKE_BUILD} build install
${ENV_RUN} ./scripts/pkg-gba sample_project
.PHONY: run
run: install
${ENV_RUN} ./dist/${CURRENT_BUILD}/bin/nostalgia sample_project
.PHONY: run-studio
run-studio: install
${ENV_RUN} ${NOSTALGIA_STUDIO} -profile ${NOSTALGIA_STUDIO_PROFILE}
${ENV_RUN} ${NOSTALGIA_STUDIO}
.PHONY: gba-run
gba-run: pkg-gba
${MGBA} nostalgia.gba
.PHONY: gdb
gdb: install
${ENV_RUN} gdb --args ./dist/${CURRENT_BUILD}/bin/nostalgia sample_project
.PHONY: gdb-studio
gdb-studio: install
${ENV_RUN} gdb --args ${NOSTALGIA_STUDIO} -profile ${NOSTALGIA_STUDIO_PROFILE}
.PHONY: devenv-image
devenv-image:
docker build . -t ${DEVENV_IMAGE}
.PHONY: devenv-create
devenv-create:
docker run -d \
-e LOCAL_USER_ID=$(shell id -u ${USER}) \
-e DISPLAY=$(DISPLAY) \
-e QT_AUTO_SCREEN_SCALE_FACTOR=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /run/dbus/:/run/dbus/ \
-v $(shell pwd):/usr/src/project \
-v /dev/shm:/dev/shm \
--restart=always \
--name ${DEVENV} \
-t ${DEVENV_IMAGE} bash
.PHONY: devenv-destroy
devenv-destroy:
docker rm -f ${DEVENV}
.PHONY: devenv-shell
devenv-shell:
${ENV_RUN} bash
.PHONY: conan
conan:
@mkdir -p conanbuild && cd conanbuild && conan install ../ --build=missing
.PHONY: configure-release
configure-release:
${ENV_RUN} ${RM_RF} build/${HOST_ENV}-release
${ENV_RUN} ./scripts/setup-build ${HOST_ENV} release
.PHONY: configure-debug
configure-debug:
${ENV_RUN} ${RM_RF} build/${HOST_ENV}-debug
${ENV_RUN} ./scripts/setup-build ${HOST_ENV} debug
.PHONY: configure-asan
configure-asan:
${ENV_RUN} ${RM_RF} build/${HOST_ENV}-asan
${ENV_RUN} ./scripts/setup-build ${HOST_ENV} asan
.PHONY: debug
debug: install
${ENV_RUN} ${DEBUGGER} ./dist/${CURRENT_BUILD}/bin/nostalgia sample_project
.PHONY: debug-studio
debug-studio: install
${ENV_RUN} ${DEBUGGER} ${NOSTALGIA_STUDIO}
.PHONY: configure-gba
configure-gba:
${ENV_RUN} ${RM_RF} build/gba-release
${ENV_RUN} ./scripts/setup-build gba release
${ENV_RUN} ${SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=release
.PHONY: configure-gba-debug
configure-gba-debug:
${ENV_RUN} ${RM_RF} build/gba-debug
${ENV_RUN} ./scripts/setup-build gba debug
${ENV_RUN} ${SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=debug

View File

@ -1,12 +1,15 @@
# Nostalgia
## Setup
## Prerequisites
### Linux
* Install GCC, Clang, or Visual Studio with C++17 support (including std::filesystem)
* 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
Make sure conan is using the C++11 version of libstdc++.
conan profile update settings.compiler.libcxx=libstdc++11 default
## Platform Specific Setup
### macOS
@ -14,6 +17,26 @@ Install and use gmake instead of the make that comes with the system.
## Build
Build options: release, debug, gba, gba-debug
Build options: release, debug, asan, gba, gba-debug
make conan-config
make purge conan configure-{gba,release,debug} install
## Run
### Studio
make run-studio
### Native Platform
make run
### GBA
make gba-run
## Contributing
Please read the [Developer Handbook](developer-handbook.md) for information on
coding standards.

View File

@ -1,9 +1,14 @@
from conans import ConanFile, CMake
class NostalgiaConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
requires = "jsoncpp/1.9.2", "sdl2/2.0.10@bincrafters/stable"
generators = "cmake", "cmake_find_package", "cmake_paths"
#default_options = {
# "sdl2:nas": False
#}
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')

5
deps/QDark/.gitattributes vendored Normal file
View File

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

54
deps/QDark/.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,54 @@
<!-- 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 Normal file
View File

@ -0,0 +1,41 @@
*.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

51
deps/QDark/.travis.yml vendored Normal file
View File

@ -0,0 +1,51 @@
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

32
deps/QDark/AUTHORS.rst vendored Normal file
View File

@ -0,0 +1,32 @@
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 Normal file
View File

@ -0,0 +1,204 @@
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)

23
deps/QDark/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,23 @@
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
)

82
deps/QDark/CODE_OF_CONDUCT.rst vendored Normal file
View File

@ -0,0 +1,82 @@
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/>`__

391
deps/QDark/CONTRIBUTING.rst vendored Normal file
View File

@ -0,0 +1,391 @@
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 Normal file
View File

@ -0,0 +1,405 @@
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

13
deps/QDark/MANIFEST.in vendored Normal file
View File

@ -0,0 +1,13 @@
#
# 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 Normal file
View File

@ -0,0 +1,36 @@
# 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 Normal file
View File

@ -0,0 +1,292 @@
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/

20
deps/QDark/docs/Makefile vendored Normal file
View File

@ -0,0 +1,20 @@
# 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

@ -0,0 +1 @@
.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}}

4766
deps/QDark/docs/_static/css/theme.css vendored Normal file

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.

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.

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.

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.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

3
deps/QDark/docs/_static/js/theme.js vendored Normal file
View File

@ -0,0 +1,3 @@
/* 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"]);

1
deps/QDark/docs/authors.rst vendored Normal file
View File

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

1
deps/QDark/docs/changes.rst vendored Normal file
View File

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

1
deps/QDark/docs/code_of_conduct.rst vendored Normal file
View File

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

181
deps/QDark/docs/conf.py vendored Normal file
View File

@ -0,0 +1,181 @@
#!/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}

1
deps/QDark/docs/contributing.rst vendored Normal file
View File

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

7
deps/QDark/docs/example/example.rst vendored Normal file
View File

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

7
deps/QDark/docs/example/modules.rst vendored Normal file
View File

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

28
deps/QDark/docs/index.rst vendored Normal file
View File

@ -0,0 +1,28 @@
.. 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`

7
deps/QDark/docs/known_issues.rst vendored Normal file
View File

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

1
deps/QDark/docs/license.rst vendored Normal file
View File

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

36
deps/QDark/docs/make.bat vendored Normal file
View File

@ -0,0 +1,36 @@
@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

1
deps/QDark/docs/readme.rst vendored Normal file
View File

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

7
deps/QDark/docs/reference/modules.rst vendored Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

9
deps/QDark/docs/scripts/modules.rst vendored Normal file
View File

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

View File

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

View File

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

View File

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

372
deps/QDark/example/example.py vendored Normal file
View File

@ -0,0 +1,372 @@
#!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())

4
deps/QDark/example/ui/__init__.py vendored Normal file
View File

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

1295
deps/QDark/example/ui/dw_buttons.ui vendored Normal file

File diff suppressed because it is too large Load Diff

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