Commit graph

253 commits

Author SHA1 Message Date
Gwyneth Lowe
45f78d786a Give TextEdit a custom color for font when read only is set
Previously there was some transparency hard coded into TextEdit when in read only mode.
This change adds a custom color for adjusting the font in read only mode.
It also applies when syntax highlighting is on.
2019-06-24 20:00:05 -05:00
Gwyneth Lowe
f07e5ac153 Give LineEdit a custom font color when un-editable
By default the LineEdit's text when editable is unchecked had some transparency hardcoded.
This change adds a custom color to LineEdit for adjusting the font when editable is off.
Addresses issue 29814
2019-06-24 20:00:05 -05:00
Rémi Verschelde
24ee8c3566 Add script to fix style issues and copyright headers
This is only meant to check the validity of the whole codebase every
now and then, or to apply clang-format config changes when relevant.
2019-06-17 13:35:47 +02:00
Michael Alexsander Silva Dias
be6d48fcad Add toggle for hidden file visibility in FileDialog 2019-06-10 00:20:24 -03:00
Bojidar Marinov
8a1a067b91
Fix GraphNode not adding seperation after the first node
Fixes #29446
2019-06-04 16:05:23 +03:00
Rémi Verschelde
63e7d2db08
Merge pull request #28218 from KoBeWi/b00km4rk5
Add bookmarks for easier code navigation
2019-05-20 22:39:19 +02:00
Max Hilbrunner
ee5ba3e097
Merge pull request #28366 from iwek7/feature/issue28355/showSpacesInEditor
Add feature to show spaces in code editor
2019-05-17 20:38:40 +02:00
Tomasz Chabora
0bfcf8bc2f Add bookmarks for easier code navigation 2019-05-05 18:57:53 +02:00
Rémi Verschelde
7b64a24eb3
Merge pull request #28548 from YeldhamDev/check_button_disabled_icon
Add "disabled" icon for 'CheckButton'
2019-05-03 14:55:32 +02:00
Bojidar Marinov
3d47dad2b1
Remove unused panelf and panelnc styles
Fixes godotengine/godot-docs#2426
2019-05-03 09:44:46 +03:00
Michael Alexsander Silva Dias
acadfe0a49 Add "disabled" icon for 'CheckButton' 2019-05-02 13:39:56 -03:00
miwanczuk
c86b03abd8 Expose TextEdit's drawSpaces feature to GDScript 2019-05-01 11:32:54 +02:00
Rémi Verschelde
23147ae2c3
Merge pull request #28101 from MunWolf/debugger_cursor
Added a marker in text_edit that tells which row is executing.
2019-04-29 18:38:38 +02:00
Michael Alexsander Silva Dias
350bcce041 Expose 'TextEdit's tab drawing and folding to GDScript 2019-04-24 12:42:12 -03:00
Rikhardur Bjarni Einarsson
9bfa63496a Added a marker in text_edit that tells which row is executing. 2019-04-23 21:51:01 +01:00
Hugo Locurcio
fa586289c6
Brighten the RichTextLabel color in the default theme
This makes its default color match Label's color, which leads to
a more consistent appearance.

This partially addresses #24570.
2019-04-10 20:00:29 +02:00
Hendrikto
49a81308c0 Remove unused imports 2019-04-06 18:05:05 +02:00
Michael Alexsander Silva Dias
e322fd140e Add disabled tab style 2019-02-10 18:12:17 -02:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Michael Alexsander Silva Dias
b86b497cec General fixes for the AnimationTree editor 2018-12-17 21:03:58 -02:00
Michael Alexsander Silva Dias
bfab0fe3db Remove "panel" theme property from ButtonGroup 2018-12-10 17:28:56 -02:00
Juan Linietsky
0f7a86ca52 If using relationship lines (now default) hide guides. 2018-11-18 22:00:31 -03:00
Juan Linietsky
397b12727c No one seems to like the error icon, so I made it invisible. Fixes #16344 2018-11-14 21:34:39 -03:00
Rémi Verschelde
62ecb44035 Fix warning about functions defined but not used [-Wunused-function]
Fixes the following GCC 5 warnings:
```
core/io/zip_io.h:128:26: warning: 'zlib_filefunc_def zipio_create_io_from_file(FileAccess**)' defined but not used [-Wunused-function]
core/script_debugger_remote.cpp:110:17: warning: 'ObjectID safe_get_instance_id(const Variant&)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:103:12: warning: 'int _socket_create(IP::Type&, int, int)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:45:15: warning: 'size_t _set_sockaddr(sockaddr_storage*, const IP_Address&, int, IP::Type)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:76:15: warning: 'size_t _set_listen_sockaddr(sockaddr_storage*, int, IP::Type, IP_Address)' defined but not used [-Wunused-function]
editor/editor_fonts.cpp:40:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
editor/editor_themes.cpp:85:26: warning: 'Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat>, Color)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:493:13: warning: 'void _generate_normals(const PoolVector<int>&, const PoolVector<Vector3>&, PoolVector<Vector3>&)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:524:13: warning: 'void _generate_tangents_and_binormals(const PoolVector<int>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, PoolVector<float>&)' defined but not used [-Wunused-function]
editor/pvrtc_compress.cpp:118:13: warning: 'void _compress_etc(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:89:13: warning: 'void _decompress_etc1(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:93:13: warning: 'void _decompress_etc2(Image*)' defined but not used [-Wunused-function]
modules/gdscript/editor/gdscript_highlighter.cpp:46:13: warning: 'bool _is_whitespace(CharType)' defined but not used [-Wunused-function]
scene/2d/cpu_particles_2d.cpp:510:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/3d/cpu_particles.cpp:474:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:123:20: warning: 'Ref<Shader> make_shader(const char*, const char*, const char*)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:130:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
```

Had to split `core/io/zip_io.h` into header and .cpp file without 'static' keyword.

Not fixed yet (static definition in header used in some files but not all):
```
modules/websocket/lws_helper.h:111:13: warning: 'void _lws_make_protocols(void*, int (*)(lws*, lws_callback_reasons, void*, void*, size_t), PoolVector<String>, _LWSRef**)' defined but not used [-Wunused-function]
```

Also fixed a couple other warnings missed in previous commits.
2018-09-29 22:26:12 +02:00
Rémi Verschelde
3a2ca68af3 SCons: Build thirdparty code in own env, disable warnings
Also remove unnecessary `Export('env')` in other SCsubs,
Export should only be used when exporting *new* objects.
2018-09-28 14:07:39 +02:00
DualMatrix
99e3309296 Added hover_pressed style to CheckBox and CheckButton
Added hover_pressed style to CheckBox and CheckButton.
If no style is defined for this property it will default to the pressed property.
2018-09-24 02:31:03 +02:00
Rémi Verschelde
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
Rémi Verschelde
d6058b967d
Merge pull request #20906 from Chaosus/rrect_fix
Fix ReferenceRect border
2018-08-14 23:31:48 +02:00
Łukasz Rutkowski
e8a435c8cd Add clear text button to LineEdit
- Add pressed state to clear button
- Enable clear button on all inputs with search icon
- Remove duplicate clear buttons
- Fix rendering of icon for center and right alignments
- Add clear button to more search fields
- Add clear icon to default theme
- Add method to control enabled state of clear button
- Add property to enable clear button from inspector
2018-08-11 12:04:26 +02:00
Chaosus
aaf62fcecc Fix ReferenceRect border 2018-08-11 10:37:03 +03:00
K. S. Ernest (iFire) Lee
85670726fd Improve VisualScript UX
* Prototype faster function call ux.
* Work on general search ux.
* Able to create nodes from search.
* Show class for variables but not methods.
* Get actions search working.
* Descriptions now show for both methods and properties.
* Enable zooming on mouse wheel up and down.
* Make the drag trigger on right mouse button.
* Search now shows for action visual script nodes.
* Able to search visual node names.
* Search works better.
* Change zooming scale to hide artifacts better.
* Remove zoom changes
* Select from base should check properties too like the other functions.
* Seq_connect flag is needed to set sequence lines correctly.
* Remove comment
* Code cleanup with function names and arguments.
* Use brief description for search descriptions.
* Clean and fix bug with input nodes connecting with sequence lines.
* Add a warning and fix some edge conditions with sequence into data lines and vice versa.
* Don't search functions when pulling from a sequence node.
* Don't show actions when pulling from a data line.
* Set set and get properties.
* Convert visual script operators to the correct type
* Create a function preset finds only functions.
* Singletons can now find functions.
* Add shift-a for generic search.
* Add brief descriptions for Visual Script nodes.
* Search boxes can now filter names.
* Add bigger hit zones to node connect.
* For the drop zones, make all the rect2 areas the same size.
* Function names in visual script node should be lower case so that search works better.
* Use the convention of capitalize() for set, set, visual script nodes and methods.
* Make search more general. Ignore "_" and make case-insensitive. Also made the search window smaller and remove extra info from search
* Make type_cast use the connecting node's type and remove use of found variable.
* Fix case where you call an instance's call function where it becomes an invalid call.
* Make get_visual_node_names use a set of filters, move action creations and fix bug with sequence node connections.
* Make the window bigger.
* Make connect_data and connect_seq more robust.
* Add icons to search items.
* Add vs constructors in shift-a menu.
* Operators, builtins and constructors show type name. Fix several problems with port connections.
* In shift-a mode search everything.
* Code cleanup
* Work on autocompleting the type.
  * Use type guess in action creation.
  * Check if type hint string exists in object variables when generating the visual script search.
  * Add the hint to SceneTree.
  * Add original type detection.
  * Make type casting great again. This puts the type casted base type as the data output type string hint.
  * Pass the type in a VisualScriptFunctionCall too.
  * Set the base type correctly in VisualScriptFunctionGet and VisualScriptFunctionSet using hint string.
  * Make sure the instance is passed in VisualScriptPropertySet.
  * Restore search on the node's type.
* Remove dependencies from graph_edit.
* Remove dependencies from property_selector and name the class visual_script_property_selector.
* Extract hot zones into a function.
* Move hot_zones constants into default theme.
* Bigger capture zones.
* Clean messy port_grab_distance variables.
* Remove RMB functionality.
* Remove memory leak on showing visual script descriptions.
* Read the port_grab_distance constants on enter tree and theme changed.
2018-07-24 13:59:28 -07:00
George Marques
03746da73f
Add editor highlight for type-safe lines
The line number is hightlighted to indicate that the line contains only
type-safe code.
2018-07-20 21:55:18 -03:00
Max Hilbrunner
707175eda8
Merge pull request #19044 from Mintormo/make_header_fix
Added support of Python 3 in make_header.py
2018-07-17 15:12:49 +02:00
Juan Linietsky
f6ce73f724 Visual Shaders are back. 2018-07-14 18:16:18 -03:00
Max Hilbrunner
23ad85c692
Merge pull request #19398 from godotengine/remove-left-margin
Remove default non-zero left margin
2018-07-03 16:41:04 +02:00
Hugo Locurcio
53e94a1ce1
Optimize images losslessly using oxipng -o6 --strip all --zopfli 2018-06-28 19:17:41 +02:00
Juan Linietsky
0a1c1c660f -Added AnimationGraphPlayer (still missing features)
-Added ability to edit resources from built-in inspector (wip, needs testing and feedback)
2018-06-18 22:12:08 -03:00
Pedro J. Estébanez
12a87b257f
Remove default non-zero left margin 2018-06-06 20:10:43 +02:00
Mintormo
5d28a21454 Added support Python 3 in "make_header.py" file 2018-05-27 12:51:57 +03:00
Juan Linietsky
005b69cf6e -New inspector.
-Changed UI resizing code, gained huge amount of speed.
-Reorganized timer sync to clean up behavior (sorry forgot commit this before)

-
2018-05-15 17:14:31 -03:00
Ruslan Mustakov
863dd9aa46 Always emit dynamic font change in update_oversampling
Fixes #15787.

The issue occurred when two (or more) separate DynamicFont instances
used the same DynamicFontAtSize instance due to having equal
properties. The first instance updated its data_at_size and emitted
"changed" signal, but the second did not because it considered the
data_at_size to be up to date, even though it has just been updated.
2018-05-08 19:01:15 +07:00
Ruslan Mustakov
5cd12f6649 Perfect FreeType-based outlines for DynamicFonts
- Implement outlines based on FreeType Stroker API. This allows
  artifact-free results, similar to what you will see in Web or any text
  editing tools. Outline is a part of DynamicFont rather than Label,
  because outlines have to be baked into the font's atlas. Font has a
  default outline_color and a Label can specify font_outline_modulator
  that will be multiplied with the Font's color to get the final result.

- draw_char now has to be called twice to fully render a text - first
  with p_outline == true for each character and then with
  p_outline == false for each character.

- Number of draw-calls is reduced from 5 to 2 per outlined character.

- Overall cleanup of DynamicFont code, extracted duplicated code pieces
  into separate methods.

- The change is backward-compatible - Labels still have outline
  properties that work exactly as they worked before.

Closes #16279.
2018-05-08 13:45:24 +07:00
Markus Törnqvist
1c6ea572ca Implement font shadows for RichTextLabel 2018-04-12 15:09:48 +03:00
Pedro J. Estébanez
ab3b1d9f3e Add radio-button-looking entries to PopupMenu
They work exactly the same as current checkbox-decorated items, but in order to preserve compatibility, separate methods are used, like `add_radio_check_item()`. The other option would have been to add a new parameter at the end of `add_check_item()` and the like, but that would have forced callers to provide the defaults manually.

`is_item_checkable()`, `is_item_checked()` and `set_item_checked()` are used regardless the item is set to look as check box or radio button.

Keeping check in the name adds an additional clue about these facts.

Closes #13055.
2018-03-27 19:19:45 +02:00
Paul Joannon
842cb1ad8c set a better initial size to TextEdit nodes
Address #15163
2018-01-11 12:11:44 +01:00
Rémi Verschelde
dc2cc6bc2b
Merge pull request #15186 from GodotExplorer/default-theme
Fix errors with custom theme and custom font in project settings.
2018-01-04 14:50:15 +01:00
Rémi Verschelde
b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
geequlim
bd0a9f4bd6 Fix errors with custom default theme and custom fonts. 2017-12-30 17:30:37 +08:00
volzhs
2afa2bc389 Fix CheckBox minimum size 2017-12-11 15:37:29 +09:00
volzhs
3c04d7798c Fix CheckButton minimum size 2017-12-11 14:52:32 +09:00
Paulb23
48ad133cf9 Changed current line draw order and added code folding color 2017-12-07 19:17:43 +00:00
Rémi Verschelde
7b557a4e1f
Merge pull request #13409 from YeldhamDev/textedit_disabled
Add disabled theme to TextEdit
2017-12-06 23:42:54 +01:00
Waldson Patrício
62b0799ba0 Fix missing stylebox for LinkButton's hover states 2017-12-06 16:36:44 -03:00
Michael Alexsander Silva Dias
6b07e8c624 Fixed FileDialog's "parent folder" button not having a texture. 2017-12-02 04:30:20 -02:00
Michael Alexsander Silva Dias
2773c12156 Add disabled theme to TextEdit. 2017-12-01 01:32:26 -02:00
geequlim
f3588b6b65 Fix style error with MenuButton in default theme 2017-11-24 19:31:20 +08:00
Rémi Verschelde
15a20f9746 Remove obsolete ButtonArray theming
ButtonArrays have been removed in 3.0.
[ci skip]
2017-11-15 22:53:38 +01:00
Daniel J. Ramirez
9001ba26aa Added and improved some missing icons, plus some other visual fixes. 2017-10-13 16:39:17 -05:00
hickop
57d8ff636c Added grabber_area to default_theme sliders. Fixes #11261 2017-10-11 16:33:17 +02:00
Daniel J. Ramirez
15986ea343 Several visual improvements.
Added proper label sizing
Improved text editor status bar
Fixed some issues with ItemList and also some style fixes
Added background to color picker samples (the mrcdk fix)
Fixed slider ticks.
Added VS breakpoint and error styleboxes.
2017-09-28 15:00:43 -05:00
Gilles Roudiere
b5f29fe073 Add some options and reorganize the 2D editor menus. Makes available forced snapping. 2017-09-18 23:20:18 +02:00
toger5
1c07d0e9aa rtl uses styleBoxEmpty as defualt 2017-09-06 16:29:22 +02:00
Rémi Verschelde
fb263b73aa Merge pull request #10901 from toger5/script_background_cleanup
StyleBoxSupport for RichTextLabel and cleanup for script+docs backgrounds fixes #10685
2017-09-04 08:05:17 +02:00
toger5
b606285219 Unified script panel backgrounds.
- simplefied it with using the new rtl.
 - removed ("ScriptPanel", "EditorStyles") for since rtl now can be used
 - unified backgrounds when script editor color is set to transparent => option to set background color adapt to theme is deprecated.
2017-09-02 18:28:35 +02:00
Poommetee Ketson
ed606ded52 Fix files header 2017-09-01 21:07:55 +07:00
toger5
afc66f2f90 changed-"HSlider" -> "VSlider" for focus style fixes #728 2017-08-31 18:02:38 +02:00
Rémi Verschelde
b7f4dcbdd1 Merge pull request #10096 from toger5/label_stylebox
fixed Import LineEdit to label + label stylebox
2017-08-31 13:58:52 +02:00
Rémi Verschelde
bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
toger5
9fdc4874b2 fixed Import LineEdit to label + label stylebox
- added a normal stylebox to label. default is StyleBoxEmpty
 - changed drawing so that it draws correct with styleboxes with margins
 - changed the LineEdit in the import to use a label with the lineEdit
   stylebox
2017-08-17 00:15:11 +02:00
TwistedTwigleg
00f6c85928 Synchronize parameter names in definition and declaration
Fixes #10244.
2017-08-16 17:22:23 +02:00
kbake
a72d17cf11 Scroll bars now look different on press 2017-08-12 17:46:26 -04:00
Poommetee Ketson
668d00ff2d Fix ColorPicker to use theme constants 2017-07-18 09:43:16 +07:00
Poommetee Ketson
0c66078bcb Slider: add set/is_editable 2017-07-11 02:48:55 +07:00
Rémi Verschelde
f8d7670e82 Merge pull request #9038 from AlexHolly/rect2-rename-pos
renamed all Rect2.pos to Rect2.position
2017-06-05 15:52:05 +02:00
Juan Linietsky
01198cb896 Removed stupid right arrow to edit resource. Now simply click it.. 2017-06-04 20:35:45 -03:00
alexholly
a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Rémi Verschelde
231511b2a6 Merge pull request #8631 from volzhs/editor-theme-custom
New customizable editor theme
2017-05-20 07:16:11 +02:00
Juan Linietsky
98a3296702 Removal of Image from Variant, converted to a Resource. 2017-05-17 07:37:45 -03:00
volzhs
bb81293047 New customizable editor theme 2017-05-09 17:46:54 +09:00
volzhs
17e8e343fb Revert "Add new editor and default theme (WIP)"
This reverts commit f045efe007.
2017-05-03 06:19:15 +09:00
Rémi Verschelde
5f15f03d38 Fix theme_data.h formatting via make_header.py
Should make clang-format happy.
2017-04-27 08:58:11 +02:00
Daniel J. Ramirez
f045efe007 Add new editor and default theme (WIP) 2017-04-27 08:04:57 +02:00
Rémi Verschelde
c88f56be64 Merge pull request #8376 from RayKoopa/fix_stylebox_expand_margin
Respect the expand margin for StyleBoxTextures again.
2017-04-20 02:10:55 +02:00
Ray Koopa
75f684bc17 Respect the expand margin for StyleBoTextures again. 2017-04-13 10:37:22 +02:00
volzhs
25a4daa5ce Fix editor style box for ToolButton 2017-04-12 12:40:16 +09:00
Rémi Verschelde
df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Juan Linietsky
74808ac4d9 New particle system, mostly working, some small features missing. 2017-04-06 23:49:27 -03:00
Robert Hernandez
7a428206fe Fixed WindowDialog not aligning properly 2017-03-31 01:48:02 -04:00
Rémi Verschelde
debeee56f7 Fix typos in source code using codespell
From https://github.com/lucasdemarchi/codespell
2017-03-24 21:45:31 +01:00
Rémi Verschelde
5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Ray Koopa
e07aa5deb8 Added functionality for resizable dialogs. 2017-03-01 23:40:10 +01:00
Thaer Razeq
f50488a361 Various fixes detected using PVS-Studio static analyzer.
- Add FIXME tags comments to some unfixed potential bugs
- Remove some checks (always false: unsigned never < 0)
- Fix some if statements based on reviews.
- Bunch of missing `else` statements
2017-02-28 07:52:02 -06:00
Ray Koopa
5cf063ca9d Add disabled tabs 2017-02-27 19:07:50 +01:00
Juan Linietsky
0aa7242624 WIP new AudioServer, with buses, effects, etc. 2017-01-21 19:01:00 -03:00
Rémi Verschelde
93ab45b6b5 Style: Fix whole-line commented code
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
2017-01-14 14:52:23 +01:00
Rémi Verschelde
7b9f2d9929 Finish renaming *Frame GUI classes to *Rect
ReferenceFrame had been overlooked, and the cpp files still used the old
names. Also ripgrep'ed it all to find some forgotten references.
2017-01-14 10:52:54 +01:00
Juan Linietsky
d8e54b1e26 Merge pull request #7431 from MarianoGnu/gles3
Fix Color Picker
2017-01-04 20:28:28 -03:00
Rémi Verschelde
3f3f5a5359 Merge remote-tracking branch 'origin/gles3' into gles3-on-master
Various merge conflicts have been fixed manually and some mistakes
might have been made - time will tell :)
2017-01-02 21:52:26 +01:00
Rémi Verschelde
c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
Zher Huei Lee
191fdc873e Reused Button styleboxes for ButtonArray
Plus other tweaks to make it look more similar to a VBoxContainer of
Buttons.
2016-11-19 22:07:12 +08:00