1 /***************************************************************************** 2 * Copyright 2007 - 2010 Craig Drummond <craig.p.drummond@gmail.com> * 3 * Copyright 2013 - 2015 Yichao Yu <yyc1992@gmail.com> * 4 * * 5 * This program is free software; you can redistribute it and/or modify * 6 * it under the terms of the GNU Lesser General Public License as * 7 * published by the Free Software Foundation; either version 2.1 of the * 8 * License, or (at your option) version 3, or any later version accepted * 9 * by the membership of KDE e.V. (or its successor approved by the * 10 * membership of KDE e.V.), which shall act as a proxy defined in * 11 * Section 6 of version 3 of the license. * 12 * * 13 * This program is distributed in the hope that it will be useful, * 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 16 * Lesser General Public License for more details. * 17 * * 18 * You should have received a copy of the GNU Lesser General Public * 19 * License along with this library. If not, * 20 * see <http://www.gnu.org/licenses/>. * 21 *****************************************************************************/ 22 23 #ifndef __QTCURVE_H__ 24 #define __QTCURVE_H__ 25 26 #include <QTime> 27 #include <QPalette> 28 #include <QMap> 29 #include <QList> 30 #include <QSet> 31 #include <QCache> 32 #include <QColor> 33 #include <QFont> 34 #include <QStyleOption> 35 #include <QtGlobal> 36 #include <QCommonStyle> 37 #include <QPainterPath> 38 #ifdef QTC_QT5_ENABLE_KDE 39 #include <KConfigCore/KSharedConfig> 40 #include <KConfigCore/KConfigGroup> 41 #include <KStyle/KStyle> 42 using ParentStyleClass = KStyle; 43 #else 44 using ParentStyleClass = QCommonStyle; 45 #endif 46 47 typedef qulonglong QtcKey; 48 #include <common/common.h> 49 50 class QStyleOptionSlider; 51 class QLabel; 52 class QMenuBar; 53 class QScrollBar; 54 class QDBusInterface; 55 class QMainWindow; 56 class QStatusBar; 57 class QAbstractScrollArea; 58 class QProgressBar; 59 class QFormLayout; 60 61 namespace QtCurve { 62 class WindowManager; 63 class BlurHelper; 64 class ShortcutHandler; 65 class ShadowHelper; 66 class StylePlugin; 67 68 class Style: public ParentStyleClass { 69 Q_OBJECT 70 Q_CLASSINFO("X-KDE-CustomElements", "true") 71 public: 72 enum BackgroundType { 73 BGND_WINDOW, 74 BGND_DIALOG, 75 BGND_MENU 76 }; 77 78 enum MenuItemType { 79 MENU_POPUP, 80 MENU_BAR, 81 MENU_COMBO 82 }; 83 84 enum CustomElements { 85 CE_QtC_KCapacityBar = CE_CustomBase + 0x00FFFF00, 86 CE_QtC_Preview, 87 CE_QtC_SetOptions 88 }; 89 90 enum PreviewType { 91 PREVIEW_FALSE, 92 PREVIEW_MDI, 93 PREVIEW_WINDOW 94 }; 95 96 class PreviewOption: public QStyleOption { 97 public: 98 Options opts; 99 }; 100 101 class BgndOption: public QStyleOption { 102 public: 103 EAppearance app; 104 QPainterPath path; 105 QRect widgetRect; 106 }; 107 108 enum Icon { 109 ICN_MIN, 110 ICN_MAX, 111 ICN_MENU, 112 ICN_RESTORE, 113 ICN_CLOSE, 114 ICN_UP, 115 ICN_DOWN, 116 ICN_RIGHT, 117 ICN_SHADE, 118 ICN_UNSHADE 119 }; 120 121 explicit Style(); 122 virtual ~Style(); 123 124 void polish(QApplication *app) override; 125 void polish(QPalette &palette) override; 126 void polish(QWidget *widget) override; 127 void unpolish(QApplication *app) override; 128 void unpolish(QWidget *widget) override; 129 130 bool eventFilter(QObject *object, QEvent *event) override; 131 void timerEvent(QTimerEvent *event) override; 132 133 int pixelMetric(PixelMetric metric, const QStyleOption *option=0, 134 const QWidget *widget=0) const override; 135 int styleHint(StyleHint hint, const QStyleOption *option, 136 const QWidget *widget, 137 QStyleHintReturn *returnData=0) const override; 138 QSize sizeFromContents(ContentsType type, const QStyleOption *option, 139 const QSize &size, 140 const QWidget *widget) const override; 141 QPalette standardPalette() const override; 142 QIcon standardIcon(StandardPixmap pix, const QStyleOption *option=0, 143 const QWidget *widget=0) const override; 144 int layoutSpacing(QSizePolicy::ControlType control1, 145 QSizePolicy::ControlType control2, 146 Qt::Orientation orientation, 147 const QStyleOption *option=0, 148 const QWidget *widget=0) const override; 149 150 void drawPrimitive(PrimitiveElement element, const QStyleOption *option, 151 QPainter *painter, 152 const QWidget *widget) const override; 153 void drawControl(ControlElement control, const QStyleOption *option, 154 QPainter *painter, const QWidget *widget) const override; 155 void drawComplexControl(ComplexControl control, 156 const QStyleOptionComplex *option, 157 QPainter *painter, 158 const QWidget *widget) const override; 159 void drawItemText(QPainter *painter, const QRect &rect, int flags, 160 const QPalette &pal, bool enabled, const QString &text, 161 QPalette::ColorRole=QPalette::NoRole) const override; 162 163 QRect subElementRect(SubElement element, const QStyleOption *option, 164 const QWidget *widget) const override; 165 QRect subControlRect(ComplexControl control, 166 const QStyleOptionComplex *option, 167 SubControl subControl, 168 const QWidget *widget) const override; 169 SubControl hitTestComplexControl(ComplexControl control, 170 const QStyleOptionComplex *option, 171 const QPoint &pos, 172 const QWidget *widget) const override; 173 174 Options& options()175 options() 176 { 177 return opts; 178 } 179 void prePolish(QWidget *w) const; 180 void prePolish(const QWidget * w)181 prePolish(const QWidget *w) const 182 { 183 prePolish(const_cast<QWidget*>(w)); 184 } 185 186 private: 187 void init(bool initial); 188 void connectDBus(); 189 void freeColor(QSet<QColor*> &freedColors, QColor **cols); 190 void freeColors(); 191 void polishFormLayout(QFormLayout *layout); 192 void polishLayout(QLayout *layout); 193 void polishScrollArea(QAbstractScrollArea *scrollArea, 194 bool isKFilePlacesView=false) const; 195 196 void drawItemTextWithRole(QPainter *painter, const QRect &rect, int flags, 197 const QPalette &pal, bool enabled, 198 const QString &text, 199 QPalette::ColorRole textRole) const; 200 void drawSideBarButton(QPainter *painter, const QRect &r, 201 const QStyleOption *option, 202 const QWidget *widget) const; 203 void drawHighlight(QPainter *p, const QRect &r, bool horiz, bool inc) const; 204 void drawFadedLine(QPainter *p, const QRect &r, const QColor &col, 205 bool fadeStart, bool fadeEnd, bool horiz, 206 double fadeSizeStart=FADE_SIZE, 207 double fadeSizeEnd=FADE_SIZE) const; 208 void drawLines(QPainter *p, const QRect &r, bool horiz, int nLines, 209 int offset, const QColor *cols, int startOffset, 210 int dark, ELine type) const; 211 void drawProgressBevelGradient(QPainter *p, const QRect &origRect, 212 const QStyleOption *option, bool horiz, 213 EAppearance bevApp, 214 const QColor *cols) const; 215 void drawBevelGradient(const QColor &base, QPainter *p, QRect const &r, 216 const QPainterPath &path, bool horiz, bool sel, 217 EAppearance bevApp, EWidget w=WIDGET_OTHER, 218 bool useCache=true) const; 219 void drawBevelGradientReal(const QColor &base, QPainter *p, const QRect &r, 220 const QPainterPath &path, bool horiz, bool sel, 221 EAppearance bevApp, EWidget w) const; 222 223 void 224 drawBevelGradient(const QColor &base, QPainter *p, QRect const &r, 225 bool horiz, bool sel, EAppearance bevApp, 226 EWidget w=WIDGET_OTHER, bool useCache=true) const 227 { 228 drawBevelGradient(base, p, r, QPainterPath(), horiz, sel, bevApp, w, 229 useCache); 230 } 231 void drawBevelGradientReal(const QColor & base,QPainter * p,const QRect & r,bool horiz,bool sel,EAppearance bevApp,EWidget w)232 drawBevelGradientReal(const QColor &base, QPainter *p, const QRect &r, 233 bool horiz, bool sel, 234 EAppearance bevApp, EWidget w) const 235 { 236 drawBevelGradientReal(base, p, r, QPainterPath(), horiz, 237 sel, bevApp, w); 238 } 239 240 void drawSunkenBevel(QPainter *p, const QRect &r, const QColor &col) const; 241 void drawLightBevel(QPainter *p, const QRect &r, const QStyleOption *option, 242 const QWidget *widget, int round, const QColor &fill, 243 const QColor *custom=0, bool doBorder=true, 244 EWidget w=WIDGET_OTHER) const; 245 void drawLightBevelReal(QPainter *p, const QRect &r, 246 const QStyleOption *option, const QWidget *widget, 247 int round, const QColor &fill, 248 const QColor *custom, bool doBorder, EWidget w, 249 bool useCache, ERound realRound, 250 bool onToolbar) const; 251 void drawGlow(QPainter *p, const QRect &r, EWidget w, 252 const QColor *cols=0L) const; 253 void drawEtch(QPainter *p, const QRect &r, const QWidget *widget, 254 EWidget w, bool raised=false, int round=ROUNDED_ALL) const; 255 void drawBgndRing(QPainter &painter, int x, int y, int size, 256 int size2, bool isWindow) const; 257 QPixmap drawStripes(const QColor &color, int opacity) const; 258 void drawBackground(QPainter *p, const QColor &bgnd, const QRect &r, 259 int opacity, BackgroundType type, EAppearance app, 260 const QPainterPath &path=QPainterPath()) const; 261 void drawBackgroundImage(QPainter *p, bool isWindow, const QRect &r) const; 262 void drawBackground(QPainter *p, const QWidget *widget, 263 BackgroundType type) const; 264 QPainterPath buildPath(const QRectF &r, EWidget w, 265 int round, double radius) const; 266 QPainterPath buildPath(const QRect &r, EWidget w, 267 int round, double radius) const; 268 void buildSplitPath(const QRect &r, int round, double radius, 269 QPainterPath &tl, QPainterPath &br) const; 270 void drawBorder(QPainter *p, const QRect &r, const QStyleOption *option, 271 int round, const QColor *custom=0, EWidget w=WIDGET_OTHER, 272 EBorder borderProfile=BORDER_FLAT, bool doBlend=true, 273 int borderVal=QTC_STD_BORDER) const; 274 void drawMdiControl(QPainter *p, const QStyleOptionTitleBar *titleBar, 275 SubControl sc, const QWidget *widget, 276 ETitleBarButtons btn, const QColor &iconColor, 277 const QColor *btnCols, const QColor *bgndCols, 278 int adjust, bool activeWindow) const; 279 void drawDwtControl(QPainter *p, const State &state, 280 const QRect &rect, ETitleBarButtons btn, Icon icon, 281 const QColor &iconColor, const QColor *btnCols, 282 const QColor *bgndCols) const; 283 bool drawMdiButton(QPainter *painter, const QRect &r, bool hover, 284 bool sunken, const QColor *cols) const; 285 void drawMdiIcon(QPainter *painter, const QColor &color, const QColor &bgnd, 286 const QRect &r, bool hover, bool sunken, Icon iclearcon, 287 bool stdSize, bool drewFrame) const; 288 void drawIcon(QPainter *painter, const QColor &color, const QRect &r, 289 bool sunken, Icon icon, bool stdSize=true) const; 290 void drawEntryField(QPainter *p, const QRect &rx, const QWidget *widget, 291 const QStyleOption *option, int round, 292 bool fill, bool doEtch, EWidget w=WIDGET_ENTRY) const; 293 void drawMenuItem(QPainter *p, const QRect &r, const QStyleOption *option, 294 MenuItemType type, int round, const QColor *cols) const; 295 void drawProgress(QPainter *p, const QRect &r, const QStyleOption *option, 296 bool vertical=false, bool reverse=false) const; 297 void drawArrow(QPainter *p, const QRect &rx, PrimitiveElement pe, 298 QColor col, bool small=false, bool kwin=false) const; 299 void drawSbSliderHandle(QPainter *p, const QRect &r, 300 const QStyleOption *option, 301 bool slider=false) const; 302 void drawSliderHandle(QPainter *p, const QRect &r, 303 const QStyleOptionSlider *option) const; 304 void drawSliderGroove(QPainter *p, const QRect &groove, const QRect &handle, 305 const QStyleOptionSlider *slider, 306 const QWidget *widget) const; 307 void drawMenuOrToolBarBackground(const QWidget *widget, QPainter *p, 308 const QRect &r, const QStyleOption *option, 309 bool menu=true, bool horiz=true) const; 310 void drawHandleMarkers(QPainter *p, const QRect &r, 311 const QStyleOption *option, bool tb, 312 ELine handles) const; 313 void fillTab(QPainter *p, const QRect &r, const QStyleOption *option, 314 const QColor &fill, bool horiz, EWidget tab, 315 bool tabOnly) const; 316 void colorTab(QPainter *p, const QRect &r, bool horiz, 317 EWidget tab, int round) const; 318 void shadeColors(const QColor &base, QColor *vals) const; 319 const QColor *buttonColors(const QStyleOption *option) const; 320 QColor titlebarIconColor(const QStyleOption *option) const; 321 const QColor *popupMenuCols(const QStyleOption *option=0L) const; 322 const QColor *checkRadioColors(const QStyleOption *option) const; 323 const QColor *sliderColors(const QStyleOption *option) const; 324 const QColor *backgroundColors(const QColor &col) const; 325 const QColor* backgroundColors(const QStyleOption * option)326 backgroundColors(const QStyleOption *option) const 327 { 328 return (option ? 329 backgroundColors(option->palette.background().color()) : 330 m_backgroundCols); 331 } 332 const QColor *highlightColors(const QColor &col) const; 333 const QColor* highlightColors(const QStyleOption * option,bool useActive)334 highlightColors(const QStyleOption *option, bool useActive) const 335 { 336 return highlightColors( 337 option->palette.brush(useActive ? QPalette::Active : 338 QPalette::Current, 339 QPalette::Highlight).color()); 340 } 341 const QColor *borderColors(const QStyleOption *option, 342 const QColor *use) const; 343 const QColor *getSidebarButtons() const; 344 void setMenuColors(const QColor &bgnd); 345 void setMenuTextColors(QWidget *widget, bool isMenuBar) const; 346 const QColor *menuColors(const QStyleOption *option, bool active) const; 347 bool coloredMdiButtons(bool active, bool mouseOver) const; 348 const QColor *getMdiColors(const QStyleOption *option, bool active) const; 349 void readMdiPositions() const; 350 const QColor &getFill(const QStyleOption *option, const QColor *use, 351 bool cr=false, bool darker=false) const; 352 const QColor &getTabFill(bool current, bool highlight, 353 const QColor *use) const; 354 QColor menuStripeCol() const; 355 QPixmap *getPixmap(const QColor col, EPixmap p, double shade=1.0) const; 356 const QColor &checkRadioCol(const QStyleOption *opt) const; 357 QColor shade(const QColor &a, double k) const; 358 void shade(const QColor &ca, QColor *cb, double k) const; 359 QColor getLowerEtchCol(const QWidget *widget) const; 360 int getFrameRound(const QWidget *widget) const; 361 362 private slots: 363 void disconnectDBus(); 364 void kdeGlobalSettingsChange(int type, int); 365 void borderSizesChanged(); 366 void toggleMenuBar(unsigned int xid); 367 void toggleStatusBar(unsigned int xid); 368 void compositingToggled(); 369 370 private: 371 void widgetDestroyed(QObject *o); 372 void toggleMenuBar(QMainWindow *window); 373 void toggleStatusBar(QMainWindow *window); 374 375 #ifdef QTC_QT5_ENABLE_KDE 376 void setupKde4(); 377 void setDecorationColors(); 378 void applyKdeSettings(bool pal); 379 #endif 380 bool isWindowDragWidget(QObject *o); 381 void emitMenuSize(QWidget *w, unsigned short size, bool force=false); 382 void emitStatusBarState(QStatusBar *sb); 383 const QColor& MOArrow(State state,const QPalette & palette,bool mo,QPalette::ColorRole rol)384 MOArrow(State state, const QPalette &palette, bool mo, 385 QPalette::ColorRole rol) const 386 { 387 if (!(state & State_Enabled)) { 388 return palette.color(QPalette::Disabled, rol); 389 } else if (opts.coloredMouseOver != MO_NONE && mo) { 390 return m_mouseOverCols[ARROW_MO_SHADE]; 391 } else { 392 return palette.color(rol); 393 } 394 } 395 const QColor& MOArrow(State state,const QPalette & palette,QPalette::ColorRole rol)396 MOArrow(State state, const QPalette &palette, 397 QPalette::ColorRole rol) const 398 { 399 return MOArrow(state, palette, state & State_MouseOver, rol); 400 } 401 402 bool drawPrimitiveNone(PrimitiveElement,const QStyleOption *,QPainter *,const QWidget *)403 drawPrimitiveNone(PrimitiveElement, const QStyleOption*, 404 QPainter*, const QWidget*) const 405 { 406 return true; 407 } 408 bool drawPrimitivePanelMenu(PrimitiveElement element, 409 const QStyleOption *option, 410 QPainter *painter, 411 const QWidget *widget) const; 412 bool drawPrimitiveIndicatorTabClose(PrimitiveElement element, 413 const QStyleOption *option, 414 QPainter *painter, 415 const QWidget *widget) const; 416 bool drawPrimitiveWidget(PrimitiveElement element, 417 const QStyleOption *option, 418 QPainter *painter, 419 const QWidget *widget) const; 420 bool drawPrimitivePanelScrollAreaCorner(PrimitiveElement element, 421 const QStyleOption *option, 422 QPainter *painter, 423 const QWidget *widget) const; 424 bool drawPrimitiveIndicatorBranch(PrimitiveElement element, 425 const QStyleOption *option, 426 QPainter *painter, 427 const QWidget *widget) const; 428 bool drawPrimitiveIndicatorViewItemCheck(PrimitiveElement element, 429 const QStyleOption *option, 430 QPainter *painter, 431 const QWidget *widget) const; 432 bool drawPrimitiveIndicatorHeaderArrow(PrimitiveElement element, 433 const QStyleOption *option, 434 QPainter *painter, 435 const QWidget *widget) const; 436 bool drawPrimitiveIndicatorArrow(PrimitiveElement element, 437 const QStyleOption *option, 438 QPainter *painter, 439 const QWidget *widget) const; 440 bool drawPrimitiveIndicatorSpin(PrimitiveElement element, 441 const QStyleOption *option, 442 QPainter *painter, 443 const QWidget *widget) const; 444 bool drawPrimitiveIndicatorToolBarSeparator(PrimitiveElement element, 445 const QStyleOption *option, 446 QPainter *painter, 447 const QWidget *widget) const; 448 bool drawPrimitiveFrameGroupBox(PrimitiveElement element, 449 const QStyleOption *option, 450 QPainter *painter, 451 const QWidget *widget) const; 452 bool drawPrimitiveFrame(PrimitiveElement element, 453 const QStyleOption *option, QPainter *painter, 454 const QWidget *widget) const; 455 bool drawPrimitivePanelMenuBar(PrimitiveElement element, 456 const QStyleOption *option, 457 QPainter *painter, 458 const QWidget *widget) const; 459 bool drawPrimitivePanelTipLabel(PrimitiveElement element, 460 const QStyleOption *option, 461 QPainter *painter, 462 const QWidget *widget) const; 463 bool drawPrimitiveQtcBackground(PrimitiveElement element, 464 const QStyleOption *option, 465 QPainter *painter, 466 const QWidget *widget) const; 467 bool drawPrimitivePanelItemViewItem(PrimitiveElement element, 468 const QStyleOption *option, 469 QPainter *painter, 470 const QWidget *widget) const; 471 bool drawPrimitiveFrameTabWidget(PrimitiveElement element, 472 const QStyleOption *option, 473 QPainter *painter, 474 const QWidget *widget) const; 475 bool drawPrimitiveFrameWindow(PrimitiveElement element, 476 const QStyleOption *option, 477 QPainter *painter, 478 const QWidget *widget) const; 479 bool drawPrimitiveButton(PrimitiveElement element, 480 const QStyleOption *option, QPainter *painter, 481 const QWidget *widget) const; 482 bool drawPrimitiveFrameFocusRect(PrimitiveElement element, 483 const QStyleOption *option, 484 QPainter *painter, 485 const QWidget *widget) const; 486 bool drawPrimitiveIndicatorToolBarHandle(PrimitiveElement element, 487 const QStyleOption *option, 488 QPainter *painter, 489 const QWidget *widget) const; 490 bool drawPrimitiveIndicatorRadioButton(PrimitiveElement element, 491 const QStyleOption *option, 492 QPainter *painter, 493 const QWidget *widget) const; 494 bool drawPrimitiveIndicatorCheckBox(PrimitiveElement element, 495 const QStyleOption *option, 496 QPainter *painter, 497 const QWidget *widget) const; 498 bool drawPrimitiveFrameLineEdit(PrimitiveElement element, 499 const QStyleOption *option, 500 QPainter *painter, 501 const QWidget *widget) const; 502 bool drawPrimitivePanelLineEdit(PrimitiveElement element, 503 const QStyleOption *option, 504 QPainter *painter, 505 const QWidget *widget) const; 506 bool drawPrimitiveIndicatorDockWidgetResizeHandle( 507 PrimitiveElement element, const QStyleOption *option, 508 QPainter *painter, const QWidget *widget) const; 509 bool drawPrimitiveButtonTool(PrimitiveElement element, 510 const QStyleOption *option, QPainter *painter, 511 const QWidget *widget) const; 512 bool drawPrimitiveFrameDockWidget(PrimitiveElement element, 513 const QStyleOption *option, 514 QPainter *painter, 515 const QWidget *widget) const; 516 bool drawPrimitiveFrameStatusBarOrMenu(PrimitiveElement element, 517 const QStyleOption *option, 518 QPainter *painter, 519 const QWidget *widget) const; 520 bool drawPrimitiveFrameTabBarBase(PrimitiveElement element, 521 const QStyleOption *option, 522 QPainter *painter, 523 const QWidget *widget) const; 524 525 private: 526 mutable Options opts; 527 QColor m_highlightCols[TOTAL_SHADES + 1], 528 m_backgroundCols[TOTAL_SHADES + 1], 529 m_menubarCols[TOTAL_SHADES + 1], 530 m_focusCols[TOTAL_SHADES + 1], 531 m_mouseOverCols[TOTAL_SHADES + 1], 532 *m_popupMenuCols, 533 *m_sliderCols, 534 *m_defBtnCols, 535 *m_comboBtnCols, 536 *m_checkRadioSelCols, 537 *m_sortedLvColors, 538 *m_ooMenuCols, 539 *m_progressCols, 540 m_buttonCols[TOTAL_SHADES + 1], 541 m_checkRadioCol; 542 bool m_saveMenuBarStatus, 543 m_saveStatusBarStatus, 544 m_usePixmapCache, 545 m_inactiveChangeSelectionColor; 546 PreviewType m_isPreview; 547 mutable QColor *m_sidebarButtonsCols; 548 mutable QColor *m_activeMdiColors; 549 mutable QColor *m_mdiColors; 550 mutable QColor m_activeMdiTextColor; 551 mutable QColor m_mdiTextColor; 552 mutable QColor m_coloredButtonCols[TOTAL_SHADES + 1]; 553 mutable QColor m_coloredBackgroundCols[TOTAL_SHADES + 1]; 554 mutable QColor m_coloredHighlightCols[TOTAL_SHADES + 1]; 555 mutable QCache<QtcKey, QPixmap> m_pixmapCache; 556 mutable bool m_active; 557 mutable const QWidget *m_sbWidget; 558 mutable QLabel *m_clickedLabel; 559 QSet<QProgressBar*> m_progressBars; 560 int m_progressBarAnimateTimer, 561 m_animateStep; 562 QTime m_timer; 563 mutable QMap<int, QColor*> m_titleBarButtonsCols; 564 mutable QList<int> m_mdiButtons[2]; // 0=left, 1=right 565 mutable int m_titlebarHeight; 566 567 QDBusInterface *m_dBus; 568 ShadowHelper *m_shadowHelper; 569 mutable QScrollBar *m_sViewSBar; 570 mutable QMap<QWidget*, QSet<QWidget*> > m_sViewContainers; 571 WindowManager *m_windowManager; 572 BlurHelper *m_blurHelper; 573 ShortcutHandler *m_shortcutHandler; 574 bool m_dbusConnected; 575 #ifdef QTC_QT5_ENABLE_KDE 576 KSharedConfigPtr m_configFile; 577 KSharedConfigPtr m_kdeGlobals; 578 #endif 579 protected: 580 StylePlugin *m_plugin; 581 friend class StylePlugin; 582 }; 583 } 584 585 #endif 586