Compare commits
623 Commits
release-d2
...
release-d2
Author | SHA1 | Date | |
---|---|---|---|
6160335af3 | |||
6074cf7cd6 | |||
160ef61520 | |||
853f8c25ea | |||
38596ac941 | |||
8f6897225a | |||
e7bf3d5413 | |||
ad0d5c8caf | |||
b61f7a95ad | |||
90b2e7a43c | |||
8480eeba0c | |||
313b35f605 | |||
d8a0a5f50d | |||
68f829ff2d | |||
6165f63d09 | |||
3e3cfcaf7d | |||
f4580a742e | |||
77bc18129b | |||
d8a13a0933 | |||
11873bc3ed | |||
f53b8e38dc | |||
5d5198bf4c | |||
cc5cc01e70 | |||
55f14eb548 | |||
24ca5623e8 | |||
99d342b8b3 | |||
5b9e1928d9 | |||
2e9b7fe871 | |||
9418f54ebc | |||
bd0b8e4ee9 | |||
1dac98fbc7 | |||
32ac497a0e | |||
7dfa2f5713 | |||
7ea0654af6 | |||
78d444c2e5 | |||
39b1292b91 | |||
0aad2913ea | |||
b6b9837bbf | |||
bed8c35218 | |||
70fd56ce0b | |||
643239e104 | |||
2d3602fd05 | |||
3a2acae093 | |||
dce98590fc | |||
0420dfb545 | |||
d3a3d57773 | |||
724cf7f779 | |||
5a52d322b2 | |||
eb39c6aaf0 | |||
2f9accf5ba | |||
2be31cca5c | |||
43c67eacaa | |||
5c28cef726 | |||
efe61bab6f | |||
950712b85e | |||
b27d6671fc | |||
6bd21bf1b4 | |||
fcff38c3fa | |||
51e7120a7c | |||
c0377f9e91 | |||
3e555d38e5 | |||
14cddf3d36 | |||
aa4a1a9011 | |||
6882dc8404 | |||
faf8fa0668 | |||
bae1f05038 | |||
63e46d7bb4 | |||
282bdc0fd7 | |||
032aadafdf | |||
176ef214f2 | |||
8b976279e5 | |||
ecc049c35b | |||
90ed515842 | |||
ff2f13c99f | |||
fcdede2064 | |||
66a11eae31 | |||
50715ff663 | |||
9638dc52fe | |||
992d3a96d7 | |||
5672074177 | |||
08da9d6a94 | |||
33775f59ff | |||
db3c2602fd | |||
77ac48740a | |||
3ba88e2e27 | |||
a9b5bfe438 | |||
5a449cb40b | |||
77c7a3ab22 | |||
0099129a19 | |||
ae62f89fe8 | |||
196c7844ea | |||
4f2a03db94 | |||
c5326d72af | |||
1df1e3809f | |||
b36cd1694b | |||
56269004d7 | |||
314b177666 | |||
827ba7dcdb | |||
f83e814806 | |||
6cda13d10b | |||
8ffc2830ae | |||
42aa518450 | |||
307684348e | |||
a17bc04ee7 | |||
e36f49c7fc | |||
c1338d9d87 | |||
db71c8f3e9 | |||
63f4b96d0f | |||
07415a2607 | |||
ec83ed4c7d | |||
98cb3e1670 | |||
7302284095 | |||
a0c645f25c | |||
cdd1de89f8 | |||
5c66f3e0dc | |||
fefe8bacc7 | |||
f5ff700bf3 | |||
0bcb78d3da | |||
8dcd350671 | |||
2e71d288b4 | |||
fee5a33da1 | |||
eb207b2d6c | |||
6845ff38de | |||
b3fb724ae7 | |||
15d8e9de5b | |||
9a31e898d0 | |||
800e04b3b9 | |||
0f1fbe40dd | |||
1c509ca20d | |||
462f5b580b | |||
fb59d8033b | |||
a5bb1eeed0 | |||
46ea85fa7d | |||
72f53b08cb | |||
5fe91ae577 | |||
25504d87af | |||
d49576451c | |||
a415e86ae5 | |||
ed598378ae | |||
af7dbd1aee | |||
8f48042a29 | |||
51ae33aed2 | |||
1da5e60655 | |||
947b1e7798 | |||
d20a24d10f | |||
c1418cdd6c | |||
d01ff63527 | |||
ceebc05ee9 | |||
504d248ce3 | |||
937bf3ad91 | |||
4f2c0b2e30 | |||
c4c1979123 | |||
35a08a4ce8 | |||
33d40b1839 | |||
6c302b7d1c | |||
239f4d149d | |||
18491dafd9 | |||
3a335084c9 | |||
eb1a83d907 | |||
704b94f471 | |||
e2e62a235a | |||
8f53dda1e2 | |||
a84eb013c9 | |||
84c42f3584 | |||
809dbc69b1 | |||
cbc0fc983c | |||
bccae1c613 | |||
85f3904115 | |||
ee6929c7f0 | |||
6c629a9f13 | |||
356d6a5036 | |||
5e78289cbc | |||
3ead29a8bb | |||
a2e1ac8851 | |||
75902ba2a3 | |||
24f26d822a | |||
2dc9ce4015 | |||
4518288745 | |||
5e1d4fcd95 | |||
0cf25f3029 | |||
85b101884a | |||
8887daf7e4 | |||
9c63f26684 | |||
9bd2a5a5ee | |||
5073681ff9 | |||
58dbda48c4 | |||
4540b410dc | |||
863437fb10 | |||
4814b4f5cc | |||
17165f5394 | |||
a86bad1719 | |||
314ed8d05c | |||
4cd8f6a0c1 | |||
abf45112b0 | |||
841a7436c1 | |||
2b579c58bb | |||
a16b56325d | |||
6ece0b6f9b | |||
161780cb91 | |||
c587bf0997 | |||
659830fcdf | |||
983000efb8 | |||
16298d8672 | |||
72cec8e459 | |||
858ba9fe8d | |||
9d74c5b464 | |||
5ad7c963b1 | |||
96a2e86a35 | |||
c007b5b874 | |||
28dc5552d4 | |||
304a43a4b4 | |||
9822a6ec47 | |||
69fb4acd24 | |||
39dc09e3d3 | |||
394d13df9b | |||
772cc7d954 | |||
fef0ff58c3 | |||
8f7504c1c8 | |||
49fb4d0f0b | |||
21f40a8362 | |||
4a0f6420b6 | |||
af9991c008 | |||
c46ec57431 | |||
a22823e3b4 | |||
6664462391 | |||
09383401e5 | |||
6610b501b3 | |||
cd1db371eb | |||
96f79757cf | |||
8eb19b4cba | |||
b7d24c998e | |||
0f99f7eb91 | |||
be09c60f5d | |||
86a38c7197 | |||
022bc7e512 | |||
db49361f8a | |||
86202562fe | |||
e2d74de9c3 | |||
6a566ed35e | |||
90d9a0a8b0 | |||
caca376028 | |||
2dde9473d5 | |||
cffc3da622 | |||
b93d86be8e | |||
6265c6dc3b | |||
53187e0c67 | |||
786892dda1 | |||
61fb5207ea | |||
bcc4b5f816 | |||
86f0e1ca08 | |||
7bbd7bfdb5 | |||
291027e41e | |||
392351ba48 | |||
749e3155b5 | |||
b486a4962e | |||
d952b68053 | |||
ec711331d1 | |||
8f7de171af | |||
445db97d31 | |||
134f5593e2 | |||
98272b4da7 | |||
6de38c13ee | |||
35d7a4d828 | |||
2b469da8c3 | |||
8d62aca8a7 | |||
5bb98747a9 | |||
37c3f117fe | |||
f0b359597a | |||
4cace9d8e0 | |||
1750fa688a | |||
8512f97cf4 | |||
54383b38e6 | |||
1c81b2aba8 | |||
504c41fabc | |||
c7cb2176ee | |||
f1a1d94ac3 | |||
2ab6ef201e | |||
6656320359 | |||
a474dc56c0 | |||
f22f7507a9 | |||
2c09de230c | |||
77fbb95479 | |||
46d4e11e89 | |||
4ce18766cd | |||
b825e88d29 | |||
b3dff0a184 | |||
29a4bb920a | |||
9c08ab458a | |||
6dd9e30734 | |||
403d124e99 | |||
084cee44fa | |||
85e7374446 | |||
40f2537c05 | |||
5a8e16c3f3 | |||
aea43306a4 | |||
b278b3881e | |||
c45f4ccccb | |||
cc23947d27 | |||
8d19f99fac | |||
c2554cebdb | |||
6bdee3fc1c | |||
37ec5eccd0 | |||
fb7b582348 | |||
47a43fecb1 | |||
896a7a0a96 | |||
351ae69f6f | |||
f58abd9c3f | |||
1d1ce4d2cf | |||
e36b123b33 | |||
ba91de90fc | |||
e76fbb0095 | |||
9860fec00e | |||
ff0a959793 | |||
736b9342ea | |||
bfca2193bc | |||
e56fa3a531 | |||
c4b9858738 | |||
d34db292dc | |||
4956534af4 | |||
be0de98fc2 | |||
3ca9db5e8a | |||
dc1ead2af4 | |||
be3caf1818 | |||
4796c2e0cb | |||
245424cfad | |||
61cc30c475 | |||
d000c7f34f | |||
94011c8b18 | |||
23a7241622 | |||
e6d271295f | |||
d6ff337cc0 | |||
763955a9bb | |||
be31ad48a1 | |||
87b2963687 | |||
10f11b95a6 | |||
84705e304f | |||
582cbf2041 | |||
15d169dd12 | |||
458258e30f | |||
5774bcfdcf | |||
75a2b8f489 | |||
523e0f8f71 | |||
2f95c0aecc | |||
01c0397680 | |||
07c5ed07ef | |||
84a9a9d2fd | |||
3352625afe | |||
cb6066f81e | |||
2ebce7713d | |||
55a4f2451e | |||
ef6673067b | |||
01f29c5258 | |||
e583cade27 | |||
f24a0a4aab | |||
662c2e11de | |||
51387eea3a | |||
1698e39089 | |||
bcb8c108b2 | |||
c5773202b5 | |||
28e68adc75 | |||
2e8d0a421c | |||
d7c1d2a6ab | |||
dde4fb017e | |||
5d5917566f | |||
f5f8593638 | |||
353b1cf667 | |||
cb0645860a | |||
e52ac1f78c | |||
ca4b9f7bdc | |||
01fe1349fb | |||
896702a66b | |||
d4e3af1464 | |||
36de17bc2d | |||
eca8641bec | |||
8cd5ff66be | |||
3f0824043e | |||
7b6fad8062 | |||
936c922c1e | |||
70168286ab | |||
44f4d67c80 | |||
d50551cc74 | |||
b3aa0eb59d | |||
9a92dadff7 | |||
4e70b459f6 | |||
034cb97a42 | |||
60714d3009 | |||
a5194fd972 | |||
657af980c2 | |||
a2aa9c8f82 | |||
57ad13fc4a | |||
c82b72d8aa | |||
20ede1b2d7 | |||
20ec019c36 | |||
c5dbd724eb | |||
c399cb3f13 | |||
64b9b6071e | |||
127e3f6df0 | |||
671acc68c4 | |||
cad2f078a0 | |||
f272555a25 | |||
ba4a854368 | |||
983a9b87d5 | |||
bc8d50f3e7 | |||
17ead36d2f | |||
9db256699d | |||
c1239b5656 | |||
546f083346 | |||
5f63e39c27 | |||
d8d214b3d3 | |||
f86558dc00 | |||
442e114f00 | |||
67cbe6ef7f | |||
d58570d76b | |||
d7b82a6eed | |||
45a27800b6 | |||
4276135e65 | |||
d98a5e386a | |||
843da4a810 | |||
dcef76b488 | |||
d09dc5cc01 | |||
7a837502a1 | |||
6497b40e64 | |||
9c8dc09996 | |||
c038109806 | |||
c7e053668e | |||
a199cf113a | |||
b07cbe89a1 | |||
36e602b2b0 | |||
3dee59d048 | |||
f35b6f0026 | |||
04c660765e | |||
a5e518ec7a | |||
381f2b05e3 | |||
1d4f03823b | |||
8e696baa9f | |||
30b1670658 | |||
42aa8c3533 | |||
5f4e6740cc | |||
40f3c4ecb5 | |||
ef85eea691 | |||
3430e228c8 | |||
b960539e5f | |||
2580dbb7ab | |||
985b2b57ba | |||
84dfb17f7f | |||
81a78bf95e | |||
9effdad200 | |||
79acffcc29 | |||
47171f593c | |||
fdda3bd82d | |||
b6c82c42f0 | |||
fe40b2e144 | |||
99a2ad8fc9 | |||
5587ecf5e5 | |||
6b720042d0 | |||
faadcae7e9 | |||
0b3b54b3fd | |||
d2eea8c2ec | |||
75814a2896 | |||
ec359a805e | |||
40cf65d509 | |||
2ba051906a | |||
b1d94782db | |||
0bbea9c6d5 | |||
af71bef4f7 | |||
c671c8bd66 | |||
a725369311 | |||
8204188008 | |||
5cd7f0cecf | |||
26cbb6dc9c | |||
a743ad9496 | |||
87c428f422 | |||
ca920e5769 | |||
fba4f6a543 | |||
cef8c54515 | |||
f15ad04d33 | |||
a63586d0b8 | |||
9087d03851 | |||
36da9d7a4a | |||
0bf58024f5 | |||
619e850bb9 | |||
58922d393a | |||
47a9deb94b | |||
7671a379c6 | |||
591cff6f04 | |||
72380b0190 | |||
4ec7f2a24e | |||
88bbcc34e2 | |||
3a339ea191 | |||
3d40b6f99a | |||
be1a03c554 | |||
0b0fd151c8 | |||
621f88fa6a | |||
9eee36d18e | |||
803b90d54c | |||
579b328212 | |||
0d405ec88a | |||
80f98802b6 | |||
4ad959cd74 | |||
2e80bf8bbd | |||
e2f1466e64 | |||
d9b0c2c42a | |||
bf2b08b262 | |||
e8151ac037 | |||
72883285f2 | |||
0051006795 | |||
dc0667ade4 | |||
a58467f327 | |||
f10d318e54 | |||
834ca2893b | |||
c6ff015f79 | |||
d73bbfb37a | |||
0318ba92ce | |||
745ea4a0ed | |||
af494072fb | |||
408d4c8fa1 | |||
7e565a3162 | |||
b32734d727 | |||
7b7a8d75b4 | |||
740e0286d0 | |||
22a07afa9e | |||
4f79310084 | |||
2da5ff6459 | |||
229da694ec | |||
5142b20036 | |||
6d2d8d77a9 | |||
b21ec14079 | |||
95e752bf3b | |||
e91e9ad58f | |||
30ac257d95 | |||
0de5d6b6c0 | |||
89aadfb606 | |||
d664979868 | |||
dbf532df1c | |||
a9ec635160 | |||
257e857116 | |||
0035faa416 | |||
5c34c26080 | |||
b6f8c9e242 | |||
0698353fbf | |||
9576f78abf | |||
7b07edd9e4 | |||
a5b01bb0d7 | |||
1c5fed05bf | |||
d4983cf3c6 | |||
fc246ee396 | |||
167e470091 | |||
dae719f78a | |||
df96407669 | |||
17762b40b7 | |||
4f4ec089fd | |||
f58c658be1 | |||
e92e980fde | |||
71b6c72c46 | |||
da75443d4c | |||
a45692fa4c | |||
112c2c4212 | |||
f8fb458e32 | |||
20f4d50ad6 | |||
0eaf54bd22 | |||
978dd70770 | |||
9a49761c01 | |||
880e6e49d6 | |||
4a221e52db | |||
4f1593a0ed | |||
18166f6123 | |||
228b6dd031 | |||
a1a0abe83b | |||
77ece05bf1 | |||
9e624619b3 | |||
5c5c62dc55 | |||
53358d2e03 | |||
c178a2273b | |||
f86d0e697a | |||
4d806021d0 | |||
98a0c42040 | |||
0eb33f823c | |||
2dad1688b5 | |||
f1110bd849 | |||
b1a0fcbc57 | |||
e3e00b1716 | |||
faaddd1234 | |||
f37515707f | |||
86652ca8d4 | |||
819959745d | |||
f91874182e | |||
dfb17c851b | |||
e2952ec8c1 | |||
9560ccf476 | |||
e7ea76a7ac | |||
bae54a906b | |||
b0f268f371 | |||
b39735bb08 | |||
6af681bad6 | |||
9b84d9d8e0 | |||
4694bb9dd7 | |||
f758566041 | |||
cef5fcd86f | |||
8e297f32d4 | |||
be16229bf7 | |||
11e500520a | |||
00e645e7a3 | |||
3ff4a59373 | |||
5265a94a80 | |||
b3fa531aa0 | |||
8753d39b66 | |||
ed0bf268ba | |||
d0f5819072 | |||
d2e7528dae | |||
1d07890668 | |||
82a07737ec | |||
9091f9bd02 | |||
5d95b188d8 | |||
a4000f6497 | |||
12c5339295 | |||
4064592acc | |||
b9c2f3631d | |||
d2ec3b8350 | |||
19422ced3e | |||
540e67fcd8 | |||
89854a584a | |||
8b74920270 | |||
a74cd1c926 |
@ -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
5
.gitignore
vendored
@ -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
8
.idea/.gitignore
generated
vendored
Normal 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
22
.idea/codeStyles/Project.xml
generated
Normal 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
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="DrinkingTea" />
|
||||
</state>
|
||||
</component>
|
17
.idea/fileTemplates/internal/C++ Class Header.h
generated
Normal file
17
.idea/fileTemplates/internal/C++ Class Header.h
generated
Normal 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}
|
13
.idea/fileTemplates/internal/C++ Class.cc
generated
Normal file
13
.idea/fileTemplates/internal/C++ Class.cc
generated
Normal 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}
|
23
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
23
.idea/inspectionProfiles/Project_Default.xml
generated
Normal 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
17
.idea/misc.xml
generated
Normal 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
8
.idea/modules.xml
generated
Normal 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
2
.idea/nostalgia.iml
generated
Normal 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
6
.idea/vcs.xml
generated
Normal 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>
|
@ -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
16
.tracy.json
Normal 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
|
||||
}
|
||||
]
|
||||
}
|
128
CMakeLists.txt
128
CMakeLists.txt
@ -1,97 +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()
|
||||
|
||||
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)
|
||||
@ -99,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/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(deps/ox)
|
||||
include_directories(deps/ox/src)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
@ -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/
|
||||
|
17
Jenkinsfile
vendored
17
Jenkinsfile
vendored
@ -1,17 +0,0 @@
|
||||
pipeline {
|
||||
agent any
|
||||
stages {
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh 'make conan'
|
||||
sh 'make configure-debug configure-release'
|
||||
sh 'make'
|
||||
}
|
||||
}
|
||||
stage('Test') {
|
||||
steps {
|
||||
sh 'make test'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
103
Makefile
103
Makefile
@ -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
|
||||
.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
|
||||
.PHONY: test
|
||||
test:
|
||||
$(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
|
||||
|
39
README.md
39
README.md
@ -1,9 +1,42 @@
|
||||
# Nostalgia
|
||||
|
||||
## Setup
|
||||
## Prerequisites
|
||||
|
||||
* 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
|
||||
|
||||
## Platform Specific Setup
|
||||
|
||||
### macOS
|
||||
|
||||
Run something along the lines of the following to let CMake know where Qt is installed. You may need to adjust this location.
|
||||
Install and use gmake instead of the make that comes with the system.
|
||||
|
||||
export NOSTALGIA_QT_PATH=/usr/local/Cellar/qt5/5.8.0_2/
|
||||
## Build
|
||||
|
||||
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.
|
||||
|
15
conanfile.py
15
conanfile.py
@ -1,9 +1,14 @@
|
||||
from conans import ConanFile, CMake
|
||||
|
||||
class NostalgiaConan(ConanFile):
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
requires = "jsoncpp/1.9.0@theirix/stable", "sdl2/2.0.10@bincrafters/stable"#, "qt/5.14.0@bincrafters/stable" # comma-separated list of requirements
|
||||
generators = "cmake", "cmake_find_package", "cmake_paths"
|
||||
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 requirements(self):
|
||||
pass
|
||||
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
5
deps/QDark/.gitattributes
vendored
Normal 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
54
deps/QDark/.github/ISSUE_TEMPLATE.md
vendored
Normal 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
41
deps/QDark/.gitignore
vendored
Normal 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
51
deps/QDark/.travis.yml
vendored
Normal 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
32
deps/QDark/AUTHORS.rst
vendored
Normal 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
204
deps/QDark/CHANGES.rst
vendored
Normal 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
23
deps/QDark/CMakeLists.txt
vendored
Normal 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
82
deps/QDark/CODE_OF_CONDUCT.rst
vendored
Normal 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
391
deps/QDark/CONTRIBUTING.rst
vendored
Normal 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
405
deps/QDark/LICENSE.rst
vendored
Normal 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 licensor’s
|
||||
permission is not necessary for any reason–for example, because of
|
||||
any applicable exception or limitation to copyright–then 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
13
deps/QDark/MANIFEST.in
vendored
Normal 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
36
deps/QDark/PKGBUILD
vendored
Normal 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
292
deps/QDark/README.rst
vendored
Normal 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
20
deps/QDark/docs/Makefile
vendored
Normal 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)
|
1
deps/QDark/docs/_static/css/badge_only.css
vendored
Normal file
1
deps/QDark/docs/_static/css/badge_only.css
vendored
Normal 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
4766
deps/QDark/docs/_static/css/theme.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
deps/QDark/docs/_static/fonts/Inconsolata-Bold.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Inconsolata-Bold.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Inconsolata-Regular.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Inconsolata-Regular.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Inconsolata.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Inconsolata.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato-Bold.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato-Bold.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato-Regular.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato-Regular.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.eot
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bold.woff2
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.eot
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-bolditalic.woff2
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.eot
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-italic.woff2
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.eot
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/Lato/lato-regular.woff2
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab-Bold.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab-Bold.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab-Regular.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab-Regular.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.eot
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.eot
vendored
Normal file
Binary file not shown.
2671
deps/QDark/docs/_static/fonts/fontawesome-webfont.svg
vendored
Normal file
2671
deps/QDark/docs/_static/fonts/fontawesome-webfont.svg
vendored
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 434 KiB |
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.ttf
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.ttf
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.woff
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.woff
vendored
Normal file
Binary file not shown.
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.woff2
vendored
Normal file
BIN
deps/QDark/docs/_static/fonts/fontawesome-webfont.woff2
vendored
Normal file
Binary file not shown.
4
deps/QDark/docs/_static/js/modernizr.min.js
vendored
Normal file
4
deps/QDark/docs/_static/js/modernizr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3
deps/QDark/docs/_static/js/theme.js
vendored
Normal file
3
deps/QDark/docs/_static/js/theme.js
vendored
Normal 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
1
deps/QDark/docs/authors.rst
vendored
Normal file
@ -0,0 +1 @@
|
||||
.. include:: ../AUTHORS.rst
|
1
deps/QDark/docs/changes.rst
vendored
Normal file
1
deps/QDark/docs/changes.rst
vendored
Normal file
@ -0,0 +1 @@
|
||||
.. include:: ../CHANGES.rst
|
1
deps/QDark/docs/code_of_conduct.rst
vendored
Normal file
1
deps/QDark/docs/code_of_conduct.rst
vendored
Normal file
@ -0,0 +1 @@
|
||||
.. include:: ../CODE_OF_CONDUCT.rst
|
181
deps/QDark/docs/conf.py
vendored
Normal file
181
deps/QDark/docs/conf.py
vendored
Normal 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
1
deps/QDark/docs/contributing.rst
vendored
Normal file
@ -0,0 +1 @@
|
||||
.. include:: ../CONTRIBUTING.rst
|
7
deps/QDark/docs/example/example.rst
vendored
Normal file
7
deps/QDark/docs/example/example.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
example module
|
||||
==============
|
||||
|
||||
.. automodule:: example
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
7
deps/QDark/docs/example/modules.rst
vendored
Normal file
7
deps/QDark/docs/example/modules.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
example
|
||||
=======
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
example
|
28
deps/QDark/docs/index.rst
vendored
Normal file
28
deps/QDark/docs/index.rst
vendored
Normal 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
7
deps/QDark/docs/known_issues.rst
vendored
Normal 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
1
deps/QDark/docs/license.rst
vendored
Normal file
@ -0,0 +1 @@
|
||||
.. include:: ../LICENSE.rst
|
36
deps/QDark/docs/make.bat
vendored
Normal file
36
deps/QDark/docs/make.bat
vendored
Normal 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
1
deps/QDark/docs/readme.rst
vendored
Normal file
@ -0,0 +1 @@
|
||||
.. include:: ../README.rst
|
7
deps/QDark/docs/reference/modules.rst
vendored
Normal file
7
deps/QDark/docs/reference/modules.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
qdarkstyle
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
qdarkstyle
|
7
deps/QDark/docs/reference/qdarkstyle.__main__.rst
vendored
Normal file
7
deps/QDark/docs/reference/qdarkstyle.__main__.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
qdarkstyle.\_\_main\_\_ module
|
||||
==============================
|
||||
|
||||
.. automodule:: qdarkstyle.__main__
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
7
deps/QDark/docs/reference/qdarkstyle.palette.rst
vendored
Normal file
7
deps/QDark/docs/reference/qdarkstyle.palette.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
qdarkstyle.palette module
|
||||
=========================
|
||||
|
||||
.. automodule:: qdarkstyle.palette
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
23
deps/QDark/docs/reference/qdarkstyle.rst
vendored
Normal file
23
deps/QDark/docs/reference/qdarkstyle.rst
vendored
Normal 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
|
7
deps/QDark/docs/reference/qdarkstyle.style_rc.rst
vendored
Normal file
7
deps/QDark/docs/reference/qdarkstyle.style_rc.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
qdarkstyle.style\_rc module
|
||||
===========================
|
||||
|
||||
.. automodule:: qdarkstyle.style_rc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
7
deps/QDark/docs/reference/qdarkstyle.utils.images.rst
vendored
Normal file
7
deps/QDark/docs/reference/qdarkstyle.utils.images.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
qdarkstyle.utils.images module
|
||||
==============================
|
||||
|
||||
.. automodule:: qdarkstyle.utils.images
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
15
deps/QDark/docs/reference/qdarkstyle.utils.rst
vendored
Normal file
15
deps/QDark/docs/reference/qdarkstyle.utils.rst
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
qdarkstyle.utils package
|
||||
========================
|
||||
|
||||
.. automodule:: qdarkstyle.utils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
.. toctree::
|
||||
|
||||
qdarkstyle.utils.images
|
||||
qdarkstyle.utils.scss
|
7
deps/QDark/docs/reference/qdarkstyle.utils.scss.rst
vendored
Normal file
7
deps/QDark/docs/reference/qdarkstyle.utils.scss.rst
vendored
Normal 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
9
deps/QDark/docs/scripts/modules.rst
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
scripts
|
||||
=======
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
process_qrc
|
||||
process_ui
|
||||
run_ui_css_edition
|
7
deps/QDark/docs/scripts/process_qrc.rst
vendored
Normal file
7
deps/QDark/docs/scripts/process_qrc.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
process\_qrc module
|
||||
===================
|
||||
|
||||
.. automodule:: process_qrc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
7
deps/QDark/docs/scripts/process_ui.rst
vendored
Normal file
7
deps/QDark/docs/scripts/process_ui.rst
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
process\_ui module
|
||||
==================
|
||||
|
||||
.. automodule:: process_ui
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
7
deps/QDark/docs/scripts/run_ui_css_edition.rst
vendored
Normal file
7
deps/QDark/docs/scripts/run_ui_css_edition.rst
vendored
Normal 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
372
deps/QDark/example/example.py
vendored
Normal 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
4
deps/QDark/example/ui/__init__.py
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
This package contains the qt designer files and ui scripts.
|
||||
"""
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user