This adds proper support for a lot of image formats including SVGs. It will be the basis for many features to come. The technical core is an asynchronous renderer that can arrange textures in smaller tiles which might be generated on demand. Closes #34, #40, #41, #49 Basis for fixing the following issues #7, #27, #36, #43, #68, #71
110 lines
4.4 KiB
XML
110 lines
4.4 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="GtkSpinner" id="spinner">
|
|
<property name="halign">center</property>
|
|
<property name="valign">center</property>
|
|
<property name="spinning">True</property>
|
|
</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="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>
|
|
<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</property>
|
|
<property name="action-target">-90.0</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</property>
|
|
<property name="action-target">90.0</property>
|
|
<style>
|
|
<class name="flat" />
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</template>
|
|
</interface>
|