1. 10 Nov, 2019 1 commit
  2. 06 Jun, 2019 1 commit
    • Roman Gilg's avatar
      [decorations] Let KDecoration plugins recommend a border size per default · d51b8dc0
      Roman Gilg authored
      Summary:
      This is an alternative solution to T8707 and in comparision to D13276 a less
      drastic change to KWin's default behavior.
      
      Instead of changing the border size default for all KDecoration plugins by
      switching the default from border size Normal to None introduce new
      functionality, which allows a KDecoration plugin to recommend a border size in
      its metadata. By default KWin listens for these recommendations and sets the
      border size accordingly.
      
      If there is no metadata recommending a border size, KWin falls back to the
      current setting of Normal sized borders.
      
      A user is able to override the recommendations from the KCM, which has been
      extended accordingly.
      
      Test Plan: Manually with adjusted metadata of Breeze.
      
      Reviewers: #kwin, #plasma, #vdg, ngraham
      
      Reviewed By: #vdg, ngraham
      
      Subscribers: hpereiradacosta, filipf, anemeth, davidedmundson, abetts, graesslin, ngraham, zzag, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T8707
      
      Differential Revision: https://phabricator.kde.org/D13284
      d51b8dc0
  3. 10 Feb, 2019 1 commit
    • Valerio Pilo's avatar
      [kcmkwin/kwindecoration] Rewrite the KWin decorations settings as a ConfigModule · 8350c0f2
      Valerio Pilo authored
      Summary:
      * Wrote new KCM based on KQuickAddons::ConfigModule.
      * Remade QMLs for Buttons and Themes tabs.
      * Updated bridge model code for new plugin lookup API (fixes warnings).
      * Fixed decoration shadow changing messing with the previews sizes.
      * Fixed button drag and drop issues (see D18104).
      * Fixed default settings button behavior and detection of settings changes.
      * Updated Get Hot New Stuff.
      * Removed apply button in previewbridge.cpp: After applying changes, a theme's KCModule is invalidated.
      
      BUG: 389431
      BUG: 350122
      BUG: 346222
      BUG: 342816
      BUG: 397595
      
      {F6574963} | {F6574962} | {F6574961} | {F6574960}
      
      Test Plan:
      * Verified saving and loading for every setting
      * Checked shadows of Breeze and Oxygen
      * Tested all possible drag&drop operations on both sides of the fake titlebar
      * Changed color schemes (with `kcmshell5 colors`) while showing the Themes tab to see if all previews update correctly their palettes
      * Tested on a fresh Neon-developer account, via kcmshell and systemsettings
      
      Reviewers: #vdg, abetts, ngraham, #kwin, davidedmundson
      
      Reviewed By: #vdg, #kwin, davidedmundson
      
      Subscribers: zzag, GB_2, ngraham, broulik, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D18458
      8350c0f2
  4. 05 Dec, 2014 2 commits
    • Martin Flöser's avatar
      [kcmkwin/deco] Add configuration for decoration plugin/themes · 7da6d3a4
      Martin Flöser authored
      This brings back the configuration for decoration plugins. As a change
      to the old variant the configure button is moved into the list view
      together with the preview. It is enabled/disabled depending on data
      provided by the DecorationModel. For a plugin the DecorationModel
      queries for a boolean "kcmodule" key in the metadata. For a theme it
      invokes the slot hasConfiguration with the theme name which returns
      whether the theme provides configuration.
      
      The actual opening of the configuration is triggered from the
      PreviewBridge, which uses the existing KPluginFactory to load the
      KCModule. The decoration plugin must provide the keyword "kcmodule"
      for it.
      
      So far Aurorae is adjusted and provides configuration for the Plastik
      decoration. The interaction with the configuration module works, but
      the configuration itself for Plastik seems to be currently broken.
      7da6d3a4
    • Martin Flöser's avatar
      [kcmkwin/deco] Bring back KNewStuff support · 2034e7e8
      Martin Flöser authored
      KNewStuff is no longer hard-coded to Aurorae themes. Instead the
      availability of KNewStuff is derived from the available plugin
      metadata. If the section org.kde.kdecoration2 contains a key
      "KNewStuff" it's value is interpreted as the knsrc config file name.
      If there is at least one plugin with such a key KNS gets enabled.
      
      If there are multiple plugins providing KNS support the download
      button is turned into a button with a connected menu and each menu
      entry points to one of the available resources. Of course this is
      not optimal, but KNS doesn't allow the combining of multiple config
      files.
      2034e7e8
  5. 31 Oct, 2014 1 commit
    • Martin Flöser's avatar
      [kcmkwin/kwindecoration] Import a new decoration configuration module · 8dd0a816
      Martin Flöser authored
      Following features are supported:
      * finds all plugins
      ** finds all themes for a theme-engine plugin
      * renders previews for the plugin/themes
      * loads currently used plugin/theme
      * saves selected plugin/theme
      * triggers config reload in KWin
      
      Following features are currently not supported:
      * Search
      * Plugin configuration
      * GHNS
      * Button configuration
      8dd0a816
  6. 10 Jun, 2014 1 commit
    • Martin Flöser's avatar
      [kcmkwin/deco] Support loading translations for UI loaded configs · d0c83ddb
      Martin Flöser authored
      Qml based Aurorae themes can provided a ui file which gets loaded at
      runtime. Obviously such a ui file is not translated. This introduces
      quite a hack to load the translated strings.
      
      First of all a new property is added to the service file for
      specifying the translation domain to be used for the config UI. If
      such a translation domain is set we extract all string properties of
      the loaded UI and pass them through ki18nd.
      d0c83ddb
  7. 28 Apr, 2014 1 commit
  8. 18 Mar, 2014 1 commit
  9. 17 Mar, 2014 2 commits
    • Aleix Pol Gonzalez's avatar
      Remove KDE/ prefix in include directories · c72e519d
      Aleix Pol Gonzalez authored
      It's unneeded and deprecated since KF5.
      c72e519d
    • Martin Flöser's avatar
      [kwin] Use KPluginTrader and json metadata to find KDecorations · f74df284
      Martin Flöser authored
      * A KDecoration needs to include json metadata
      * A KDecoration needs to be installed to kwin/kdecorations
      * Aurorae and Oxygen adjusted
      * kcmdeco locates all decorations through the KPluginTrader
      * libkdecoration uses KPluginTrader to find the plugin
      * config plugins also need to include json metadata with
        X-KDE-PluginInfo-Name being the same as the decoration
      * config plugins need to get installed to kwin/kdecorations/config
      * kcmdeco locates the config plugin for a deco through the name
        and KPluginTrader
      
      REVIEW: 116765
      f74df284
  10. 11 Mar, 2014 1 commit
  11. 03 Mar, 2014 1 commit
    • Martin Flöser's avatar
      Use KPluginLoader to load our decoration plugins · b3d3c451
      Martin Flöser authored
      This simplifies the plugin loading. Decorations just have to use
      K_PLUGIN_FACTORY to specify how the KDecorationFactory needs to be
      created. The KWIN_DECORATION macro is adjusted to generate the
      boiler plate code, but it now needs to specify the name for the
      pluginfactory and the KDecorationFactory.
      
      This also transits the decoration abi version check to use
      K_EXPORT_PLUGIN_VERSION which also simplifies the loading.
      
      As a result the complete canLoad handling in DecorationPlugins is
      removed.
      
      REVIEW: 115930
      b3d3c451
  12. 03 Feb, 2014 1 commit
  13. 13 Dec, 2013 1 commit
  14. 14 Nov, 2013 5 commits
    • Martin Flöser's avatar
      [kcmdeco] Use new DecorationButton types for describing the buttons · 07294b49
      Martin Flöser authored
      Rather heavy change to get the kcm to no longer use the string based
      definition of the buttons on the left and right.
      07294b49
    • Martin Flöser's avatar
      [kcmdeco] Move KDecorationPreviewOptions into the Model · 3ea18be5
      Martin Flöser authored
      We need to have it around and not in the Preview widget to be able
      to update the options when the buttons change.
      3ea18be5
    • Martin Flöser's avatar
      [kcmdeco] Clean up includes · b150d9dd
      Martin Flöser authored
      b150d9dd
    • Martin Flöser's avatar
      [kcmdeco] Drop the old preview code · a98dbd74
      Martin Flöser authored
      All the rendering to QPixmap code in the Model and the Preview is
      deleted as it's no longer used.
      
      The model still has the plugin for the border size functionality.
      This probably needs a change in the API to make it completely bound
      to the decoration and not a global thing.
      a98dbd74
    • Martin Flöser's avatar
      [kcmdeco] Introduce a new PreviewItem for rendering QWidget based decos in QML · 1674824e
      Martin Flöser authored
      Using a QQuickPaintedItem for the rendering. The item gets the library
      name from the model and loads the decoration with its own decoration
      plugin. Thus each preview has its own plugin which eliminates the need to
      constantly recreate the decoration as it is done with the preview.
      
      Having a QQuickItem gives new possibilities. The item accepts hover
      events and forwards them as enter and leave events to the widgets inside
      the decoration. By that the mouse interaction of e.g. Oxygen is still
      functional. If the decoration uses the new update approach the bridge is
      forwarding the updates to the item and triggering a repaint so we even
      have animations in the preview although the widget is never shown.
      1674824e
  15. 01 Oct, 2013 2 commits
  16. 13 Aug, 2013 1 commit
  17. 12 Mar, 2013 1 commit
  18. 07 Mar, 2013 1 commit
    • Martin Flöser's avatar
      s/KLocale/KLocalizedString/g · 60c42b7a
      Martin Flöser authored
      Many headers included KLocale to use i18n and co. But those methods are
      defined in KLocalizedString and not in KLocale.
      
      With KF5 klocale.h does no longer include KLocalizedString causing lots
      of compile errors.
      60c42b7a
  19. 06 Mar, 2013 1 commit
  20. 12 Feb, 2013 1 commit
    • Martin Flöser's avatar
      Cleanup the Preview rendering of Window Decorations · 2aed7b13
      Martin Flöser authored
      The preview code still contained all the old logic for embedding the
      preview into another widget. Most of the code had been dead for quite
      some time.
      
      The only preview rendering code now is the one to render into a pixmap.
      This is actually changed to render the widget directly at the right
      position obsoleting the previous widget positioning code.
      
      The no preview available label is dropped as it did not get rendered into
      the pixmap at all.
      
      Last but not least we fake that compositing is on. This has always been
      the case for Aurorae themes and just looks better. Especially on Oxygen I
      had always had some corruption when rendering this preview with
      compositing disabled.
      
      REVIEW: 108777
      2aed7b13
  21. 26 Aug, 2012 4 commits
    • Martin Flöser's avatar
      Support for custom configuration dialogs for QML decorations · 25ac108a
      Martin Flöser authored
      If the decoration package contains a ui file in ui/config.ui and
      and KConfigXT xml file in config/main.xml the configure dialog
      is extended by the custom values.
      
      For this the ui file is loaded and included in the dialog's
      layout. To make this possible the AuroraeConfigForm is changed
      to a VBoxLayout containing the so far used FormLayout.
      
      The configuration settings are loaded using Plasma's ConfigLoader
      and attached to the widget through a KConfigDialogManager.
      
      Marking this commit as the one which implements QML support for
      Aurorae themes:
      
      REVIEW: 105751
      REVIEW: 105768
      BUG: 303810
      FIXED-IN: 4.10
      25ac108a
    • Martin Flöser's avatar
      Option to disable window close on menu double click in Aurorae · 8de1fea6
      Martin Flöser authored
      For each theme the setting can be enabled individually with the
      default being enabled by default. It is completely handled
      inside the MenuButton QML component so each QML theme benefits
      from the option automatically, too.
      
      BUG: 301327
      FIXED-IN: 4.10
      REVIEW: 106160
      8de1fea6
    • Martin Flöser's avatar
      Support for config values in QML decorations · ce2b251c
      Martin Flöser authored
      When the decoration is reset a signal is emitted that the config
      might have changed which the decoration can connect to for
      reloading its configuration. For this an invokable method is
      added to Aurorae allowing to read a config value which just
      returns the QVariant.
      
      Proper support for border sizes are added by providing the enum
      in DecorationOptions, so that QML themes can use the enum values
      to decide which border size to use.
      
      The kcm is adjusted to also support these config mechanisms and
      to properly load and save the border sizes for QML based themes.
      ce2b251c
    • Martin Flöser's avatar
      Support for QML based decoration in KCM decoration · 24917394
      Martin Flöser authored
      Model is extended to support QML based Aurorae themes as well
      the preview is able to handle it. For this a new qml component
      is added which loads the decoration preview.
      24917394
  22. 25 Jul, 2012 1 commit
  23. 22 Jul, 2012 2 commits
  24. 05 Jul, 2012 1 commit
  25. 07 Jun, 2012 1 commit
  26. 27 Jan, 2012 1 commit
  27. 13 Jan, 2012 2 commits
  28. 31 Jan, 2011 1 commit