Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aualin:kde
kdebase3
kdebase-svn-merge-diff.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kdebase-svn-merge-diff.patch of Package kdebase3
diff -wruN kdebase-3.5.10/kcontrol/background/bgrender.cpp kdebase/kcontrol/background/bgrender.cpp --- kdebase-3.5.10/kcontrol/background/bgrender.cpp 2007-10-08 13:51:10.000000000 +0400 +++ kdebase/kcontrol/background/bgrender.cpp 2008-08-26 11:41:24.069811000 +0400 @@ -1164,8 +1164,7 @@ m_pPixmap->fill(Qt::black); } - for (unsigned i=0; i<m_numRenderers; ++i) - m_renderer[i]->desktopResized(); + initRenderers(); } diff -wruN kdebase-3.5.10/kcontrol/info/opengl.cpp kdebase/kcontrol/info/opengl.cpp --- kdebase-3.5.10/kcontrol/info/opengl.cpp 2006-10-01 21:31:47.000000000 +0400 +++ kdebase/kcontrol/info/opengl.cpp 2008-09-21 19:29:35.245439000 +0400 @@ -608,7 +608,6 @@ } else { kdDebug() << "Error: glXMakeCurrent failed\n"; - glXDestroyContext(dpy, ctx); } glXDestroyContext(dpy, ctx); diff -wruN kdebase-3.5.10/kicker/applets/clock/clock.cpp kdebase/kicker/applets/clock/clock.cpp --- kdebase-3.5.10/kicker/applets/clock/clock.cpp 2008-08-19 22:16:58.000000000 +0400 +++ kdebase/kicker/applets/clock/clock.cpp 2008-08-29 00:58:56.228751000 +0400 @@ -57,6 +57,7 @@ #include <global.h> // libkickermain +#include "kickerSettings.h" #include "clock.h" #include "datepicker.h" #include "zone.h" @@ -219,6 +220,7 @@ PlainClock::PlainClock(ClockApplet *applet, Prefs *prefs, QWidget *parent, const char *name) : QLabel(parent, name), ClockWidget(applet, prefs) { + setWFlags(WNoAutoErase); setBackgroundOrigin(AncestorOrigin); loadSettings(); updateClock(); @@ -228,7 +230,7 @@ int PlainClock::preferedWidthForHeight(int ) const { QString maxLengthTime = KGlobal::locale()->formatTime( QTime( 23, 59 ), _prefs->plainShowSeconds()); - return fontMetrics().width( maxLengthTime+2 ); + return fontMetrics().width( maxLengthTime ) + 8; } @@ -244,7 +246,7 @@ if (_force || newStr != _timeStr) { _timeStr = newStr; - setText(_timeStr); + update(); } } @@ -266,6 +268,32 @@ return _prefs->plainShowDayOfWeek(); } +void PlainClock::paintEvent(QPaintEvent *) +{ + QPainter p; + QPixmap buf(size()); + buf.fill(this, 0, 0); + p.begin(&buf); + p.setFont(font()); + p.setPen(paletteForegroundColor()); + drawContents(&p); + drawFrame(&p); + p.end(); + p.begin(this); + p.drawPixmap(0, 0, buf); + p.end(); +} + +void PlainClock::drawContents(QPainter *p) +{ + QRect tr(0, 0, width(), height()); + + if (!KickerSettings::transparent()) + p->drawText(tr, AlignCenter, _timeStr); + else + _applet->shadowEngine()->drawText(*p, tr, AlignCenter, _timeStr, size()); +} + //************************************************************ @@ -834,12 +862,22 @@ p->setFont(_prefs->fuzzyFont()); p->setPen(_prefs->fuzzyForegroundColor()); - if (_applet->getOrientation() == Vertical) { + + QRect tr; + + if (_applet->getOrientation() == Vertical) + { p->rotate(90); - p->drawText(4, -2, height() - 8, -(width()) + 2, AlignCenter, _timeStr); - } else { - p->drawText(4, 2, width() - 8, height() - 4, AlignCenter, _timeStr); + tr = QRect(4, -2, height() - 8, -(width()) + 2); } + else + tr = QRect(4, 2, width() - 8, height() - 4); + + if (!KickerSettings::transparent()) + p->drawText(tr, AlignCenter, _timeStr); + else + _applet->shadowEngine()->drawText(*p, tr, AlignCenter, _timeStr, size()); + alreadyDrawing = false; } @@ -872,7 +910,8 @@ _prefs(new Prefs(sharedConfig())), zone(new Zone(config())), menu(0), - m_tooltip(this) + m_tooltip(this), + m_shadowEngine(0) { DCOPObject::setObjId("ClockApplet"); _prefs->readConfig(); @@ -910,6 +949,7 @@ ClockApplet::~ClockApplet() { + delete m_shadowEngine; //reverse for the moment KGlobal::locale()->removeCatalogue("clockapplet"); KGlobal::locale()->removeCatalogue("timezones"); // For time zone translations @@ -929,6 +969,16 @@ config()->sync(); } + +KTextShadowEngine *ClockApplet::shadowEngine() +{ + if (!m_shadowEngine) + m_shadowEngine = new KTextShadowEngine(); + + return m_shadowEngine; +} + + int ClockApplet::widthForHeight(int h) const { if (orientation() == Qt::Vertical) diff -wruN kdebase-3.5.10/kicker/applets/clock/clock.h kdebase/kicker/applets/clock/clock.h --- kdebase-3.5.10/kicker/applets/clock/clock.h 2008-08-19 22:16:58.000000000 +0400 +++ kdebase/kicker/applets/clock/clock.h 2008-08-29 00:58:56.228751000 +0400 @@ -41,6 +41,7 @@ #include <kickertip.h> #include "settings.h" +#include "kshadowengine.h" class QTimer; class QBoxLayout; @@ -152,6 +153,9 @@ bool showDayOfWeek(); protected: + void paintEvent(QPaintEvent *e); + void drawContents(QPainter *p); + QString _timeStr; }; @@ -280,6 +284,8 @@ virtual void updateKickerTip(KickerTip::Data&); + KTextShadowEngine *shadowEngine(); + k_dcop: void reconfigure(); @@ -335,6 +341,7 @@ QStringList _remotezonelist; KPopupMenu* menu; ClockAppletToolTip m_tooltip; + KTextShadowEngine *m_shadowEngine; }; diff -wruN kdebase-3.5.10/kicker/applets/clock/Makefile.am kdebase/kicker/applets/clock/Makefile.am --- kdebase-3.5.10/kicker/applets/clock/Makefile.am 2005-09-10 12:25:35.000000000 +0400 +++ kdebase/kicker/applets/clock/Makefile.am 2008-09-09 16:48:35.722769000 +0400 @@ -1,7 +1,7 @@ pic_DATA = lcd.png picdir = $(kde_datadir)/clockapplet/pics -INCLUDES = -I$(top_srcdir)/kicker/libkicker $(all_includes) +INCLUDES = -I$(top_srcdir)/kicker/libkicker -I../../libkicker $(all_includes) kde_module_LTLIBRARIES = clock_panelapplet.la diff -wruN kdebase-3.5.10/kicker/applets/systemtray/systemtrayapplet.cpp kdebase/kicker/applets/systemtray/systemtrayapplet.cpp --- kdebase-3.5.10/kicker/applets/systemtray/systemtrayapplet.cpp 2008-08-19 22:16:58.000000000 +0400 +++ kdebase/kicker/applets/systemtray/systemtrayapplet.cpp 2008-08-29 00:47:43.589337000 +0400 @@ -54,6 +54,8 @@ #include <X11/Xlib.h> +#define ICON_MARGIN 1 + extern "C" { KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile) @@ -461,7 +463,7 @@ } connect(emb, SIGNAL(embeddedWindowDestroyed()), SLOT(updateTrayWindows())); - emb->setMinimumSize(m_iconSize, m_iconSize); + emb->getIconSize(m_iconSize); if (shouldHide(w)) { @@ -471,7 +473,7 @@ } else { - emb->hide(); + //emb->hide(); emb->setBackground(); emb->show(); m_shownWins.append(emb); @@ -515,7 +517,7 @@ { for (; emb != lastEmb; ++emb) { - (*emb)->hide(); + //(*emb)->hide(); (*emb)->setBackground(); (*emb)->show(); } @@ -744,8 +746,7 @@ } int currentHeight = height(); - int minHeight = m_iconSize + 4; - if (currentHeight != h && currentHeight != minHeight) + if (currentHeight != h) { SystemTrayApplet* me = const_cast<SystemTrayApplet*>(this); me->setMinimumSize(0, 0); @@ -764,8 +765,7 @@ } int currentWidth = width(); - int minSize = m_iconSize + 4; - if (currentWidth != w && currentWidth != minSize) + if (currentWidth != w) { SystemTrayApplet* me = const_cast<SystemTrayApplet*>(this); me->setMinimumSize(0, 0); @@ -782,10 +782,8 @@ } -void SystemTrayApplet::resizeEvent( QResizeEvent* e ) +void SystemTrayApplet::resizeEvent( QResizeEvent* ) { - KPanelApplet::resizeEvent(e); - layoutTray(); // we need to give ourselves a chance to adjust our size before calling this QTimer::singleShot(0, this, SIGNAL(updateLayout())); @@ -808,7 +806,7 @@ int i = 0, line, nbrOfLines, heightWidth; bool showExpandButton = m_expandButton && m_expandButton->isVisibleTo(this); delete m_layout; - m_layout = new QGridLayout(this, 1, 1, 2, 2); + m_layout = new QGridLayout(this, 1, 1, ICON_MARGIN, ICON_MARGIN); if (m_expandButton) { @@ -828,18 +826,18 @@ // // The margin and spacing specified in the layout implies that: - // [-- 2 pixels --] [-- first icon --] [-- 2 pixels --] ... [-- 2 pixels --] [-- last icon --] [-- 2 pixels --] + // [-- ICON_MARGIN pixels --] [-- first icon --] [-- ICON_MARGIN pixels --] ... [-- ICON_MARGIN pixels --] [-- last icon --] [-- ICON_MARGIN pixels --] // - // So, if we say that iconWidth is the icon width plus the 2 pixels spacing, then the available width for the icons - // is the widget width minus 2 pixels margin. Forgetting these 2 pixels broke the layout algorithm in KDE <= 3.5.9. + // So, if we say that iconWidth is the icon width plus the ICON_MARGIN pixels spacing, then the available width for the icons + // is the widget width minus ICON_MARGIN pixels margin. Forgetting these ICON_MARGIN pixels broke the layout algorithm in KDE <= 3.5.9. // - // This fix makes the workaround in the heightForWidth() and widthForHeight() methods unneeded. + // This fix makes the workarounds in the heightForWidth() and widthForHeight() methods unneeded. // if (orientation() == Vertical) { - int iconWidth = maxIconWidth() + 2; // +2 for the margins that implied by the layout - heightWidth = width() - 2; + int iconWidth = maxIconWidth() + ICON_MARGIN; // +2 for the margins that implied by the layout + heightWidth = width() - ICON_MARGIN; // to avoid nbrOfLines=0 we ensure heightWidth >= iconWidth! heightWidth = heightWidth < iconWidth ? iconWidth : heightWidth; nbrOfLines = heightWidth / iconWidth; @@ -860,12 +858,12 @@ emb != lastEmb; ++emb) { line = i % nbrOfLines; - (*emb)->hide(); + //(*emb)->hide(); (*emb)->show(); m_layout->addWidget(*emb, col, line, Qt::AlignHCenter | Qt::AlignVCenter); - if (line + 1 == nbrOfLines) + if ((line + 1) == nbrOfLines) { ++col; } @@ -879,12 +877,12 @@ emb != lastEmb; ++emb) { line = i % nbrOfLines; - (*emb)->hide(); + //(*emb)->hide(); (*emb)->show(); m_layout->addWidget(*emb, col, line, Qt::AlignHCenter | Qt::AlignVCenter); - if (line + 1 == nbrOfLines) + if ((line + 1) == nbrOfLines) { ++col; } @@ -894,8 +892,8 @@ } else // horizontal { - int iconHeight = maxIconHeight() + 2; // +2 for the margins that implied by the layout - heightWidth = height() - 2; + int iconHeight = maxIconHeight() + ICON_MARGIN; // +2 for the margins that implied by the layout + heightWidth = height() - ICON_MARGIN; heightWidth = heightWidth < iconHeight ? iconHeight : heightWidth; // to avoid nbrOfLines=0 nbrOfLines = heightWidth / iconHeight; @@ -914,12 +912,12 @@ for (TrayEmbedList::const_iterator emb = m_hiddenWins.begin(); emb != lastEmb; ++emb) { line = i % nbrOfLines; - (*emb)->hide(); + //(*emb)->hide(); (*emb)->show(); m_layout->addWidget(*emb, line, col, Qt::AlignHCenter | Qt::AlignVCenter); - if (line + 1 == nbrOfLines) + if ((line + 1) == nbrOfLines) { ++col; } @@ -933,12 +931,12 @@ emb != lastEmb; ++emb) { line = i % nbrOfLines; - (*emb)->hide(); + //(*emb)->hide(); (*emb)->show(); m_layout->addWidget(*emb, line, col, Qt::AlignHCenter | Qt::AlignVCenter); - if (line + 1 == nbrOfLines) + if ((line + 1) == nbrOfLines) { ++col; } @@ -975,6 +973,21 @@ : QXEmbed( parent ), kde_tray( kdeTray ) { hide(); +} + +void TrayEmbed::getIconSize(int defaultIconSize) +{ + QSize minSize = minimumSizeHint(); + + int width = minSize.width(); + int height = minSize.height(); + + if (width < 1 || width > defaultIconSize) + width = defaultIconSize; + if (height < 1 || height > defaultIconSize) + height = defaultIconSize; + + setFixedSize(width, height); setBackground(); } @@ -994,9 +1007,7 @@ if (!isHidden()) { - hide(); - show(); + XClearArea(x11Display(), embeddedWinId(), 0, 0, 0, 0, True); } - //XClearArea(x11Display(), embeddedWinId(), 0, 0, 0, 0, True); } diff -wruN kdebase-3.5.10/kicker/applets/systemtray/systemtrayapplet.h kdebase/kicker/applets/systemtray/systemtrayapplet.h --- kdebase-3.5.10/kicker/applets/systemtray/systemtrayapplet.h 2008-08-19 22:16:58.000000000 +0400 +++ kdebase/kicker/applets/systemtray/systemtrayapplet.h 2008-08-29 00:47:43.589337000 +0400 @@ -118,6 +118,7 @@ TrayEmbed( bool kdeTray, QWidget* parent = NULL ); bool kdeTray() const { return kde_tray; } void setBackground(); + void getIconSize(int defaultIconSize); private: bool kde_tray; }; diff -wruN kdebase-3.5.10/kicker/extensions/taskbar/taskbarextension.cpp kdebase/kicker/extensions/taskbar/taskbarextension.cpp --- kdebase-3.5.10/kicker/extensions/taskbar/taskbarextension.cpp 2006-03-17 13:17:31.000000000 +0300 +++ kdebase/kicker/extensions/taskbar/taskbarextension.cpp 2008-08-21 17:34:25.550504000 +0400 @@ -170,7 +170,6 @@ } unsetPalette(); - m_container->unsetPalette(); if (KickerSettings::useBackgroundTheme()) { @@ -215,17 +214,17 @@ KickerLib::colorize(bgImage); } setPaletteBackgroundPixmap(bgImage); - m_container->setPaletteBackgroundPixmap(bgImage); } } + + m_container->setBackground(); } void TaskBarExtension::updateBackground(const QPixmap& bgImage) { unsetPalette(); setPaletteBackgroundPixmap(bgImage); - m_container->unsetPalette(); - m_container->setPaletteBackgroundPixmap(bgImage); + m_container->setBackground(); } void TaskBarExtension::resizeEvent(QResizeEvent *e) diff -wruN kdebase-3.5.10/kicker/kicker/core/containerarea.cpp kdebase/kicker/kicker/core/containerarea.cpp --- kdebase-3.5.10/kicker/kicker/core/containerarea.cpp 2008-08-19 22:16:56.000000000 +0400 +++ kdebase/kicker/kicker/core/containerarea.cpp 2008-08-29 03:10:18.341360000 +0400 @@ -90,15 +90,12 @@ m_addAppletDialog(0) { setBackgroundOrigin( WidgetOrigin ); - viewport()->setBackgroundOrigin( AncestorOrigin ); - m_contents = new QWidget(viewport()); - m_contents->setBackgroundOrigin(AncestorOrigin); + m_contents = viewport(); m_layout = new ContainerAreaLayout(m_contents); - // Install an event filter to propagate layout hints coming from - // m_contents. + // Install an event filter to propagate layout hints coming from m_contents. m_contents->installEventFilter(this); setBackground(); diff -wruN kdebase-3.5.10/kicker/kicker/core/container_extension.cpp kdebase/kicker/kicker/core/container_extension.cpp --- kdebase-3.5.10/kicker/kicker/core/container_extension.cpp 2008-08-19 22:16:56.000000000 +0400 +++ kdebase/kicker/kicker/core/container_extension.cpp 2008-08-29 03:10:18.341360000 +0400 @@ -126,6 +126,7 @@ connect(Kicker::the()->kwinModule(), SIGNAL(currentDesktopChanged(int)), this, SLOT( currentDesktopChanged(int))); + setBackgroundOrigin(AncestorOrigin); setFrameStyle(NoFrame); setLineWidth(0); setMargin(0); diff -wruN kdebase-3.5.10/kicker/kicker/core/panelextension.cpp kdebase/kicker/kicker/core/panelextension.cpp --- kdebase-3.5.10/kicker/kicker/core/panelextension.cpp 2008-08-19 22:16:56.000000000 +0400 +++ kdebase/kicker/kicker/core/panelextension.cpp 2008-08-29 03:10:18.341360000 +0400 @@ -74,7 +74,6 @@ connect(_containerArea, SIGNAL(maintainFocus(bool)), this, SIGNAL(maintainFocus(bool))); _layout->addWidget(_containerArea); - _containerArea->setFrameStyle(QFrame::NoFrame); _containerArea->viewport()->installEventFilter(this); _containerArea->configure(); diff -wruN kdebase-3.5.10/kicker/libkicker/kickertip.cpp kdebase/kicker/libkicker/kickertip.cpp --- kdebase-3.5.10/kicker/libkicker/kickertip.cpp 2007-10-08 13:51:19.000000000 +0400 +++ kdebase/kicker/libkicker/kickertip.cpp 2008-08-30 17:00:01.424786000 +0400 @@ -128,8 +128,10 @@ // Tickle the information out of the bastard. client->updateKickerTip(data); + // Hide the tip if there is nothing to show if (data.message.isEmpty() && data.subtext.isEmpty() && data.icon.isNull()) { + hide(); return; } @@ -137,7 +139,7 @@ m_richText = new QSimpleRichText("<qt><h3>" + data.message + "</h3><p>" + data.subtext + "</p></qt>", font(), QString::null, 0, m_mimeFactory); - m_richText->setWidth(400); + m_richText->setWidth(640); m_direction = data.direction; if (KickerSettings::mouseOversShowIcon()) @@ -193,11 +195,81 @@ void KickerTip::mousePressEvent(QMouseEvent * /*e*/) { QToolTip::setGloballyEnabled(m_toolTipsEnabled); - m_timer.stop(); - m_frameTimer.stop(); hide(); } +static void drawRoundRect(QPainter &p, const QRect &r) +{ + static int line[8] = { 1, 3, 4, 5, 6, 7, 7, 8 }; + static int border[8] = { 1, 2, 1, 1, 1, 1, 1, 1 }; + int xl, xr, y1, y2; + QPen pen = p.pen(); + bool drawBorder = pen.style() != QPen::NoPen; + + if (r.width() < 16 || r.height() < 16) + { + p.drawRect(r); + return; + } + + p.fillRect(r.x(), r.y() + 8, r.width(), r.height() - 16, p.brush()); + p.fillRect(r.x() + 8, r.y(), r.width() - 16, r.height(), p.brush()); + + p.setPen(p.brush().color()); + + for (int i = 0; i < 8; i++) + { + xl = i; + xr = r.width() - i - 1; + y1 = 7; + y2 = 7 - (line[i] - 1); + + p.drawLine(xl, y1, xl, y2); + p.drawLine(xr, y1, xr, y2); + + y1 = r.height() - y1 - 1; + y2 = r.height() - y2 - 1; + + p.drawLine(xl, y1, xl, y2); + p.drawLine(xr, y1, xr, y2); + + } + + if (drawBorder) + { + p.setPen(pen); + + if (r.height() > 16) + { + p.drawLine(r.x(), r.y() + 8, r.x(), r.y() + r.height() - 9); + p.drawLine(r.x() + r.width() - 1, r.y() + 8, r.x() + r.width() - 1, r.y() + r.height() - 9); + } + if (r.width() > 16) + { + p.drawLine(r.x() + 8, r.y(), r.x() + r.width() - 9, r.y()); + p.drawLine(r.x() + 8, r.y() + r.height() - 1, r.x() + r.width() - 9, r.y() + r.height() - 1); + } + + for (int i = 0; i < 8; i++) + { + xl = i; + xr = r.width() - i - 1; + y2 = 7 - (line[i] - 1); + y1 = y2 + (border[i] - 1); + + p.drawLine(xl, y1, xl, y2); + p.drawLine(xr, y1, xr, y2); + + y1 = r.height() - y1 - 1; + y2 = r.height() - y2 - 1; + + p.drawLine(xl, y1, xl, y2); + p.drawLine(xr, y1, xr, y2); + + } + } +} + void KickerTip::plainMask() { QPainter maskPainter(&m_mask); @@ -205,9 +277,9 @@ m_mask.fill(Qt::black); maskPainter.setBrush(Qt::white); - maskPainter.setPen(Qt::white); - maskPainter.drawRoundRect(m_mask.rect(), 1600 / m_mask.rect().width(), - 1600 / m_mask.rect().height()); + maskPainter.setPen(Qt::NoPen); + //maskPainter.drawRoundRect(m_mask.rect(), 1600 / m_mask.rect().width(), 1600 / m_mask.rect().height()); + drawRoundRect(maskPainter, m_mask.rect()); setMask(m_mask); m_frameTimer.stop(); } @@ -219,9 +291,9 @@ m_mask.fill(Qt::black); maskPainter.setBrush(Qt::white); - maskPainter.setPen(Qt::white); - maskPainter.drawRoundRect(m_mask.rect(), 1600 / m_mask.rect().width(), - 1600 / m_mask.rect().height()); + maskPainter.setPen(Qt::NoPen); + //maskPainter.drawRoundRect(m_mask.rect(), 1600 / m_mask.rect().width(), 1600 / m_mask.rect().height()); + drawRoundRect(maskPainter, m_mask.rect()); m_dissolveSize += m_dissolveDelta; @@ -235,7 +307,7 @@ for (y = 0; y < height() + size; y += size) { x = width(); - s = m_dissolveSize * x / 128; + s = 4 * m_dissolveSize * x / 128; for (; x > -size; x -= size, s -= 2) { if (s < 0) @@ -311,10 +383,10 @@ // draw background QPainter bufferPainter(&m_pixmap); - bufferPainter.setPen(Qt::black); + bufferPainter.setPen(colorGroup().foreground()); bufferPainter.setBrush(colorGroup().background()); - bufferPainter.drawRoundRect(0, 0, width, height, - 1600 / width, 1600 / height); + //bufferPainter.drawRoundRect(0, 0, width, height, 1600 / width, 1600 / height); + drawRoundRect(bufferPainter, QRect(0, 0, width, height)); // draw icon if present if (!m_icon.isNull()) @@ -331,11 +403,11 @@ QColorGroup cg = colorGroup(); cg.setColor(QColorGroup::Text, cg.background().dark(115)); int shadowOffset = QApplication::reverseLayout() ? -1 : 1; - m_richText->draw(&bufferPainter, 5 + textX + shadowOffset, textY + 1, QRect(), cg); + m_richText->draw(&bufferPainter, textX + shadowOffset, textY + 1, QRect(), cg); // draw text cg = colorGroup(); - m_richText->draw(&bufferPainter, 5 + textX, textY, rect(), cg); + m_richText->draw(&bufferPainter, textX, textY, rect(), cg); } } @@ -359,12 +431,8 @@ void KickerTip::untipFor(const QWidget* w) { if (isTippingFor(w)) - { - tipFor(0); - m_timer.stop(); hide(); } -} bool KickerTip::isTippingFor(const QWidget* w) const { @@ -408,7 +476,8 @@ void KickerTip::hide() { - m_tippingFor = 0; + tipFor(0); + m_timer.stop(); m_frameTimer.stop(); QWidget::hide(); } @@ -476,8 +545,6 @@ break; case QEvent::MouseButtonPress: QToolTip::setGloballyEnabled(m_toolTipsEnabled); - m_timer.stop(); - m_frameTimer.stop(); hide(); default: break; diff -wruN kdebase-3.5.10/kicker/libkicker/panner.cpp kdebase/kicker/libkicker/panner.cpp --- kdebase-3.5.10/kicker/libkicker/panner.cpp 2008-08-19 22:16:55.000000000 +0400 +++ kdebase/kicker/libkicker/panner.cpp 2008-08-29 03:10:18.341360000 +0400 @@ -35,11 +35,12 @@ #include "panner.h" #include "panner.moc" - Panner::Panner( QWidget* parent, const char* name ) - : QScrollView( parent, name ), + : QWidget( parent, name ), _luSB(0), - _rdSB(0) + _rdSB(0), + _cwidth(0), _cheight(0), + _cx(0), _cy(0) { KGlobal::locale()->insertCatalogue("libkicker"); setBackgroundOrigin( AncestorOrigin ); @@ -47,16 +48,15 @@ _updateScrollButtonsTimer = new QTimer(this); connect(_updateScrollButtonsTimer, SIGNAL(timeout()), this, SLOT(reallyUpdateScrollButtons())); - setResizePolicy(Manual); - setVScrollBarMode( QScrollView::AlwaysOff ); - setHScrollBarMode( QScrollView::AlwaysOff ); - - viewport()->setBackgroundMode( PaletteBackground ); - viewport()->setBackgroundOrigin( AncestorOrigin ); + _clipper = new QWidget(this); + _clipper->setBackgroundOrigin(AncestorOrigin); + _clipper->installEventFilter( this ); + _viewport = new QWidget(_clipper); + _viewport->setBackgroundOrigin(AncestorOrigin); // layout _layout = new QBoxLayout(this, QBoxLayout::LeftToRight); - _layout->addWidget(viewport(), 1); + _layout->addWidget(_clipper, 1); setOrientation(Horizontal); } @@ -64,6 +64,37 @@ { } +void Panner::createScrollButtons() +{ + if (_luSB) + { + return; + } + + // left/up scroll button + _luSB = new SimpleArrowButton(this); + _luSB->installEventFilter(this); + //_luSB->setAutoRepeat(true); + _luSB->setMinimumSize(12, 12); + _luSB->hide(); + _layout->addWidget(_luSB); + connect(_luSB, SIGNAL(pressed()), SLOT(startScrollLeftUp())); + connect(_luSB, SIGNAL(released()), SLOT(stopScroll())); + + // right/down scroll button + _rdSB = new SimpleArrowButton(this); + _rdSB->installEventFilter(this); + //_rdSB->setAutoRepeat(true); + _rdSB->setMinimumSize(12, 12); + _rdSB->hide(); + _layout->addWidget(_rdSB); + connect(_rdSB, SIGNAL(pressed()), SLOT(startScrollRightDown())); + connect(_rdSB, SIGNAL(released()), SLOT(stopScroll())); + + // set up the buttons + setupButtons(); +} + void Panner::setupButtons() { if (orientation() == Horizontal) @@ -110,55 +141,54 @@ reallyUpdateScrollButtons(); } -void Panner::resizeEvent( QResizeEvent* e ) +void Panner::resizeEvent( QResizeEvent* ) { - QScrollView::resizeEvent( e ); - updateScrollButtons(); + //QScrollView::resizeEvent( e ); + //updateScrollButtons(); } void Panner::scrollRightDown() { if(orientation() == Horizontal) // scroll right - scrollBy( 40, 0 ); + scrollBy( _step, 0 ); else // scroll down - scrollBy( 0, 40 ); + scrollBy( 0, _step ); + if (_step < 64) + _step++; } void Panner::scrollLeftUp() { if(orientation() == Horizontal) // scroll left - scrollBy( -40, 0 ); + scrollBy( -_step, 0 ); else // scroll up - scrollBy( 0, -40 ); + scrollBy( 0, -_step ); + if (_step < 64) + _step++; } -void Panner::createScrollButtons() +void Panner::startScrollRightDown() { - if (_luSB) - { - return; + _scrollTimer = new QTimer(this); + connect(_scrollTimer, SIGNAL(timeout()), SLOT(scrollRightDown())); + _scrollTimer->start(50); + _step = 8; + scrollRightDown(); } - // left/up scroll button - _luSB = new SimpleArrowButton(this); - _luSB->installEventFilter(this); - _luSB->setAutoRepeat(true); - _luSB->setMinimumSize(12, 12); - _luSB->hide(); - _layout->addWidget(_luSB); - connect(_luSB, SIGNAL(clicked()), SLOT(scrollLeftUp())); - - // right/down scroll button - _rdSB = new SimpleArrowButton(this); - _rdSB->installEventFilter(this); - _rdSB->setAutoRepeat(true); - _rdSB->setMinimumSize(12, 12); - _rdSB->hide(); - _layout->addWidget(_rdSB); - connect(_rdSB, SIGNAL(clicked()), SLOT(scrollRightDown())); +void Panner::startScrollLeftUp() +{ + _scrollTimer = new QTimer(this); + connect(_scrollTimer, SIGNAL(timeout()), SLOT(scrollLeftUp())); + _scrollTimer->start(50); + _step = 8; + scrollLeftUp(); +} - // set up the buttons - setupButtons(); +void Panner::stopScroll() +{ + delete _scrollTimer; + _scrollTimer = 0; } void Panner::reallyUpdateScrollButtons() @@ -176,7 +206,7 @@ delta = contentsHeight() - height(); } - if (delta > 1) + if (delta >= 1) { createScrollButtons(); @@ -184,21 +214,11 @@ // we need to do this every single time _luSB->show(); _rdSB->show(); - - if (orientation() == Horizontal) - { - setMargins(0, 0, _luSB->width() + _rdSB->width(), 0); - } - else - { - setMargins(0, 0, 0, _luSB->height() + _rdSB->height()); - } } else if (_luSB && _luSB->isVisibleTo(this)) { _luSB->hide(); _rdSB->hide(); - setMargins(0, 0, 0, 0); } } @@ -207,8 +227,170 @@ _updateScrollButtonsTimer->start(200, true); } +void Panner::setContentsPos(int x, int y) +{ + if (x < 0) + x = 0; + else if (x > (contentsWidth() - visibleWidth())) + x = contentsWidth() - visibleWidth(); + + if (y < 0) + y = 0; + else if (y > (contentsHeight() - visibleHeight())) + y = contentsHeight() - visibleHeight(); + + if (x == contentsX() && y == contentsY()) + return; + + _viewport->move(-x, -y); + emit contentsMoving(x, y); +} + +void Panner::scrollBy(int dx, int dy) +{ + setContentsPos(contentsX() + dx, contentsY() + dy); +} + void Panner::resizeContents( int w, int h ) { - QScrollView::resizeContents( w, h ); + _viewport->resize(w, h); + setContentsPos(contentsX(), contentsY()); updateScrollButtons(); } + +QPoint Panner::contentsToViewport( const QPoint& p ) const +{ + return QPoint(p.x() - contentsX() - _clipper->x(), p.y() - contentsY() - _clipper->y()); +} + +QPoint Panner::viewportToContents( const QPoint& vp ) const +{ + return QPoint(vp.x() + contentsX() + _clipper->x(), vp.y() + contentsY() + _clipper->y()); +} + +void Panner::contentsToViewport( int x, int y, int& vx, int& vy ) const +{ + const QPoint v = contentsToViewport(QPoint(x,y)); + vx = v.x(); + vy = v.y(); +} + +void Panner::viewportToContents( int vx, int vy, int& x, int& y ) const +{ + const QPoint c = viewportToContents(QPoint(vx,vy)); + x = c.x(); + y = c.y(); +} + +void Panner::ensureVisible( int x, int y ) +{ + ensureVisible(x, y, 50, 50); +} + +void Panner::ensureVisible( int x, int y, int xmargin, int ymargin ) +{ + int pw=visibleWidth(); + int ph=visibleHeight(); + + int cx=-contentsX(); + int cy=-contentsY(); + int cw=contentsWidth(); + int ch=contentsHeight(); + + if ( pw < xmargin*2 ) + xmargin=pw/2; + if ( ph < ymargin*2 ) + ymargin=ph/2; + + if ( cw <= pw ) { + xmargin=0; + cx=0; + } + if ( ch <= ph ) { + ymargin=0; + cy=0; + } + + if ( x < -cx+xmargin ) + cx = -x+xmargin; + else if ( x >= -cx+pw-xmargin ) + cx = -x+pw-xmargin; + + if ( y < -cy+ymargin ) + cy = -y+ymargin; + else if ( y >= -cy+ph-ymargin ) + cy = -y+ph-ymargin; + + if ( cx > 0 ) + cx=0; + else if ( cx < pw-cw && cw>pw ) + cx=pw-cw; + + if ( cy > 0 ) + cy=0; + else if ( cy < ph-ch && ch>ph ) + cy=ph-ch; + + setContentsPos( -cx, -cy ); +} + +bool Panner::eventFilter( QObject *obj, QEvent *e ) +{ + if ( obj == _viewport || obj == _clipper ) + { + switch ( e->type() ) + { + case QEvent::Resize: + viewportResizeEvent((QResizeEvent *)e); + break; + case QEvent::MouseButtonPress: + viewportMousePressEvent( (QMouseEvent*)e ); + if ( ((QMouseEvent*)e)->isAccepted() ) + return true; + break; + case QEvent::MouseButtonRelease: + viewportMouseReleaseEvent( (QMouseEvent*)e ); + if ( ((QMouseEvent*)e)->isAccepted() ) + return true; + break; + case QEvent::MouseButtonDblClick: + viewportMouseDoubleClickEvent( (QMouseEvent*)e ); + if ( ((QMouseEvent*)e)->isAccepted() ) + return true; + break; + case QEvent::MouseMove: + viewportMouseMoveEvent( (QMouseEvent*)e ); + if ( ((QMouseEvent*)e)->isAccepted() ) + return true; + break; + default: + break; + } + } + + return QWidget::eventFilter( obj, e ); // always continue with standard event processing +} + +void Panner::viewportResizeEvent( QResizeEvent* ) +{ +} + +void Panner::viewportMousePressEvent( QMouseEvent* e) +{ + e->ignore(); +} + +void Panner::viewportMouseReleaseEvent( QMouseEvent* e ) +{ + e->ignore(); +} + +void Panner::viewportMouseDoubleClickEvent( QMouseEvent* e ) +{ + e->ignore(); +} + +void Panner::viewportMouseMoveEvent( QMouseEvent* e ) +{ + e->ignore(); +} diff -wruN kdebase-3.5.10/kicker/libkicker/panner.h kdebase/kicker/libkicker/panner.h --- kdebase-3.5.10/kicker/libkicker/panner.h 2008-08-19 22:16:55.000000000 +0400 +++ kdebase/kicker/libkicker/panner.h 2008-08-29 03:10:18.341360000 +0400 @@ -24,14 +24,14 @@ #ifndef __panner_h__ #define __panner_h__ -#include <qscrollview.h> +#include <qwidget.h> #include "simplebutton.h" class QBoxLayout; class QTimer; -class KDE_EXPORT Panner : public QScrollView +class KDE_EXPORT Panner : public QWidget { Q_OBJECT @@ -44,16 +44,54 @@ Qt::Orientation orientation() const { return _orient; } virtual void setOrientation(Orientation orientation); + QWidget *viewport() const { return _viewport; } + + QRect contentsRect() const { return QRect(0, 0, width(), height()); } + + int contentsX() const { return _viewport ? -_viewport->x() : 0; } + int contentsY() const { return _viewport ? -_viewport->y() : 0; } + int contentsWidth() const { return _viewport ? _viewport->width() : 0; } + int contentsHeight() const { return _viewport ? _viewport->height() : 0; } + void setContentsPos(int x, int y); + + int visibleWidth() const { return _clipper->width(); } + int visibleHeight() const { return _clipper->height(); } + + void contentsToViewport( int x, int y, int& vx, int& vy ) const; + void viewportToContents( int vx, int vy, int& x, int& y ) const; + QPoint contentsToViewport( const QPoint& ) const; + QPoint viewportToContents( const QPoint& ) const; + + void addChild(QWidget *child) { child->show(); } + void removeChild(QWidget *child) { child->hide(); } + int childX(QWidget *child) const { return child->x(); } + int childY(QWidget *child) const { return child->y(); } + void moveChild(QWidget *child, int x, int y) { child->move(x, y); } + + void ensureVisible( int x, int y ); + void ensureVisible( int x, int y, int xmargin, int ymargin ); + public slots: virtual void resizeContents( int w, int h ); + void startScrollRightDown(); + void startScrollLeftUp(); + void stopScroll(); void scrollRightDown(); void scrollLeftUp(); void reallyUpdateScrollButtons(); + void scrollBy(int dx, int dy); + +signals: + void contentsMoving(int x, int y); protected: - void resizeEvent(QResizeEvent *ev); - void contentsWheelEvent(QWheelEvent *){;} - void viewportWheelEvent(QWheelEvent *){;} + virtual bool eventFilter( QObject *obj, QEvent *e ); + virtual void resizeEvent(QResizeEvent *ev); + virtual void viewportResizeEvent( QResizeEvent* ); + virtual void viewportMousePressEvent( QMouseEvent* ); + virtual void viewportMouseReleaseEvent( QMouseEvent* ); + virtual void viewportMouseDoubleClickEvent( QMouseEvent* ); + virtual void viewportMouseMoveEvent( QMouseEvent* ); private: void setupButtons(); @@ -65,6 +103,13 @@ SimpleArrowButton *_luSB; // Left Scroll Button SimpleArrowButton *_rdSB; // Right Scroll Button QTimer *_updateScrollButtonsTimer; + QTimer *_scrollTimer; + + QWidget *_clipper; + QWidget *_viewport; + int _cwidth, _cheight; + int _cx, _cy; + int _step; }; #endif diff -wruN kdebase-3.5.10/kicker/libkicker/simplebutton.cpp kdebase/kicker/libkicker/simplebutton.cpp --- kdebase-3.5.10/kicker/libkicker/simplebutton.cpp 2008-08-19 22:16:55.000000000 +0400 +++ kdebase/kicker/libkicker/simplebutton.cpp 2008-08-30 17:00:01.424786000 +0400 @@ -32,6 +32,8 @@ #include <kipc.h> #include <kstandarddirs.h> +#define BUTTON_MARGIN KDialog::spacingHint() + SimpleButton::SimpleButton(QWidget *parent, const char *name) : QButton(parent, name), m_highlight(false), @@ -70,7 +72,7 @@ if (!pm) return QButton::sizeHint(); else - return QSize(pm->width() + KDialog::spacingHint(), pm->height() + KDialog::spacingHint()); + return QSize(pm->width() + BUTTON_MARGIN, pm->height() + BUTTON_MARGIN); } QSize SimpleButton::minimumSizeHint() const @@ -107,7 +109,7 @@ int w = width(); int ph = pix.height(); int pw = pix.width(); - int margin = KDialog::spacingHint(); + int margin = BUTTON_MARGIN; QPoint origin(margin / 2, margin / 2); if (ph < (h - margin)) diff -wruN kdebase-3.5.10/kicker/taskbar/taskbar.cpp kdebase/kicker/taskbar/taskbar.cpp --- kdebase-3.5.10/kicker/taskbar/taskbar.cpp 2008-08-19 22:16:54.000000000 +0400 +++ kdebase/kicker/taskbar/taskbar.cpp 2008-11-19 03:45:13.123369000 +0300 @@ -61,8 +61,6 @@ m_textShadowEngine(0), m_ignoreUpdates(false) { - setFrameStyle( NoFrame ); - arrowType = LeftArrow; blocklayout = true; @@ -81,6 +79,8 @@ connect(&m_relayoutTimer, SIGNAL(timeout()), this, SLOT(reLayout())); + connect(this, SIGNAL(contentsMoving(int, int)), SLOT(setBackground())); + // connect manager connect(TaskManager::the(), SIGNAL(taskAdded(Task::Ptr)), this, SLOT(add(Task::Ptr))); @@ -647,7 +648,7 @@ if (!blocklayout && !m_ignoreUpdates) { - m_relayoutTimer.start(100, true); + m_relayoutTimer.start(25, true); } } @@ -814,18 +815,10 @@ QTimer::singleShot(100, this, SLOT(publishIconGeometry())); } -void TaskBar::viewportResizeEvent( QResizeEvent* e ) -{ - Panner::viewportResizeEvent(e); - setViewportBackground(); -} - void TaskBar::setViewportBackground() { const QPixmap *bg = parentWidget()->backgroundPixmap(); - viewport()->unsetPalette(); - if (bg) { QPixmap pm(parentWidget()->size()); diff -wruN kdebase-3.5.10/kicker/taskbar/taskbar.h kdebase/kicker/taskbar/taskbar.h --- kdebase-3.5.10/kicker/taskbar/taskbar.h 2008-08-19 22:16:54.000000000 +0400 +++ kdebase/kicker/taskbar/taskbar.h 2008-08-29 03:10:18.341360000 +0400 @@ -63,12 +63,11 @@ QImage* blendGradient(const QSize& size); - void setBackground(); - KTextShadowEngine *textShadowEngine(); public slots: void configure(); + void setBackground(); signals: void containerCountChanged(); @@ -98,7 +97,6 @@ void viewportMouseReleaseEvent( QMouseEvent* ); void viewportMouseDoubleClickEvent( QMouseEvent* ); void viewportMouseMoveEvent( QMouseEvent* ); - void viewportResizeEvent( QResizeEvent * ); void wheelEvent(QWheelEvent*); void propagateMouseEvent( QMouseEvent* ); void resizeEvent( QResizeEvent* ); diff -wruN kdebase-3.5.10/kicker/taskbar/taskcontainer.cpp kdebase/kicker/taskbar/taskcontainer.cpp --- kdebase-3.5.10/kicker/taskbar/taskcontainer.cpp 2008-08-19 22:16:54.000000000 +0400 +++ kdebase/kicker/taskbar/taskcontainer.cpp 2008-08-30 17:00:01.424786000 +0400 @@ -202,6 +202,8 @@ } return; } + + KickerTip::Client::updateKickerTip(); QToolButton::update(); } @@ -1524,6 +1526,11 @@ } QPixmap pixmap; + QString name; + QString details; + + if (m_filteredTasks.count() > 0) + { if (TaskBarSettings::showThumbnails() && m_filteredTasks.count() == 1) { @@ -1532,7 +1539,7 @@ pixmap = t->thumbnail(TaskBarSettings::thumbnailMaxDimension()); } - if (pixmap.isNull() && tasks.last()) + if (pixmap.isNull() && tasks.count()) { // try to load icon via net_wm pixmap = KWin::icon(tasks.last()->window(), @@ -1572,8 +1579,6 @@ } } - QString details; - if (TaskBarSettings::showAllWindows() && KWin::numberOfDesktops() > 1) { if (desktopMap.isEmpty()) @@ -1592,7 +1597,7 @@ details.append(i18n("Requesting attention") + "<br>"); } - QString name = this->name(); + name = this->name(); if (modified) { details.append(i18n("Has unsaved changes")); @@ -1606,6 +1611,7 @@ name.remove(modStrPos, modStr.length() + 1); } } + } data.message = QStyleSheet::escape(name); data.subtext = details; diff -wruN kdebase-3.5.10/kioslave/media/mediamanager/halbackend.cpp kdebase/kioslave/media/mediamanager/halbackend.cpp --- kdebase-3.5.10/kioslave/media/mediamanager/halbackend.cpp 2008-08-19 22:16:59.000000000 +0400 +++ kdebase/kioslave/media/mediamanager/halbackend.cpp 2008-09-26 12:55:23.974415000 +0400 @@ -851,13 +851,6 @@ result << tmp; } - if ( valids.contains("locale") ) - { - value = config.readBoolEntry( "locale", true ); - tmp = QString( "locale=%1" ).arg( value ? "true" : "false" ); - result << tmp; - } - if (valids.contains("utf8")) { value = config.readBoolEntry("utf8", true); @@ -878,6 +871,17 @@ result << "shortname=lower"; } + // pass our locale to the ntfs-3g driver so it can translate local characters + if (valids.contains("locale") && fstype == "ntfs-3g") + { + // have to obtain LC_CTYPE as returned by the `locale` command + // check in the same order as `locale` does + char *cType; + if ( (cType = getenv("LC_ALL")) || (cType = getenv("LC_CTYPE")) || (cType = getenv("LANG")) ) { + result << QString("locale=%1").arg(cType); + } + } + if (valids.contains("sync")) { value = config.readBoolEntry("sync", ( valids.contains("flush") && !fstype.endsWith("fat") ) && removable); @@ -931,7 +935,7 @@ QMap<QString,QString> valids = MediaManagerUtils::splitOptions(options); - const char *names[] = { "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", "locale", 0 }; + const char *names[] = { "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", 0 }; for (int index = 0; names[index]; ++index) if (valids.contains(names[index])) config.writeEntry(names[index], valids[names[index]] == "true"); @@ -951,10 +955,6 @@ config.writeEntry("automount", valids["automount"]); } - if (valids.contains("locale") ) { - config.writeEntry("locale", valids["locale"]); - } - return true; } @@ -1153,11 +1153,6 @@ soptions << QString("uid=%1").arg(getuid()); } - if (valids["locale"] == "true") - { - soptions << QString("locale=%1").arg( KGlobal::locale()->language() ); - } - if (valids["ro"] == "true") soptions << "ro"; @@ -1182,6 +1177,11 @@ soptions << QString("shortname=%1").arg(valids["shortname"]); } + if (valids.contains("locale")) + { + soptions << QString("locale=%1").arg(valids["locale"]); + } + if (valids.contains("journaling")) { QString option = valids["journaling"]; diff -wruN kdebase-3.5.10/knetattach/knetattach.ui kdebase/knetattach/knetattach.ui --- kdebase-3.5.10/knetattach/knetattach.ui 2008-02-13 12:40:44.000000000 +0300 +++ kdebase/knetattach/knetattach.ui 2008-09-21 20:43:54.953366000 +0400 @@ -236,7 +236,7 @@ </sizepolicy> </property> <property name="maxValue"> - <number>32768</number> + <number>65535</number> </property> <property name="minValue"> <number>1</number> diff -wruN kdebase-3.5.10/kwin/atoms.cpp kdebase/kwin/atoms.cpp --- kdebase-3.5.10/kwin/atoms.cpp 2005-09-10 12:26:03.000000000 +0400 +++ kdebase/kwin/atoms.cpp 2008-10-14 13:48:20.134015000 +0400 @@ -85,6 +85,8 @@ Atom fake; atoms[n] = &fake; names[n++] = (char *) "_DT_SM_WINDOW_INFO"; + atoms[n] = &fake; + names[n++] = (char *) "_MOTIF_WM_INFO"; // #172028 atoms[n] = &xdnd_aware; names[n++] = (char*) "XdndAware"; diff -wruN kdebase-3.5.10/l10n/ec/entry.desktop kdebase/l10n/ec/entry.desktop --- kdebase-3.5.10/l10n/ec/entry.desktop 2008-08-19 22:17:14.000000000 +0400 +++ kdebase/l10n/ec/entry.desktop 2008-10-23 11:56:36.316642000 +0400 @@ -1,5 +1,5 @@ [KCM Locale] -Name=Equador +Name=Ecuador Name[af]=Ewenaar Name[ar]=الإكوادور Name[az]=Ekvator diff -wruN kdebase-3.5.10/l10n/es/entry.desktop kdebase/l10n/es/entry.desktop --- kdebase-3.5.10/l10n/es/entry.desktop 2008-08-19 22:17:15.000000000 +0400 +++ kdebase/l10n/es/entry.desktop 2008-11-09 19:44:11.261881000 +0300 @@ -94,7 +94,8 @@ NegativeMonetarySignPosition=1 DateFormat[es]=%A, %e de %B de %Y DateFormat[eu]=%a, %Yeko %bren %da -DareFormat[gl]=%A, %e de %B de %Y +DateFormat[gl]=%A, %e de %B de %Y +DateFormat[ca]=%A, %e %B %Y DateFormat[eo]=%A, la %ea de %B %Y DateFormatShort=%d-%m-%y TimeFormat=%H:%M:%S diff -wruN kdebase-3.5.10/l10n/tr/entry.desktop kdebase/l10n/tr/entry.desktop --- kdebase-3.5.10/l10n/tr/entry.desktop 2008-08-19 22:17:14.000000000 +0400 +++ kdebase/l10n/tr/entry.desktop 2009-01-02 15:56:39.781710000 +0300 @@ -83,7 +83,7 @@ Languages=tr DecimalSymbol=, ThousandsSeparator=. -CurrencySymbol=YTL +CurrencySymbol=TL MonetaryDecimalSymbol=, MonetaryThousandsSeparator=. PositiveSign= diff -wruN kdebase-3.5.10/nsplugins/nspluginloader.cpp kdebase/nsplugins/nspluginloader.cpp --- kdebase-3.5.10/nsplugins/nspluginloader.cpp 2008-02-13 12:40:38.000000000 +0300 +++ kdebase/nsplugins/nspluginloader.cpp 2008-12-04 21:20:21.638335000 +0300 @@ -69,7 +69,7 @@ if (cfg.readBoolEntry("demandLoad", false)) { _button = new QPushButton(i18n("Start Plugin"), dynamic_cast<EMBEDCLASS*>(this)); _layout->addWidget(_button, 0, 0); - connect(_button, SIGNAL(clicked()), this, SLOT(doLoadPlugin())); + connect(_button, SIGNAL(clicked()), this, SLOT(loadPlugin())); show(); } else { _button = 0L; @@ -84,11 +84,15 @@ } } +void NSPluginInstance::loadPlugin() +{ + delete _button; + _button = 0; + doLoadPlugin(); +} void NSPluginInstance::doLoadPlugin() { - if (!inited) { - delete _button; - _button = 0L; + if (!inited && !_button) { _loader = NSPluginLoader::instance(); setBackgroundMode(QWidget::NoBackground); WId winid = stub->winId(); diff -wruN kdebase-3.5.10/nsplugins/nspluginloader.h kdebase/nsplugins/nspluginloader.h --- kdebase-3.5.10/nsplugins/nspluginloader.h 2008-02-13 12:40:38.000000000 +0300 +++ kdebase/nsplugins/nspluginloader.h 2008-12-04 21:20:21.638335000 +0300 @@ -55,6 +55,7 @@ void javascriptResult( int id, QString result ) { stub->javascriptResult( id, result ); } private slots: + void loadPlugin(); void doLoadPlugin(); protected:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor