From cec8fe0157b0ab37d4919d0f04c131c11f2c9a9e Mon Sep 17 00:00:00 2001 From: tpearson Date: Fri, 5 Aug 2011 07:19:55 +0000 Subject: Fix up a few Deep Buttons glitches Add an option to include the clock in the system tray applet Majorly enhance the Quick Launch Kicker applet git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1245129 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kicker/applets/clock/CMakeLists.txt | 15 +++++- kicker/applets/clock/clock.cpp | 11 ----- kicker/applets/clock/clock.h | 5 +- kicker/applets/launcher/CMakeLists.txt | 3 ++ kicker/applets/launcher/configdlgbase.ui | 8 ++++ kicker/applets/launcher/launcherapplet.kcfg | 6 ++- kicker/applets/launcher/prefs.kcfgc | 2 +- kicker/applets/launcher/quickbutton.cpp | 53 ++++++++++++++++++---- kicker/applets/launcher/quickbutton.h | 1 + kicker/applets/launcher/quicklauncher.cpp | 37 +++++++++++++++ kicker/applets/systemtray/CMakeLists.txt | 7 ++- kicker/applets/systemtray/systemtrayapplet.cpp | 63 ++++++++++++++++++++++++-- kicker/applets/systemtray/systemtrayapplet.h | 7 +++ kicker/kicker/core/container_extension.cpp | 2 +- kicker/kicker/core/containerarea.cpp | 18 -------- kicker/kicker/ui/popupmenutitle.h | 10 ++-- kicker/libkicker/panelbutton.cpp | 2 +- kicker/libkicker/simplebutton.cpp | 53 +++++++++++++++++----- kicker/libkicker/simplebutton.h | 6 ++- kicker/taskbar/taskcontainer.cpp | 2 +- 20 files changed, 243 insertions(+), 68 deletions(-) (limited to 'kicker') diff --git a/kicker/applets/clock/CMakeLists.txt b/kicker/applets/clock/CMakeLists.txt index 7b2925dbf..35093523e 100644 --- a/kicker/applets/clock/CMakeLists.txt +++ b/kicker/applets/clock/CMakeLists.txt @@ -29,7 +29,7 @@ install( FILES clockapplet.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/applet install( FILES lcd.png DESTINATION ${DATA_INSTALL_DIR}/clockapplet/pics ) -##### clock_panelapplet (module) ################ +##### clock_panelapplet (static) ###################### set( target clock_panelapplet ) @@ -38,6 +38,19 @@ set( ${target}_SRCS analog.ui digital.ui fuzzy.ui settings.ui prefs.kcfgc ) +tde_add_library( ${target} STATIC AUTOMOC + SOURCES ${${target}_SRCS} +) + +##### clock_panelapplet (module) ################ + +set( target clock_panelapplet ) + +set( ${target}_SRCS + clock.skel clock.cpp datepicker.cpp zone.cpp + analog.ui digital.ui fuzzy.ui settings.ui prefs.kcfgc init.cpp +) + tde_add_kpart( ${target} AUTOMOC SOURCES ${${target}_SRCS} LINK kickermain-shared diff --git a/kicker/applets/clock/clock.cpp b/kicker/applets/clock/clock.cpp index 79f627833..2265f801b 100644 --- a/kicker/applets/clock/clock.cpp +++ b/kicker/applets/clock/clock.cpp @@ -66,17 +66,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "fuzzy.h" #include "prefs.h" -extern "C" -{ - KDE_EXPORT KPanelApplet* init(TQWidget *parent, const TQString& configFile) - { - KGlobal::locale()->insertCatalogue("clockapplet"); - KGlobal::locale()->insertCatalogue("timezones"); // For time zone translations - return new ClockApplet(configFile, KPanelApplet::Normal, - KPanelApplet::Preferences, parent, "clockapplet"); - } -} - // Settings KConfigDialogSingle::KConfigDialogSingle(Zone *zone, TQWidget *parent, diff --git a/kicker/applets/clock/clock.h b/kicker/applets/clock/clock.h index 498ce4b9d..c5295d87b 100644 --- a/kicker/applets/clock/clock.h +++ b/kicker/applets/clock/clock.h @@ -290,7 +290,7 @@ class ClockApplet : public KPanelApplet, public KickerTip::Client, public DCOPOb void reconfigure(); protected slots: - void slotReconfigure() { reconfigure(); } + void slotReconfigure() { reconfigure(); emit clockReconfigured(); } void slotUpdate(); void slotCalendarDeleted(); void slotEnableCalendar(); @@ -301,6 +301,9 @@ class ClockApplet : public KPanelApplet, public KickerTip::Client, public DCOPOb void globalPaletteChange(); void setTimerTo60(); + signals: + void clockReconfigured(); + protected: void toggleCalendar(); void openContextMenu(); diff --git a/kicker/applets/launcher/CMakeLists.txt b/kicker/applets/launcher/CMakeLists.txt index e5bf4e92b..dab1a8c95 100644 --- a/kicker/applets/launcher/CMakeLists.txt +++ b/kicker/applets/launcher/CMakeLists.txt @@ -11,8 +11,10 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_BINARY_DIR}/kicker/libkicker ${CMAKE_SOURCE_DIR}/kicker/libkicker ${CMAKE_SOURCE_DIR}/kicker/kicker/ui + ${CMAKE_SOURCE_DIR}/kicker/kicker/core ${TDE_INCLUDE_DIR} ${TQT_INCLUDE_DIRS} ) @@ -43,5 +45,6 @@ tde_add_kpart( launcher_panelapplet AUTOMOC kicker_core-static kicker_buttons-static kicker_ui-static -Wl,--end-group kickermain-shared kutils-shared kabc-shared + DEPENDENCIES libkicker-shared DESTINATION ${PLUGIN_INSTALL_DIR} ) diff --git a/kicker/applets/launcher/configdlgbase.ui b/kicker/applets/launcher/configdlgbase.ui index 49916ebeb..e551864b1 100644 --- a/kicker/applets/launcher/configdlgbase.ui +++ b/kicker/applets/launcher/configdlgbase.ui @@ -27,6 +27,14 @@ Allow drag and drop + + + kcfg_ShowDesktopEnabled + + + Enable 'Show Desktop' button + + groupBox2 diff --git a/kicker/applets/launcher/launcherapplet.kcfg b/kicker/applets/launcher/launcherapplet.kcfg index 3433bf437..83828c4af 100644 --- a/kicker/applets/launcher/launcherapplet.kcfg +++ b/kicker/applets/launcher/launcherapplet.kcfg @@ -7,12 +7,16 @@ - true + false true + + + true + 0 diff --git a/kicker/applets/launcher/prefs.kcfgc b/kicker/applets/launcher/prefs.kcfgc index 26a3f3d07..243e97868 100644 --- a/kicker/applets/launcher/prefs.kcfgc +++ b/kicker/applets/launcher/prefs.kcfgc @@ -2,5 +2,5 @@ File=launcherapplet.kcfg ClassName=Prefs Singleton=false -Mutators=AutoAdjustMaxItems,Buttons,VolatileButtons,AutoAdjustMaxItems,AutoAdjustMinItems,AutoAdjustEnabled,IconDim,DragEnabled,ConserveSpace,ServiceInspos,ServiceNames,ServiceHistories +Mutators=AutoAdjustMaxItems,Buttons,VolatileButtons,AutoAdjustMaxItems,AutoAdjustMinItems,AutoAdjustEnabled,IconDim,DragEnabled,ShowDesktopEnabled,ConserveSpace,ServiceInspos,ServiceNames,ServiceHistories # MemberVariables=public diff --git a/kicker/applets/launcher/quickbutton.cpp b/kicker/applets/launcher/quickbutton.cpp index 6e68e2ce1..088e4a573 100644 --- a/kicker/applets/launcher/quickbutton.cpp +++ b/kicker/applets/launcher/quickbutton.cpp @@ -46,6 +46,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +#include "showdesktop.h" +#include "kickerSettings.h" + #ifdef DEBUG #define DEBUGSTR kdDebug() #else @@ -56,6 +59,12 @@ QuickURL::QuickURL(const TQString &u) { DEBUGSTR<<"QuickURL::QuickURL("<loadIcon("desktop", _group, _force_size, _state); + } + else { + pxmap = KMimeType::pixmapForURL(_kurl, _mode, _group, _force_size, _state); + } // Resize to fit button pxmap.convertFromImage(pxmap.convertToImage().smoothScale(_force_size,_force_size, TQ_ScaleMin)); return pxmap; @@ -128,7 +145,7 @@ TQPixmap QuickURL::pixmap( mode_t _mode, KIcon::Group _group, QuickButton::QuickButton(const TQString &u, KAction* configAction, TQWidget *parent, const char *name) : - SimpleButton(parent, name), + SimpleButton(parent, name, KickerSettings::showDeepButtons()), m_flashCounter(0), m_sticky(false) { @@ -137,18 +154,24 @@ QuickButton::QuickButton(const TQString &u, KAction* configAction, _highlight = false; _oldCursor = cursor(); _qurl=new QuickURL(u); - + + if (_qurl->url() == "SPECIAL_BUTTON__SHOW_DESKTOP") { + setToggleButton(true); + setOn( ShowDesktop::the()->desktopShowing() ); + connect( ShowDesktop::the(), TQT_SIGNAL(desktopShown(bool)), this, TQT_SLOT(toggle(bool)) ); + } + TQToolTip::add(this, _qurl->name()); resize(int(DEFAULT_ICON_DIM),int(DEFAULT_ICON_DIM)); TQBrush bgbrush(tqcolorGroup().brush(TQColorGroup::Background)); - + QuickAddAppsMenu *addAppsMenu = new QuickAddAppsMenu( parent, this, _qurl->url()); _popup = new TQPopupMenu(this); _popup->insertItem(i18n("Add Application"), addAppsMenu); configAction->plug(_popup); _popup->insertSeparator(); - _popup->insertItem(SmallIcon("remove"), i18n("Remove"), + _popup->insertItem(SmallIcon("remove"), i18n("Remove Application"), this, TQT_SLOT(removeApp())); m_stickyAction = new KToggleAction(i18n("Never Remove Automatically"), @@ -168,7 +191,6 @@ QuickButton::~QuickButton() delete _qurl; } - TQString QuickButton::url() const { return _qurl->url(); @@ -240,10 +262,25 @@ void QuickButton::launch() setDown(false); update(); KIconEffect::visualActivate(this, rect()); - _qurl->run(); + if (_qurl->kurl().url() == "SPECIAL_BUTTON__SHOW_DESKTOP") { + if (isOn()) { + ShowDesktop::the()->showDesktop(TRUE); + } + else { + ShowDesktop::the()->showDesktop(FALSE); + } + } + else { + _qurl->run(); + } emit executed(_qurl->menuId()); } +void QuickButton::toggle(bool showDesktop) +{ + setOn(showDesktop); +} + void QuickButton::setDragging(bool enable) { setDown(enable); diff --git a/kicker/applets/launcher/quickbutton.h b/kicker/applets/launcher/quickbutton.h index 13917a5ac..d4f5be29e 100644 --- a/kicker/applets/launcher/quickbutton.h +++ b/kicker/applets/launcher/quickbutton.h @@ -104,6 +104,7 @@ protected slots: void removeApp(); void slotFlash(); void slotStickyToggled(bool isSticky); + void toggle(bool); private: int m_flashCounter; diff --git a/kicker/applets/launcher/quicklauncher.cpp b/kicker/applets/launcher/quicklauncher.cpp index 85bea706e..b5b512d20 100644 --- a/kicker/applets/launcher/quicklauncher.cpp +++ b/kicker/applets/launcher/quicklauncher.cpp @@ -287,6 +287,10 @@ void QuickLauncher::removeApp(int index, bool manuallyRemoved) TQString removeAppUrl = (*m_buttons)[index]->url(); TQString removeAppMenuId = (*m_buttons)[index]->menuId(); + + if (removeAppUrl == "SPECIAL_BUTTON__SHOW_DESKTOP") { + m_settings->setShowDesktopEnabled(false); + } delete (*m_buttons)[index]; m_buttons->eraseAt(index); @@ -689,6 +693,31 @@ void QuickLauncher::clearTempButtons() void QuickLauncher::refreshContents() { int idim, d(dimension()); + + // make sure show desktop setting is honored + TQStringList urls, volatileUrls; + ButtonIter iter = m_buttons->begin(); + while (iter != m_buttons->end()) { + if ((*iter)->sticky() == false) + { + volatileUrls.append((*iter)->menuId()); + } + urls.append((*iter)->menuId()); + ++iter; + } + if (m_settings->showDesktopEnabled()) { + if (!urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) { + urls.prepend("SPECIAL_BUTTON__SHOW_DESKTOP"); + addApp("SPECIAL_BUTTON__SHOW_DESKTOP", 0, true); + } + } + else { + if (urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) { + urls.remove("SPECIAL_BUTTON__SHOW_DESKTOP"); + removeApp("SPECIAL_BUTTON__SHOW_DESKTOP", true); + } + } + // determine button size if (m_settings->iconDim() == SIZE_AUTO) { @@ -814,6 +843,14 @@ void QuickLauncher::loadConfig() DEBUGSTR << " DragEnabled=" << isDragEnabled() << endl << flush;*/ TQStringList volatileButtons = m_settings->volatileButtons(); TQStringList urls = m_settings->buttons(); + if (m_settings->showDesktopEnabled()) { + if (!urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) + urls.prepend("SPECIAL_BUTTON__SHOW_DESKTOP"); + } + else { + if (urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) + urls.remove("SPECIAL_BUTTON__SHOW_DESKTOP"); + } kdDebug() << "GetButtons " << urls.join("/") << endl; TQStringList::Iterator iter(urls.begin()); int n = 0; diff --git a/kicker/applets/systemtray/CMakeLists.txt b/kicker/applets/systemtray/CMakeLists.txt index cd3fd6348..76151db69 100644 --- a/kicker/applets/systemtray/CMakeLists.txt +++ b/kicker/applets/systemtray/CMakeLists.txt @@ -15,10 +15,13 @@ include_directories( ${CMAKE_SOURCE_DIR}/kicker/libkicker ${TDE_INCLUDE_DIR} ${TQT_INCLUDE_DIRS} + ${CMAKE_BINARY_DIR}/kicker/applets/clock + ${CMAKE_SOURCE_DIR}/kicker/applets/clock ) link_directories( ${TQT_LIBRARY_DIRS} + ${CMAKE_BINARY_DIR}/kicker/applets/clock ) @@ -37,7 +40,7 @@ set( ${target}_SRCS tde_add_kpart( ${target} AUTOMOC SOURCES ${${target}_SRCS} - LINK kickermain-shared + LINK kickermain-shared clock_panelapplet-static DESTINATION ${PLUGIN_INSTALL_DIR} - DEPENDENCIES kicker_core-static kicker-static kicker-shared + DEPENDENCIES kicker_core-static kicker-static kicker-shared clock_panelapplet-shared ) diff --git a/kicker/applets/systemtray/systemtrayapplet.cpp b/kicker/applets/systemtray/systemtrayapplet.cpp index ceeebc381..6a693fbe8 100644 --- a/kicker/applets/systemtray/systemtrayapplet.cpp +++ b/kicker/applets/systemtray/systemtrayapplet.cpp @@ -32,6 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include #include #include @@ -56,7 +57,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include -//#define ICON_MARGIN KickerSettings::showDeepButtons()?2:1 #define ICON_MARGIN 1 #define ICON_END_MARGIN KickerSettings::showDeepButtons()?4:0 @@ -78,11 +78,14 @@ SystemTrayApplet::SystemTrayApplet(const TQString& configFile, Type type, int ac m_expandButton(0), m_leftSpacer(0), m_rightSpacer(0), + m_clockApplet(0), m_settingsDialog(0), m_iconSelector(0), m_autoRetractTimer(0), m_autoRetract(false), m_iconSize(24), + m_showClockInTray(false), + m_showClockSettingCB(0), m_layout(0) { DCOPObject::setObjId("SystemTrayApplet"); @@ -93,6 +96,10 @@ SystemTrayApplet::SystemTrayApplet(const TQString& configFile, Type type, int ac m_rightSpacer = new TQWidget(this); m_rightSpacer->setFixedSize(ICON_END_MARGIN,1); + m_clockApplet = new ClockApplet(configFile, KPanelApplet::Normal, KPanelApplet::Preferences, this, "clockapplet"); + updateClockGeometry(); + connect(m_clockApplet, TQT_SIGNAL(clockReconfigured()), this, TQT_SLOT(updateClockGeometry())); + setBackgroundOrigin(AncestorOrigin); kwin_module = new KWinModule(TQT_TQOBJECT(this)); @@ -105,6 +112,12 @@ SystemTrayApplet::SystemTrayApplet(const TQString& configFile, Type type, int ac TQTimer::singleShot(0, this, TQT_SLOT(initialize())); } +void SystemTrayApplet::updateClockGeometry() +{ + if (m_clockApplet) + m_clockApplet->setFixedSize(m_clockApplet->widthForHeight(height()-2),height()-2); +} + void SystemTrayApplet::initialize() { // register existing tray windows @@ -185,6 +198,9 @@ SystemTrayApplet::~SystemTrayApplet() delete *it; } + if (m_leftSpacer) delete m_leftSpacer; + if (m_rightSpacer) delete m_rightSpacer; + KGlobal::locale()->removeCatalogue("ksystemtrayapplet"); } @@ -225,10 +241,16 @@ void SystemTrayApplet::preferences() connect(m_settingsDialog, TQT_SIGNAL(okClicked()), this, TQT_SLOT(applySettings())); connect(m_settingsDialog, TQT_SIGNAL(finished()), this, TQT_SLOT(settingsDialogFinished())); - m_iconSelector = new KActionSelector(m_settingsDialog); + TQGrid *settingsGrid = m_settingsDialog->makeGridMainWidget( 2, Qt::Vertical); + + m_showClockSettingCB = new TQCheckBox("Show Clock in Tray", settingsGrid); + m_showClockSettingCB->setChecked(m_showClockInTray); + + //m_iconSelector = new KActionSelector(m_settingsDialog); + m_iconSelector = new KActionSelector(settingsGrid); m_iconSelector->setAvailableLabel(i18n("Hidden icons:")); m_iconSelector->setSelectedLabel(i18n("Visible icons:")); - m_settingsDialog->setMainWidget(m_iconSelector); + //m_settingsDialog->setMainWidget(m_iconSelector); TQListBox *hiddenListBox = m_iconSelector->availableListBox(); TQListBox *shownListBox = m_iconSelector->selectedListBox(); @@ -272,6 +294,8 @@ void SystemTrayApplet::applySettings() return; } + m_showClockInTray = m_showClockSettingCB->isChecked(); + KConfig *conf = config(); // Save the sort order and hidden status using the window class (WM_CLASS) rather @@ -317,6 +341,10 @@ void SystemTrayApplet::applySettings() m_hiddenIconList.append(item->text()); } conf->writeEntry("Hidden", m_hiddenIconList); + + conf->setGroup("System Tray"); + conf->writeEntry("ShowClockInTray", m_showClockInTray); + conf->sync(); TrayEmbedList::iterator it = m_shownWins.begin(); @@ -392,7 +420,7 @@ void SystemTrayApplet::showExpandButton(bool show) { if (!m_expandButton) { - m_expandButton = new SimpleArrowButton(this); + m_expandButton = new SimpleArrowButton(this, Qt::UpArrow, 0, KickerSettings::showDeepButtons()); m_expandButton->installEventFilter(this); refreshExpandButton(); @@ -475,6 +503,7 @@ void SystemTrayApplet::loadSettings() //Note This setting comes from kdeglobal. conf->setGroup("System Tray"); m_iconSize = conf->readNumEntry("systrayIconWidth", 22); + m_showClockInTray = conf->readNumEntry("ShowClockInTray", false); } void SystemTrayApplet::systemTrayWindowAdded( WId w ) @@ -984,6 +1013,18 @@ void SystemTrayApplet::layoutTray() col, col, 0, nbrOfLines - 1, Qt::AlignHCenter | Qt::AlignVCenter); + + if (m_clockApplet) { + if (m_showClockInTray) + m_clockApplet->show(); + else + m_clockApplet->hide(); + + m_layout->addMultiCellWidget(m_clockApplet, + col+1, col+1, + 0, nbrOfLines - 1, + Qt::AlignHCenter | Qt::AlignVCenter); + } } else // horizontal { @@ -1047,11 +1088,25 @@ void SystemTrayApplet::layoutTray() 0, nbrOfLines - 1, col, col, Qt::AlignHCenter | Qt::AlignVCenter); + + if (m_clockApplet) { + if (m_showClockInTray) + m_clockApplet->show(); + else + m_clockApplet->hide(); + + m_layout->addMultiCellWidget(m_clockApplet, + 0, nbrOfLines - 1, + col+1, col+1, + Qt::AlignHCenter | Qt::AlignVCenter); + } } tqsetUpdatesEnabled(true); updateGeometry(); setBackground(); + + updateClockGeometry(); } void SystemTrayApplet::paletteChange(const TQPalette & /* oldPalette */) diff --git a/kicker/applets/systemtray/systemtrayapplet.h b/kicker/applets/systemtray/systemtrayapplet.h index c656cfe3d..a7a6a043d 100644 --- a/kicker/applets/systemtray/systemtrayapplet.h +++ b/kicker/applets/systemtray/systemtrayapplet.h @@ -28,12 +28,15 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include #include #include #include #include +#include "clock.h" + #include "simplebutton.h" class TQGridLayout; @@ -85,6 +88,7 @@ protected slots: void checkAutoRetract(); void configure() { preferences(); } void setBackground(); + void updateClockGeometry(); private: void embedWindow( WId w, bool kde_tray ); @@ -108,11 +112,14 @@ private: SimpleArrowButton *m_expandButton; TQWidget *m_leftSpacer; TQWidget *m_rightSpacer; + ClockApplet *m_clockApplet; KDialogBase* m_settingsDialog; KActionSelector* m_iconSelector; TQTimer* m_autoRetractTimer; bool m_autoRetract; int m_iconSize; + bool m_showClockInTray; + TQCheckBox *m_showClockSettingCB; TQGridLayout* m_layout; }; diff --git a/kicker/kicker/core/container_extension.cpp b/kicker/kicker/core/container_extension.cpp index 0deb57a35..a4e9f0634 100644 --- a/kicker/kicker/core/container_extension.cpp +++ b/kicker/kicker/core/container_extension.cpp @@ -1400,7 +1400,7 @@ void ExtensionContainer::paintEvent(TQPaintEvent *e) if (KickerSettings::useResizeHandle()) { - // draw resize handle [RAJA] + // draw resize handle TQRect rect; TQPainter p( this ); diff --git a/kicker/kicker/core/containerarea.cpp b/kicker/kicker/core/containerarea.cpp index 7b2b98b7b..412eeec1e 100644 --- a/kicker/kicker/core/containerarea.cpp +++ b/kicker/kicker/core/containerarea.cpp @@ -1513,24 +1513,6 @@ void ContainerArea::setBackground() TQTimer::singleShot(0, this, TQT_SLOT(updateContainersBackground())); } } -// else { // RAJA -// TQRect rect; -// TQImage bgImage; -// TQPixmap bgPixmap(size().width(), size().height()); -// bgPixmap.fill(tqcolorGroup().background()); -// TQPainter p( TQT_TQPAINTDEVICE(&bgPixmap) ); -// -// // FIXME This should change the rectangle based on the container's location on the screen (top, bottom, etc.) -// rect = TQRect(0,0,size().width(),2); -// tqstyle().tqdrawPrimitive( TQStyle::PE_DockWindowSeparator, &p, rect, tqcolorGroup(), TQStyle::Style_Default ); -// -// printf("[RAJA DEBUG 100.0] Hi there!\n\r"); fflush(stdout); -// p.fillRect(0,0,100,100,TQColor(0,0,0)); -// -// bgImage = bgPixmap; -// setPaletteBackgroundPixmap(TQPixmap(bgImage)); -// TQTimer::singleShot(0, this, TQT_SLOT(updateContainersBackground())); -// } _bgSet = true; } diff --git a/kicker/kicker/ui/popupmenutitle.h b/kicker/kicker/ui/popupmenutitle.h index e5f565c1a..c9e545417 100644 --- a/kicker/kicker/ui/popupmenutitle.h +++ b/kicker/kicker/ui/popupmenutitle.h @@ -40,13 +40,13 @@ public: bool fullSpan () const { return true; } - void paint(TQPainter* p, const TQColorGroup& cg, - bool /* act */, bool /*enabled*/, + void paint(TQPainter* p, const TQColorGroup& cg, + bool /* act */, bool /*enabled*/, int x, int y, int w, int h) { p->save(); TQRect r(x, y, w, h); - kapp->tqstyle().tqdrawPrimitive(TQStyle::PE_HeaderSection, + kapp->tqstyle().tqdrawPrimitive(TQStyle::PE_HeaderSectionMenu, p, r, cg); if (!m_desktopName.isEmpty()) @@ -54,7 +54,7 @@ public: p->setPen(cg.buttonText()); p->setFont(m_font); p->drawText(x, y, w, h, - AlignCenter | SingleLine, + AlignCenter | SingleLine, m_desktopName); } @@ -72,7 +72,7 @@ public: TQSize tqsizeHint() { TQSize size = TQFontMetrics(m_font).size(AlignHCenter, m_desktopName); - size.setHeight(size.height() + + size.setHeight(size.height() + (kapp->tqstyle().tqpixelMetric(TQStyle::PM_DefaultFrameWidth) * 2 + 1)); return size; } diff --git a/kicker/libkicker/panelbutton.cpp b/kicker/libkicker/panelbutton.cpp index 1e4edaf7b..f5e35a2ad 100644 --- a/kicker/libkicker/panelbutton.cpp +++ b/kicker/libkicker/panelbutton.cpp @@ -326,7 +326,7 @@ int PanelButton::heightForWidth(int width) const const TQPixmap& PanelButton::labelIcon() const { - if (m_disableHighlighting) + if (m_disableHighlighting || (!KickerSettings::showMouseOverEffects())) return m_icon; else return m_highlight ? m_iconh : m_icon; diff --git a/kicker/libkicker/simplebutton.cpp b/kicker/libkicker/simplebutton.cpp index aafbc4316..4aa0b9ff3 100644 --- a/kicker/libkicker/simplebutton.cpp +++ b/kicker/libkicker/simplebutton.cpp @@ -32,12 +32,18 @@ #include #include +#include "kickerSettings.h" + #define BUTTON_MARGIN KDialog::spacingHint() -SimpleButton::SimpleButton(TQWidget *parent, const char *name) +// For now link these two +#define m_disableHighlighting m_forceStandardCursor + +SimpleButton::SimpleButton(TQWidget *parent, const char *name, bool forceStandardCursor) : TQButton(parent, name), m_highlight(false), - m_orientation(Qt::Horizontal) + m_orientation(Qt::Horizontal), + m_forceStandardCursor(forceStandardCursor) { setBackgroundOrigin( AncestorOrigin ); @@ -87,6 +93,16 @@ TQSize SimpleButton::tqminimumSizeHint() const void SimpleButton::drawButton( TQPainter *p ) { + TQRect r(0, 0, width(), height()); + + if (m_disableHighlighting == TRUE) { + if (m_highlight || isDown() || isOn()) { + int flags = TQStyle::Style_Default | TQStyle::Style_Enabled; + if (isDown() || isOn()) flags |= TQStyle::Style_Down; + tqstyle().tqdrawPrimitive(TQStyle::PE_ButtonTool, p, r, tqcolorGroup(), flags); + } + } + drawButtonLabel(p); } @@ -97,14 +113,19 @@ void SimpleButton::drawButtonLabel( TQPainter *p ) return; } - TQPixmap pix = isEnabled() ? (m_highlight? m_activeIcon : m_normalIcon) : m_disabledIcon; + TQPixmap pix = isEnabled() ? ((m_highlight&&(!m_disableHighlighting))? m_activeIcon : m_normalIcon) : m_disabledIcon; - if (isOn() || isDown()) + if ((isOn() || isDown()) && (m_disableHighlighting == FALSE)) { pix = TQImage(pix.convertToImage()).smoothScale(pix.width() - 2, pix.height() - 2); } + if (m_disableHighlighting == TRUE) { + pix = TQImage(pix.convertToImage()).smoothScale(pix.width() - 4, + pix.height() - 4); + } + int h = height(); int w = width(); int ph = pix.height(); @@ -149,7 +170,11 @@ void SimpleButton::slotSettingsChanged(int category) return; } - bool changeCursor = KGlobalSettings::changeCursorOverIcon(); + bool changeCursor; + if (m_forceStandardCursor == FALSE) + changeCursor = KGlobalSettings::changeCursorOverIcon(); + else + changeCursor = FALSE; if (changeCursor) { @@ -174,7 +199,8 @@ void SimpleButton::slotIconChanged( int group ) void SimpleButton::enterEvent( TQEvent *e ) { - m_highlight = true; + if (KickerSettings::showMouseOverEffects()) + m_highlight = true; tqrepaint( false ); TQButton::enterEvent( e ); @@ -194,8 +220,9 @@ void SimpleButton::resizeEvent( TQResizeEvent * ) } -SimpleArrowButton::SimpleArrowButton(TQWidget *parent, Qt::ArrowType arrow, const char *name) - : SimpleButton(parent, name) +SimpleArrowButton::SimpleArrowButton(TQWidget *parent, Qt::ArrowType arrow, const char *name, bool forceStandardCursor) + : SimpleButton(parent, name, forceStandardCursor), + m_forceStandardCursor(forceStandardCursor) { setBackgroundOrigin(AncestorOrigin); _arrow = arrow; @@ -224,7 +251,7 @@ Qt::ArrowType SimpleArrowButton::arrowType() const void SimpleArrowButton::drawButton( TQPainter *p ) { TQRect r(1, 1, width() - 2, height() - 2); - + TQStyle::PrimitiveElement pe = TQStyle::PE_ArrowLeft; switch (_arrow) { @@ -233,10 +260,14 @@ void SimpleArrowButton::drawButton( TQPainter *p ) case Qt::UpArrow: pe = TQStyle::PE_ArrowUp; break; case Qt::DownArrow: pe = TQStyle::PE_ArrowDown; break; } - + int flags = TQStyle::Style_Default | TQStyle::Style_Enabled; if (isDown() || isOn()) flags |= TQStyle::Style_Down; tqstyle().tqdrawPrimitive(pe, p, r, tqcolorGroup(), flags); + + if (m_forceStandardCursor) { + SimpleButton::drawButton(p); + } } void SimpleArrowButton::enterEvent( TQEvent *e ) @@ -249,7 +280,7 @@ void SimpleArrowButton::enterEvent( TQEvent *e ) void SimpleArrowButton::leaveEvent( TQEvent *e ) { _inside = false; - SimpleButton::enterEvent( e ); + SimpleButton::leaveEvent( e ); update(); } diff --git a/kicker/libkicker/simplebutton.h b/kicker/libkicker/simplebutton.h index e6416236f..8e4c13896 100644 --- a/kicker/libkicker/simplebutton.h +++ b/kicker/libkicker/simplebutton.h @@ -31,7 +31,7 @@ class KDE_EXPORT SimpleButton : public TQButton Q_OBJECT public: - SimpleButton(TQWidget *parent, const char *name = 0); + SimpleButton(TQWidget *parent, const char *name = 0, bool forceStandardCursor = FALSE); void setPixmap(const TQPixmap &pix); void setOrientation(Qt::Orientation orientaton); TQSize tqsizeHint() const; @@ -56,6 +56,7 @@ class KDE_EXPORT SimpleButton : public TQButton TQPixmap m_activeIcon; TQPixmap m_disabledIcon; Qt::Orientation m_orientation; + bool m_forceStandardCursor; class SimpleButtonPrivate; SimpleButtonPrivate* d; }; @@ -65,7 +66,7 @@ class KDE_EXPORT SimpleArrowButton: public SimpleButton Q_OBJECT public: - SimpleArrowButton(TQWidget *parent = 0, Qt::ArrowType arrow = Qt::UpArrow, const char *name = 0); + SimpleArrowButton(TQWidget *parent = 0, Qt::ArrowType arrow = Qt::UpArrow, const char *name = 0, bool forceStandardCursor = FALSE); virtual ~SimpleArrowButton() {}; TQSize tqsizeHint() const; @@ -80,6 +81,7 @@ class KDE_EXPORT SimpleArrowButton: public SimpleButton private: Qt::ArrowType _arrow; + bool m_forceStandardCursor; bool _inside; }; diff --git a/kicker/taskbar/taskcontainer.cpp b/kicker/taskbar/taskcontainer.cpp index ee457bc32..7da0cd50e 100644 --- a/kicker/taskbar/taskcontainer.cpp +++ b/kicker/taskbar/taskcontainer.cpp @@ -771,7 +771,7 @@ void TaskContainer::drawButton(TQPainter *p) } // draw popup arrow - if (m_filteredTasks.count() > 1) + if ((m_filteredTasks.count() > 1) && (!KickerSettings::showDeepButtons())) { TQStyle::PrimitiveElement e = TQStyle::PE_ArrowLeft; -- cgit v1.2.1