Loupe/data/gtk/image_page.ui
Sophie Herold c42fe235c6 imagePage: Make crossfade from spinner work
It did not work before because the spinner page did
not take up the complete stack.

Also hiding the spinner when animating out of it
since it can be pretty dominant. Especially, since
it's usually not really shown before but the animation
starts emediately instead.

Closes #153

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/205>
2023-05-03 15:54:51 +00:00

121 lines
4.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<interface>
<menu id="image_menu">
<section>
<item>
<attribute name="label" translatable="yes">_Open With…</attribute>
<attribute name="action">win.open-with</attribute>
</item>
<!--<item>
<attribute name="label" translatable="yes">_Display On…</attribute>
<attribute name="action">win.display-on</attribute>
</item>-->
<item>
<attribute name="label" translatable="yes">_Print…</attribute>
<attribute name="action">win.print</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Copy</attribute>
<attribute name="action">win.copy</attribute>
</item>
</section>
<section>
<attribute name="label" translatable="yes">Rotate</attribute>
<attribute name="display-hint">inline-buttons</attribute>
<item>
<attribute name="custom">rotate-left</attribute>
</item>
<item>
<attribute name="custom">rotate-right</attribute>
</item>
</section>
<section>
<item>
<attribute name="label" translatable="yes">_Set as Background…</attribute>
<attribute name="action">win.set-background</attribute>
</item>
</section>
</menu>
<template class="LpImagePage" parent="AdwBin">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="child">
<object class="GtkStack" id="stack">
<property name="transition-type">crossfade</property>
<child>
<object class="AdwBin" id="spinner_page">
<property name="hexpand">true</property>
<property name="vexpand">true</property>
<child>
<object class="GtkSpinner" id="spinner">
<property name="height-request">24</property>
<property name="width-request">24</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="spinning">True</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwStatusPage" id="error_page">
<property name="icon-name">image-missing-symbolic</property>
<property name="title" translatable="yes">Could not Load Image</property>
<property name="description" bind-source="image" bind-property="error"/>
</object>
</child>
<child>
<object class="GtkBox" id="image_stack_page">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="propagate-natural-height">True</property>
<property name="propagate-natural-width">True</property>
<property name="child">
<object class="LpImage" id="image">
<child>
<object class="GtkGestureClick" id="right_click_gesture">
<property name="button">3</property>
</object>
</child>
<child>
<object class="GtkGestureLongPress" id="press_gesture">
<property name="touch-only">True</property>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkPopoverMenu" id="popover">
<property name="has-arrow">False</property>
<property name="menu-model">image_menu</property>
<child type="rotate-left">
<object class="GtkButton">
<property name="icon-name">object-rotate-left-symbolic</property>
<property name="tooltip-text" translatable="yes">Rotate Left</property>
<property name="action-name">win.rotate_ccw</property>
<style>
<class name="flat"/>
</style>
</object>
</child>
<child type="rotate-right">
<object class="GtkButton">
<property name="icon-name">object-rotate-right-symbolic</property>
<property name="tooltip-text" translatable="yes">Rotate Right</property>
<property name="action-name">win.rotate_cw</property>
<style>
<class name="flat"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</property>
</template>
</interface>