Commit Graph

63 Commits

Author SHA1 Message Date
Rafostar
6315669933 Split app source file into two
This allows creating different app from the same source code.
2020-12-11 15:32:05 +01:00
Rafostar
c80f34f4ab Fix compatibility with dark themes. Fixes #23 2020-12-07 15:25:10 +01:00
Rafostar
f5e5071937 Support setting sliders brighter #13
When dark theme is used, sliders (especially progress on fullscreen) tend to look a little too dark (as if they were disabled). To overcome this, add an option to force them to be 20% brighter.
2020-11-21 15:20:09 +01:00
Rafostar
ac27c364f3 Add dark theme support #13 2020-11-20 17:37:41 +01:00
Rafostar
f660d900ba Performance: add option to disable window shadows
Rendering window shadows in GTK4 doubles GPU usage. This commit adds an option to disable them for performance gain (useful on low-end devices).
2020-11-13 19:26:49 +01:00
Rafostar
8bb6ce04ef Get initial dimensions only once 2020-11-09 17:56:38 +01:00
Rafostar
868c39f1cf Store and restore floating window size 2020-11-06 19:43:38 +01:00
Rafostar
eb1a495907 Reduce number of source files (cleanup) 2020-11-06 17:04:54 +01:00
Rafostar
de7a850cc2 Create gio settings only once 2020-11-04 15:05:16 +01:00
Rafostar
ff58713426 Add "Floating Window Mode"
A simple borderless window floating on desktop. Window can be resized and moved by dragging. It also has some minimalistic controls showing on top of the video when cursor is hovering over it.\n\n This was a feature originally requested by @zahid1905.
2020-11-03 17:40:19 +01:00
Rafostar
a019ef90ca Remember and restore last window dimensions on launch 2020-10-31 09:04:41 +01:00
Rafostar
ac06e84851 Open files via native file chooser 2020-10-26 21:25:13 +01:00
Rafostar
0b1864378b Add Clapper usage as GTK widget 2020-10-21 12:24:42 +02:00
Rafostar
0291377389 Major code cleanup 2020-10-20 22:30:15 +02:00
Rafostar
82840d5852 Start loading media after window is shown 2020-10-19 13:26:15 +02:00
Rafostar
b2e052d7a4 Do not show cursor on small movement 2020-10-16 22:11:54 +02:00
Rafostar
fa07c4532c Fix player process not exiting after window close 2020-10-15 17:54:28 +02:00
Rafostar
57a8e6d933 Add about dialog 2020-10-15 16:21:46 +02:00
Rafostar
ea8226f1d3 Restore seek on drop behavior 2020-10-14 16:45:09 +02:00
Rafostar
a20a0c8160 Grab player focus only when controls are not visible 2020-10-14 12:52:11 +02:00
Rafostar
1069f151f0 Restore automatic menu hiding 2020-10-14 10:57:43 +02:00
Rafostar
1f6a9b59d6 Restore button presses 2020-10-13 23:47:13 +02:00
Rafostar
3e96a13f00 Restore window dragging by drag on player 2020-10-13 20:32:59 +02:00
Rafostar
d3e4f3bb0f Add player motion and key controllers 2020-10-12 16:25:54 +02:00
Rafostar
43a54920ef Change elapsed time into button 2020-10-07 23:10:11 +02:00
Rafostar
352eff89b7 Fix volume button icon and window key events 2020-10-07 18:18:44 +02:00
Rafostar
041b31c161 Fix enter fullscreen and popover buttons 2020-10-07 16:40:42 +02:00
Rafostar
dbdb6988a2 Fix window "fullscreen-changed" signal 2020-10-06 12:04:28 +02:00
Rafostar
bae0b805ea Initial GTK4 port
Port most of the player to GTK4. Some things are still broken or disabled due to GTK change, but will be gradually fixed.
2020-10-05 21:19:29 +02:00
Rafostar
e7e9b9c07d Use virtual functions 2020-09-23 15:14:32 +02:00
Rafostar
ae766298a8 Lower CPU usage when OSD is visible 2020-09-16 18:24:31 +02:00
Rafostar
1c2a8a476e Move revealers logic to separate file 2020-09-16 13:26:30 +02:00
Rafostar
1918b30bea Cover whole video screen with top revealer
Previously top revealer was set to fixed size, which caused a noticable video tearing along the revealer edge during its animation. This commit removes fixed revealer size, which in turn casues the revealer to cover whole video screen (default behavior), thus eliminates the tearing. Since overlay now becomes the top widget, all player notify signals were reconnected to it.
2020-09-16 11:54:01 +02:00
Rafostar
73e7f1e2a0 Add top overlay with title and current hour
This adds Kodi-like semi-transparent overlay with current media title, hour and estimated time when video will end. The overlay is visible only on fullscreen mode.
2020-09-15 21:08:46 +02:00
Rafostar
234c49221e Enable scroll on volume button 2020-09-14 16:10:09 +02:00
Rafostar
c34df72f96 Drop all player signals on destroy 2020-09-13 17:20:07 +02:00
Rafostar
043fe9f75e Move Popover button creation to buttons.js 2020-09-12 21:10:44 +02:00
Rafostar
ed5d449142 Support for multiple media files
This enables support for starting media player with more than one file path specified. When a file playback finishes, next is loaded automatically.
2020-09-10 19:53:04 +02:00
Rafostar
e9ec155e7b Move fullscreen and menu buttons to header bar
Follow other GNOME apps designs by having fullscreen button on the right side of window header bar. The control panel had too many buttons already and we still need to make some space for playlist. This way "fullscreen" button will be on top bar while windowed and "unfullscreen" button will appear on the bottom right only when player entered fullscreen mode.
2020-09-10 14:24:02 +02:00
Rafostar
557cbc11e2 Use filename as title when media info doesn't have one 2020-09-10 11:34:50 +02:00
Rafostar
06914db0da Add header bar with media title and path 2020-09-10 10:26:20 +02:00
Rafostar
a9ac872c98 Do not hide controls in fullscreen while navigating it 2020-09-09 22:56:11 +02:00
Rafostar
ab11d52a68 Recreate volume button from scratch
Create volume button with popover instead of using GTK provided volume button.

Creating new button with only needed elements is more efficient then removing unneeded items from pre-made volume button. This should also increase performance a little when changing volume, because now we generate new icon only when a change is needed. In pre-made button icon is regenerated on each volume change.
2020-09-09 21:34:32 +02:00
Rafostar
edcc7b71b9 Add meson build system (#1)
Initial meson build system support. We do not create .desktop file yet, but we need an option to open media files from GUI first anyway.
2020-09-08 19:55:59 +02:00
Rafostar
649ff7682c Support loading files using full or relative paths 2020-09-08 08:58:43 +02:00
Rafostar
f5db250486 Load media after player is drawn
Loading file too early might lead to Xorg related crash. We must first make sure the player widget is fully drawn, before we start drawing video frames.
2020-09-06 12:18:37 +02:00
Rafostar
d8d342a956 Make everything on fullscreen bigger (TV mode) 2020-09-06 10:18:53 +02:00
Rafostar
7d2edec553 Show playback time and switch to dark mode when fullscreen 2020-09-05 13:49:44 +02:00
Rafostar
54bbcd2eb1 Make all interface buttons flat 2020-09-03 23:08:32 +02:00
Rafostar
e5e06336f3 Add slide animation for fullscreen controls 2020-09-03 21:17:43 +02:00