Merge branch 'work/plasmoidsCanIgnoreMargins'
This commit is contained in:
commit
6837f0355a
@ -25,6 +25,7 @@ T.BusyIndicator {
|
||||
padding: 0
|
||||
|
||||
contentItem: Item {
|
||||
id: baseItem
|
||||
/* implicitWidth and implicitHeight won't work unless they come
|
||||
* from a child of the contentItem. No idea why.
|
||||
*/
|
||||
@ -61,7 +62,7 @@ T.BusyIndicator {
|
||||
to: 360
|
||||
duration: 2000
|
||||
loops: Animation.Infinite
|
||||
running: visible
|
||||
running: control.running || baseItem.opacity > 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ T.ComboBox {
|
||||
delegate: ItemDelegate {
|
||||
width: control.popup.width
|
||||
text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
|
||||
highlighted: mouseArea.pressed ? listView.currentIndex == index : control.highlightedIndex == index
|
||||
highlighted: control.highlightedIndex == index
|
||||
property bool separatorVisible: false
|
||||
}
|
||||
|
||||
@ -51,113 +51,55 @@ T.ComboBox {
|
||||
elementId: "down-arrow"
|
||||
}
|
||||
|
||||
// contentItem: Label {
|
||||
// text: control.displayText
|
||||
// font: control.font
|
||||
// color: theme.buttonTextColor
|
||||
// horizontalAlignment: Text.AlignLeft
|
||||
// verticalAlignment: Text.AlignVCenter
|
||||
// elide: Text.ElideRight
|
||||
// }
|
||||
contentItem: MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton
|
||||
preventStealing: true
|
||||
property int indexUnderMouse: -1
|
||||
onWheel: {
|
||||
if (wheel.pixelDelta.y < 0 || wheel.angleDelta.y < 0) {
|
||||
control.currentIndex = Math.min(control.currentIndex + 1, delegateModel.count -1);
|
||||
} else {
|
||||
control.currentIndex = Math.max(control.currentIndex - 1, 0);
|
||||
}
|
||||
control.activated(control.currentIndex);
|
||||
contentItem: T.TextField {
|
||||
id: textField
|
||||
padding: 0
|
||||
anchors {
|
||||
fill:parent
|
||||
leftMargin: control.leftPadding
|
||||
rightMargin: control.rightPadding
|
||||
topMargin: control.topPadding
|
||||
bottomMargin: control.bottomPadding
|
||||
}
|
||||
onPressed: {
|
||||
indexUnderMouse = -1;
|
||||
listView.currentIndex = control.highlightedIndex
|
||||
control.down = true;
|
||||
control.pressed = true;
|
||||
control.popup.visible = !control.popup.visible;
|
||||
}
|
||||
onReleased: {
|
||||
if (!containsMouse) {
|
||||
control.down = false;
|
||||
control.pressed = false;
|
||||
control.popup.visible = false;
|
||||
}
|
||||
if (indexUnderMouse > -1) {
|
||||
control.currentIndex = indexUnderMouse;
|
||||
text: control.editable ? control.editText : control.displayText
|
||||
|
||||
enabled: control.editable
|
||||
autoScroll: control.editable
|
||||
|
||||
readOnly: control.down || !control.hasOwnProperty("editable") || !control.editable
|
||||
inputMethodHints: control.inputMethodHints
|
||||
validator: control.validator
|
||||
|
||||
// Work around Qt bug where NativeRendering breaks for non-integer scale factors
|
||||
// https://bugreports.qt.io/browse/QTBUG-70481
|
||||
renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering
|
||||
color: PlasmaCore.ColorScope.textColor
|
||||
selectionColor: Kirigami.Theme.highlightColor
|
||||
selectedTextColor: Kirigami.Theme.highlightedTextColor
|
||||
|
||||
selectByMouse: !Kirigami.Settings.tabletMode
|
||||
cursorDelegate: Kirigami.Settings.tabletMode ? mobileCursor : undefined
|
||||
|
||||
font: control.font
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
opacity: control.enabled ? 1 : 0.3
|
||||
onFocusChanged: {
|
||||
if (focus) {
|
||||
MobileTextSelection.MobileTextActionsToolBar.controlRoot = textField;
|
||||
}
|
||||
}
|
||||
onCanceled: {
|
||||
control.down = false;
|
||||
control.pressed = false;
|
||||
}
|
||||
onPositionChanged: {
|
||||
var pos = listView.mapFromItem(this, mouse.x, mouse.y);
|
||||
indexUnderMouse = listView.indexAt(pos.x, pos.y);
|
||||
listView.currentIndex = indexUnderMouse;
|
||||
controlRoot.activated(indexUnderMouse);
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: popup
|
||||
onClosed: {
|
||||
control.down = false;
|
||||
control.pressed = false;
|
||||
}
|
||||
}
|
||||
T.TextField {
|
||||
id: textField
|
||||
padding: 0
|
||||
anchors {
|
||||
fill:parent
|
||||
leftMargin: control.leftPadding
|
||||
rightMargin: control.rightPadding
|
||||
topMargin: control.topPadding
|
||||
bottomMargin: control.bottomPadding
|
||||
}
|
||||
text: control.editable ? control.editText : control.displayText
|
||||
|
||||
enabled: control.editable
|
||||
autoScroll: control.editable
|
||||
|
||||
readOnly: control.down || !control.hasOwnProperty("editable") || !control.editable
|
||||
inputMethodHints: control.inputMethodHints
|
||||
validator: control.validator
|
||||
|
||||
// Work around Qt bug where NativeRendering breaks for non-integer scale factors
|
||||
// https://bugreports.qt.io/browse/QTBUG-70481
|
||||
renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering
|
||||
color: PlasmaCore.ColorScope.textColor
|
||||
selectionColor: Kirigami.Theme.highlightColor
|
||||
selectedTextColor: Kirigami.Theme.highlightedTextColor
|
||||
|
||||
selectByMouse: !Kirigami.Settings.tabletMode
|
||||
cursorDelegate: Kirigami.Settings.tabletMode ? mobileCursor : undefined
|
||||
|
||||
font: control.font
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
opacity: control.enabled ? 1 : 0.3
|
||||
onFocusChanged: {
|
||||
if (focus) {
|
||||
MobileTextSelection.MobileTextActionsToolBar.controlRoot = textField;
|
||||
}
|
||||
}
|
||||
|
||||
onTextChanged: MobileTextSelection.MobileTextActionsToolBar.shouldBeVisible = false;
|
||||
onPressed: MobileTextSelection.MobileTextActionsToolBar.shouldBeVisible = true;
|
||||
|
||||
onPressAndHold: {
|
||||
if (!Kirigami.Settings.tabletMode) {
|
||||
return;
|
||||
}
|
||||
forceActiveFocus();
|
||||
cursorPosition = positionAt(event.x, event.y);
|
||||
selectWord();
|
||||
onTextChanged: MobileTextSelection.MobileTextActionsToolBar.shouldBeVisible = false;
|
||||
onPressed: MobileTextSelection.MobileTextActionsToolBar.shouldBeVisible = true;
|
||||
|
||||
onPressAndHold: {
|
||||
if (!Kirigami.Settings.tabletMode) {
|
||||
return;
|
||||
}
|
||||
forceActiveFocus();
|
||||
cursorPosition = positionAt(event.x, event.y);
|
||||
selectWord();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -421,10 +421,12 @@ Item {
|
||||
PlasmaComponents3.Label {
|
||||
id: listItemSubtitle
|
||||
|
||||
enabled: false
|
||||
visible: text.length > 0
|
||||
font: PlasmaCore.Theme.smallestFont
|
||||
|
||||
// Otherwise colored text can be hard to see
|
||||
opacity: color === PlasmaCore.Theme.textColor ? 0.7 : 1.0
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
textFormat: listItem.allowStyledText ? Text.StyledText : Text.PlainText
|
||||
|
@ -179,7 +179,7 @@ void FrameSvg::resizeFrame(const QSizeF &size)
|
||||
d->pendingFrameSize = size.toSize();
|
||||
|
||||
if (!d->repaintBlocked) {
|
||||
d->updateFrameData(FrameSvgPrivate::UpdateFrame);
|
||||
d->updateFrameData(Svg::d->lastModified, FrameSvgPrivate::UpdateFrame);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,6 +51,16 @@ public:
|
||||
Q_ENUM(Constraint)
|
||||
Q_DECLARE_FLAGS(Constraints, Constraint)
|
||||
|
||||
/**
|
||||
* This enumeration lists the various hints that an applet can pass to its
|
||||
* constraint regarding the way that it is represented
|
||||
*/
|
||||
enum ConstraintHints {
|
||||
NoHint = 0,
|
||||
CanFillArea = 1 /**< The applet can fill the area and ignore constraint margins*/
|
||||
};
|
||||
Q_ENUM(ConstraintHints)
|
||||
|
||||
/**
|
||||
* The FormFactor enumeration describes how a Plasma::Applet should arrange
|
||||
* itself. The value is derived from the container managing the Applet
|
||||
|
@ -605,6 +605,16 @@ bool AppletInterface::hideOnWindowDeactivate() const
|
||||
return m_hideOnDeactivate;
|
||||
}
|
||||
|
||||
void AppletInterface::setConstraintHints(Plasma::Types::ConstraintHints hints)
|
||||
{
|
||||
m_constraintHints = hints;
|
||||
}
|
||||
|
||||
Plasma::Types::ConstraintHints AppletInterface::constraintHints() const
|
||||
{
|
||||
return m_constraintHints;
|
||||
}
|
||||
|
||||
QKeySequence AppletInterface::globalShortcut() const
|
||||
{
|
||||
return applet()->globalShortcut();
|
||||
|
@ -239,6 +239,11 @@ class AppletInterface : public PlasmaQuick::AppletQuickItem
|
||||
|
||||
Q_PROPERTY(bool loading MEMBER m_loading NOTIFY isLoadingChanged)
|
||||
|
||||
/**
|
||||
* When false the plasmoid will ignore the margins when contained in a panel
|
||||
*/
|
||||
Q_PROPERTY(Plasma::Types::ConstraintHints constraintHints READ constraintHints WRITE setConstraintHints NOTIFY constraintHintsChanged)
|
||||
|
||||
/**
|
||||
* The metadata of the applet.
|
||||
* @since 5.73
|
||||
@ -410,6 +415,8 @@ public:
|
||||
|
||||
QString configurationRequiredReason() const;
|
||||
void setConfigurationRequiredReason(const QString &reason);
|
||||
Plasma::Types::ConstraintHints constraintHints() const;
|
||||
void setConstraintHints(Plasma::Types::ConstraintHints constraintHints);
|
||||
|
||||
KPluginMetaData metaData() const;
|
||||
|
||||
@ -458,6 +465,7 @@ Q_SIGNALS:
|
||||
void associatedApplicationUrlsChanged();
|
||||
void availableScreenRegionChanged();
|
||||
void availableScreenRectChanged();
|
||||
void constraintHintsChanged();
|
||||
|
||||
void userConfiguringChanged();
|
||||
void globalShortcutChanged();
|
||||
@ -508,6 +516,7 @@ private:
|
||||
friend class ContainmentInterface;
|
||||
//This is used by ContainmentInterface
|
||||
QPointF m_positionBeforeRemoval;
|
||||
Plasma::Types::ConstraintHints m_constraintHints = Plasma::Types::ConstraintHints::NoHint;
|
||||
};
|
||||
|
||||
QML_DECLARE_TYPEINFO(AppletInterface, QML_HAS_ATTACHED_PROPERTIES)
|
||||
|
Loading…
Reference in New Issue
Block a user