kushagra
41dc562b64
fixes #1091
2015-03-18 14:15:51 +05:30
Dubslow
fc720f570d
Merge branch 'pr1392'
2015-03-16 17:37:38 -05:00
Dubslow
4087778b88
Merge branch 'pr1378'
2015-03-16 16:47:12 -05:00
zero-one
21a7152316
Merge branch 'master' into friend_list
...
Conflicts:
src/widget/form/settings/generalform.cpp
2015-03-16 11:10:28 -07:00
PKEv
e3946b4435
#1379 correct
2015-03-14 23:06:33 +03:00
tux3
c5a8a17e21
Merge branch 'pr1389'
2015-03-14 19:49:04 +01:00
agilob
3ec5d30f35
UI fixes in general form:
...
disable light tray icon if system tray icon disabled (didn't work for
some reason)
disable emoticons combobox if emoticons disabled globally
prevent comoboxes and spinboxes stealing mouse scroll event while
scrolling in generalform, prevents from accidential language/timestamp
format/theme/skin changes while scrolling in the widget
disable passing CSS to qfiledialog in general form, qfiledialog will use
default system theme instead of not fully written from qwidget
fixed tab order in generalsettings
2015-03-14 17:01:59 +00:00
Flakebi
63150ab022
Reset activeChatroomWidget when switching to addFriendForm
2015-03-14 17:16:32 +01:00
novist
c6312fd196
PNG images replaced with SVG
...
Closes #1050
2015-03-13 20:30:54 +02:00
Dubslow
b6175ac96f
Mark which peers are playing, styling is open to suggestions
...
closes #757
2015-03-13 01:04:37 -05:00
Dubslow
407ffef1b9
Merge branch 'pr1370'
2015-03-11 22:33:30 -05:00
zero-one
2d186109c8
Adds a configuration option allowing users to choose whether they want
...
groupchats placed at the top of the friends list, or below the online
contacts.
-A checkbox was added to generalsettings.ui
-FriendListWidget's constructor was changed so that the friends list can
be initialized with the appropriate layout arrangement
2015-03-11 17:41:18 -07:00
zero-one
4a875ce8f5
Merges Away, Busy, and Online friend list layouts into a single layout.
...
Also comments out the debug output in
FriendListWidget::getFriendLayout() because hitting the default return
statement is no longer anomalous behavior.
2015-03-11 17:30:01 -07:00
zero-one
fdb4fef374
Adds functionality for sorting FriendWidgets alphabetically in the
...
friends list. Widgets are sorted upon being added to the friends list in
the first place, and re-sorted if a user changes their name, or if a
user is given an alias.
-Friend now inherits from QObject
-Friend objects now emit a signal when their display name is changed
-FriendListWidget::moveWidget() is now a slot
2015-03-11 17:23:22 -07:00
Dubslow
2f2e51fb6a
Merge branch 'master' of ssh://github.com/krepa098/qTox
2015-03-11 17:44:16 -05:00
novist
5554412a72
Window icon is set same as tray icon
...
Removed use of "qtox" theme icon as it is no longer relevant
2015-03-11 20:07:35 +02:00
novist
95649f2476
Support for theming qTox tray and window icons
...
This patch adds ability to override qTox window and tray icons with ones from user's desktop theme. Some people prefer keeping tray icons consistent to achieve best looks.
Following theme icons used:
* qtox: general window icon which is also used in taskbar
* qtox-online, qtox-offline, qtox-busy, qtox-away, qtox-invisible, qtox-event: tray icons
If theme icon is not available then default built-in icon will be used.
2015-03-11 13:01:10 +02:00
Dubslow
fb63232318
Tidying new profile form
...
Fixing up Widget code for simplicity and consistency, add picture to form heading
2015-03-10 21:01:13 -05:00
Dubslow
114ddd8c50
Merge branch '1012-enhancement-quick-tox-id-access' of https://github.com/ovidiusabou/qTox into master
2015-03-10 17:34:51 -05:00
TheLastProject
829415eed9
Fix yet another regression by using padding-less bigger icons
2015-03-06 18:00:54 +01:00
Ovidiu Sabou
98fb61525b
Merge branch 'master' into 1012-enhancement-quick-tox-id-access
...
Conflicts:
src/widget/widget.h
2015-03-04 21:43:46 +02:00
Ovidiu Sabou
c3dd285864
Set a header to be consistent and to have the profile page remain open when switching profiles
2015-03-04 21:35:34 +02:00
tux3
50601b4049
Merge branch 'pr1303'
2015-03-04 20:11:53 +01:00
tux3
17042c1aff
Merge branch 'pr1244'
2015-03-04 19:29:49 +01:00
Ovidiu Sabou
b155830e4c
Move the identity settings tab into its own dedicated profile page
...
Make the page directly accessible from the main screen by clicking the avatar or the username. Changing the avatar or the username are now possible only from the profile page
2015-03-03 22:29:01 +02:00
krepa098
00af059a4f
use QUrl::fromLocalFile ( fix #1305 )
2015-03-01 10:43:43 +01:00
agilob
2ec1bd0977
keyboard shortcut to change current chat
2015-02-27 17:56:47 +00:00
agilob
439dde5c8d
+comment
2015-02-26 21:10:35 +00:00
agilob
ed1cd04340
closes tux3/qtox #1289
2015-02-26 21:08:32 +00:00
tux3
1a1debf167
Merge branch 'pr1243'
2015-02-25 15:55:32 +01:00
tux3
e04bd15181
Merge branch 'pr1231'
2015-02-25 15:40:50 +01:00
novist
9523484bfe
Reworked IPC class:
...
* Simpler design
* Suport for named events
* Support for checking if events were handled
* Support for sending events to specific application instance
2015-02-22 16:31:48 +02:00
TheLastProject
695bd74ce5
Use blacklist for executables, explicitly run executables with QProcess to work around KDE4.4 security measure which disallows running executables
2015-02-22 13:21:42 +01:00
novist
192f1f7d62
Delayed tray icon creation to timer event.
...
Added null checks around usage of tray icon object.
This change solves issues/crashes where tray is not immediately available when qTox is started. It is common on linux desktops. While for example lxqt has option to delay application autostart until panel (and thus tray) is available other desktops (like KDE) do not. Adding checks around use of icon object was not enough because application may start a little bit earlier than panel is available. For that reason tray icon creation is delayed to timer event and tried multiple times with delay of one second. Usually after few tries icon creation succeeds and signal is disconnected.
In case tray is not available qTox window is shown. This creates a side effect where starting qTox before tray is available will make application window briefly appear and when tray is available window will be hidden or remain visible as per settings. Window has to be visible if tray is unavailable because otherwise users may end up with qTox running and no way to access it. If application is started and tray is available no window flashing happens and settings are restored as usual.
Without this patch if qTox started before tray is available window is shown and changing tray icon visibility option crashes application. Thats probably a known issue.
2015-02-22 12:36:12 +02:00
TheLastProject
eb8527675c
Oops, default for file transfer message should be no
2015-02-20 16:38:09 +01:00
TheLastProject
7202b18079
Make askQuestion more flexible, defaulting to Yes/No
2015-02-20 16:36:35 +01:00
TheLastProject
48c58322f3
Fix regression showing is typing too often
2015-02-19 20:35:08 +01:00
TheLastProject
718aad2c5a
Actually use yes/no question
2015-02-19 20:32:37 +01:00
TheLastProject
ad1852622f
Allow user to open all transferred files, but warn for executable files
2015-02-19 20:14:19 +01:00
tux3
41d8e2dd53
Attempt at fixing #1187
2015-02-18 21:22:19 +01:00
dubslow
7c0fa46b42
Merge pull request #1221 from TheLastProject/offlineTypingFix
...
Hide is typing status when friend disconnects
2015-02-18 11:57:42 -06:00
TheLastProject
3116e84095
Hide is typing status when friend disconnects
2015-02-18 14:02:10 +01:00
Dubslow
ec6bed5a99
Fix #1169
2015-02-17 21:07:56 -06:00
TheLastProject
ac9904face
Turn group invite warning into question. Fixes #1199
2015-02-16 23:53:33 +01:00
Dubslow
03168a02d2
Merge branches 'pr1134', 'pr1157' and 'pr1171'
2015-02-15 17:36:45 -06:00
Dubslow
07b87616a2
Refactor image filter as discussed
2015-02-15 17:35:27 -06:00
Dubslow
dcf87f7475
Ask before joining group
...
Fixes #1101 , closes #1177
2015-02-15 17:25:27 -06:00
Dubslow
4dcfec0151
Merge branch 'chatlog_merge_v3'
...
"unconfirmed" -> "Waiting to send..."
2015-02-15 04:55:25 -06:00
Chloe
484fb2e89c
Update widget.cpp
...
Added support for dynamically generating supported format list.
2015-02-13 09:23:21 -05:00
Dubslow
11d4ec2599
Refactor OfflineMsgEngine, fix potential segfault
...
(@apprb take note please)
2015-02-13 00:02:52 -06:00
Chloe
eb3d5ea27d
Update widget.cpp
...
Selected all normally-available formats (from [here](http://doc.qt.io/qt-5/qpixmap.html ), verify they're all _actually_ functional.
2015-02-09 23:09:29 -05:00
Chloe
b2ba58ed61
Avatar Choosing Dialog
...
Explicitly filtering out images for the avatar selection dialog.
2015-02-09 22:54:31 -05:00
krepa098
5506379a97
Merge branch 'master' into chatlog_v3_1
2015-02-07 18:49:06 +01:00
apprb
bf2ebe9220
Offline messaging refactoring: Separated class for this purpose + more reliable resenging
2015-02-08 01:59:10 +09:00
novist
de6bf6c029
Fixed busy and invisible taskbar icons
...
Updated other status icons
Removed duplicate status icons from ui/statusButton
2015-02-07 12:47:57 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
659a0bf2c4
First draft of the Android GUI
...
Very much not finished and non-functional
2015-02-07 12:46:55 +01:00
Dubslow
830f0ddc13
Cleanup 331baa7447
2015-02-06 14:03:34 -06:00
Tux3 / Mlkj / !Lev.uXFMLA
3b9d4eba2e
Assert that Widget isn't used on Android
...
That would cause horrible conflicts and apreciable slowdowns
2015-02-06 19:54:09 +01:00
tux3/mlkj
331baa7447
Use GUI instead of Widget for common GUI tasks
2015-02-06 19:01:36 +01:00
tux3/mlkj
46bba3f2f1
Initial Android support
...
We create a GUI class to abstract common GUI needs (showing a message box, asking a question, ...) from the actual GUI backend.
We also create a Nexus class to manage the startup and lifetime of our main systems (Core, GUI, ...) instead of delegating that to Widget.
Eventually, Widget will only be in charge of the Desktop GUI and AndroidGUI of the mobile GUI. Nexus will overview the system and GUI will provide a clean platform-independant interface.
2015-02-06 12:28:49 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
2225fcaf9d
Initial android support
2015-02-06 01:27:07 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
72bb66334e
Check icon for nullity in Widget
2015-02-05 21:42:10 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
dc5e32a26c
Try to prevent nullptr dereference of icon
2015-02-05 18:29:40 +01:00
Dubslow
82c881ff49
Merge branch 'pr1087'
...
Conflicts:
src/widget/widget.h
2015-02-04 17:45:04 -06:00
Dubslow
aa122bf246
Implement hack to make closing the history dialog not disable history
...
Also word wrap the extra long text
2015-02-04 16:11:21 -06:00
Dubslow
864d1297e7
More descriptive dialog text
2015-02-03 18:22:05 -06:00
Dubslow
a572ccff27
Merge branch 'encryption' into master
...
Conflicts:
src/core.cpp
src/historykeeper.h
2015-02-03 10:21:59 -06:00
krepa098
0af05929f7
fixup! Merge branch 'master' into chatlog_v3_1
2015-02-03 16:15:51 +01:00
novist
b7dd4bf829
Tray icon notification of new messages
2015-02-03 12:20:26 +02:00
Dubslow
9c1cbb7a4d
Reword opening password dialog per srkunze's suggestion
2015-02-02 21:31:56 -06:00
Dubslow
8d999efae7
Fix the previous todo
2015-02-02 17:56:51 -06:00
krepa098
52f220c9e4
Merge branch 'master' into chatlog_v3_1
...
Conflicts:
qtox.pro
res.qrc
src/widget/form/chatform.cpp
src/widget/form/chatform.h
src/widget/form/genericchatform.cpp
src/widget/tool/chatactions/chataction.h
src/widget/tool/chatactions/messageaction.cpp
src/widget/widget.cpp
ui/chatArea/innerStyle.css
2015-02-02 14:31:44 +01:00
novist
6c477a0a19
Use svg for taskbar/tray icons
2015-02-02 08:07:36 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
8ccd3bb3bf
Fix spurious quitting when dialog closed and in tray
2015-02-01 00:03:42 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
7574569b3d
Fix some systray issues on windows
...
Fix qTox not hiding when clicking on systray icon due to losing focus when clicking on the system tray
Fix the icon not being properly hidden on exit
Thanks to @toweI for reporting those issues
2015-01-30 13:44:41 -06:00
Tux3/Mlkj
fe83dd9445
Implement SystemTrayIcon Unity backend
...
With some limitations and some awful hacks, since appindicators can not differentiate left click, right click and middle click. It's already a massive pain to just get a signal when the menu is shown, without actually knowing what opened it.
I love ubuntu.
2015-01-29 17:33:17 +01:00
Tux3/Mlkj
f75e32e1e3
Implement SystemTrayIcon with Qt backend and Unity stub
2015-01-29 14:56:53 +01:00
Dubslow
31ac5dbe46
Fix SPE
2015-01-27 18:45:15 -06:00
Dubslow
2dc5cea1d2
Merge branch 'encryption' into master
...
Conflicts:
src/autoupdate.cpp
src/core.cpp
src/core.h
src/misc/settings.cpp
src/widget/widget.cpp
2015-01-27 18:29:39 -06:00
Dubslow
03fe9a355f
Merge branch 'pr1052'
2015-01-26 07:25:23 -06:00
Dubslow
e90293b47a
Make compact contact layout dynamically changeable
...
There was some various minor incidental cleanups as well
2015-01-26 07:13:35 -06:00
novist
3a5a94c666
Fixed showing window when clicking tray icon / shortcut and window is minimized
...
Double-clicking tray icon shows window
Middle-clicking tray icon hides window
2015-01-26 12:43:34 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
279debdab9
CallConfirmWidget: track anchor's position
2015-01-25 18:43:30 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
32bf56c7d9
Implement new call confirm widget logic
...
Works, but does not have any styling at the moment
2015-01-25 17:39:26 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
33ac7deee0
Fix #1040
2015-01-24 22:46:11 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
6e1484252a
Fix possible crashes on exit, add debug info
2015-01-24 19:32:15 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
d35ebb22f0
Fix some memory leaks and fix #1038
2015-01-24 15:31:50 +01:00
Dubslow
f6ff421aff
Fix two minor bugs
2015-01-23 08:31:13 -06:00
Dubslow
7fb7ae1fc8
oops, fortunately this wasn't a bug yet...
2015-01-23 08:00:50 -06:00
Dubslow
18e875ef20
Fix bug with initial password dialogs accepting empty passwords
2015-01-23 07:07:31 -06:00
Dubslow
29cc9e1b7d
Merge branch 'encryption' into master
...
Conflicts:
src/main.cpp
2015-01-23 01:51:39 -06:00
Dubslow
44ddb8789c
In groupchats, check for sanitized name as well
...
Fixes #952
2015-01-23 01:35:21 -06:00
Dubslow
908dafd3b8
Simplify regex
2015-01-22 10:20:38 -06:00
novist
3bec2751e0
Separate setting to show window on new message (without focusing window)
...
Setting to always notify on messages in group chats (like normal chats)
Check for mentioned name only triggers if name is not in the middle of other word
2015-01-21 13:54:51 +02:00
krepa098
d9e15fb0ba
Merge branch 'master' into chatlog_v3_1
...
Conflicts:
src/widget/chatareawidget.cpp
src/widget/form/chatform.h
src/widget/form/genericchatform.cpp
2015-01-09 19:41:16 +01:00
krepa098
0f52bf3f5c
moved history loading to FriendWidget::setAsActiveChatroom()
2015-01-07 13:16:09 +01:00
Dubslow
139cd3f4a6
Merge branch 'encryption' into master
...
Conflicts:
src/core.cpp
src/misc/settings.cpp
src/widget/widget.cpp
src/widget/widget.h
2015-01-05 20:55:47 -06:00
Tux3 / Mlkj / !Lev.uXFMLA
8813d6e4ca
Fix #909
2015-01-05 09:54:03 +01:00
krepa098
b09805f9bf
refactoring
2015-01-04 18:21:35 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
14ad87069e
Merge branch 'pr979'
2015-01-04 15:18:07 +01:00
Nokta-strigo
1ec40b74b7
Contacts changing status to offline and having new events are not moved to the bottom of the list. (see issue #740 )
2015-01-04 14:54:22 +01:00
novist
2a8cbd189d
Added typing notification support and enabled by default
2015-01-04 13:21:56 +02:00
krepa098
b76e9a295d
disabled group joined/left messages
...
Conflicts:
src/widget/widget.cpp
2015-01-03 10:23:50 +01:00
krepa098
a0ea0675a7
Merge branch 'master' into chatlog_v3_1
...
Conflicts:
qtox.pro
res.qrc
src/misc/smileypack.cpp
src/widget/chatareawidget.cpp
src/widget/chatareawidget.h
src/widget/form/chatform.cpp
src/widget/form/genericchatform.cpp
src/widget/form/genericchatform.h
src/widget/form/settings/generalform.cpp
src/widget/tool/chatactions/messageaction.cpp
src/widget/tool/chatactions/systemmessageaction.cpp
src/widget/widget.cpp
2015-01-03 10:17:53 +01:00
krepa098
f1f42fc237
innerStyle, groupchats
2014-12-31 13:42:06 +01:00
novist
30d9862c4f
Removed explanations from tray menu
2014-12-18 20:32:28 +02:00
krepa098
3190530686
filling the gaps
2014-12-13 21:11:03 +01:00
Dubslow
a8b1f60256
Merge branch 'pr923'
2014-12-12 18:40:24 -06:00
novist
e2bf37c139
Light tray icon option
2014-12-12 12:12:12 +02:00
Zetok Zalbavar
e0993a72f6
Style corrections
...
'if()' → 'if ()'
'for()' → 'for ()'
2014-12-11 18:05:52 +00:00
Dubslow
7fc7b57934
refactor/fix switching profile with separate settings
2014-12-09 15:43:43 -06:00
Dubslow
5cb1b6fe8e
check for no systray, fixes #908
...
cant believe it took this long to figure out ;_;
2014-12-09 14:18:12 -06:00
Dubslow
db2d9321e4
fix change profiles button
2014-12-05 20:58:44 -06:00
Dubslow
67027814e5
tweak to popup questions
2014-12-05 19:56:33 -06:00
Dubslow
2e6b0f7b2b
remove files that I shouldn't have added in the first place
2014-12-05 19:17:02 -06:00
Dubslow
4e1a204bc0
Fix threading issue with startup pw popup
...
The GUI is slow to update after accepting a password, but a cursory ten minute investigation didn't yield why
I inserted a processEvents() call before ready = true; at the end of Core::start, but that didn't help.
Define the total time between the password dialog disappearing and the UI updating with your own status is T:
Then my debug statement indicated that this processEvents call happened around 1/3T, raising two questions:
1) What the hell is happening between 0 and 1/3 T? Decryption doesn't take that long...
Note that bad passwords are immediately rejected with a new dialog, so I highly doubt it's the decryption cpu time
2) The remaining 2/3rds: processEvents has been called after the avatar and username signals, yet they
don't update in the UI till time T when everything updates after bootstrapping...
Oh well, like I said, only a cursory investigation
2014-12-05 18:23:13 -06:00
Dubslow
961d5830c3
add fancier tray icons with status, remove relevant option
2014-12-05 17:14:48 -06:00
dubslow
dde410bb9c
incremental
2014-12-03 18:10:07 -06:00
dubslow
8985466ed3
core encryption file is basically complete, I need to verify privacy tab
2014-12-03 18:10:07 -06:00
apprb
3c15909ffc
correct displaying of the targeted messages
2014-12-03 23:47:07 +06:00
Dubslow
1c78cbc0c9
add a basic platform-disabling define
2014-12-01 18:18:27 -06:00
Dubslow
4781c8cfbb
Merge branch 'pr862'
...
Conflicts:
src/widget/widget.cpp
2014-12-01 15:37:09 -06:00
Dubslow
4adfa986b5
touchup, more appropriate legal message
2014-12-01 15:28:53 -06:00
Dubslow
173eda7700
Merge branch 'pr870'
...
Conflicts:
src/widget/form/settings/generalform.cpp
2014-12-01 14:47:54 -06:00
Dubslow
1340e00f69
re-move idle timer construction before restoreGeometry
2014-12-01 14:04:18 -06:00
Dubslow
9df3fdc2a0
move new functions to a more logical location
2014-12-01 14:04:17 -06:00
novist
0810559bcb
Window geometry saved when window is resized Splitter position saved when splitter is moved
...
Fixed restoring of window geometry when "Start in tray" is unchecked
2014-12-01 14:04:17 -06:00
novist
677058eb65
Reorganized platform-dependent code
...
Auto-away timer check reduced to 1s
2014-11-28 11:41:45 +02:00
novist
8e4f69aa79
Added copyright notices to platform.*
...
Changed u_int** to uint**
2014-11-28 11:41:45 +02:00
novist
99fa5d9e19
Global auto-away
2014-11-28 11:41:44 +02:00
novist
479644833e
Option for tray icon to display user status
2014-11-27 19:46:36 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
4c379640b8
Merge branch 'pr854'
2014-11-25 20:00:27 +01:00
novist
beae534d66
Starting client activates existing instance if such exists
2014-11-25 19:11:05 +02:00
apprb
56ea1f1e66
using ToxID in groupchats
2014-11-24 00:58:53 +09:00
apprb
f59a67f08a
Group class refactoring
2014-11-24 00:58:53 +09:00
apprb
92c330b7bd
GroupList refactoring
2014-11-24 00:58:53 +09:00
Tux3 / Mlkj / !Lev.uXFMLA
f8063fc809
Fix idleTimer use before construction
2014-11-20 00:22:44 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
599c246ec7
Move group audio playing to Audio singletong/thread
...
This is a bit of a quick fix for a new bug, as but part of cleaning up the audio code and moving it to the Audio singleton
2014-11-19 22:26:04 +01:00
dubslow
845216fa2f
set aliases from chat form (half of #780 )
2014-11-17 20:15:44 -06:00
dubslow
d533c4089d
remember status when disconnected (should help with #715 )
2014-11-17 19:40:36 -06:00
Tux3 / Mlkj / !Lev.uXFMLA
cd31812dac
Widget: Don't delete icon, it's a child
2014-11-17 22:49:35 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
c1f2e9a71d
Refactor audio out of code, better resource management
...
Fixes #739 and fixes #777
2014-11-16 19:04:45 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
014b39e7d0
Merge branch 'pr774'
2014-11-16 17:04:33 +01:00
apprb
664c762625
using ToxID instead of bare QString + proper alias using during widget creation
2014-11-17 00:17:46 +09:00
Maximilian
52255eb332
similar bug, when closing the window...
2014-11-16 15:22:53 +01:00
Maximilian
b97e66d589
Minor bug fix:
...
The main window, will never be visible, when the user unchecked 'Show system try' and checked 'Start in tray'.
2014-11-16 15:22:44 +01:00
dubslow
40addf9155
"overhaul" window title, fix #753
2014-11-16 15:17:22 +01:00
dubslow
02e29d6600
auto away done right ( fixes #751 )
2014-11-16 15:17:02 +01:00
krepa098
74bd802863
progress
2014-11-16 12:40:44 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
2f452b6eff
Add GUI to change theme color
2014-11-15 21:30:20 +01:00