Commit Graph

681 Commits

Author SHA1 Message Date
John Preston
f0e18ac619 Add better unloading for ImageSource. 2018-11-04 15:51:38 +04:00
John Preston
8e7117fa22 Don't unload all media on switching between chats. 2018-11-04 15:51:38 +04:00
John Preston
f8eef7c9a6 Forget least used images gradually. 2018-11-04 15:51:37 +04:00
John Preston
595134cab5 Move image-related modules to ui/image/. 2018-11-04 15:51:37 +04:00
John Preston
8b76428c7e Create ImagePtr-s using a factory method. 2018-11-04 15:51:37 +04:00
John Preston
591fbf0ec6 Replace image source after photo sending. 2018-11-04 15:51:37 +04:00
John Preston
4b5b79e415 Use final Image with different Images::Source-s. 2018-11-04 15:51:37 +04:00
John Preston
5a50248055 Remove Image::toDelayedStorageImage downcaster. 2018-11-04 15:51:36 +04:00
John Preston
113f665295 Move Image and derived to ui/image. 2018-11-04 15:51:36 +04:00
John Preston
19e407532b Beta version 1.4.4: Fix emoji cache. 2018-10-17 16:04:13 +03:00
John Preston
54f2b1b2d8 Beta version 1.4.4: Fix emoji quality. 2018-10-17 14:43:17 +03:00
John Preston
5b4abe69aa Add interface scale (100%..150%) for Retina.
Fixes #69, fixes #3126, fixes #3789.
2018-10-16 23:00:55 +03:00
John Preston
f2866442d2 Fix location thumb image sizes 2018-10-16 17:32:12 +03:00
John Preston
19a9a990b6 Allow using any interface scale between 100%-300%. 2018-10-16 11:38:09 +03:00
John Preston
149639a53d Add and bundle @3x icons.
Also bundle only 1x, @2x, @3x and generate 125% and 150%.
2018-10-16 11:38:09 +03:00
John Preston
2812d2911f Remove media_volume icon, use volume slider. 2018-10-15 11:06:27 +03:00
John Preston
2b2b9c2f03 Check emoji cache signature asynchronously. 2018-10-15 09:04:07 +03:00
John Preston
b847c8424a Use single emoji sprite and scale + cache it. 2018-10-15 09:03:29 +03:00
John Preston
2444acb041 Fix image data forgetting.
In case image was almost loaded (loader was ready, but not destroyed yet),
forget() didn't do anything, leaving bytes and image inside loader untouched.

Now we check loader state in forget() so that bytes and image are passed to
Image instance before they're forgot from the memory. This will improve memory
clearing while scrolling through chats with images and switching between them.
2018-10-09 19:27:18 +03:00
John Preston
9f90d3a7fc Load maps using mtproto instead of google. 2018-10-09 19:27:18 +03:00
John Preston
be6e329e94 Don't switch chats on ctrl+shift+send (support). 2018-10-09 19:27:18 +03:00
John Preston
1b4f3a7529 Show short previews in templates (support). 2018-10-09 19:27:17 +03:00
John Preston
25cefc6eab Allow fix chats order and auto switch (support). 2018-10-09 19:27:16 +03:00
John Preston
f493d69bd2 Fix emoji button with disabled animations. 2018-09-27 23:41:49 +03:00
John Preston
9b85dd27ca Allow to choose one of four default themes. 2018-09-26 14:36:55 +03:00
John Preston
2e5a0e056c Move to std::optional. 2018-09-21 19:28:46 +03:00
John Preston
1ffbec0215 Finish animations disabling.
Replace some infinite animations with static layouts.
2018-09-20 21:26:10 +03:00
John Preston
3ba2a7931e Autosave bio in settings edit section. 2018-09-19 19:22:14 +03:00
John Preston
c2039da600 Improve new settings design. 2018-09-19 19:22:14 +03:00
John Preston
0c8709ca5f Replace App::self() with Auth().user().
Always have self Auth().user() when AuthSession exists.
2018-09-19 19:22:13 +03:00
John Preston
b8c2c3991f Implement chat settings section. 2018-09-19 19:22:13 +03:00
John Preston
8c1cc51c2e Move peer photo update from Messenger to ApiWrap. 2018-09-19 19:22:13 +03:00
John Preston
3f543347b8 Add language and scale settings. 2018-09-19 19:22:12 +03:00
John Preston
f0d092f126 Section dummies for new Settings. 2018-09-19 19:22:12 +03:00
John Preston
4b87363a20 Check value size before putting to cache db. 2018-09-04 22:37:22 +03:00
John Preston
069232ec1b Allow changing limits for cache in Settings. 2018-09-01 18:56:08 +03:00
John Preston
08ff324b1b Work with Cache::Database in LocalStorageBox. 2018-09-01 18:56:08 +03:00
John Preston
55f60866cb Set correct cache tags for different file types. 2018-09-01 18:56:08 +03:00
John Preston
e2f08d4161 Write uint8 tags to Database and count stats.
Also pass rvalues to Database where copies are required anyway.
2018-09-01 18:56:08 +03:00
John Preston
2e7f4c2f21 Use Storage::Cache::Database for file caching. 2018-09-01 18:56:08 +03:00
John Preston
64b8adb3d0 Isolate lib_base library. Use crl::time in getms. 2018-09-01 18:56:08 +03:00
John Preston
cb371f09ac Clear old versions of Storage::Cache::Database. 2018-09-01 18:56:08 +03:00
John Preston
9147c12687 Add basic implementation of Storage::Cache DB. 2018-09-01 18:56:08 +03:00
John Preston
51092fb6a9 Fix file references for faved stickers. 2018-09-01 18:56:08 +03:00
John Preston
557d363d02 Refresh file references when downloading files. 2018-08-20 17:26:28 +03:00
John Preston
839885910c Pass FileOrigin in all file downloads. 2018-08-20 17:26:28 +03:00
John Preston
ee16070abe Update API scheme to layer 86. 2018-08-20 17:26:27 +03:00
John Preston
fddc3d6ad9 Workaround MSVC 15.8 regressions. 2018-08-17 14:01:16 +03:00
John Preston
c8aa35d23c Don't show PopupMenu for inactive window on macOS.
This is a fixup for 06bf67c146.
2018-08-04 15:17:23 +03:00
John Preston
6796204126 Fix build for Xcode. 2018-08-02 17:46:50 +03:00
John Preston
06bf67c146 Don't show PopupMenu for inactive window on macOS.
On macOS context menu (right click) doesn't activate the window that was clicked.
- You can't  activate it yourself if some other application is active.
- It's hard to make menu work while window still is inactive (like macOS menus).
Because when you left-click anything after right click Qt makes the window
something-like-focused (it shows on top and receives input), but not really
(it still displays as inactive, cursor not blinking and all). Looks like Qt bug.
2018-08-01 20:14:55 +03:00
John Preston
41977bf515 Fix build for Xcode. 2018-07-31 22:56:02 +03:00
John Preston
ffd2817d18 Destroy InputField::Inner before InputField.
Inner has a pointer to parent and uses it assuming it is InputField.
If Inner lives longer than InputField (till ~QWidget) then in some
cases it accesses InputField as a (not completely) destroyed object.
2018-07-31 22:56:02 +03:00
John Preston
be043a4437 Remove BypassWindowManagerHint in MediaView / Passport.
It makes all kinds of usages buggy, including choose file dialog.

Fixes #4936.
I hope fixes #4950, I hope fixes #4955, I hope fixes #3553.
2018-07-31 22:55:30 +03:00
John Preston
54cd55523b Fix crash in markdown preprocessing. 2018-07-11 17:56:09 +03:00
John Preston
39b0d9e46f Handle the outdated app error in passport. 2018-07-11 17:56:08 +03:00
John Preston
e1fd43b2a4 Fix crash in text post processing.
Fixes #4948.
2018-07-11 17:56:06 +03:00
John Preston
165d1aacae Fix tilde formatting in InputField.
Regression was introduced somewhen while uniting input field classes.

Fixes #4829.
2018-06-28 16:07:53 +01:00
John Preston
d8897a0cc8 Make export done button adaptive to text. 2018-06-28 04:39:23 +01:00
John Preston
3b956c598b Fix data export window theme changing.
Fixes #4902.
2018-06-28 04:39:10 +01:00
John Preston
b7ab4fd086 Improve triple-backtick replacement. 2018-06-27 22:58:33 +01:00
John Preston
ff53404d5b Update API scheme to layer 82. 2018-06-27 22:58:32 +01:00
John Preston
fcd2e28abb Add some logs. 2018-06-24 15:44:53 +01:00
John Preston
ae18ece549 Ask export path with other export options. 2018-06-23 00:56:53 +01:00
John Preston
329db0d8e9 Export panel minimizes to a top bar, like a Call. 2018-06-20 01:02:36 +01:00
John Preston
df91b2bfeb Export settings layout ready. 2018-06-16 20:48:38 +01:00
John Preston
0a1a5ed70e Use abstract export writer for different formats. 2018-06-12 01:02:05 +03:00
John Preston
c587c011d2 Start data export in lib_export. 2018-06-12 01:02:04 +03:00
John Preston
2a110f0d3e Improve passport styles. 2018-06-08 22:26:08 +03:00
John Preston
dca6e10beb Fix markdown apply to text with emoji. 2018-06-07 22:00:46 +03:00
John Preston
122ab94f3d Fix text color glitch after palette update.
Once again fixes #4774.
2018-06-07 21:25:10 +03:00
John Preston
9ebeddbed8 Request, show and require accept for updated ToS. 2018-06-06 21:37:01 +03:00
John Preston
e47d110f28 Fix cascade popup menus in Linux.
Fixes #4749.
2018-06-06 14:29:40 +03:00
John Preston
777bf7d8d9 Fix video seeking.
Regression was introduced in d0e854e9d8.

Each time you hide() a widget its mousePress state is reset and
mouseMoveEvent() / mouseReleaseEvent() handlers are never called.

So you can't toggle (hide + show) widgets that are mouse-pressed.

Fixes #4802.
2018-06-06 11:58:07 +03:00
John Preston
dd81f5d59f Replace base::lambda with shorter term.
base::lambda -> Fn (type alias for std::function).
base::lambda_once -> FnMut (type alias for base::unique_function).
base::lambda_guarded -> crl::guard.
base::lambda_call_type_t -> crl::deduced_call_type.
2018-06-04 18:38:27 +03:00
John Preston
8d1cdea31a Update passport phrases. 2018-06-04 14:43:49 +03:00
John Preston
a29e8f9a06 Moved Passport panel code to Ui::SeparatePanel. 2018-06-03 23:16:38 +03:00
John Preston
ab5f35e952 Warn user about passport reset.
Also suggest country by phone number in passport.
2018-06-03 23:16:38 +03:00
John Preston
44b551898d New notifications API, defaults for users/chats. 2018-06-03 23:16:38 +03:00
John Preston
d6d942bc64 Change e-mail to email in langs. 2018-06-03 23:16:37 +03:00
John Preston
67ea175fc6 Show choose file box over the passport panel. 2018-06-03 23:16:37 +03:00
John Preston
9f6130cd20 Allow 2sv password setup in passport. 2018-06-03 23:16:37 +03:00
John Preston
f8b2e474b9 Validate passport values before saving. 2018-06-03 23:16:36 +03:00
John Preston
c20cf243db Improve phrases and icons in passport. 2018-06-03 23:16:35 +03:00
John Preston
9903546a2d Allow date edition in passport. 2018-06-03 23:16:35 +03:00
John Preston
e4e05a14b7 Allow selecting country in passport. 2018-06-03 23:16:35 +03:00
John Preston
d0e854e9d8 Allow showing boxes in passport panel. 2018-06-03 23:16:35 +03:00
John Preston
5cfead762d New design of the passport in a separate window. 2018-06-03 23:16:34 +03:00
John Preston
b4a2e84aa3 Fix palette update in InputField.
Fixes #4774.
2018-06-03 21:57:52 +03:00
Vitaly Lipatov
bffd852b4e remove obsoleted ui/effects/widget_slide_wrap.* (closes #4776) (#4777)
unused since commit c302219
2018-06-02 11:05:36 +03:00
John Preston
cf7a779689 Fix mixed markup sending. 2018-06-01 01:01:50 +03:00
John Preston
8edf4c8711 Alpha version 1.2.25: Fix build for Xcode. 2018-05-31 23:42:48 +03:00
John Preston
43d19920e0 Apply markdown only when sending the message. 2018-05-31 21:30:28 +03:00
John Preston
bfc748cd31 Pass modifiers inside InputField submitted signal.
Also use non-MOC connections for all InputFields.
Also use Ctrl/Cmd + Enter to submit fast share box.
Fixes #4769.
2018-05-31 15:20:28 +03:00
John Preston
0cbad9098e Active window on drop to InputField. 2018-05-31 13:35:14 +03:00
John Preston
5c5438c12e Add terms of service to the Intro. 2018-05-31 13:22:58 +03:00
John Preston
734c410879 New notifications API, defaults for users/chats. 2018-05-30 18:44:46 +03:00
John Preston
f334e2d0f4 Clear formatting at the start of the field. 2018-05-27 13:48:30 +03:00
John Preston
dfbe11efdb Fix editing of markup with links. 2018-05-27 13:48:04 +03:00
John Preston
7252e9b266 Apply max length limit to initial text. 2018-05-26 18:39:13 +03:00