yannick
e39746369d
The read receipts are displayed for incoming messages.
...
In vector applciation, the outgoing and the imcoming messages are displayed in the same screen side.
2015-12-09 09:50:03 +01:00
yannick
a111f44d7d
Fix a crash in refreshTypingView
2015-12-08 17:45:03 +01:00
yannick
9da0bdc9d0
user_settings_page
...
update after reviewing.
2015-12-08 17:37:59 +01:00
yannick
948a58405a
user_settings_page
...
Hide some unsupported account settings
2015-12-08 16:51:49 +01:00
yannick
49b9266582
Add a comment.
2015-12-08 16:37:52 +01:00
yannick
efafa49293
Merge remote-tracking branch 'origin/vector_user_settings' into user_settings_page
2015-12-08 16:09:26 +01:00
yannick
7fba0003c7
Fix some texts
2015-12-08 15:53:12 +01:00
yannick
da7b8bd88a
user_settings_page
...
push rules
Make the difference between my user name and my display name rules.
2015-12-08 15:52:54 +01:00
yannick
5340584a8f
user_settings_page
...
-> add password update dialog. (it works only on IOS 8 and above).
2015-12-08 15:39:53 +01:00
manuroe
aad25ca2a7
HomeVC: made selectionContainerHeightConstraint accessible
2015-12-08 14:28:53 +01:00
giomfo
ebf58876f3
Chat screen: rename cell view classes
2015-12-08 10:54:48 +01:00
giomfo
7c6057bfed
Chat screen: Update bubble layout
...
-Define all required cell view classes
-Disable timestamp display (TODO display timestamp for last message, and selected message if any).
2015-12-08 10:10:59 +01:00
yannick
8f56adb196
The profile can be updated with the save button.
2015-12-07 17:45:19 +01:00
yannick
d4854cafe2
Fix a compilation warning.
2015-12-07 17:40:16 +01:00
yannick
922382f512
user_settings_page
...
-> first implementation
--> the tableview is the same as the screenshot we have
--> the push rules can be toggled
Need to manage the account updates.
2015-12-07 16:05:50 +01:00
manuroe
e73e4bb554
Merge remote-tracking branch 'origin/develop' into search_api_support
2015-12-07 15:51:18 +01:00
manuroe
08a43cd465
Search: Show only an image if the search text field is empty
2015-12-07 15:26:06 +01:00
manuroe
d410f18aa5
Search: SegmentedViewController: Added a customisable background image
2015-12-07 15:08:17 +01:00
manuroe
d39a7f7ebe
Search: Reuse RecentsViewController with its search capabilities to make search under the "rooms" tab
2015-12-07 14:03:34 +01:00
giomfo
1ed9058be6
Chat screen: Bug Fix - App crashes when user selects a room in recents.
...
This crash was systematic when the user opened for the second time the same room.
2015-12-07 13:57:21 +01:00
manuroe
899c654832
Search: SegmentedViewController: Made displayedViewController public
2015-12-07 13:52:38 +01:00
manuroe
db6eb145bd
Merge remote-tracking branch 'origin/develop' into search_api_support
2015-12-07 13:02:14 +01:00
giomfo
ef69af9adb
MXKDataSource refactoring
...
Table view cell are now defined at view controller level.
2015-12-07 11:50:13 +01:00
manuroe
452152ca20
Merge remote-tracking branch 'origin/develop' into search_api_support
...
Conflicts:
Vector/Base.lproj/Main.storyboard
Vector/ViewController/RecentsViewController.m
2015-12-07 11:47:49 +01:00
manuroe
c969859593
Search: Show a search bar
2015-12-07 11:43:11 +01:00
yannick
5d484d9a63
Update the recents section header
...
-> reduce the font size
-> reduce the header height
2015-12-04 17:45:56 +01:00
yannick
84b56df894
display_room_avatars.
...
fix a wrong fix in refreshTypingView.
2015-12-04 17:05:40 +01:00
yannick
acf8b11322
display_room_avatars
...
Update the room avatar management with the updated Matrix Kit
2015-12-04 16:58:18 +01:00
yannick
74de3eeb0f
Merge remote-tracking branch 'origin/develop' into display_room_avatars
...
Conflicts:
Vector/ViewController/RoomViewController.m
2015-12-04 16:43:11 +01:00
yannick
41e09d59f0
display the
...
-> swipe menu icons (recents)
-> room creation icon (recents)
2015-12-04 16:32:42 +01:00
giomfo
36eca8d52c
RoomInputToolbar: Remove useless items
2015-12-04 16:06:11 +01:00
giomfo
7e5d45f64f
EventFormatter: Sender avatar handling
...
Override senderAvatarURLForEvent to ignore the identicons defined by default in mattrix kit.
2015-12-04 15:37:33 +01:00
Yannick LE COLLEN
6512d36721
Merge pull request #13 from vector-im/mute_room_notifications
...
mute_room_notifications
2015-12-04 14:47:45 +01:00
yannick
eb371f7d8e
display_room_avatars
...
-> display the room avatars in the chat room
2015-12-04 14:28:15 +01:00
giomfo
8d99a2554c
Add some ios Vector assets
2015-12-04 13:56:41 +01:00
manuroe
be8017dedb
Search API Support: set up SearchViewController in the storyboard
2015-12-04 13:38:05 +01:00
yannick
4d8b8d2856
mute_room_notifications
...
The room notification "mute" button is displayed even if there is a "always notify" room rule.
2015-12-04 11:04:18 +01:00
Yannick LE COLLEN
b6bc331b2b
Merge pull request #10 from vector-im/fav_recents_display
...
Fav recents display
2015-12-04 09:02:31 +01:00
yannick
e678f57f3e
fav_recents_display
...
Update after Giom's review
2015-12-04 09:02:02 +01:00
Yannick LE COLLEN
63e6c60eeb
Merge pull request #9 from vector-im/recents_swipe_actions2
...
Recents swipe actions2
2015-12-04 08:32:15 +01:00
yannick
9880bd2224
recents_swipe_actions2
...
-> MXKTools::resizeImage instead of a local method.
2015-12-04 08:31:33 +01:00
yannick
fa0cb4001b
display_room_avatars :
...
Display the room members avatars in the member lists.
2015-12-03 18:09:32 +01:00
yannick
b12c5d5ebd
display_room_avatars :
...
-> add the room avatars generators
-> display the room avatars in the recents.
2015-12-03 16:21:57 +01:00
yannick
0e6ff54d66
Display the room avatars when it is already known (i.e the room has an avatar or it is a 1:1 room).
2015-12-03 11:39:44 +01:00
yannick
62971d1a76
typing crash issue.
2015-12-03 11:38:37 +01:00
yannick
07e34203a2
fix a crash in refreshTypingView
2015-12-03 10:51:07 +01:00
yannick
3603791ad2
Vector uses only one account by now.
2015-12-03 10:28:45 +01:00
yannick
3edb07f011
Vector manages only one account by now.
...
We do not have the multi account UI.
-> the low-priority / favorites must be merged ?
-> each account recents must be in a dedicated section / sub-section.
2015-12-03 09:37:45 +01:00
yannick
0431cf654c
Fix the search crash.
2015-12-03 09:06:40 +01:00
yannick
ccd57f177f
Keep the fav / low priority order
2015-12-02 18:10:22 +01:00
yannick
c4084a4e68
Fix the recents favorites refresh
2015-12-02 17:38:10 +01:00
yannick
66f523a243
->Display the recents sorted by tags (favorites, converstations, lower priority)
...
-> the tag event is listened but seems bugged.
2015-12-02 17:18:55 +01:00
yannick
c8fe9d6d20
Add the mute/ummute room notifications in the swipe menu.
2015-12-02 13:12:27 +01:00
yannick
978bce9a59
Add the swipe to update room tag.
2015-12-02 10:09:01 +01:00
Yannick LE COLLEN
fb99a80d46
Merge pull request #8 from vector-im/room_creation_overlay
...
Room creation overlay
2015-12-02 08:40:26 +01:00
yannick
fc1d49908c
Merge remote-tracking branch 'origin/room_settings_viewcontroller_v2' into develop
2015-12-02 08:34:10 +01:00
yannick
cc0d42b2fc
Rename addNavBarButtons to setNavBarButtons
2015-12-02 08:32:39 +01:00
giomfo
9c58920897
Fix compilation issue after ios matrix kit update.
...
TODO: implement correctly chat bubbles.
2015-12-01 19:21:55 +01:00
giomfo
0c501eb93f
Room Members: use rounded picture instead of rounded corner picture
2015-12-01 18:43:46 +01:00
yannick
d1d55986de
-> Add the generic swipe to delete (UITableViewRowAction)
...
-> Add the background generation from image (UITableViewRowAction)
2015-12-01 18:08:40 +01:00
manuroe
c6e7643983
SYIOS-177: Clear MXStore if the app systematically crashes at startup
...
Reported https://github.com/matrix-org/matrix-ios-console/pull/5 on Vector
2015-11-30 17:22:39 +01:00
yannick
5993012c65
Add the green chevron aside the room name.
2015-11-30 14:34:12 +01:00
yannick
762231d0a1
Add the room creation button.
2015-11-30 10:41:49 +01:00
yannick
ae6d8951be
Add a gradient view above the recents view.
2015-11-30 09:48:08 +01:00
yannick
dedee1697c
update the search title color.
2015-11-27 17:48:09 +01:00
yannick
e113c95e1e
Update the roomParticipant text color
...
-> use vector green color
-> remove useless title
-> add a place holder in the search bar.
2015-11-27 17:14:10 +01:00
yannick
86390b7e5c
SegmentedViewController : add the unreachable homeserver management (i.e. the navbar background color becomes red)
2015-11-27 15:53:41 +01:00
yannick
f842ae75aa
Cancel the room member search if the view disappears.
2015-11-27 15:29:54 +01:00
yannick
1e85502cb6
Add the update error case management.
2015-11-27 15:16:16 +01:00
yannick
6073b3a949
Update the navbar buttons the room participants & room settings viewcontroller.
2015-11-27 14:02:37 +01:00
yannick
004fdb2491
descrive how to update the navbar items color.
2015-11-27 13:30:14 +01:00
yannick
4256859e0a
recentsNavigationController is now a property
2015-11-27 13:29:40 +01:00
yannick
14317412ab
The navbar buttons were not properly displayed.
2015-11-27 09:59:51 +01:00
yannick
596b781357
Done button refresh update
2015-11-26 18:23:50 +01:00
yannick
a41d09a625
Define the vector green color as the navigation bar tint color.
2015-11-26 18:23:04 +01:00
yannick
eaaedb6fbf
-> add a .h file to define the vector color
...
-> restore the done button on the roomSettingsViewController.
2015-11-26 18:04:03 +01:00
yannick
71806aaaa8
-> set the roomDetails viewController title
...
-> the selected section title text was not a bold font.
2015-11-26 17:04:16 +01:00
yannick
e715344144
-> MXKRoomDetailsViewController becomes MXKSettingsDetailsViewController
...
-> The room details is now properly launched.
2015-11-26 16:47:24 +01:00
giomfo
5a1f3ecffa
Chat screen: add a separator at the top of activities view.
2015-11-26 15:01:01 +01:00
yannick
9dd2542ad6
Merge remote-tracking branch 'origin/develop' into room_settings_viewcontroller_v2
2015-11-26 14:41:28 +01:00
giomfo
11c14c9e10
Defaults.plist: define pusher app ids for Vector
2015-11-26 14:27:59 +01:00
giomfo
1ccc1f596f
Info.plist: define the vector app bundle id
...
thanks Dave.
2015-11-26 14:27:28 +01:00
giomfo
8ad028f7af
Chat screen: remove username handling from outgoing bubble.
...
The sender'name is now handled by MXKRoomBubbleTableViewCell
2015-11-26 14:26:31 +01:00
yannick
2927d2bde2
Use the vector green color on the search bar.
2015-11-25 18:22:06 +00:00
giomfo
06e212eb01
Chat screen: Prepare bubble display
2015-11-25 19:11:03 +01:00
yannick
322dd1310f
The sub viewControllers should be properly displayed by now.
2015-11-25 17:45:04 +00:00
yannick
b3cb64b946
dummy implementation of the segmentedViewController :
...
> the tar items are displayed (even if they are currently hardcoded)
> the tab items can selected (the selected marker view is displayed)
2015-11-25 16:22:17 +00:00
giomfo
879c6d8a5a
Chat screen: Remove top menu view.
2015-11-25 16:53:52 +01:00
yannick
6e6ab76a26
remove useless committed files.
2015-11-24 16:22:15 +00:00
yannick
cf954af27e
add the typing area above the text input in the roomviewcontroller.
2015-11-24 16:19:45 +00:00
yannick
47e6040b02
Rename RoomExtraInfosView into RoomActivitiesView
2015-11-24 12:34:08 +00:00
yannick
97e6a2068d
remove some unected committed files.
2015-11-23 18:00:48 +00:00
yannick
b3cdff60e9
Merge roomDetailsViewController
...
Tapping on the room title view opens a dedicated viewcontroller.
It only updates the room name and the topic.
2015-11-23 17:41:32 +00:00
giomfo
fe4b61cc1b
RecentTableViewCell: Update
2015-11-20 18:42:07 +01:00
giomfo
10c4b5c10c
Prepare Messages screen.
...
Customize recents source and recent table cells
2015-11-20 18:14:15 +01:00
yannick
cbdd80436f
Add rageshake
2015-11-20 17:52:16 +01:00
yannick
a56171a9d9
The room settings were not refreshed after debackgrounding the application.
2015-11-20 17:42:29 +01:00
yannick
648a9c2188
-> use the storyboard to display the roomDetailsViewController.
...
-> the "Back" is removed from the back key in the navbar.
2015-11-20 17:07:45 +01:00
giomfo
2e26eb3c2e
Prepare Messages screen.
...
Remove all useless stuff: public rooms, unread count...
2015-11-20 15:55:35 +01:00
yannick
376c16c2bf
Dismiss the keyboard when the text edition is ended.
2015-11-20 15:20:15 +01:00
yannick
726efea874
Add the tableview line separators.
2015-11-20 15:06:48 +01:00
giomfo
2419450531
update Matrix Sessions handling.
2015-11-20 14:47:38 +01:00
yannick
03ac45c673
Plug the RoomDetailsViewController
...
But
-> the update is not yet done
-> the ui must be updated.
2015-11-20 14:12:37 +01:00
yannick
2d87c1b686
The typing events are now displayed at the screen bottom.
2015-11-18 15:59:04 +01:00
yannick
b63d07c32b
Add the vector ExtraInfoView
2015-11-18 14:42:25 +01:00
yannick
68709837d2
Add the typing notifications text building.
2015-11-18 09:38:55 +01:00
giomfo
ef28b58abb
Remove the TabBarController
2015-11-18 00:15:52 +01:00
giomfo
44bb147058
Prepare master update
2015-11-16 10:30:57 +01:00
giomfo
4a17e1944e
Memory warning handling.
...
Memory warnings are now handled by 'MXKRoomDataSourceManager' instance to reload unused data source.
It is not required to reload all matrix sessions on memory warning.
2015-10-30 18:09:02 +01:00
giomfo
2ba65cd4a2
Update Trace related to APNS token
2015-10-28 15:33:07 +01:00
giomfo
f0d63fa1d1
APNS handling: Bug fix: The APNS registration is forced ON on cold app restart.
...
Now the APNS registration is forced only at the first launch.
2015-10-28 15:24:56 +01:00
giomfo
d6befcacc4
Settings: Fix screen flickering on logout
2015-10-28 15:04:47 +01:00
giomfo
d5b8417c40
Login fallback: Fix SSLHandshake failure observed on iOS9 for cas.openmarket.com.
2015-10-28 14:47:38 +01:00
yannick
ae6c8db04e
Remove background management from Console
...
-> if the application is launched by a notification, do not clear the notifications list.
2015-10-26 17:57:08 +01:00
giomfo
4fdf0394f8
MediaPicker: use the new MXKMediaCollectionViewCell class.
2015-10-22 17:22:10 +02:00
giomfo
c698072630
AppDelegate: Ignore fake error, or connection cancellation error
2015-10-22 17:17:29 +02:00
giomfo
43070f2098
RecentListDataSource: report MXKPublicRoomTableViewCell change.
...
The 'focused' property has been renamed.
2015-10-22 13:08:15 +02:00
giomfo
aedec3aecc
RoomBubbleCellData: fix compilation failure
2015-10-21 10:36:03 +02:00
yannick
9a2e755ebe
report the background sync on push notifications.
2015-10-20 10:19:21 +02:00
giomfo
83f9d568f0
Event Formatter: report API change due to SYIOS-152 fix
2015-10-19 18:36:22 +02:00
yannick
dda37b1559
Read receipts should be displayed.
2015-10-14 16:29:31 +02:00
giomfo
cc4842d03c
Fix: A constraint cannot be made between a leading/trailing attribute and a right/left attribute. Use leading/trailing for both or neither.'
2015-10-01 10:36:22 +02:00
giomfo
759e8eb628
Authentication: prepare C-S auth API v2 support
2015-09-28 10:23:33 +02:00
giomfo
446828124c
Fix compilation warnings
2015-09-24 13:32:47 +02:00
giomfo
3eb1dd65c0
Update version of the pod dependencies
2015-09-24 11:53:56 +02:00
giomfo
912f15bc9e
EventFormatter: Fix local time zone handling
2015-09-18 15:59:07 +02:00
giomfo
2435944263
Chat screen: Bug Fix - Captured images are not attached
2015-09-16 19:11:49 +02:00
giomfo
57f757cab2
Chat screen: Bug Fix: App crashes when user taps on avatar
2015-09-15 09:36:23 +02:00
giomfo
b8e79500ba
Chat screen: disable menu (in nav bar) when user leaves the room
2015-09-11 15:58:08 +02:00
giomfo
1c0f6fc704
Room participants: bug fix - user is not able to leave
2015-09-11 15:48:07 +02:00
giomfo
332512773a
Finalize Room participants display
2015-09-11 15:43:24 +02:00
giomfo
4a5a7f8023
RoomParticipants: move some code and add comments
2015-09-11 13:51:33 +02:00
giomfo
0e799dd2dc
Display room members in Room Participants View Controller
2015-09-11 13:03:20 +02:00
giomfo
f23a5d3f92
RoomParticipant VC: remove default selection style to prevent artefact during table refresh.
2015-09-10 14:00:56 +02:00
giomfo
81e2c847dc
RoomParticipants viewController: Update header in participant section when aparticipant is removed
2015-09-10 13:47:37 +02:00
giomfo
89921f8f58
Add Room participants view controller
2015-09-10 12:09:23 +02:00
giomfo
9076672ea2
Chat screen: Hide sub menu if user tap on table view
2015-09-08 17:53:53 +02:00
giomfo
b816495ba2
MediaPickerViewController: improve video attavhmnet handling
2015-09-08 17:22:39 +02:00
giomfo
1f41a0ad91
MediaPickerViewController: Let MatrixKit RoomInputToolbar handle the image compression
2015-09-08 14:50:25 +02:00
giomfo
1a1acfe22c
Add file type icon (gif) on concerned bubbles
2015-09-07 12:55:55 +02:00
giomfo
166ab4aecf
MediaAssetCollection: update
2015-09-07 12:54:39 +02:00
giomfo
38c615ce46
RoomInputToolbarView: adjust layout
2015-09-07 12:51:55 +02:00
giomfo
9b60a01eea
Improve Media Picker: prompt user about image compression
2015-09-05 00:54:58 +02:00
giomfo
e9a8fdc429
Finalize media picker by handling full library picker
2015-09-03 18:47:11 +02:00
giomfo
d4d5915a52
Media picker: Add video icon on video in recents collection, Set label and button text (localized string).
2015-09-03 15:06:36 +02:00
giomfo
a737527519
MediaPicker: Fix issues:
...
- record audio with video
- fix video attachment from recents
- play recorded video
2015-09-03 14:17:08 +02:00
giomfo
fd37eba659
MediaPicker: First implementation of the carousel
2015-09-02 18:50:51 +02:00
giomfo
e79279415e
Display correctly the captured picture in case of device rotation.
2015-09-02 09:58:50 +02:00
giomfo
82abe20b3f
Bug Fix: app crashes when a media picker is presented for the second time
2015-09-02 09:52:16 +02:00
giomfo
708e6a589d
MediaPickerViewController: prepare image/video capture
2015-09-02 09:43:52 +02:00
giomfo
589d470c1f
Bug fix: The tabbar is hidden on Settings screen.
2015-08-28 22:54:31 +02:00
giomfo
a70d1cb69c
Media Picker: Finalize capture preview display
2015-08-28 18:34:08 +02:00
giomfo
993650d64f
Media Picker: prepare media picker view controller
2015-08-28 16:30:17 +02:00
giomfo
a5d3917f13
Chat screen: disable menu button if no room is selected
2015-08-27 11:31:17 +02:00
giomfo
a34135a3b3
Room participants screen: fix scrolling issue
2015-08-27 11:30:23 +02:00
giomfo
e0d4d056da
Chat screen: Trick on iOS 8 and later: the tabbar is hidden manually for the secondary viewcontrollers of the splitviewcontroller.
2015-08-26 19:04:30 +02:00
giomfo
451e6c3885
Turn on hidesBottomBarWhenPushed flag to hide tab bar during navigation. This flag has no effect in case of uisplitviewcontroller use (iOS 8 and later).
2015-08-26 17:50:02 +02:00
giomfo
e698428132
Fix warning ambiguous layout constraints
2015-08-26 17:09:03 +02:00
giomfo
af09647882
Chat screen: finalize menu list from navigation bar.
2015-08-26 13:25:35 +02:00
giomfo
fa5c03e5ab
Chat screen: Display date at the beginning of each pagination.
2015-08-25 20:14:07 +02:00
giomfo
064169f825
Remove some matrix.org occurrences.
2015-08-25 18:50:30 +02:00
giomfo
f010a3a319
Chat screen: animate toolbar (option menu).
2015-08-25 18:36:27 +02:00
giomfo
09dc7a3f97
Chat screen: update tool bar button handling
2015-08-25 15:42:19 +02:00
giomfo
b0c8df0acb
Use the console bundle id to be able to use the same ad hoc provisioning profile.
2015-08-25 11:43:25 +02:00
giomfo
6c6b42f873
RoomBubbleTableViewCell: show/hide message timestamp
2015-08-25 11:19:49 +02:00
giomfo
4cf5972bb6
Chat screen: Customize bubble cells
2015-08-21 20:00:39 +02:00
giomfo
a8454f8269
Add missing icon for recents tab in iOS7.
2015-08-20 13:36:42 +02:00
giomfo
d8caa26014
update IPHONEOS_DEPLOYMENT_TARGET = 7.0
2015-08-19 15:21:46 +02:00
giomfo
3c90a295a0
Add sanity check
2015-08-19 14:53:20 +02:00
giomfo
96c6606b22
Fix misplaced warning
2015-08-19 12:09:07 +02:00
giomfo
e516babe42
Chat input toolbar: enlarge button
2015-08-19 11:05:47 +02:00
giomfo
d63605ab0d
Chat screen: Finalize submenu handling
2015-08-19 10:45:45 +02:00
giomfo
22bac0e984
Chat screen: Add other option menu
2015-08-18 16:24:48 +02:00
giomfo
ef7b4dfe91
Chat screen: add send button
2015-08-18 10:51:28 +02:00
giomfo
e30bb8aad3
Prepare chat screen.
2015-08-18 10:04:30 +02:00
giomfo
d1c2f61d58
Code cleaning: remove useless methods
2015-08-17 19:15:58 +02:00
giomfo
759c37c2a3
New Chat screen: BugFix - Vector fails to open the new created room.
2015-08-17 13:42:33 +02:00
giomfo
f8ff8441d9
Take into account changes in MXKContactTableCell.
2015-08-17 11:35:14 +02:00
giomfo
3a32a9acfc
New Chat screen: Patch chat picture option
2015-08-14 18:39:42 +02:00
giomfo
9cade40b83
New Chat screens: Finalize layout. Fix search handling issue.
2015-08-14 17:50:47 +02:00
giomfo
44fc29a4cb
New Chat screens: implement participants selections.
2015-08-14 16:40:03 +02:00
giomfo
f260ad9d5f
Add first implementation of Room creation screens
2015-08-14 09:21:39 +02:00
giomfo
78d139dea5
Update Vector storyboard:
...
- remove home tab (add public rooms in recents).
- remove contacts tab
- clean settings
2015-08-12 09:32:45 +02:00
giomfo
16e2c58e3e
Code cleaning
2015-08-11 14:42:09 +02:00
giomfo
64f1954b3f
add temporary icons
2015-08-11 11:29:50 +02:00
giomfo
a32f1a7efe
Remove warnings
2015-08-11 09:43:50 +02:00
giomfo
99b66ef30d
remove useless file
2015-08-11 09:24:10 +02:00
giomfo
60fbaf3ffc
replace matrixConsole project with Vector Xcode project.
2015-08-10 16:58:31 +02:00