- #461725, revert the patch to fix the regression

- fix kdelibs-4.1.1-kdeui-widgets-fixes.patch
- fix install problem with cmake > 2.5
This commit is contained in:
Than Ngo 2008-09-16 21:44:35 +00:00
parent 1ab56de9a0
commit 1c9d7f419c
4 changed files with 242 additions and 5 deletions

View File

@ -0,0 +1,189 @@
Index: khtml/khtml_part.cpp
===================================================================
--- khtml/khtml_part.cpp (Revision 852920)
+++ khtml/khtml_part.cpp (Revision 852919)
@@ -1080,7 +1080,8 @@
if ( !d->m_frame->m_jscript )
if (!createJScript(d->m_frame))
return 0;
- d->m_frame->m_jscript->setDebugEnabled(d->m_bJScriptDebugEnabled);
+ if (d->m_bJScriptDebugEnabled)
+ d->m_frame->m_jscript->setDebugEnabled(true);
return d->m_frame->m_jscript;
}
Index: khtml/ecma/debugger/debugwindow.cpp
===================================================================
--- khtml/ecma/debugger/debugwindow.cpp (Revision 852920)
+++ khtml/ecma/debugger/debugwindow.cpp (Revision 852919)
@@ -91,12 +91,23 @@
using namespace KJSDebugger;
DebugWindow* DebugWindow::s_debugger = 0;
+DebugWindow *DebugWindow::createInstance()
+{
+ Q_ASSERT(!s_debugger);
+ s_debugger = new DebugWindow();
+ return s_debugger;
+}
+void DebugWindow::destroyInstance()
+{
+ Q_ASSERT(s_debugger);
+ Q_ASSERT(s_debugger->m_activeSessionCtxs.isEmpty());
+ s_debugger->hide();
+ delete s_debugger;
+}
+
DebugWindow * DebugWindow::window()
{
- if (!s_debugger)
- s_debugger = new DebugWindow();
-
return s_debugger;
}
@@ -365,8 +376,6 @@
assert(m_docsForIntrp.isEmpty());
assert(m_docForSid.isEmpty());
assert(m_docForIUKey.isEmpty());
- assert(m_activeSessionCtxs.isEmpty());
- s_debugger = 0;
}
void DebugWindow::closeEvent(QCloseEvent* event)
Index: khtml/ecma/debugger/debugwindow.h
===================================================================
--- khtml/ecma/debugger/debugwindow.h (Revision 852920)
+++ khtml/ecma/debugger/debugwindow.h (Revision 852919)
@@ -39,7 +39,6 @@
#include "khtml_pagecache.h"
#include "khtml_part.h"
#include "dom/dom_misc.h"
-#include "misc/shared.h"
#include <QStack>
#include <QVector>
@@ -72,8 +71,7 @@
*
* There is only one debug window per program. This can be obtained by calling #instance
*/
-class DebugWindow : public KXmlGuiWindow, public KJS::Debugger, public KComponentData,
- public khtml::Shared<DebugWindow>
+class DebugWindow : public KXmlGuiWindow, public KJS::Debugger, public KComponentData
{
Q_OBJECT
@@ -81,6 +79,8 @@
DebugWindow(QWidget *parent = 0);
virtual ~DebugWindow();
+ static DebugWindow *createInstance();
+ static void destroyInstance();
static DebugWindow *window();
// Returns true if the debugger is active, and has blocked the execution
Index: khtml/ecma/kjs_proxy.cpp
===================================================================
--- khtml/ecma/kjs_proxy.cpp (Revision 852920)
+++ khtml/ecma/kjs_proxy.cpp (Revision 852919)
@@ -66,9 +66,9 @@
void initScript();
void applyUserAgent();
+
private:
KJS::ScriptInterpreter* m_script;
- WTF::RefPtr<DebugWindow> m_debugWindow;
bool m_debugEnabled;
#ifndef NDEBUG
static int s_count;
@@ -141,8 +141,8 @@
#ifdef KJS_DEBUGGER
if (inlineCode)
filename = "(unknown file)";
- if (m_debugWindow)
- m_debugWindow->attach(m_script);
+ if (DebugWindow::window())
+ DebugWindow::window()->attach(m_script);
#else
Q_UNUSED(baseLine);
#endif
@@ -202,8 +202,9 @@
// (we used to delete and re-create it, previously)
if (m_script) {
#ifdef KJS_DEBUGGER
- if (m_debugWindow)
- m_debugWindow->clearInterpreter(m_script);
+ DebugWindow *debugWin = DebugWindow::window();
+ if (debugWin)
+ debugWin->clearInterpreter(m_script);
#endif
m_script->clear();
@@ -224,14 +225,6 @@
;
JSLock::unlock();
}
-
-#ifdef KJS_DEBUGGER
- // Detach from debugging entirely if it's been turned off.
- if (m_debugWindow && !m_debugEnabled) {
- m_debugWindow->detach(m_script);
- m_debugWindow = 0;
- }
-#endif
}
DOM::EventListener *KJSProxyImpl::createHTMLEventHandler(QString sourceUrl, QString name, QString code, DOM::NodeImpl *node)
@@ -239,8 +232,8 @@
initScript();
#ifdef KJS_DEBUGGER
- if (m_debugWindow)
- m_debugWindow->attach(m_script);
+ if (DebugWindow::window())
+ DebugWindow::window()->attach(m_script);
#else
Q_UNUSED(sourceUrl);
#endif
@@ -269,21 +262,30 @@
{
#ifdef KJS_DEBUGGER
m_debugEnabled = enabled;
-
- // Note that we attach to the debugger only before
- // running a script. Detaches/disabling are done between
- // documents, at clear. Both are done so the debugger
- // see the entire session
- if (enabled)
- m_debugWindow = DebugWindow::window();
+ //if (m_script)
+ // m_script->setDebuggingEnabled(enabled);
+ // NOTE: this is consistent across all KJSProxyImpl instances, as we only
+ // ever have 1 debug window
+ if (!enabled && DebugWindow::window())
+ {
+ DebugWindow::destroyInstance();
+ }
+ else if (enabled && !DebugWindow::window())
+ {
+ DebugWindow::createInstance();
+ initScript();
+ DebugWindow::window()->attach(m_script);
+ }
+#else
+ Q_UNUSED(enabled);
#endif
}
void KJSProxyImpl::showDebugWindow(bool /*show*/)
{
#ifdef KJS_DEBUGGER
- if (m_debugWindow)
- m_debugWindow->show();
+ if (DebugWindow::window())
+ DebugWindow::window()->show();
#else
//Q_UNUSED(show);
#endif

34
kdelibs-4.1.1-cmake.patch Normal file
View File

@ -0,0 +1,34 @@
diff -up kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake.orig kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake
--- kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake.orig 2008-09-12 23:54:36.000000000 +0200
+++ kdelibs-4.1.1/cmake/modules/FindKDE4Internal.cmake 2008-09-13 00:02:50.000000000 +0200
@@ -745,6 +745,7 @@ endif(WIN32)
# CMake generators if no build type is set.
if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
+ set(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
@@ -953,10 +954,6 @@ endif(MSVC)
if (CMAKE_COMPILER_IS_GNUCXX)
- if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5)
- set (CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} "Debugfull")
- endif("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5)
-
set (KDE4_ENABLE_EXCEPTIONS -fexceptions)
# Select flags.
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
@@ -1063,11 +1060,6 @@ endif (CMAKE_COMPILER_IS_GNUCXX)
if (CMAKE_C_COMPILER MATCHES "icc")
-
- if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5)
- set (CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} "Debugfull")
- endif("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 2.5)
-
set (KDE4_ENABLE_EXCEPTIONS -fexceptions)
# Select flags.
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")

View File

@ -71,10 +71,11 @@ Index: kdeui/widgets/khelpmenu.cpp
+ d->mMenu->addAction(d->mWhatsThisAction);
need_separator = true;
}
Index: kdeui/widgets/ktabwidget.cpp
===================================================================
--- kdeui/widgets/ktabwidget.cpp (revision 858490)
+++ kdeui/widgets/ktabwidget.cpp (revision 858491)
--- kdeui/widgets/ktabwidget.cpp (Revision 858490)
+++ kdeui/widgets/ktabwidget.cpp (Revision 858491)
@@ -281,14 +281,22 @@
QString KTabWidget::tabText( int index ) const
@ -107,8 +108,8 @@ Index: kdeui/widgets/ktabwidget.cpp
void KTabWidget::setTabText( int index, const QString &text )
Index: kdeui/widgets/ktabwidget.h
===================================================================
--- kdeui/widgets/ktabwidget.h (revision 858490)
+++ kdeui/widgets/ktabwidget.h (revision 858491)
--- kdeui/widgets/ktabwidget.h (Revision 858490)
+++ kdeui/widgets/ktabwidget.h (Revision 858491)
@@ -187,7 +187,7 @@
* Removes the widget, reimplemented for
* internal reasons (keeping labels in sync).

View File

@ -2,7 +2,7 @@
Summary: K Desktop Environment 4 - Libraries
Version: 4.1.1
Release: 6%{?dist}
Release: 9%{?dist}
%if 0%{?fedora} > 8
Name: kdelibs
@ -79,6 +79,8 @@ Patch14: kdelibs-4.0.85-libexecdir.patch
Patch18: kdelibs-4.1.0-kstandarddirs.patch
# fix running commands in kglobalconfig before KComponentData init (#455130)
Patch19: kdelibs-4.1.0-#455130.patch
Patch20: kdelibs-4.1.1-cmake.patch
Patch21: kdelibs-4.1.1-bz#461725-regression.patch
## upstream patches
Patch100: kdelibs-4.1.1-kde#169447-khtml-regression.patch
@ -210,6 +212,8 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch14 -p1 -b .libexecdir
%patch18 -p1 -b .kstandarddirs
%patch19 -p1 -b .#455130
%patch20 -p1 -b .cmake
%patch21 -p0 -b .bz#461725-regression
## upstream patches
%patch100 -p0 -b .kde#169447-khtml-regression
@ -377,6 +381,15 @@ rm -rf %{buildroot}
%changelog
* Tue Sep 16 2008 Than Ngo <than@redhat.com> 4.1.1-9
- #461725, revert the patch to fix the regression
* Sat Sep 13 2008 Than Ngo <than@redhat.com> 4.1.1-8
- fix kdelibs-4.1.1-kdeui-widgets-fixes.patch
* Sat Sep 13 2008 Than Ngo <than@redhat.com> 4.1.1-7
- fix install problem with cmake > 2.5
* Mon Sep 08 2008 Lukáš Tinkl <ltinkl@redhat.com> 4.1.1-6
- fix crashes in plugin selector
- fix problems in various kdeui widgets