Commit Graph

478 Commits

Author SHA1 Message Date
John Preston
41cd427834 Sync video frame delay / skip by audio play progress. 2016-07-10 22:44:55 +03:00
John Preston
1fee0822fb Moved AudioPlayerState+position+duration+frequency to a single struct. 2016-07-10 16:02:22 +03:00
John Preston
66e2fce8d5 New design of a chat invite link import box with title, photo, users. 2016-07-08 19:59:46 +03:00
John Preston
2aa35af909 Merge branch 'master' into dev
Conflicts:
	Telegram/SourceFiles/history/history.style
2016-07-08 13:26:28 +03:00
John Preston
352b0f2079 Ignoring accents when autocompleting mentions in field_autocomplete.
Do nothing instead of showing in folder a media file with bad extension.
Showing descriptive error message when we hit the limit of stickerpacks.
2016-07-07 19:16:47 +03:00
John Preston
616d08255c Moved audio to media/media_audio and divided to several modules.
Basic video playback with sound support in mediaview added.
2016-07-05 20:44:02 +03:00
John Preston
b61cc150db Merge branch 'master' into video
Conflicts:
	Telegram/SourceFiles/mainwidget.cpp
	Telegram/SourceFiles/structs.cpp
2016-07-05 20:42:47 +03:00
John Preston
8909943bd3 Showing in folder instead of launching media files with bad extensions.
Thanks for the report to: Sadegh Ahmadzadegan - Omid Ghaffarinia.
2016-07-05 20:36:42 +03:00
John Preston
8ea47c1811 Opened histories stack finished, stack of states in vector_of_moveable. 2016-07-05 17:48:36 +03:00
John Preston
7ca5737bc0 Removed SongMsgId, unified working with voice/music files in audio. 2016-06-30 15:03:32 +03:00
John Preston
cd696ade4e Featured stickers fully supported (unread badges, box, adding, etc). 2016-06-28 21:05:38 +03:00
John Preston
991c6ddd99 Saving featured stickers for new 0.9.57 version in local storage. 2016-06-27 19:25:21 +03:00
John Preston
cbde6e1ee9 Using square rounded photos in native notifications (Win, OS X).
When updating local online status from user action events we use
action timestamp, and ignoring events from getDifference, if no
timestamp is available for the specific action.
Couple of hidden actions added in Settings. Alpha version 0.9.54.
2016-06-22 21:47:43 +03:00
John Preston
5957382a67 Radial progress in settings when loading a new background from gallery.
MediaView handling of screen resolution change fixed.
Media messages now display both name/type and caption in dialogs list.
When viewing group profile photo delete affects either photo or message.
2016-06-22 16:39:54 +03:00
John Preston
c73b5a6da4 Styles improved. Members dropdown is shown with a delay.
Overview of chat photos fixed. Tray icon tries read a file on Linux.
2016-06-21 17:19:24 +03:00
John Preston
f0a8356ff0 Profile members block displayed when mouse is over group members count. 2016-06-17 21:18:01 +03:00
John Preston
38c2915533 Fixes in floating dates with migrated histories.
All service messages are now not multiline (including pinned).
Confirmation for profile photo deleting will be added (not enabled).
Copy-by-selection should be supported in Linux version now.
Drafts that contain only reply-to-id (without text) support added.
2016-06-14 19:26:41 +03:00
John Preston
044e9221e8 Drafts always shown in dialogs list when no unread messages in the chat.
Edition of any message to service message "history cleared".
2016-06-13 21:42:25 +03:00
John Preston
6da62f902b Animated show and hide of the new history-to-down button.
Fixed render in outbox read event handler for channels / supergroups.
2016-06-09 23:01:15 +03:00
John Preston
a428534345 Cloud draft handling improved. Fixed Edit while already editing a msg. 2016-06-09 17:31:10 +03:00
John Preston
19cacd0efb New layout of service messages (complex shape of a bubble). 2016-06-09 14:51:24 +03:00
John Preston
a5cbbba12d Empty messages do not participate in displayDate() flow.
Example of an empty message is service message after clear history.
2016-06-08 22:14:17 +03:00
John Preston
1859b83e8d Dialog styles moved from basic.style to dialogs.style.
Many minor design improvements in the new profiles.
New drafts design in the dialogs list: no icon, red badge.
Verified checkbox added to the new profile implementation.
Drafts saving to cloud is delayed for 1 second when switching chats.
Before quitting the app makes an attempt to save drafts (timeout 1.5s).
2016-06-07 22:59:39 +03:00
John Preston
520260f207 Merge branch 'profile' into drafts
Conflicts:
	Telegram/SourceFiles/app.cpp
	Telegram/SourceFiles/codegen/style/processor.cpp
	Telegram/SourceFiles/history.cpp
	Telegram/SourceFiles/historywidget.cpp
	Telegram/SourceFiles/mainwidget.cpp
	Telegram/SourceFiles/mainwidget.h
	Telegram/SourceFiles/profilewidget.cpp
	Telegram/SourceFiles/profilewidget.h
	Telegram/Telegram.vcxproj
	Telegram/Telegram.vcxproj.filters
2016-06-06 18:16:52 +03:00
John Preston
1c0548d1e8 New profiles Xcode build ready, couple of retina-support bugs fixed. 2016-06-06 14:35:49 +03:00
John Preston
e336030b5e Channels report box added to new profile implementation.
Removed old profilewidget module files.
2016-06-06 13:29:51 +03:00
John Preston
855d44b9d8 Convert to megagroup information label added to new profiles.
Tested members and admins realtime in new profiles for groups.
2016-06-04 00:46:45 +03:00
John Preston
cd2615d8d0 Cloud stored message drafts support added. 2016-06-03 21:24:27 +03:00
John Preston
307e529ccf Merge branch 'dev' into drafts
Conflicts:
	Telegram/SourceFiles/dialogs/dialogs_layout.cpp
2016-06-03 16:44:51 +03:00
John Preston
958e47cc19 Received messages are not marked as read while scroll is at the top.
HistoryToEnd button is always shown if there are unread messages.
HistoryToEnd button displayes unread messages count.
New service message (HistoryCleared) is handled (not displayed at all).
2016-06-03 15:45:33 +03:00
John Preston
ea8f01bd74 Members block almost done in the new profile implementation.
Member kicking, upgrade to supergroup and testing is left.
2016-06-03 10:20:24 +03:00
John Preston
91d516f18c Notify::peerUpdatedSendDelayed() now is always called from the event loop. 2016-06-02 16:57:49 +03:00
John Preston
2c4ec3d9f3 Shared media block done in the new profile implementation.
Preparing to call Notify::peerUpdatedSendDelayed() only from event loop.
2016-06-02 16:02:55 +03:00
John Preston
3fc7cc3453 Actions block done for the new profile implementation.
User block status moved to private data.
Notify::PeerUpdateFlag[s] moved to Notify::PeerUpdate::Flag[s].
2016-06-01 23:05:37 +03:00
John Preston
66a8aa86e1 Settings block in the new profile implementation done.
New type of button (LeftOutlineButton) was added. _inviteLink moved
to private section in ChatData and ChannelData (with get-set methods).
2016-06-01 16:07:03 +03:00
John Preston
41c8df029a New profile blocks started. Info block fully ready.
All block widgets added (currently empty).
About text and phone number PeerUpdateFlag added for observers.
2016-05-31 22:27:11 +03:00
John Preston
916068447a Cloud stored drafts started. 2016-05-31 12:46:31 +03:00
John Preston
7f353d9b1a Removed all code related to channel comments. 2016-05-27 19:47:46 +03:00
John Preston
a510bb54ec Peer observers get notified about name/username changes.
All peer observer notifications are async (delayed).
2016-05-25 15:09:05 +03:00
John Preston
ed4e572483 Fixed bot keyboard replies. 2016-05-23 16:14:54 +03:00
John Preston
533a955dda Unread outgoing messages in supergroups supported.
Looking through the history of group avatar photos added.
Messages about some contact joined Telegram are never unread.
2016-05-20 19:35:16 +03:00
John Preston
92c720ddc3 Returned animation type to the old one.
Fixed new profile display in single column layout.
2016-05-19 15:38:09 +03:00
John Preston
1d42144c95 Profile done as a new generic Window::SectionWidget.
Slide animation reimplemented.
2016-05-19 15:03:51 +03:00
John Preston
6e2dea7030 Merge branch 'master' into profile
Conflicts:
	Telegram/Telegram.vcxproj.filters
2016-05-16 18:47:44 +03:00
John Preston
fb024e2256 Langs updated, changelog for 0.9.49 version added. 2016-05-14 21:14:55 +03:00
John Preston
bf8a98a13b Side shadow moved to MainWidget. Testing slide animation with 3s duration.
New profile widget has fixed top bar outside of scroll area.
2016-05-14 19:57:06 +03:00
John Preston
3d073eddd6 New profiles started. Function<> made by variadic templates. 2016-05-12 19:05:20 +03:00
John Preston
b28e9a6167 Requesting difference or messages when users from mentions not loaded. 2016-05-09 13:07:25 +03:00
John Preston
3e5f51f45a Everywhere TextWithTags and TextWithEntities are used.
Copy tags from messages to clipboard, to drag mime data.
Sorting entities while processing (links, monospace, mentions).
2016-05-06 20:33:48 +03:00
John Preston
463450e607 Saving FlatTextarea tags to drafts, applying them in setText.
Now instead of plain text a TextWithTags struct is used almost
everywhere. Started writing and reading serialized tags to drafts
from 9048, switched version to 0.9.48 for testing.
2016-05-05 19:04:17 +03:00
John Preston
21f462a77e Mention names support added to FlatTextarea, messages.
Copy of mention names to clipboard done, pasting started.
2016-04-30 20:04:14 +03:00
John Preston
2834ce0344 Moving to Qt 5.6.0, instructions can be broken. 2016-04-23 14:40:42 +03:00
John Preston
705358993d New style::icon class added, colorized icons by codegen_style.
Moved style_core to /ui/style/, Xcode and QtCreator builds are broken.
2016-04-21 20:57:29 +03:00
John Preston
bb70a76b9c Several crashes fixed. 2016-04-14 22:24:42 +03:00
John Preston
fdead263d6 Media shortcuts now are enabled only when in-app player is opened. 2016-04-14 19:08:36 +03:00
John Preston
5a3fea05ac ClickHandler, TopBarWidget and Overview layouts moved to separate files.
Xcode and QtCreator builds are currently broken.
2016-04-13 00:31:28 +03:00
John Preston
af014b3c14 Fixed crash in bot keyboard replacement. 0.9.41 version.
After username resolve bots always opens conversation, not profile.
2016-04-12 01:34:29 +03:00
John Preston
e8c675d3b2 Langs updated with changelog. 2016-04-11 20:03:50 +03:00
John Preston
e0d6a68554 Encapsulated unreadCount and mute fields in History.
Support for hiding all muted chats from the list.
2016-04-11 14:59:01 +04:00
John Preston
03bbb2269d Info button replaced by userpic in single column layout.
Icons for file inline results never display a download icon.
Using !lastMsg->detached() to detect that all new messages are loaded.
2016-04-11 11:43:40 +04:00
John Preston
418e06052c Some bugfixes. Closed beta 9040127.
Crash fix when trying to reply to a bot message which hides the keyboard.
Counting button widths better (more padding, use exact width when avail).
Hiding inline bot results fixed when switched to emoji before hiding.
2016-04-11 00:59:07 +04:00
John Preston
460e2ec0ac UniquePointer > std_::unique_ptr, MakeUnique > std_::make_unique. 2016-04-10 23:20:48 +04:00
John Preston
dd1d04e9b0 Inline bot results preview: photo, audio, file, voice. Beta 9040126. 2016-04-10 22:18:26 +04:00
John Preston
fe59c815b2 HistoryMedia always holds a pointer to its parent HistoryItem.
Using local cached data when sending media inline bot results.
2016-04-10 18:53:01 +04:00
John Preston
5f12c6d85b Always create photo and document for inline bot results. 2016-04-10 15:13:37 +04:00
John Preston
7bba52fb7e Refactored dialogs structs.
Moved DialogRow, FakeDialogRow, DialogsList and DialogsIndexed
from history module to dialogs/ folder, for all struct -> class.
2016-04-09 22:45:55 +04:00
John Preston
90b2b240ce Merged with master. 2016-04-09 15:15:23 +04:00
John Preston
0110a62776 Inline bot cancel button added.
It replaces Send button when the user is editing an inline bot
query. First cancel clears the inline bot request, second one
clears the field entirely. Escape key acts the same as cancel.
2016-04-09 15:02:50 +04:00
John Preston
fa0c700ca6 Inline switch to pm and back support added for inline bots. 2016-04-08 18:16:52 +04:00
John Preston
8e89486fbc Error handling changed, 'auto' keyword used for MTP types.
All errors that lead to MTP request resending by default
error handler now can be handled differently. For example
inline bot requests are not being resent on 5XX error codes.
+ extensive use of auto keyword in MTP types handling.
2016-04-08 14:44:35 +04:00
John Preston
35d5089f48 Scroll following the inline bot keyboard when message is edited. 2016-04-08 13:20:10 +04:00
John Preston
04f8d4dd37 Build fixed for renamed sources folder SourceFiles/{gui->ui}/ 2016-04-07 22:05:28 +04:00
John Preston
db387d50b8 Scheme updated, support for via @bot added to stickers. 2016-04-07 14:03:10 +04:00
John Preston
1bc834bd5e Sending icon is displayed in the inline keyboard callback button. 2016-04-06 21:02:22 +04:00
John Preston
730dce2cdc telegram.me links open without confirmation box.
EmailClickHandler removed, only UrlClickHandler left.
Some errors lead to @spambot instead of site FAQ.
2016-04-06 17:19:25 +04:00
John Preston
80b0667ff9 Requesting getDifference if some users or channels are not loaded
while processing updateNewChannelMessage update.
2016-04-06 15:07:05 +04:00
John Preston
1e72c8a89b Merge branch 'master' into bots 2016-04-05 13:32:42 +04:00
John Preston
24cc72e319 Requesting only supported languages from transifex in UpdateLang.sh
and UploadLang.sh, languages list is in Resources/LangList.
Added two special commands in service notifications conversations:
*new_version_text* for viewing current new version description and
*all_new_version_texts* for viewing it in all supported languages.
2016-04-05 11:45:53 +04:00
John Preston
3e2485678d Moved inline bot result structs from structs.cpp/h module.
Moved inline bot result layouts from layout.cpp/h module.
Over status prepared for inline bot file result icon.
Dependencies reduced, inline bots code moved to InlineBots namespace.
Build in Xcode and QtCreator broken.
2016-04-05 01:09:46 +04:00
John Preston
35785efa50 Inline bot video and sticker layout and sending done. 2016-04-03 13:11:41 +04:00
John Preston
1ef944ed7b Not inline bot keyboard now supports editing as well.
Styles improved for not inline bot keyboard.
Full crash string adding to crash report.
Preparing to leave source code without #include "stdafx.h"
2016-04-01 19:32:26 +04:00
John Preston
0e0956451a MTP_bytes() replaces MTP_string() for QByteArray payload.
Scheme updated for bot callbacks sending data bytearrays.
ReplyKeyboard edition is supported when editing the messages.
2016-04-01 14:23:40 +04:00
John Preston
fa4137418a Merged with master. 2016-04-01 12:54:32 +04:00
John Preston
f1dfcef868 Styles improved for unread bar margins and sticker timestamp.
Possible crash fixes: emoji color picker show, pending repaint
items cleared when history items are cleared.

Deleting MainWidget syncroniously when clearWidgets() is called.
2016-03-31 18:06:40 +04:00
John Preston
8cde13fb8c Scheme updated, not channel messages editing updates handled. 2016-03-30 21:13:07 +04:00
John Preston
b981472877 Bot keyboard button with type url / callback / phone / location
now can be displayed with an icon in the upper-right corner.

Inline bot keyboards almost done.
2016-03-30 20:42:01 +04:00
John Preston
7f6cf32cdd ITextLink moved to ClickHandler, TextLinkPtr > ClickHandlerPtr.
Global methods textlnkOver/Down/DrawOver were replaced by
static members of ClickHandler, now global state consists
of the handler pointer + host pointer, who declares callbacks
for the active and pressed handler changed events.

This will allow to use ClickHandler from different hosts
simultaneously (like HistoryItem / BotDescription / BotKeyboard).

Not yet tested.
2016-03-29 20:17:00 +03:00
John Preston
599ede9a0b Beta 9034004 version:
Some lang grammar fixes, all "audio" changed to "voice message"
PeerData can have three loaded states (not loaded, minimal, full)
Interface/Interfaces renamed to Component/Composer
HistoryReply moved to a Component named HistoryMessageReply
2016-03-25 14:29:45 +03:00
John Preston
ddd63d73b7 MTP::nonce -> rand_value, fixed first_name and last_name reading from minimal users 2016-03-24 13:12:18 +03:00
John Preston
034adfab2b Delete button for large channels is hidden now
(server doesn't allow to delete large channels any more).

Error message added in a case when the current user
(not admin) tries to add to a supergroup a user who
was kicked by admin (and blacklisted by this action).
2016-03-23 19:50:40 +03:00
John Preston
4a5b63bbcd restricted peers support added 2016-03-23 16:21:26 +03:00
John Preston
5c9836418f version 9034001 beta 2016-03-22 18:23:34 +03:00
John Preston
84e67b8ec0 scrollTop counted relative to the last scrollTop item, attachedToPrevious messages support added, service messages now display date and unreadbar 2016-03-21 21:40:00 +03:00
John Preston
0b2bcbc3e9 some warnings fixed, TDESKTOP_DISABLE_NETWORK_PROXY macro added 2016-03-20 11:16:35 +03:00
John Preston
2ef8c44445 all MTP flags made strictly typed by scoped enums, in-message date display added for non-service messages 2016-03-19 19:55:15 +03:00
John Preston
9d00ec273b removed Date service messages, removed UnreadBar service message, started adding them to HistoryItems, saving item index in block to keep an eye on the previous message 2016-03-18 22:05:08 +03:00
John Preston
baf1e31b76 circled profile images 2016-03-18 13:18:30 +03:00
John Preston
ddc802c0af top bar search icon added 2016-03-17 12:23:38 +03:00
John Preston
c2f1e95f3f fixed opening of uncompressed image sent from clipboard, intro refactoring finished 2016-03-16 14:54:37 +03:00
John Preston
1828b14cda checking auth in onViewsIncrement 2016-03-15 21:08:17 +03:00
John Preston
3a8824a9a6 intro rewrite started, new code sending methods 2016-03-14 19:59:18 +03:00
John Preston
86a4a388c3 ban / report / deleteAll done in MainWidget instead of RichDeleteMessageBox 2016-03-13 18:45:00 +03:00
John Preston
02b0512761 min channels handled, delayed getDifference request with old updDate value added 2016-03-11 18:01:32 +03:00
John Preston
5cab9569c3 updating edited messages dependencies (replies, edit / reply / pinned bar), postponing notification about pinned message while the message itself is not yet available 2016-03-11 15:20:58 +03:00
John Preston
98e2700764 rich delete all + ban almost done in supergroups (need to clear messages on the client side as well) 2016-03-10 18:42:01 +03:00
John Preston
efa5fc443a pin/unpin messages in supergroups, local hide for pinned messages 2016-03-10 13:15:21 +03:00
John Preston
1c722a425d forwarded getState fixed, pinned message service msg dependency request and text update done 2016-03-05 23:12:55 +02:00
John Preston
0072573925 pinned message api used, ordering by online and displaying online count in small megagroups 2016-03-04 17:34:46 +02:00
John Preston
b678913da5 improved rpcClear() when deleting a complex RPCSender, clearing recent inline bots on logout 2016-02-28 15:36:23 +03:00
John Preston
798f800913 History::dialogs and Histories::unread are private now, counting only chats from dialogs list to the badge 2016-02-28 14:58:30 +03:00
John Preston
a88b676588 global shortcuts with loading from .json map 2016-02-27 22:39:51 +03:00
John Preston
37309a91ac fixed media_only dcs, added copy post link to clipboard, fixed signature display in gifs, 0.9.27 dev version 2016-02-25 20:23:42 +03:00
John Preston
2b6e30bcb5 silent broadcast done 2016-02-25 19:19:54 +03:00
John Preston
4ec579112c beta 9026001 message/post edit done 2016-02-25 13:32:31 +03:00
John Preston
2a0a3b5cbb tooltip showing only in active window 2016-02-22 14:15:24 +03:00
John Preston
29fefbc4bb post edit started, sign messages checkbox added in channel edit by creator 2016-02-21 15:30:16 +03:00
John Preston
c3845ead85 moved forwarded to an interface, testing required 2016-02-18 22:12:50 +03:00
John Preston
803d1a429d scheme updated, config vars moved to Global namespace 2016-02-18 19:36:33 +03:00
John Preston
7433cea0fd fixed copy selected text, post author display added, post links handling added, windows bingmaps opening added, sticker previews from mentionsdropdown and stickersetbox added 2016-02-17 19:37:21 +03:00
John Preston
517358c8e9 clearing media autodownload settings on logout, fixed history clearing 2016-02-15 14:11:07 +03:00
John Preston
f83644cec0 Merge branch 'dev' 2016-02-14 21:29:36 +03:00
John Preston
3281b81565 using new privacy settings (error display), crash reports collecting improved, colors for waveforms imporved, preparing for 0.9.22.dev (next commit) 2016-02-14 21:29:17 +03:00
John Preston
e492b1e93d some crashes fixed 2016-02-14 18:58:39 +03:00
John Preston
3579276b49 videos rendered like files, fixed history loading 2016-02-12 21:18:32 +03:00
John Preston
189d0e8de3 voice messages moved to documents with waveforms 2016-02-12 19:35:06 +03:00
John Preston
7b855a661a new wide layout, build script and some bugs fixed 2016-02-09 19:05:08 +03:00
John Preston
80ba0259dd some namespaces reorganized, author photo display added to wide mode (where messages are centered), version 0.9.20.dev 2016-02-08 17:54:55 +03:00
John Preston
0b8523d58e added year 2016 to copyright 2016-02-08 13:56:18 +03:00
John Preston
58777dbc21 moved almost all Application to AppClass (autoupdate and singleinstance left), logs rewritten 2016-01-11 23:43:29 +08:00
John Preston
b13579c7d9 dev version 0.9.19 sending stickers by emoji 2016-01-09 20:51:42 +08:00
John Preston
a72a31e722 stickers by alt suggestions in mentions dropdown 2016-01-09 19:24:16 +08:00
John Preston
f66c54ee6b not loaded thumbs are now white, always initDimensions() when media is updated 2016-01-09 15:11:23 +08:00
John Preston
3078544892 new media unsupported message and via @inlinebot are added to langs, links don't break on / now, cancel upload langs fixed 2016-01-07 17:49:54 +08:00
John Preston
5a87bf4114 fixed inline results display lag, cancelling inline query by Escape, add/erase in overview refactored, animated gifv are not in shared files anymore 2016-01-03 09:43:42 +08:00
John Preston
cb2df51af6 remembering last used inline bots, showing them in mentions dropdown, 9015006 beta 2016-01-01 22:48:32 +08:00
John Preston
85f46cef8c emoji button with progress done for inline bot requests 2016-01-01 17:58:05 +08:00
John Preston
82fb3f590f saved gifs panel substituting @gif to the message field 2016-01-01 02:34:56 +08:00
John Preston
35d4754380 caching web files to local, sending of inline bots results done properly, panel ux better for inline bots 2015-12-31 23:27:21 +08:00
John Preston
5830e0f657 inline bots gif / photo preview / sending done 2015-12-31 13:34:43 +08:00
John Preston
14839e7afe scheme updated, contextbot -> inlinebot renamed, web file loader done like mtp file loader 2015-12-31 03:09:20 +08:00
John Preston
cbb0219812 savedgifs -> contextitems in stickers panel, fixed atomic uint64, now with mutex :( 2015-12-30 14:47:39 +08:00
John Preston
cdcd9d8d54 fixed shared memory locations, scheme updated 2015-12-29 20:54:34 +08:00
John Preston
9a1798f043 saved gifs done 2015-12-28 00:37:48 +03:00
John Preston
a5622cfe3b pausing gifs when mediaview is opened, improved photos handling - download on click if autoload disabled 2015-12-25 16:09:14 +03:00
John Preston
4ed2d75c74 upload radial progress and upload cancel done, photo / file / audio autodownload settings respected 2015-12-24 22:26:28 +03:00
John Preston
b94533fcb2 gif autoplay improved 2015-12-23 22:23:14 +03:00
John Preston
6170144fe9 inline gifs playback / stopping done 2015-12-23 19:48:44 +03:00
John Preston
73a4d3510d removed itemReplaced 2015-12-23 15:55:32 +03:00
John Preston
41f5a87c80 improved video, audio overview, fixed files overview 2015-12-23 15:19:32 +03:00
John Preston
af9908f076 exif fixed, media overview redesign done 2015-12-23 14:13:08 +03:00