Use filename as title when media info doesn't have one

This commit is contained in:
Rafostar
2020-09-10 11:34:50 +02:00
parent 3fb370e1d0
commit 557cbc11e2
2 changed files with 21 additions and 11 deletions

View File

@@ -102,9 +102,10 @@ var App = GObject.registerClass({
this.interface = new Interface(); this.interface = new Interface();
let headerBar = new Gtk.HeaderBar({ let headerBar = new Gtk.HeaderBar({
show_close_button: true title: APP_NAME,
show_close_button: true,
}); });
this.interface.addHeaderBar(headerBar); this.interface.addHeaderBar(headerBar, APP_NAME);
this.interface.controls.toggleFullscreenButton.connect( this.interface.controls.toggleFullscreenButton.connect(
'clicked', this._onInterfaceToggleFullscreenClicked.bind(this) 'clicked', this._onInterfaceToggleFullscreenClicked.bind(this)
); );

View File

@@ -2,7 +2,6 @@ const { GLib, GObject, Gtk, Gst, GstPlayer } = imports.gi;
const { Controls } = imports.clapper_src.controls; const { Controls } = imports.clapper_src.controls;
const Debug = imports.clapper_src.debug; const Debug = imports.clapper_src.debug;
const HOME_DIR = GLib.get_home_dir();
let { debug } = Debug; let { debug } = Debug;
var Interface = GObject.registerClass( var Interface = GObject.registerClass(
@@ -25,6 +24,7 @@ class ClapperInterface extends Gtk.Grid
this.needsTracksUpdate = true; this.needsTracksUpdate = true;
this.revealTime = 800; this.revealTime = 800;
this.headerBar = null; this.headerBar = null;
this.defaultTitle = null;
this.overlay = new Gtk.Overlay(); this.overlay = new Gtk.Overlay();
this.controls = new Controls(); this.controls = new Controls();
@@ -71,9 +71,10 @@ class ClapperInterface extends Gtk.Grid
this.overlay.add(this._player.widget); this.overlay.add(this._player.widget);
} }
addHeaderBar(headerBar) addHeaderBar(headerBar, defaultTitle)
{ {
this.headerBar = headerBar; this.headerBar = headerBar;
this.defaultTitle = defaultTitle || null;
} }
revealControls(isReveal) revealControls(isReveal)
@@ -198,17 +199,25 @@ class ClapperInterface extends Gtk.Grid
return; return;
let title = mediaInfo.get_title(); let title = mediaInfo.get_title();
let subtitle = mediaInfo.get_uri(); let subtitle = mediaInfo.get_uri() || null;
if(HOME_DIR && subtitle.startsWith('file://')) { if(subtitle.startsWith('file://')) {
subtitle = GLib.filename_from_uri(subtitle)[0]; subtitle = GLib.filename_from_uri(subtitle)[0];
subtitle = GLib.path_get_basename(subtitle);
if(subtitle.startsWith(HOME_DIR))
subtitle = '~' + subtitle.substring(HOME_DIR.length);
} }
this.headerBar.set_title(title || 'Clapper'); if(!title) {
this.headerBar.set_subtitle(subtitle || null); title = (!subtitle)
? this.defaultTitle
: (subtitle.includes('.'))
? subtitle.split('.').slice(0, -1).join('.')
: subtitle;
subtitle = null;
}
this.headerBar.set_title(title);
this.headerBar.set_subtitle(subtitle);
} }
_onTrackChangeRequested(self, trackType, trackId) _onTrackChangeRequested(self, trackType, trackId)