diff --git a/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.cpp b/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.cpp index 98a7d009..c4861d9f 100644 --- a/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.cpp +++ b/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.cpp @@ -28,10 +28,12 @@ #include #include #include +#include #include // standard issue margin/spacing static const int s_spacing = 4; +static const QSizeF s_preferredsize = QSizeF(290, 340); class KonsoleProfilesWidget : public QGraphicsWidget { @@ -171,7 +173,7 @@ KonsoleProfilesApplet::KonsoleProfilesApplet(QObject *parent, const QVariantList KGlobal::locale()->insertCatalog("konsoleprofiles"); setAspectRatioMode(Plasma::AspectRatioMode::IgnoreAspectRatio); setPopupIcon("utilities-terminal"); - setPreferredSize(290, 340); + setPreferredSize(s_preferredsize); m_konsoleprofileswidget = new KonsoleProfilesWidget(this); } @@ -190,5 +192,23 @@ QGraphicsWidget* KonsoleProfilesApplet::graphicsWidget() return m_konsoleprofileswidget; } +void KonsoleProfilesApplet::constraintsEvent(Plasma::Constraints constraints) +{ + if (constraints & Plasma::FormFactorConstraint) { + switch (formFactor()) { + case Plasma::FormFactor::Horizontal: + case Plasma::FormFactor::Vertical: { + const int paneliconsize = KIconLoader::global()->currentSize(KIconLoader::Panel); + setPreferredSize(QSizeF(paneliconsize, paneliconsize)); + break; + } + default: { + setPreferredSize(s_preferredsize); + break; + } + } + } +} + #include "moc_konsoleprofiles.cpp" #include "konsoleprofiles.moc" diff --git a/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.h b/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.h index 6d35ae6a..f52b661c 100644 --- a/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.h +++ b/kdeplasma-addons/applets/konsoleprofiles/konsoleprofiles.h @@ -35,6 +35,10 @@ public: // Plasma::PopupApplet reimplementation QGraphicsWidget* graphicsWidget() final; +protected: + // Plasma::Applet reimplementation + void constraintsEvent(Plasma::Constraints constraints) final; + private: friend KonsoleProfilesWidget; KonsoleProfilesWidget *m_konsoleprofileswidget;