Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d3d44695a7 | |||
| 93c053c970 | |||
| 8fbecebf8b | |||
| bc6c0f6b33 | |||
| 5a033221e2 | |||
| e49362256d | |||
| 690f0f8e9a | |||
| b7c0307f6b | |||
| d1bb505e0a | |||
| 4a11ea5ad0 | |||
| af4fc2fb64 | |||
| 377e57ee43 | |||
| 345e7697ff | |||
| 7d474598e3 | |||
| 9b29f7b274 | |||
| 0a109bc886 | |||
| 9311f9974a | |||
| 08cd9dbe65 | |||
| 099adbab8c | |||
| 3d91ab1b35 | |||
| dce1c441a0 | |||
| cd4f32e7f2 | |||
| 79b3111fb0 | |||
| f3e3f920a5 | |||
| 84103229f1 | |||
| ccf68deff7 | |||
| 2b1edc715f | |||
| 4586494f8d | |||
| 188dcb4ef8 | |||
| 99958eabc9 | |||
| bcfd17a8ae | |||
| 420946d7d4 | |||
| 54fe825acf | |||
| 4ebfc12f0e | |||
| a1f8b73590 | |||
| d2e1f6f5d8 | |||
| 75b99e5820 | |||
| 6ba8bc550f | |||
| 21bd0f5832 | |||
| bfb8eac62d | |||
| 44fb332c62 | |||
| e976e05efe | |||
| a1e87e8994 | |||
| 8607bf15a9 | |||
| 5618c9016c | |||
|
|
ea71d96dd7 |
||
| 48b1d90fc8 | |||
| 37b8701361 | |||
| fac7a85566 | |||
| ff0eee8380 | |||
| e63a3f2d4d | |||
|
|
54717a3491 | ||
| 92737cd045 |
79 changed files with 5956 additions and 6355 deletions
10
.gitignore
vendored
10
.gitignore
vendored
|
|
@ -1,9 +1 @@
|
||||||
# Byte-compiled / optimized / DLL files
|
/mcg*
|
||||||
__pycache__/
|
|
||||||
*.py[cod]
|
|
||||||
*$py.class
|
|
||||||
|
|
||||||
# Files created by setuptools
|
|
||||||
build/
|
|
||||||
dist/
|
|
||||||
*.egg-info/
|
|
||||||
|
|
|
||||||
4
.mailmap
Normal file
4
.mailmap
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
Olli <olli@suruatoel.xyz> <olli@coderkun.de>
|
||||||
|
Olli <olli@suruatoel.xyz> coderkun <olli@coderkun.de>
|
||||||
|
Olli <olli@suruatoel.xyz> coderkun <olli@suruatoel.xyz>
|
||||||
|
Olli <olli@suruatoel.xyz> gotik <olli@coderkun.de>
|
||||||
22
CONTRIBUTING.md
Normal file
22
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
There are multiple ways to contribute code to this project:
|
||||||
|
|
||||||
|
* Submit a Pull Request on [https://codeberg.org/suruatoel/mcg](codeberg.org/suruatoel/mcg)
|
||||||
|
* Send a git pull request via eMail
|
||||||
|
* Send a patch via eMail
|
||||||
|
|
||||||
|
## Internationalization
|
||||||
|
|
||||||
|
Update `.pot` files:
|
||||||
|
|
||||||
|
$ xgettext --language=Go --keyword=T --from-code=UTF-8 --package-name=mcg --output=po/mcg-go.pot $(git ls-files '*.go')
|
||||||
|
$ xgettext --language=Glade --from-code=UTF-8 --output=po/mcg-ui.pot $(git ls-files '*.ui')
|
||||||
|
$ msgcat --use-first -o po/mcg.pot po/mcg-go.pot po/mcg-ui.pot
|
||||||
|
|
||||||
|
Use a tool like [Poedit](https://poedit.net/) to create or update translations in the `locale/` folder.
|
||||||
|
|
||||||
|
## AI Policy
|
||||||
|
|
||||||
|
This project uses a _No AI policy_. Any code you submit to this project has to be written by yourself. If you put this
|
||||||
|
project’s code into any AI tool, you will be banned from this project.
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
h1. Contributing
|
|
||||||
|
|
||||||
There are several ways to participate in this project. This guide covers only the contribution of code (i. e. any change to any file in the repository).
|
|
||||||
|
|
||||||
There are basically two ways to contribute code to this project: Either via GitLab or via e‑mail. The first one is probably easier for most people. However
|
|
||||||
it requires a account at GitLab.com. For people who don’t want to create an account—or have any other reason to not use GitLab—e‑mail is an alternative option.
|
|
||||||
|
|
||||||
h2. Contributing via GitLab
|
|
||||||
|
|
||||||
Create an account on GitLab.com or use your already existing account. Fork this repository inside GitLab, add changes to your fork and finally create a Merge Request to contribute your changes back to this repository.
|
|
||||||
|
|
||||||
h2. Contributing via E‑mail
|
|
||||||
|
|
||||||
To contribute via e‑mail, first clone this repository to your local harddrive. After adding changes to your local copy you have two options to send them back to this repository: as patch or as Pull Request
|
|
||||||
|
|
||||||
h3. E‑mail Patch
|
|
||||||
|
|
||||||
To send a patch with your changes, use git’s @send-email@ option as explained in "Public Project over Email":https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#_project_over_email of section "5.2 Distributed Git - Contributing to a Project":https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project of the "Git Pro Book":https://git-scm.com/book/en/v2/. You will find the e‑mail address at "suruatoel.xyz":https://www.suruatoel.xyz.
|
|
||||||
|
|
||||||
h3. E‑mail Pull Request
|
|
||||||
|
|
||||||
Sending a Pull Request via e‑mail requires to publish your copy of the repository (that includes your changes) at a publicly available URL (it is your responsibility to choose a trusted host). Then use git’s @request-pull@ command to send an e‑mail with your pull request. The e‑mail will contain a link to the public repository which can be used to pull your changes from. You will find the e‑mail address at "suruatoel.xyz":https://www.suruatoel.xyz. For more details, please take a look at "Forked Public Project":https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#_public_project of section "5.2 Distributed Git - Contributing to a Project":https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project of the "Git Pro Book":https://git-scm.com/book/en/v2.
|
|
||||||
2
LICENSE
2
LICENSE
|
|
@ -1,5 +1,5 @@
|
||||||
CoverGrid (mcg) is a client for the Music Player Daemon, focusing on albums instead of single tracks.
|
CoverGrid (mcg) is a client for the Music Player Daemon, focusing on albums instead of single tracks.
|
||||||
Copyright ® 2013 – 2017 coderkun <olli@suruatoel.xyz>
|
Copyright ® 2013 – 2026 Olli <olli@suruatoel.xyz>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
|
|
||||||
52
README.md
Normal file
52
README.md
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
# CoverGrid
|
||||||
|
|
||||||
|
CoverGrid (mcg) is a client for the [Music Player Daemon](http://www.musicpd.org) (MPD), focusing on albums instead of
|
||||||
|
single tracks. It is not intended to be a replacement for your favorite MPD client but an addition to get a better
|
||||||
|
album-experience.
|
||||||
|
|
||||||
|
Website: [https://www.suruatoel.xyz/codes/mcg](www.suruatoel.xyz/codes/mcg)
|
||||||
|
|
||||||
|
License: [GPL](http://www.gnu.org/licenses/gpl.html) v3
|
||||||
|
|
||||||
|
Dependencies:
|
||||||
|
|
||||||
|
* [GTK](http://www.gtk.org) 4 (>= 4.18)
|
||||||
|
* [libadwaita](https://gnome.pages.gitlab.gnome.org/libadwaita/) (>= 1.2)
|
||||||
|
* [go](https://go.dev/) (build only)
|
||||||
|
|
||||||
|
Additionally, an [MPD](http://www.musicpd.org) server (version >= 0.21.0) is required at runtime.
|
||||||
|
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
Build the application with _go_:
|
||||||
|
|
||||||
|
$ go build .
|
||||||
|
|
||||||
|
## Running
|
||||||
|
|
||||||
|
Run the application for testing purposes:
|
||||||
|
|
||||||
|
$ go run .
|
||||||
|
|
||||||
|
Run the application:
|
||||||
|
|
||||||
|
$ ./mcg
|
||||||
|
|
||||||
|
## Packaging
|
||||||
|
|
||||||
|
The suggested package name for this project is “mcg”. To build a production binary, please use the following command:
|
||||||
|
|
||||||
|
$ go build --ldflags="-s -w -X main.Version=$(git describe)" -trimpath ./...
|
||||||
|
|
||||||
|
In the “data/” folder you will find a `.desktop` file and an SVG icon.
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
@ -1,80 +0,0 @@
|
||||||
h1. CoverGrid
|
|
||||||
|
|
||||||
CoverGrid (mcg) is a client for the "Music Player Daemon":http://www.musicpd.org (MPD), focusing on albums instead of single tracks. It is not intended to be a replacement for your favorite MPD client but an addition to get a better album-experience.
|
|
||||||
|
|
||||||
Website: https://www.suruatoel.xyz/codes/mcg
|
|
||||||
|
|
||||||
License: "GPL":http://www.gnu.org/licenses/gpl.html v3
|
|
||||||
|
|
||||||
Dependencies:
|
|
||||||
|
|
||||||
* "Python":http://www.python.org 3
|
|
||||||
* "GTK":http://www.gtk.org 3 ("python-gobject":https://live.gnome.org/PyGObject)
|
|
||||||
* "Avahi":http://www.avahi.org (optional)
|
|
||||||
* "python-keyring":http://pypi.python.org/pypi/keyring (optional)
|
|
||||||
* "python-setuptools":https://pypi.python.org/pypi/setuptools (building)
|
|
||||||
|
|
||||||
|
|
||||||
h2. Building
|
|
||||||
|
|
||||||
Build the application with _setuptools_:
|
|
||||||
|
|
||||||
bc. $ python3 setup.py build
|
|
||||||
|
|
||||||
|
|
||||||
h2. Running/Testing
|
|
||||||
|
|
||||||
For testing the application and running it without (system-wide) installation, donwload/clone the code, build it as described above and then use _setuptools_ to install it for the current user:
|
|
||||||
|
|
||||||
bc. $ python3 setup.py develop --user
|
|
||||||
|
|
||||||
After that you can run it with
|
|
||||||
|
|
||||||
bc. $ ~/.local/bin/mcg
|
|
||||||
|
|
||||||
or if _~/.local/bin/_ is on your PATH
|
|
||||||
|
|
||||||
bc. $ mcg
|
|
||||||
|
|
||||||
|
|
||||||
h2. Installing
|
|
||||||
|
|
||||||
Install the application system-wide with _setuptools_:
|
|
||||||
|
|
||||||
bc. # python3 setup.py install
|
|
||||||
|
|
||||||
Note: _On Linux using the distribution’s package manager is the preferred way of installing applications system-wide._
|
|
||||||
|
|
||||||
|
|
||||||
h2. Packaging
|
|
||||||
|
|
||||||
Create a distribution package with _setuptools_:
|
|
||||||
|
|
||||||
bc. $ python3 setup.py sdist
|
|
||||||
|
|
||||||
|
|
||||||
h2. Cover/image configuration
|
|
||||||
|
|
||||||
Since MPD itself does not provide the cover/image/album art binaries, yet, _mcg_ has to look for them itself. In order to find the images a base folder has to be configured on the Connection tab as “Image Directory”. This value can either be a local (absolute) folder (e. g. /home/user/music/) or an http URL (e. g. http://localhost/music/). _mcg_ then adds the (relative) folder of the audio file to this paths and tries different names for the actual file:
|
|
||||||
|
|
||||||
# the album name
|
|
||||||
# “cover”
|
|
||||||
# “folder”
|
|
||||||
|
|
||||||
The following file extensions are used:
|
|
||||||
|
|
||||||
# png
|
|
||||||
# jpg
|
|
||||||
|
|
||||||
The first combination that results in an existing file is used as cover image. If no matching file exists, _mcg_ will try to traverse the directory for any image file as fallback—this is done for local paths only though, not for http URLs.
|
|
||||||
|
|
||||||
|
|
||||||
h2. Screenshots
|
|
||||||
|
|
||||||
!https://suruatoel.xyz/images/mcg-cover-s.png(CoverGrid\u2019s cover panel with album details and track list.)!
|
|
||||||
|
|
||||||
!https://suruatoel.xyz/images/mcg-playlist.png(CoverGrid\u2019s playlist panel with queued albums.)!
|
|
||||||
|
|
||||||
!https://suruatoel.xyz/images/mcg-library-m.png(CoverGrid\u2019s library panel showing the albums middle-sized.)!
|
|
||||||
|
|
||||||
!https://suruatoel.xyz/images/mcg-library-s.png(CoverGrid\u2019s library panel showing the albums small-sized.)!
|
|
||||||
43
data/data.go
Normal file
43
data/data.go
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
package data
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "embed"
|
||||||
|
"encoding/base64"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:embed ui/window.ui
|
||||||
|
var WindowXML string
|
||||||
|
|
||||||
|
//go:embed ui/shortcuts-dialog.ui
|
||||||
|
var ShortcutsDialogXML string
|
||||||
|
|
||||||
|
//go:embed ui/connection-panel.ui
|
||||||
|
var ConnectionPanelXML string
|
||||||
|
|
||||||
|
//go:embed ui/server-panel.ui
|
||||||
|
var ServerPanelXML string
|
||||||
|
|
||||||
|
//go:embed ui/cover-panel.ui
|
||||||
|
var CoverPanelXML string
|
||||||
|
|
||||||
|
//go:embed ui/playlist-panel.ui
|
||||||
|
var PlaylistPanelXML string
|
||||||
|
|
||||||
|
//go:embed ui/album-headerbar.ui
|
||||||
|
var AlbumHeaderbarXML string
|
||||||
|
|
||||||
|
//go:embed ui/library-panel.ui
|
||||||
|
var LibraryPanelXML string
|
||||||
|
|
||||||
|
//go:embed gtk.css
|
||||||
|
var MainCSS string
|
||||||
|
|
||||||
|
//go:embed noise-texture.png
|
||||||
|
var NoiseTexture []byte
|
||||||
|
|
||||||
|
func BuildMainCSS() string {
|
||||||
|
noiseTextureEncoded := "data:image/png;base64," + base64.StdEncoding.EncodeToString(NoiseTexture)
|
||||||
|
|
||||||
|
return strings.ReplaceAll(MainCSS, "@NOISETEXTURE@", noiseTextureEncoded)
|
||||||
|
}
|
||||||
47
data/gtk.css
47
data/gtk.css
|
|
@ -1,6 +1,18 @@
|
||||||
.bg-texture {
|
#content_stack {
|
||||||
box-shadow:inset 4px 4px 10px rgba(0,0,0,0.3);
|
box-shadow:inset 4px 4px 10px rgba(0,0,0,0.3);
|
||||||
background-image:url('noise-texture.png');
|
background-image:url("@NOISETEXTURE@");
|
||||||
|
}
|
||||||
|
|
||||||
|
#port_spinner {
|
||||||
|
background:none;
|
||||||
|
margin-top:-13px;
|
||||||
|
}
|
||||||
|
#port_spinner text {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#server_stack_sidebar {
|
||||||
|
background-color:alpha(@theme_bg_color, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-bg {
|
.no-bg {
|
||||||
|
|
@ -18,13 +30,13 @@
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
revealer.sidebar > * {
|
#cover_info_revealer {
|
||||||
background-color:alpha(@theme_bg_color, 0.8);
|
background-color:alpha(@theme_bg_color, 0.8);
|
||||||
box-shadow:0 0 10px @theme_bg_color;
|
box-shadow:0 0 10px @theme_bg_color;
|
||||||
margin-left:20px
|
margin-left:20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
revealer.sidebar scale mark indicator {
|
#cover_info_revealer scale mark indicator {
|
||||||
margin-right:5px;
|
margin-right:5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,24 +44,13 @@ actionbar {
|
||||||
background-color:@theme_unfocused_bg_color;
|
background-color:@theme_unfocused_bg_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Icon View in regular mode */
|
gridview child {
|
||||||
iconview.view:selected,
|
padding: 1px;
|
||||||
iconview.view:selected:focus {
|
|
||||||
background-color:@theme_selected_bg_color;
|
|
||||||
}
|
}
|
||||||
iconview.view:hover {
|
gridview.selection child {
|
||||||
-gtk-icon-effect:highlight;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
gridview.selection child:hover,
|
||||||
/* Icon View in selection mode */
|
gridview.selection child:selected {
|
||||||
iconview.view.selection {
|
opacity: 1;
|
||||||
-gtk-icon-effect:dim;
|
|
||||||
}
|
|
||||||
iconview.view.selection:selected,
|
|
||||||
iconview.view.selection:selected:focus {
|
|
||||||
background-color:@theme_selected_bg_color;
|
|
||||||
-gtk-icon-effect:highlight;
|
|
||||||
}
|
|
||||||
iconview.view.selection:hover {
|
|
||||||
-gtk-icon-effect:none;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Name=CoverGrid (mcg)
|
||||||
Comment=CoverGrid for the Music Player Daemon
|
Comment=CoverGrid for the Music Player Daemon
|
||||||
Keywords=mpd;
|
Keywords=mpd;
|
||||||
Type=Application
|
Type=Application
|
||||||
Icon=mcg.svg
|
Icon=xyz.suruatoel.mcg
|
||||||
Exec=mcg
|
Exec=mcg
|
||||||
Categories=AudioVideo;
|
Categories=AudioVideo;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
|
|
||||||
34
data/meson.build
Normal file
34
data/meson.build
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
i18n = import('i18n')
|
||||||
|
|
||||||
|
desktop_file = i18n.merge_file(
|
||||||
|
input: 'mcg.desktop',
|
||||||
|
output: 'mcg.desktop',
|
||||||
|
type: 'desktop',
|
||||||
|
po_dir: '../po',
|
||||||
|
install: true,
|
||||||
|
install_dir: join_paths(get_option('datadir'), 'applications')
|
||||||
|
)
|
||||||
|
|
||||||
|
desktop_utils = find_program('desktop-file-validate', required: false)
|
||||||
|
if desktop_utils.found()
|
||||||
|
test('Validate desktop file', desktop_utils,
|
||||||
|
args: [desktop_file]
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
|
||||||
|
gnome = import('gnome')
|
||||||
|
pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
|
||||||
|
|
||||||
|
gnome.compile_resources('mcg',
|
||||||
|
'xyz.suruatoel.mcg.gresource.xml',
|
||||||
|
gresource_bundle: true,
|
||||||
|
install: true,
|
||||||
|
install_dir: pkgdatadir,
|
||||||
|
)
|
||||||
|
|
||||||
|
install_data('xyz.suruatoel.mcg.gschema.xml',
|
||||||
|
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
|
||||||
|
)
|
||||||
|
gnome.compile_schemas(depend_files: files('xyz.suruatoel.mcg.gschema.xml'))
|
||||||
|
|
||||||
|
subdir('icons')
|
||||||
|
|
@ -1,61 +1,40 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.10"/>
|
<requires lib="gtk+" version="4.8"/>
|
||||||
<template class="McgAlbumHeaderbar" parent="GtkHeaderBar">
|
<requires lib="adw" version="1.2" />
|
||||||
<property name="visible">True</property>
|
<object id="McgAlbumHeaderbar" class="AdwBin">
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child type="title">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="standalone_title">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="label" translatable="yes">Title</property>
|
|
||||||
<property name="selectable">True</property>
|
|
||||||
<attributes>
|
|
||||||
<attribute name="weight" value="bold"/>
|
|
||||||
<attribute name="scale" value="1"/>
|
|
||||||
</attributes>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="standalone_artist">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="label" translatable="yes">Artist</property>
|
|
||||||
<property name="selectable">True</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkHeaderBar">
|
||||||
<property name="visible">True</property>
|
<child type="title">
|
||||||
<property name="can-focus">True</property>
|
<object class="GtkBox">
|
||||||
<property name="receives-default">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<signal name="clicked" handler="on_close_clicked" swapped="no"/>
|
<child>
|
||||||
|
<object class="GtkLabel" id="standalone_title">
|
||||||
|
<property name="selectable">True</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="weight" value="bold"/>
|
||||||
|
<attribute name="scale" value="1"/>
|
||||||
|
</attributes>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="standalone_artist">
|
||||||
|
<property name="selectable">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage">
|
<object id="close_button" class="GtkButton">
|
||||||
<property name="visible">True</property>
|
<property name="receives-default">True</property>
|
||||||
<property name="can-focus">False</property>
|
<child>
|
||||||
<property name="icon-name">go-previous-symbolic</property>
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">go-previous-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.12"/>
|
<requires lib="gtk+" version="4.8"/>
|
||||||
|
<requires lib="adw" version="1.2" />
|
||||||
<object class="GtkAdjustment" id="server-port-adjustment">
|
<object class="GtkAdjustment" id="server-port-adjustment">
|
||||||
<property name="lower">1024</property>
|
<property name="lower">1024</property>
|
||||||
<property name="upper">9999</property>
|
<property name="upper">9999</property>
|
||||||
|
|
@ -9,174 +9,58 @@
|
||||||
<property name="step-increment">1</property>
|
<property name="step-increment">1</property>
|
||||||
<property name="page-increment">100</property>
|
<property name="page-increment">100</property>
|
||||||
</object>
|
</object>
|
||||||
<template class="McgConnectionPanel" parent="GtkBox">
|
<object id="McgConnectionPanel" class="AdwBin">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="AdwStatusPage">
|
||||||
<property name="visible">True</property>
|
<property name="title">Connect to MPD</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
<child>
|
||||||
<!-- n-columns=3 n-rows=6 -->
|
<object class="GtkListBox">
|
||||||
<object class="GtkGrid">
|
<property name="hexpand">false</property>
|
||||||
<property name="width-request">500</property>
|
<property name="halign">center</property>
|
||||||
<property name="visible">True</property>
|
<property name="selection-mode">none</property>
|
||||||
<property name="can-focus">False</property>
|
<style>
|
||||||
<property name="column-spacing">5</property>
|
<class name="boxed-list"/>
|
||||||
<property name="row-homogeneous">True</property>
|
</style>
|
||||||
<property name="column-homogeneous">True</property>
|
<child>
|
||||||
|
<object class="AdwEntryRow" id="host_row">
|
||||||
|
<property name="title" translatable="yes">Host</property>
|
||||||
|
<property name="show-apply-button">true</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="can-focus">False</property>
|
<style>
|
||||||
|
<class name="header"/>
|
||||||
|
</style>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeView" id="zeroconf_list">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="label" translatable="yes">Port</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="halign">start</property>
|
||||||
<signal name="focus-out-event" handler="on_zeroconf_list_outfocused" swapped="no"/>
|
<property name="hexpand">false</property>
|
||||||
<child internal-child="selection">
|
<style>
|
||||||
<object class="GtkTreeSelection">
|
<class name="subtitle"/>
|
||||||
<signal name="changed" handler="on_service_selected" swapped="no"/>
|
</style>
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSeparator">
|
<object class="GtkSpinButton" id="port_spinner">
|
||||||
<property name="visible">True</property>
|
<property name="name">port_spinner</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="value">6600</property>
|
||||||
<property name="margin-start">5</property>
|
<property name="adjustment">server-port-adjustment</property>
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="left-attach">0</property>
|
|
||||||
<property name="top-attach">0</property>
|
|
||||||
<property name="height">6</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkEntry" id="host_entry">
|
<object class="AdwPasswordEntryRow" id="password_row">
|
||||||
<property name="visible">True</property>
|
<property name="title" translatable="yes">Password</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="show-apply-button">true</property>
|
||||||
<property name="text">localhost</property>
|
|
||||||
<property name="placeholder-text" translatable="yes">Enter hostname or IP address</property>
|
|
||||||
<signal name="focus-out-event" handler="on_host_entry_outfocused" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="left-attach">1</property>
|
|
||||||
<property name="top-attach">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkEntry" id="password_entry">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="visibility">False</property>
|
|
||||||
<property name="placeholder-text" translatable="yes">Enter password or leave blank</property>
|
|
||||||
<property name="input-purpose">password</property>
|
|
||||||
<signal name="focus-out-event" handler="on_password_entry_outfocused" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left-attach">1</property>
|
|
||||||
<property name="top-attach">5</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkSpinButton" id="port_spinner">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="text">6600</property>
|
|
||||||
<property name="input-purpose">number</property>
|
|
||||||
<property name="adjustment">server-port-adjustment</property>
|
|
||||||
<property name="value">6600</property>
|
|
||||||
<signal name="value-changed" handler="on_port_spinner_value_changed" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left-attach">1</property>
|
|
||||||
<property name="top-attach">3</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">Host:</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left-attach">1</property>
|
|
||||||
<property name="top-attach">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">Port:</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left-attach">1</property>
|
|
||||||
<property name="top-attach">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">Password:</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left-attach">1</property>
|
|
||||||
<property name="top-attach">4</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
||||||
|
|
@ -1,187 +1,153 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.22"/>
|
<requires lib="gtk+" version="4.8"/>
|
||||||
<template class="McgCoverPanel" parent="GtkOverlay">
|
<requires lib="adw" version="1.2" />
|
||||||
<property name="visible">True</property>
|
<object class="GtkBox" id="toolbar">
|
||||||
<property name="can-focus">False</property>
|
<property name="orientation">horizontal</property>
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="fullscreen_button">
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Show the cover in fullscreen mode</property>
|
||||||
|
<property name="action-name">win.toggle-fullscreen</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">view-fullscreen-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<object id="McgCoverPanel" class="GtkOverlay">
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkStack" id="cover_stack">
|
<object class="GtkStack" id="cover_stack">
|
||||||
<property name="visible">True</property>
|
<property name="visible-child">cover_default</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSpinner" id="cover_spinner">
|
<object class="GtkSpinner" id="cover_spinner">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
</child>
|
||||||
<property name="name">cover-spinner</property>
|
<child>
|
||||||
</packing>
|
<object class="GtkImage" id="cover_default">
|
||||||
|
<property name="icon-name">image-x-generic-symbolic</property>
|
||||||
|
<property name="icon-size">large</property>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="cover_scroll">
|
<object class="GtkScrolledWindow" id="cover_scroll">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="kinetic-scrolling">False</property>
|
<property name="kinetic-scrolling">False</property>
|
||||||
<property name="overlay-scrolling">False</property>
|
<property name="overlay-scrolling">False</property>
|
||||||
<signal name="size-allocate" handler="on_cover_size_allocate" swapped="no"/>
|
<property name="hexpand">true</property>
|
||||||
|
<property name="halign">fill</property>
|
||||||
|
<property name="vexpand">true</property>
|
||||||
|
<property name="valign">fill</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkViewport">
|
<object class="GtkViewport" id="cover_box">
|
||||||
<property name="visible">True</property>
|
<property name="name">cover_box</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="hexpand">true</property>
|
||||||
|
<property name="halign">fill</property>
|
||||||
|
<property name="vexpand">true</property>
|
||||||
|
<property name="valign">fill</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkEventBox" id="cover_box">
|
<object class="GtkImage" id="cover_image">
|
||||||
<property name="visible">True</property>
|
<property name="hexpand">true</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="halign">fill</property>
|
||||||
<signal name="button-press-event" handler="on_cover_box_pressed" swapped="no"/>
|
<property name="vexpand">true</property>
|
||||||
<child>
|
<property name="valign">fill</property>
|
||||||
<object class="GtkImage" id="cover_image">
|
<property name="icon-name">image-x-generic-symbolic</property>
|
||||||
<property name="visible">True</property>
|
<property name="icon-size">large</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon_size">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="name">cover-scroll</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="index">-1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child type="overlay">
|
<child type="overlay">
|
||||||
<object class="GtkRevealer" id="info_revealer">
|
<object class="GtkRevealer" id="info_revealer">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="transition-type">slide-right</property>
|
<property name="transition-type">slide-right</property>
|
||||||
|
<property name="name">cover_info_revealer</property>
|
||||||
|
<style>
|
||||||
|
<class name="background"/>
|
||||||
|
</style>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="cover_info_scroll">
|
<object class="GtkScrolledWindow" id="cover_info_scroll">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="vscrollbar-policy">never</property>
|
<property name="vscrollbar-policy">never</property>
|
||||||
<property name="max-content-width">200</property>
|
<property name="max-content-width">200</property>
|
||||||
<property name="propagate-natural-width">True</property>
|
<property name="propagate-natural-width">True</property>
|
||||||
|
<property name="name">cover_info_scroll</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkViewport">
|
<object class="GtkViewport">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="shadow-type">none</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">fill</property>
|
||||||
|
<property name="vexpand">true</property>
|
||||||
<property name="margin-start">5</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-end">5</property>
|
<property name="margin-end">5</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
<child>
|
||||||
<!-- n-columns=3 n-rows=3 -->
|
|
||||||
<object class="GtkGrid">
|
<object class="GtkGrid">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="margin-start">5</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="row-spacing">5</property>
|
<property name="row-spacing">5</property>
|
||||||
<property name="column-homogeneous">True</property>
|
<property name="column-homogeneous">True</property>
|
||||||
|
<style>
|
||||||
|
<class name="cover-labels"/>
|
||||||
|
</style>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="album_title_label">
|
<object class="GtkLabel" id="album_title_label">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="label">Album</property>
|
<property name="label">Album</property>
|
||||||
<property name="wrap">True</property>
|
<property name="wrap">True</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
|
<layout>
|
||||||
|
<property name="column">0</property>
|
||||||
|
<property name="row">0</property>
|
||||||
|
</layout>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="left-attach">0</property>
|
|
||||||
<property name="top-attach">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="album_date_label">
|
<object class="GtkLabel" id="album_date_label">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="label">Date</property>
|
<property name="label">Date</property>
|
||||||
<property name="wrap">True</property>
|
<property name="wrap">True</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
|
<layout>
|
||||||
|
<property name="column">0</property>
|
||||||
|
<property name="row">1</property>
|
||||||
|
</layout>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="left-attach">0</property>
|
|
||||||
<property name="top-attach">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="album_artist_label">
|
<object class="GtkLabel" id="album_artist_label">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="label">Artist</property>
|
<property name="label">Artist</property>
|
||||||
<property name="wrap">True</property>
|
<property name="wrap">True</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
|
<layout>
|
||||||
|
<property name="column">0</property>
|
||||||
|
<property name="row">2</property>
|
||||||
|
</layout>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="left-attach">0</property>
|
|
||||||
<property name="top-attach">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<style>
|
|
||||||
<class name="cover-labels"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="padding">10</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScale" id="songs_scale">
|
<object class="GtkScale" id="songs_scale">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">fill</property>
|
||||||
|
<property name="vexpand">true</property>
|
||||||
<property name="restrict-to-fill-level">False</property>
|
<property name="restrict-to-fill-level">False</property>
|
||||||
<property name="digits">0</property>
|
<property name="digits">0</property>
|
||||||
<property name="draw-value">False</property>
|
<property name="draw-value">False</property>
|
||||||
<signal name="button-press-event" handler="on_songs_start_change" swapped="no"/>
|
|
||||||
<signal name="button-release-event" handler="on_songs_change" swapped="no"/>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
@ -189,11 +155,7 @@
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<style>
|
|
||||||
<class name="sidebar"/>
|
|
||||||
<class name="background"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk+" version="3.10"/>
|
|
||||||
<template class="McgCoverToolbar" parent="GtkButtonBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="spacing">6</property>
|
|
||||||
<property name="layout-style">end</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="fullscreen_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<property name="tooltip-text" translatable="yes">Show the cover in fullscreen mode</property>
|
|
||||||
<property name="action-name">win.toggle-fullscreen</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon-name">view-fullscreen-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
<property name="non-homogeneous">True</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface>
|
|
||||||
<menu id="app-menu">
|
|
||||||
<section>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.connect</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Connect</attribute>
|
|
||||||
<attribute name="accel"><Primary>c</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.play</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Play</attribute>
|
|
||||||
<attribute name="accel"><Primary>p</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.clear-playlist</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Clear Playlist</attribute>
|
|
||||||
<attribute name="accel"><Primary>r</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.toggle-fullscreen</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Toggle Fullscreen</attribute>
|
|
||||||
<attribute name="accel">F11</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.search-library</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Search Library</attribute>
|
|
||||||
<attribute name="accel"><Primary>f</attribute>
|
|
||||||
</item>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.panel</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Connection</attribute>
|
|
||||||
<attribute name="target">0</attribute>
|
|
||||||
<attribute name="accel"><Primary>KP_1</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.panel</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Cover</attribute>
|
|
||||||
<attribute name="target">1</attribute>
|
|
||||||
<attribute name="accel"><Primary>KP_2</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.panel</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Playlist</attribute>
|
|
||||||
<attribute name="target">2</attribute>
|
|
||||||
<attribute name="accel"><Primary>KP_3</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.panel</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Library</attribute>
|
|
||||||
<attribute name="target">3</attribute>
|
|
||||||
<attribute name="accel"><Primary>KP_4</attribute>
|
|
||||||
</item>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">win.show-help-overlay</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
|
|
||||||
<attribute name="accel"><Primary>k</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">app.info</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Info</attribute>
|
|
||||||
<attribute name="accel"><Primary>i</attribute>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<attribute name="action">app.quit</attribute>
|
|
||||||
<attribute name="label" translatable="yes">Quit</attribute>
|
|
||||||
<attribute name="accel"><Primary>q</attribute>
|
|
||||||
</item>
|
|
||||||
</section>
|
|
||||||
</menu>
|
|
||||||
</interface>
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk+" version="3.10"/>
|
|
||||||
<template class="McgInfoDialog" parent="GtkAboutDialog">
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="resizable">False</property>
|
|
||||||
<property name="modal">True</property>
|
|
||||||
<property name="window-position">center</property>
|
|
||||||
<property name="type-hint">dialog</property>
|
|
||||||
<property name="gravity">center</property>
|
|
||||||
<property name="program-name">CoverGrid</property>
|
|
||||||
<property name="version">3.0.1</property>
|
|
||||||
<property name="comments" translatable="yes">CoverGrid is a client for the Music Player Daemon, focusing on albums instead of single tracks.</property>
|
|
||||||
<property name="website">http://www.suruatoel.xyz/codes/mcg</property>
|
|
||||||
<property name="logo-icon-name"/>
|
|
||||||
<property name="license-type">gpl-3-0</property>
|
|
||||||
<child internal-child="vbox">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">2</property>
|
|
||||||
<child internal-child="action_area">
|
|
||||||
<object class="GtkButtonBox">
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="layout-style">end</property>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
||||||
|
|
@ -1,303 +1,288 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.16"/>
|
<requires lib="gtk+" version="4.8"/>
|
||||||
<template class="McgLibraryPanel" parent="GtkStack">
|
<requires lib="adw" version="1.2" />
|
||||||
<property name="visible">True</property>
|
<object class="GtkAdjustment" id="grid_adjustment">
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="upper">1000</property>
|
||||||
|
<property name="value">150</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
<object class="GtkPopover" id="toolbar_popover">
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="transition-type">slide-left-right</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="panel_normal">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="halign">end</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSearchBar" id="filter_bar">
|
<object class="GtkScale" id="grid_scale">
|
||||||
|
<property name="width-request">350</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="app-paintable">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="adjustment">grid_adjustment</property>
|
||||||
<signal name="notify" handler="on_filter_bar_notify" swapped="no"/>
|
<property name="restrict-to-fill-level">False</property>
|
||||||
<child>
|
<property name="fill-level">-1</property>
|
||||||
<object class="GtkSearchEntry" id="filter_entry">
|
<property name="round-digits">0</property>
|
||||||
<property name="visible">True</property>
|
<property name="digits">0</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="has-origin">False</property>
|
||||||
<property name="primary-icon-name">edit-find-symbolic</property>
|
|
||||||
<property name="primary-icon-activatable">False</property>
|
|
||||||
<property name="primary-icon-sensitive">False</property>
|
|
||||||
<property name="placeholder-text" translatable="yes">search library</property>
|
|
||||||
<signal name="search-changed" handler="on_filter_entry_changed" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<placeholder/>
|
<object class="GtkButton" id="library-toolbar-update">
|
||||||
|
<property name="label" translatable="yes">update library</property>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkStack" id="stack">
|
<object class="GtkBox" id="library-toolbar-sort">
|
||||||
<property name="visible">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="transition-type">crossfade</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="progress_box">
|
<object class="GtkSeparator">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<child type="center">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child type="center">
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="halign">center</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">10</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage" id="progress_image">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon_size">6</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkProgressBar" id="progress_bar">
|
|
||||||
<property name="width-request">200</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="pulse-step">0</property>
|
|
||||||
<property name="show-text">True</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<placeholder/>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="name">page1</property>
|
|
||||||
<property name="title">page1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scroll">
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Sort</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="sort_artist">
|
||||||
|
<property name="label" translatable="yes">sort by artist</property>
|
||||||
|
<property name="receives-default">False</property>
|
||||||
|
<property name="group">sort_year</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="sort_title">
|
||||||
|
<property name="label" translatable="yes">sort by title</property>
|
||||||
|
<property name="receives-default">False</property>
|
||||||
|
<property name="group">sort_year</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="sort_year">
|
||||||
|
<property name="label" translatable="yes">sort by year</property>
|
||||||
|
<property name="receives-default">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="sort_modified">
|
||||||
|
<property name="label" translatable="yes">sort by modification</property>
|
||||||
|
<property name="receives-default">False</property>
|
||||||
|
<property name="group">sort_year</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="toolbar_sort_order_button">
|
||||||
|
<property name="label" translatable="yes">sort library descending</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<property name="receives-default">False</property>
|
||||||
<object class="GtkIconView" id="library_grid">
|
<property name="active">True</property>
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="margin">0</property>
|
|
||||||
<property name="item-orientation">horizontal</property>
|
|
||||||
<property name="row-spacing">0</property>
|
|
||||||
<property name="column-spacing">0</property>
|
|
||||||
<property name="tooltip-column">1</property>
|
|
||||||
<property name="item-padding">0</property>
|
|
||||||
<property name="activate-on-single-click">True</property>
|
|
||||||
<signal name="item-activated" handler="on_library_grid_clicked" swapped="no"/>
|
|
||||||
<signal name="selection-changed" handler="on_library_grid_selection_changed" swapped="no"/>
|
|
||||||
<signal name="size-allocate" handler="on_resize" swapped="no"/>
|
|
||||||
<style>
|
|
||||||
<class name="no-bg"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<style>
|
|
||||||
<class name="no-bg"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="name">page0</property>
|
|
||||||
<property name="title">page0</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkRevealer" id="actionbar_revealer">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="transition-type">none</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkActionBar" id="library-actionbar">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="label" translatable="yes">cancel</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<signal name="clicked" handler="on_selection_cancel_clicked" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="label" translatable="yes">queue</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<signal name="clicked" handler="on_selection_add_clicked" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">3</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
</child>
|
||||||
<property name="name">page0</property>
|
</object>
|
||||||
<property name="title">page0</property>
|
|
||||||
</packing>
|
<object class="GtkBox" id="toolbar">
|
||||||
|
<property name="orientation">horizontal</property>
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkToggleButton" id="toolbar_search_bar">
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Search the library</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">system-search-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="panel_standalone">
|
<object class="GtkToggleButton" id="select_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Select multiple albums</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkStack" id="standalone_stack">
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">object-select-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuButton">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Settings and actions</property>
|
||||||
|
<property name="popover">toolbar_popover</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="transition-type">crossfade</property>
|
<property name="icon-name">open-menu-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object id="McgLibraryPanel" class="AdwBin">
|
||||||
|
<child>
|
||||||
|
<object class="GtkStack" id="library_stack">
|
||||||
|
<property name="transition-type">slide-left-right</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="panel_normal">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSpinner" id="standalone_spinner">
|
<object class="GtkSearchBar" id="filter_bar">
|
||||||
<property name="visible">True</property>
|
<property name="search-mode-enabled" bind-source="toolbar_search_bar" bind-property="active" bind-flags="sync-create"/>
|
||||||
<property name="can-focus">False</property>
|
<child>
|
||||||
|
<object class="GtkSearchEntry" id="filter_entry">
|
||||||
|
<property name="placeholder-text" translatable="yes">search library</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="name">standalone-spinne</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="standalone_scroll">
|
<object class="GtkStack" id="stack">
|
||||||
<property name="visible">True</property>
|
<property name="transition-type">crossfade</property>
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="kinetic-scrolling">False</property>
|
|
||||||
<property name="overlay-scrolling">False</property>
|
|
||||||
<signal name="size-allocate" handler="on_standalone_scroll_size_allocate" swapped="no"/>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkViewport">
|
<object class="GtkBox" id="progress_box">
|
||||||
<property name="visible">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="valign">center</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="standalone_image">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="can-focus">False</property>
|
<child>
|
||||||
<property name="icon-name">gtk-missing-image</property>
|
<object class="GtkBox">
|
||||||
<property name="icon_size">6</property>
|
<property name="halign">center</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">10</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage" id="progress_image">
|
||||||
|
<property name="icon-size">large</property>
|
||||||
|
<property name="icon-name">image-x-generic-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkProgressBar" id="progress_bar">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="pulse-step">0</property>
|
||||||
|
<property name="show-text">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
<child>
|
||||||
<packing>
|
<object class="GtkScrolledWindow" id="scroll">
|
||||||
<property name="name">standalone-scroll</property>
|
<property name="vexpand">true</property>
|
||||||
<property name="position">1</property>
|
<child>
|
||||||
</packing>
|
<object class="GtkGridView" id="library_grid">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="single_click_activate">true</property>
|
||||||
|
<style>
|
||||||
|
<class name="no-bg"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<style>
|
||||||
|
<class name="no-bg"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkRevealer" id="actionbar_revealer">
|
||||||
|
<property name="transition-type">slide-up</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkActionBar" id="actionbar">
|
||||||
|
<child type="end">
|
||||||
|
<object class="GtkButton" id="selection_cancel_button">
|
||||||
|
<property name="label" translatable="yes">cancel</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="end">
|
||||||
|
<object class="GtkButton" id="selection_queue_button">
|
||||||
|
<property name="label" translatable="yes">queue</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="panel_standalone">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkStack" id="standalone_stack">
|
||||||
|
<property name="vexpand">true</property>
|
||||||
|
<property name="transition-type">crossfade</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSpinner" id="standalone_spinner">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScrolledWindow" id="standalone_scroll">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="kinetic-scrolling">False</property>
|
||||||
|
<property name="overlay-scrolling">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkViewport">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage" id="standalone_image">
|
||||||
|
<property name="icon-name">gtk-missing-image</property>
|
||||||
|
<property name="icon-size">large</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkActionBar" id="actionbar_standalone">
|
||||||
|
<child type="end">
|
||||||
|
<object class="GtkButton" id="standalone_play_button">
|
||||||
|
<property name="label" translatable="yes">play</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="end">
|
||||||
|
<object class="GtkButton" id="standalone_queue_button">
|
||||||
|
<property name="label" translatable="yes">queue</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkActionBar" id="library-standalone-actionbar">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="label" translatable="yes">queue</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<signal name="clicked" handler="on_standalone_queue_clicked" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="label" translatable="yes">play</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<signal name="clicked" handler="on_standalone_play_clicked" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="name">page1</property>
|
|
||||||
<property name="title">page1</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
||||||
|
|
@ -1,232 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk+" version="3.20"/>
|
|
||||||
<object class="GtkAdjustment" id="grid_adjustment">
|
|
||||||
<property name="lower">100</property>
|
|
||||||
<property name="upper">1000</property>
|
|
||||||
<property name="value">150</property>
|
|
||||||
<property name="step-increment">1</property>
|
|
||||||
<property name="page-increment">10</property>
|
|
||||||
</object>
|
|
||||||
<object class="GtkPopover" id="toolbar_popover">
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScale" id="grid_scale">
|
|
||||||
<property name="width-request">350</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="adjustment">grid_adjustment</property>
|
|
||||||
<property name="restrict-to-fill-level">False</property>
|
|
||||||
<property name="fill-level">-1</property>
|
|
||||||
<property name="round-digits">0</property>
|
|
||||||
<property name="digits">0</property>
|
|
||||||
<property name="has-origin">False</property>
|
|
||||||
<signal name="button-release-event" handler="on_grid_scale_changed" swapped="no"/>
|
|
||||||
<signal name="change-value" handler="on_grid_scale_change" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="library-toolbar-update">
|
|
||||||
<property name="label">gtk-refresh</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<property name="relief">none</property>
|
|
||||||
<property name="use-stock">True</property>
|
|
||||||
<signal name="clicked" handler="on_update_clicked" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox" id="library-toolbar-sort">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkSeparator">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="label" translatable="yes">Sort</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkRadioButton" id="sort_artist">
|
|
||||||
<property name="label" translatable="yes">sort by artist</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">False</property>
|
|
||||||
<property name="draw-indicator">True</property>
|
|
||||||
<property name="group">sort_year</property>
|
|
||||||
<signal name="toggled" handler="on_sort_toggled" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkRadioButton" id="sort_title">
|
|
||||||
<property name="label" translatable="yes">sort by title</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">False</property>
|
|
||||||
<property name="draw-indicator">True</property>
|
|
||||||
<property name="group">sort_year</property>
|
|
||||||
<signal name="toggled" handler="on_sort_toggled" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">3</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkRadioButton" id="sort_year">
|
|
||||||
<property name="label" translatable="yes">sort by year</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">False</property>
|
|
||||||
<property name="active">True</property>
|
|
||||||
<property name="draw-indicator">True</property>
|
|
||||||
<signal name="toggled" handler="on_sort_toggled" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">4</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkCheckButton" id="toolbar_sort_order_button">
|
|
||||||
<property name="label">gtk-sort-descending</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">False</property>
|
|
||||||
<property name="use-stock">True</property>
|
|
||||||
<property name="active">True</property>
|
|
||||||
<property name="draw-indicator">True</property>
|
|
||||||
<signal name="toggled" handler="on_sort_order_toggled" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">5</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<template class="McgLibraryToolbar" parent="GtkButtonBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="spacing">6</property>
|
|
||||||
<property name="layout-style">end</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkToggleButton" id="toolbar_search_bar">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<property name="tooltip-text" translatable="yes">Search the library</property>
|
|
||||||
<signal name="toggled" handler="on_search_toggled" swapped="no"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon-name">system-search-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<accelerator key="f" signal="activate" modifiers="GDK_CONTROL_MASK"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
<property name="non-homogeneous">True</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkToggleButton" id="select_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<property name="tooltip-text" translatable="yes">Select multiple albums</property>
|
|
||||||
<signal name="toggled" handler="on_select_toggled" swapped="no"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon-name">object-select-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
<property name="non-homogeneous">True</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuButton">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<property name="tooltip-text" translatable="yes">Settings and actions</property>
|
|
||||||
<property name="popover">toolbar_popover</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon-name">open-menu-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">False</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
<property name="non-homogeneous">True</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
||||||
|
|
@ -1,194 +1,140 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.38.2 -->
|
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.16"/>
|
<requires lib="gtk+" version="4.8"/>
|
||||||
<template class="McgPlaylistPanel" parent="GtkStack">
|
<requires lib="adw" version="1.2" />
|
||||||
<property name="visible">True</property>
|
<object class="GtkBox" id="toolbar">
|
||||||
<property name="can-focus">False</property>
|
<property name="orientation">horizontal</property>
|
||||||
<property name="transition-type">slide-left-right</property>
|
<property name="halign">end</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="panel_normal">
|
<object class="GtkToggleButton" id="select_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Select multiple albums</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow">
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">object-select-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="playlist_clear_button">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Clear the playlist</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="can-focus">False</property>
|
||||||
|
<property name="icon-name">edit-clear</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<object id="McgPlaylistPanel" class="AdwBin">
|
||||||
|
<child>
|
||||||
|
<object class="GtkStack" id="playlist_stack">
|
||||||
|
<property name="transition-type">slide-left-right</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="panel_normal">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkIconView" id="playlist_grid">
|
<object class="GtkScrolledWindow">
|
||||||
<property name="visible">True</property>
|
<property name="vexpand">true</property>
|
||||||
<property name="can-focus">True</property>
|
<child>
|
||||||
<property name="margin">0</property>
|
<object class="GtkGridView" id="playlist_grid">
|
||||||
<property name="item-orientation">horizontal</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="row-spacing">0</property>
|
<property name="single-click-activate">true</property>
|
||||||
<property name="column-spacing">0</property>
|
<style>
|
||||||
<property name="tooltip-column">1</property>
|
<class name="no-bg"/>
|
||||||
<property name="item-padding">0</property>
|
</style>
|
||||||
<property name="activate-on-single-click">True</property>
|
</object>
|
||||||
<signal name="item-activated" handler="on_playlist_grid_clicked" swapped="no"/>
|
</child>
|
||||||
<signal name="selection-changed" handler="on_playlist_grid_selection_changed" swapped="no"/>
|
|
||||||
<style>
|
<style>
|
||||||
<class name="no-bg"/>
|
<class name="no-bg"/>
|
||||||
</style>
|
</style>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<style>
|
|
||||||
<class name="no-bg"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkRevealer" id="actionbar_revealer">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="transition-type">slide-up</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkActionBar" id="actionbar">
|
<object class="GtkRevealer" id="actionbar_revealer">
|
||||||
<property name="visible">True</property>
|
<property name="transition-type">slide-up</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkActionBar" id="actionbar">
|
||||||
<property name="label" translatable="yes">cancel</property>
|
<child type="end">
|
||||||
<property name="visible">True</property>
|
<object class="GtkButton" id="selection_cancel_button">
|
||||||
<property name="can-focus">True</property>
|
<property name="label" translatable="yes">cancel</property>
|
||||||
<property name="receives-default">True</property>
|
<property name="receives-default">True</property>
|
||||||
<signal name="clicked" handler="on_selection_cancel_clicked" swapped="no"/>
|
</object>
|
||||||
</object>
|
</child>
|
||||||
<packing>
|
<child type="end">
|
||||||
<property name="pack-type">end</property>
|
<object class="GtkButton" id="selection_remove_button">
|
||||||
<property name="position">1</property>
|
<property name="label" translatable="yes">remove</property>
|
||||||
</packing>
|
<property name="receives-default">True</property>
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton">
|
|
||||||
<property name="label" translatable="yes">remove</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="receives-default">True</property>
|
|
||||||
<signal name="clicked" handler="on_selection_remove_clicked" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="name">page2</property>
|
|
||||||
<property name="title">page2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox" id="panel_standalone">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkStack" id="standalone_stack">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkSpinner" id="standalone_spinner">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="name">standalone-spinne</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow" id="standalone_scroll">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">True</property>
|
|
||||||
<property name="kinetic-scrolling">False</property>
|
|
||||||
<property name="overlay-scrolling">False</property>
|
|
||||||
<signal name="size-allocate" handler="on_standalone_scroll_size_allocate" swapped="no"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkViewport">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage" id="standalone_image">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<property name="icon-name">gtk-missing-image</property>
|
|
||||||
<property name="icon_size">6</property>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="name">standalone-scroll</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkActionBar" id="actionbar_standalone">
|
<object class="GtkBox" id="panel_standalone">
|
||||||
<property name="visible">True</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="can-focus">False</property>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkStack" id="standalone_stack">
|
||||||
<property name="label" translatable="yes">remove</property>
|
<property name="vexpand">true</property>
|
||||||
<property name="visible">True</property>
|
<child>
|
||||||
<property name="can-focus">True</property>
|
<object class="GtkSpinner" id="standalone_spinner">
|
||||||
<property name="receives-default">True</property>
|
<property name="visible">True</property>
|
||||||
<signal name="clicked" handler="on_standalone_remove_clicked" swapped="no"/>
|
<property name="can-focus">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScrolledWindow" id="standalone_scroll">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="kinetic-scrolling">False</property>
|
||||||
|
<property name="overlay-scrolling">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkViewport">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage" id="standalone_image">
|
||||||
|
<property name="icon-name">gtk-missing-image</property>
|
||||||
|
<property name="icon-size">large</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkActionBar" id="actionbar_standalone">
|
||||||
<property name="label" translatable="yes">play</property>
|
<child type="end">
|
||||||
<property name="visible">True</property>
|
<object class="GtkButton" id="standalone_play_button">
|
||||||
<property name="can-focus">True</property>
|
<property name="label" translatable="yes">play</property>
|
||||||
<property name="receives-default">True</property>
|
<property name="receives-default">True</property>
|
||||||
<signal name="clicked" handler="on_standalone_play_clicked" swapped="no"/>
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="end">
|
||||||
|
<object class="GtkButton" id="standalone_remove_button">
|
||||||
|
<property name="label" translatable="yes">remove</property>
|
||||||
|
<property name="receives-default">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
|
||||||
<property name="name">page1</property>
|
|
||||||
<property name="title">page1</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</template>
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue