6a7e780d74
Summary: There are several reasons why I "re-wrote" the Glide effect: * it doesn't work correctly because it suffers from undesired perspective distortions: {F5914378} The worst part is that windows are distorted so much on multiple monitor setups that it's hard to say whether that's glide animation. * window close animation is not quite intuitive: if the close button is located at the top and I click it, I would expect that window is rotated around the bottom edge, not the top; (IMHO) * it's too much distracting when working on something for quite good amount of time: e.g. when editing photos, which involves a big number of different dialogs; * there are issues with deletion of QTimeLine; * windows are not gracefully released if some other effect grabs them; * its code doesn't follow common coding style in KWin. So, the "new" Glide effect is more subtle, it's possible to have different rotation edges for window open/close animations, it doesn't animate special windows(like audio volume feedback), the code is simpler and readable. Yet, there are some issues with QTimeLine, which are common to all effects in KWin anyway. ### Demos {F5889803} //Window Open Animation// {F5889804} //Window Close Animation// {F5889805, layout=center, size=full} //KCM// CCBUG: 394245 Test Plan: * Enabled the Glide effect * Closed System Settings * Opened it again Reviewers: #kwin, #plasma, #vdg, davidedmundson Reviewed By: #kwin, #plasma, #vdg, davidedmundson Subscribers: ngraham, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D13338
260 lines
7.2 KiB
XML
260 lines
7.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>GlideEffectConfig</class>
|
|
<widget class="QWidget" name="GlideEffectConfig">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>440</width>
|
|
<height>375</height>
|
|
</rect>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<layout class="QFormLayout" name="layout_Duration">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_Duration">
|
|
<property name="text">
|
|
<string>Duration:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QSpinBox" name="kcfg_Duration">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="specialValueText">
|
|
<string>Default</string>
|
|
</property>
|
|
<property name="suffix">
|
|
<string> milliseconds</string>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>9999</number>
|
|
</property>
|
|
<property name="singleStep">
|
|
<number>5</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="groupBox_InAnimation">
|
|
<property name="title">
|
|
<string>Window Open Animation</string>
|
|
</property>
|
|
<layout class="QFormLayout" name="formLayout">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_InRotationEdge">
|
|
<property name="text">
|
|
<string>Rotation edge:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="kcfg_InRotationEdge">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>Top</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Right</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Bottom</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Left</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QLabel" name="label_InRotationAngle">
|
|
<property name="text">
|
|
<string>Rotation angle:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="1">
|
|
<widget class="QSpinBox" name="kcfg_InRotationAngle">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="suffix">
|
|
<string/>
|
|
</property>
|
|
<property name="minimum">
|
|
<number>-360</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>360</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="0">
|
|
<widget class="QLabel" name="label_InDistance">
|
|
<property name="text">
|
|
<string>Distance:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="1">
|
|
<widget class="QSpinBox" name="kcfg_InDistance">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="minimum">
|
|
<number>-5000</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>5000</number>
|
|
</property>
|
|
<property name="singleStep">
|
|
<number>5</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="groupBox_OutAnimation">
|
|
<property name="title">
|
|
<string>Window Close Animation</string>
|
|
</property>
|
|
<layout class="QFormLayout" name="formLayout_2">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_OutRotationEdge">
|
|
<property name="text">
|
|
<string>Rotation edge:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="kcfg_OutRotationEdge">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>Top</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Right</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Bottom</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Left</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label_OutRotationAngle">
|
|
<property name="text">
|
|
<string>Rotation angle:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="label_OutDistance">
|
|
<property name="text">
|
|
<string>Distance:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QSpinBox" name="kcfg_OutRotationAngle">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="suffix">
|
|
<string/>
|
|
</property>
|
|
<property name="minimum">
|
|
<number>-360</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>360</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QSpinBox" name="kcfg_OutDistance">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="minimum">
|
|
<number>-5000</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>5000</number>
|
|
</property>
|
|
<property name="singleStep">
|
|
<number>5</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="verticalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Vertical</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>20</width>
|
|
<height>40</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|