Hello community,
here is the log from the commit of package kdelibs4 for openSUSE:Factory
checked in at Wed Jun 3 00:50:35 CEST 2009.
--------
--- KDE/kdelibs4/kdelibs4.changes 2009-05-27 22:07:18.000000000 +0200
+++ /mounts/work_src_done/STABLE/kdelibs4/kdelibs4.changes 2009-06-02 23:45:59.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Jun 2 23:45:34 CEST 2009 - dmueller@suse.de
+
+- restore files that were deleted during last checkin cycle
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
4_3_BRANCH.diff
add-suse-translations.diff
clever-menu.diff
default-useragent.diff
desktop-translations.diff
display-key-support.diff
flash-player-non-oss.diff
hidden.desktop
hotplug-kde3.diff
kde3-applications.diff
kde3-autostart.diff
kde4rc
kdebug-areas-update.diff
kdelibs-4.2.88svn973768.tar.bz2
kdesu-settings.diff
kjs-mark-register-stack.diff
plasma-libs.diff
windeco-color.diff
ycp.xml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.v25254/_old 2009-06-03 00:49:32.000000000 +0200
+++ /var/tmp/diff_new_pack.v25254/_new 2009-06-03 00:49:32.000000000 +0200
@@ -39,12 +39,7 @@
Summary: KDE Base Libraries
Url: http://www.kde.org
Version: 4.2.88svn973768
-Release: 1
-%if %suse_version > 1010
-%requires_ge libqt4-x11
-%else
-Requires: qt-x11 >= %( echo `rpm -q --queryformat '%{VERSION}' qt-x11`)
-%endif
+Release: 2
Requires: libstrigi0 >= %( echo `rpm -q --queryformat '%{VERSION}' strigi-devel`)
Requires: soprano >= %( echo `rpm -q --queryformat '%{VERSION}' libsoprano-devel`)
Recommends: strigi >= %( echo `rpm -q --queryformat '%{VERSION}' strigi-devel`)
@@ -71,6 +66,11 @@
Patch17: flash-player-non-oss.diff
Patch18: plasma-libs.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%if %suse_version > 1010
+%requires_ge libqt4-x11
+%else
+Requires: qt-x11 >= %( echo `rpm -q --queryformat '%{VERSION}' qt-x11`)
+%endif
%if 0%{?opensuse_bs}
%define debug_package_requires %name = %version-%release libqt4-debuginfo
%endif
@@ -420,6 +420,8 @@
/usr/share/mime/packages/kde.xml
%changelog
+* Tue Jun 02 2009 dmueller@suse.de
+- restore files that were deleted during last checkin cycle
* Wed May 27 2009 dmueller@suse.de
- update to 4.2.88svn973768
* Tue May 19 2009 dmueller@suse.de
++++++ 4_3_BRANCH.diff ++++++
++++ 8833 lines (skipped)
++++++ add-suse-translations.diff ++++++
From: Dirk Mueller
Summary: add suse provided translations
Patch-Upstream: never
Index: kdecore/localization/klocale.cpp
===================================================================
--- kdecore/localization/klocale.cpp.orig
+++ kdecore/localization/klocale.cpp
@@ -325,11 +325,14 @@ void KLocalePrivate::initMainCatalogs(co
catalogNames.append(KCatalogName(mainCatalog)); // application catalog
// catalogs from which each application can draw translations
- numberOfSysCatalogs = 4;
+ numberOfSysCatalogs = 7;
catalogNames.append(KCatalogName("libphonon"));
catalogNames.append(KCatalogName("kio4"));
catalogNames.append(KCatalogName("kdelibs4"));
catalogNames.append(KCatalogName("kdeqt"));
+ catalogNames.append(KCatalogName("desktop_translations"));
+ catalogNames.append(KCatalogName("kde4-openSUSE"));
+ catalogNames.append(KCatalogName("kde4-SLE"));
updateCatalogs(); // evaluate this for all languages
}
++++++ clever-menu.diff ++++++
Index: kdecore/services/kservice.cpp
===================================================================
--- kdecore/services/kservice.cpp.orig
+++ kdecore/services/kservice.cpp
@@ -702,6 +702,12 @@ QString KService::untranslatedGenericNam
return v.isValid() ? v.toString() : QString();
}
+
+bool KService::SuSEunimportant() const {
+ QVariant v = property("X-SuSE-Unimportant", QVariant::Bool);
+ return v.isValid() && v.toBool();
+}
+
QString KService::parentApp() const {
Q_D(const KService);
QMap::ConstIterator it = d->m_mapProps.find( "X-KDE-ParentApp" );
Index: kdecore/services/kservicegroup.cpp
===================================================================
--- kdecore/services/kservicegroup.cpp.orig
+++ kdecore/services/kservicegroup.cpp
@@ -29,7 +29,7 @@
#include
#include
#include
-
+#include <QDir>
KServiceGroup::KServiceGroup( const QString & name )
: KSycocaEntry(*new KServiceGroupPrivate(name))
@@ -61,6 +61,11 @@ void KServiceGroupPrivate::load(const QS
m_strComment = config.readEntry( "Comment" );
deleted = config.readEntry("Hidden", false );
m_bNoDisplay = desktopFile.noDisplay();
+ if (directoryEntryPath.startsWith(QDir::homePath()))
+ m_bShortMenu = false;
+ else
+ m_bShortMenu = config.readEntry( "X-SuSE-AutoShortMenu", true );
+ m_bGeneralDescription = config.readEntry( "X-SuSE-GeneralDescription", false );
m_strBaseGroupName = config.readEntry( "X-KDE-BaseGroup" );
suppressGenericNames = config.readEntry( "X-KDE-SuppressGenericNames", QStringList() );
// d->sortOrder = config.readEntry("SortOrder", QStringList());
@@ -124,6 +129,10 @@ int KServiceGroupPrivate::childCount() c
{
if (m_childCount == -1)
{
+ KConfig cfg("kdeglobals");
+ KConfigGroup global = cfg.group("KDE");
+ bool showUnimportant = global.readEntry("showUnimportant", false);
+
m_childCount = 0;
for( KServiceGroup::List::ConstIterator it = m_serviceList.begin();
@@ -134,7 +143,8 @@ int KServiceGroupPrivate::childCount() c
{
KService::Ptr service = KService::Ptr::staticCast( p );
if (!service->noDisplay())
- m_childCount++;
+ if ( showUnimportant || !service->SuSEunimportant() )
+ m_childCount++;
}
else if (p->isType(KST_KServiceGroup))
{
@@ -219,6 +229,18 @@ QStringList KServiceGroup::suppressGener
return d->suppressGenericNames;
}
+bool KServiceGroup::SuSEgeneralDescription() const
+{
+ Q_D(const KServiceGroup);
+ return d->m_bGeneralDescription;
+}
+
+bool KServiceGroup::SuSEshortMenu() const
+{
+ Q_D(const KServiceGroup);
+ return d->m_bShortMenu;
+}
+
void KServiceGroupPrivate::load( QDataStream& s )
{
QStringList groupList;
@@ -227,16 +249,21 @@ void KServiceGroupPrivate::load( QDataSt
qint8 inlineHeader;
qint8 _inlineAlias;
qint8 _allowInline;
+ qint8 _shortMenu;
+ qint8 _generalDescription;
s >> m_strCaption >> m_strIcon >>
m_strComment >> groupList >> m_strBaseGroupName >> m_childCount >>
noDisplay >> suppressGenericNames >> directoryEntryPath >>
- sortOrder >> _showEmptyMenu >> inlineHeader >> _inlineAlias >> _allowInline;
+ sortOrder >> _showEmptyMenu >> inlineHeader >> _inlineAlias >> _allowInline >>
+ _shortMenu >> _generalDescription;
m_bNoDisplay = (noDisplay != 0);
m_bShowEmptyMenu = ( _showEmptyMenu != 0 );
m_bShowInlineHeader = ( inlineHeader != 0 );
m_bInlineAlias = ( _inlineAlias != 0 );
m_bAllowInline = ( _allowInline != 0 );
+ m_bShortMenu = (_shortMenu != 0);
+ m_bGeneralDescription = (_generalDescription != 0);
if (m_bDeep)
{
@@ -296,10 +323,12 @@ void KServiceGroupPrivate::save( QDataSt
qint8 inlineHeader = m_bShowInlineHeader ? 1 : 0;
qint8 _inlineAlias = m_bInlineAlias ? 1 : 0;
qint8 _allowInline = m_bAllowInline ? 1 : 0;
+ qint8 _shortMenu = m_bShortMenu ? 1 : 0;
s << m_strCaption << m_strIcon <<
m_strComment << groupList << m_strBaseGroupName << m_childCount <<
noDisplay << suppressGenericNames << directoryEntryPath <<
- sortOrder <<_showEmptyMenu <KServiceGroup::Ptr KServiceGroup::groupEntries(EntriesOptions options)
@@ -359,6 +388,13 @@ KServiceGroup::entries(bool sort, bool e
return d->entries(this, sort, excludeNoDisplay, allowSeparators, sortByGenericName);
}
+KServiceGroup::List
+KServiceGroup::SuSEsortEntries( KSortableListKServiceGroup::SPtr,QByteArray slist, KSortableListKServiceGroup::SPtr,QByteArray glist, bool excludeNoDisplay, bool allowSeparators )
+{
+ Q_D(KServiceGroup);
+ return d->SuSEsortEntries( this, slist, glist, excludeNoDisplay, allowSeparators );
+}
+
static void addItem(KServiceGroup::List &sorted, const KSycocaEntry::Ptr &p, bool &addSeparator)
{
if (addSeparator && !sorted.isEmpty())
@@ -370,6 +406,12 @@ static void addItem(KServiceGroup::List
KServiceGroup::List
KServiceGroupPrivate::entries(KServiceGroup *group, bool sort, bool excludeNoDisplay, bool allowSeparators, bool sortByGenericName)
{
+ return SuSEentries(group, sort, excludeNoDisplay, allowSeparators, sortByGenericName);
+}
+
+KServiceGroup::List
+KServiceGroupPrivate::SuSEentries(KServiceGroup *group, bool sort, bool excludeNoDisplay, bool allowSeparators, bool sortByGenericName, bool excludeSuSEunimportant)
+{
KServiceGroup::Ptr grp;
// If the entries haven't been loaded yet, we have to reload ourselves
@@ -395,11 +437,20 @@ KServiceGroupPrivate::entries(KServiceGr
KSortableListKServiceGroup::SPtr,QByteArray glist;
Q_FOREACH (KSycocaEntry::Ptr p, group->d_func()->m_serviceList)
{
+ if ( !p->isType(KST_KServiceGroup) && !p->isType(KST_KService))
+ continue;
+
bool noDisplay = p->isType(KST_KServiceGroup) ?
static_cast(p.data())->noDisplay() :
static_cast(p.data())->noDisplay();
if (excludeNoDisplay && noDisplay)
continue;
+
+ bool SuSEunimportant = p->isType(KST_KService) &&
+ static_cast(p.data())->SuSEunimportant();
+ if (excludeSuSEunimportant && SuSEunimportant)
+ continue;
+
// Choose the right list
KSortableListKServiceGroup::SPtr,QByteArray & list = p->isType(KST_KServiceGroup) ? glist : slist;
QString name;
@@ -435,6 +486,12 @@ KServiceGroupPrivate::entries(KServiceGr
}
list.insert(key,KServiceGroup::SPtr(p));
}
+ return SuSEsortEntries( group, slist, glist, excludeNoDisplay, allowSeparators );
+}
+
+KServiceGroup::List
+KServiceGroupPrivate::SuSEsortEntries( KServiceGroup *group, KSortableListKServiceGroup::SPtr,QByteArray slist, KSortableListKServiceGroup::SPtr,QByteArray glist, bool excludeNoDisplay, bool allowSeparators )
+{
// Now sort
slist.sort();
glist.sort();
@@ -475,6 +532,8 @@ KServiceGroupPrivate::entries(KServiceGr
// TODO: This prevents duplicates
for(KSortableListKServiceGroup::SPtr,QByteArray::Iterator it2 = slist.begin(); it2 != slist.end(); ++it2)
{
+ if (!(*it2).value()->isType(KST_KService))
+ continue;
const KService::Ptr service = KService::Ptr::staticCast( (*it2).value() );
if (service->menuId() == item)
{
Index: kdecore/services/kservicegroup.h
===================================================================
--- kdecore/services/kservicegroup.h.orig
+++ kdecore/services/kservicegroup.h
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
class KBuildServiceGroupFactory;
@@ -174,6 +175,12 @@ public:
void setLayoutInfo(const QStringList &layout);
/**
+ * SuSE special, not part of KDE API
+ */
+ bool SuSEshortMenu() const;
+ bool SuSEgeneralDescription() const;
+
+ /**
* @internal
* Returns information related to the layout of services in this group.
*/
@@ -200,6 +207,12 @@ public:
List entries(bool sorted = false);
/**
+ * UNOFFICIAL SuSE special
+ */
+ KServiceGroup::List SuSEsortEntries( KSortableListKServiceGroup::SPtr,QByteArray slist, KSortableListKServiceGroup::SPtr,QByteArray glist, bool excludeNoDisplay, bool allowSeparators );
+
+
+ /**
* options for groupEntries and serviceEntries
*/
enum EntriesOption
Index: kdecore/services/kservicegroup_p.h
===================================================================
--- kdecore/services/kservicegroup_p.h.orig
+++ kdecore/services/kservicegroup_p.h
@@ -31,7 +31,8 @@ public:
KServiceGroupPrivate(const QString &path)
: KSycocaEntryPrivate(path),
- m_bNoDisplay(false), m_bShowEmptyMenu(false), m_bShowInlineHeader(false), m_bInlineAlias(false),
+ m_bNoDisplay(false), m_bShortMenu(false), m_bGeneralDescription(false),
+ m_bShowEmptyMenu(false), m_bShowInlineHeader(false), m_bInlineAlias(false),
m_bAllowInline(false), m_inlineValue(4), m_bDeep(false), m_childCount(-1)
{
}
@@ -58,6 +59,13 @@ public:
KServiceGroup::List
entries(KServiceGroup *group, bool sort, bool excludeNoDisplay, bool allowSeparators, bool sortByGenericName);
+
+ /**
+ * UNOFFICIAL SuSE special
+ */
+ KServiceGroup::List SuSEentries(KServiceGroup *group, bool sort, bool excludeNoDisplay, bool allowSeparators, bool sortByGenericName, bool excludeSuSEunimportant = true);
+ KServiceGroup::List SuSEsortEntries( KServiceGroup *group, KSortableListKServiceGroup::SPtr,QByteArray slist, KSortableListKServiceGroup::SPtr,QByteArray glist, bool excludeNoDisplay, bool allowSeparators );
+
/**
* This function parse attributes into menu
*/
@@ -65,6 +73,8 @@ public:
bool m_bNoDisplay : 1;
+ bool m_bShortMenu : 1;
+ bool m_bGeneralDescription : 1;
bool m_bShowEmptyMenu : 1;
bool m_bShowInlineHeader : 1;
bool m_bInlineAlias : 1;
Index: kdecore/services/kservice.h
===================================================================
--- kdecore/services/kservice.h.orig
+++ kdecore/services/kservice.h
@@ -330,6 +330,12 @@ public:
bool noDisplay() const;
/**
+ * check if the application entry is important
+ * SuSE special, not part of KDE API
+ */
+ bool SuSEunimportant() const;
+
+ /**
* Name of the application this service belongs to.
* (Useful for e.g. plugins)
* @return the parent application, or QString() if not set
++++++ default-useragent.diff ++++++
Index: kio/kio/kprotocolmanager.cpp
===================================================================
--- kio/kio/kprotocolmanager.cpp.orig
+++ kio/kio/kprotocolmanager.cpp
@@ -77,7 +77,7 @@ KProtocolManagerPrivate::~KProtocolManag
// DEFAULT USERAGENT STRING
#define CFG_DEFAULT_UAGENT(X) \
-QString("Mozilla/5.0 (compatible; Konqueror/%1.%2%3) KHTML/%4.%5.%6 (like Gecko)") \
+QString("Mozilla/5.0 (compatible; Konqueror/%1.%2%3) KHTML/%4.%5.%6 (like Gecko) SUSE") \
.arg(KDE_VERSION_MAJOR).arg(KDE_VERSION_MINOR).arg(X).arg(KDE_VERSION_MAJOR).arg(KDE_VERSION_MINOR).arg(KDE_VERSION_RELEASE)
#define PRIVATE_DATA \
++++++ desktop-translations.diff ++++++
Subject: Read .desktop file translations from .mo files if not present
From: Lubos Lunak
Fate: #300461
Patch-upstream: no
Relates: kdelibs3/desktop-translations.diff
Index: kdecore/services/kservicegroup.cpp
===================================================================
--- kdecore/services/kservicegroup.cpp.orig
+++ kdecore/services/kservicegroup.cpp
@@ -56,9 +56,9 @@ void KServiceGroupPrivate::load(const QS
const KConfigGroup config = desktopFile.desktopGroup();
- m_strCaption = config.readEntry( "Name" );
- m_strIcon = config.readEntry( "Icon" );
- m_strComment = config.readEntry( "Comment" );
+ m_strCaption = desktopFile.readName();
+ m_strIcon = desktopFile.readIcon();
+ m_strComment = desktopFile.readComment();
deleted = config.readEntry("Hidden", false );
m_bNoDisplay = desktopFile.noDisplay();
if (directoryEntryPath.startsWith(QDir::homePath()))
Index: kdecore/config/kconfigdata.h
===================================================================
--- kdecore/config/kconfigdata.h.orig
+++ kdecore/config/kconfigdata.h
@@ -175,6 +175,19 @@ class KEntryMap : public QMapdesktopGroup.hasTranslatedKey(key))
+ return d->desktopGroup.readEntry(key);
+
+ if (d->desktopGroup.hasKey(key)) {
+ QString value = d->desktopGroup.readEntryUntranslated(key);
+ QString fName = fileName();
+ fName = fName.mid(fName.lastIndexOf('/')+1);
+ QString po_lookup_key = QString::fromLatin1(key) + "(" + fName + "): " + value;
+ QString po_value;
+ KGlobal::locale()->translateRaw(po_lookup_key.toUtf8().data(), NULL, &po_value);
+
+ if (po_value == po_lookup_key)
+ return value;
+
+ return po_value;
+ }
+
+ return QString::null;
+}
+
QString KDesktopFile::readType() const
{
Q_D(const KDesktopFile);
@@ -193,20 +218,17 @@ QString KDesktopFile::readIcon() const
QString KDesktopFile::readName() const
{
- Q_D(const KDesktopFile);
- return d->desktopGroup.readEntry("Name", QString());
+ return translatedEntry("Name");
}
QString KDesktopFile::readComment() const
{
- Q_D(const KDesktopFile);
- return d->desktopGroup.readEntry("Comment", QString());
+ return translatedEntry("Comment");
}
QString KDesktopFile::readGenericName() const
{
- Q_D(const KDesktopFile);
- return d->desktopGroup.readEntry("GenericName", QString());
+ return translatedEntry("GenericName");
}
QString KDesktopFile::readPath() const
Index: kdecore/config/kdesktopfile.h
===================================================================
--- kdecore/config/kdesktopfile.h.orig
+++ kdecore/config/kdesktopfile.h
@@ -250,6 +250,8 @@ protected:
// virtual void virtual_hook( int id, void* data );
private:
+ QString translatedEntry(const char*) const;
+
Q_DISABLE_COPY(KDesktopFile)
Q_DECLARE_PRIVATE(KDesktopFile)
Index: kdecore/config/kconfiggroup.h
===================================================================
--- kdecore/config/kconfiggroup.h.orig
+++ kdecore/config/kconfiggroup.h
@@ -617,6 +617,11 @@ public:
*/
QMap entryMap() const;
+ /**
+ * @internal
+ */
+ bool hasTranslatedKey( const char *pKey ) const;
+
protected:
bool hasGroupImpl(const QByteArray &group) const;
KConfigGroup groupImpl(const QByteArray &b);
Index: kdecore/config/kconfig.cpp
===================================================================
--- kdecore/config/kconfig.cpp.orig
+++ kdecore/config/kconfig.cpp
@@ -749,6 +749,17 @@ QString KConfigPrivate::lookupData(const
return entryMap.getEntry(group, key, QString(), flags, expand);
}
+QByteArray KConfigPrivate::lookupExactData(const QByteArray& group, const char* key,
+ KEntryMap::SearchFlags flags) const
+{
+ if (bReadDefaults)
+ flags |= KEntryMap::SearchDefaults;
+ const KEntryMapConstIterator it = entryMap.findExactEntry(group, key, flags);
+ if (it == entryMap.constEnd())
+ return QByteArray();
+ return it->mValue;
+}
+
void KConfig::virtual_hook(int /*id*/, void* /*data*/)
{
/* nothing */
Index: kdecore/config/kconfig_p.h
===================================================================
--- kdecore/config/kconfig_p.h.orig
+++ kdecore/config/kconfig_p.h
@@ -53,6 +53,7 @@ public:
QString lookupData(const QByteArray& group, const char* key, KEntryMap::SearchFlags flags,
bool* expand) const;
QByteArray lookupData(const QByteArray& group, const char* key, KEntryMap::SearchFlags flags) const;
+ QByteArray lookupExactData(const QByteArray& group, const char* key, KEntryMap::SearchFlags flags) const;
void putData(const QByteArray& group, const char* key, const QByteArray& value,
KConfigBase::WriteConfigFlags flags, bool expand=false);
Index: kdecore/config/kconfiggroup.cpp
===================================================================
--- kdecore/config/kconfiggroup.cpp.orig
+++ kdecore/config/kconfiggroup.cpp
@@ -1239,6 +1239,16 @@ bool KConfigGroup::hasKey(const char *ke
return !config()->d_func()->lookupData(d->fullName(), key, flags).isNull();
}
+bool KConfigGroup::hasTranslatedKey(const char* key) const
+{
+ Q_ASSERT_X(isValid(), "KConfigGroup::hasTranslatedKey", "accessing an invalid group");
+
+ KEntryMap::SearchFlags flags = KEntryMap::SearchLocalized;
+ if ( config()->readDefaults() )
+ flags |= KEntryMap::SearchDefaults;
+ return !config()->d_func()->lookupExactData(d->fullName(), key, flags).isNull();
+}
+
bool KConfigGroup::hasKey(const QString &key) const
{
return hasKey(key.toUtf8().constData());
++++++ display-key-support.diff ++++++
Subject: Add support for the XF86_Display key (Fn+F7)
From: Lubos Lunak
Fate: #4147
Patch-upstream: no (maybe todo)
Relates: libqt4/display-key-support.diff, kdebase4/randr12.diff
Index: kdeui/util/kkeyserver_x11.cpp
===================================================================
--- kdeui/util/kkeyserver_x11.cpp.orig
+++ kdeui/util/kkeyserver_x11.cpp
@@ -240,6 +240,7 @@ static const TransKey g_rgQtToSymX[] =
#define XF86XK_LaunchD 0x1008FF4D
#define XF86XK_LaunchE 0x1008FF4E
#define XF86XK_LaunchF 0x1008FF4F
+#define XF86XK_Display 0x1008FF59 /* Output switch key */
// end of XF86keysyms.h
,
{ Qt::Key_Standby, XF86XK_Standby },
@@ -277,6 +278,7 @@ static const TransKey g_rgQtToSymX[] =
{ Qt::Key_LaunchD, XF86XK_LaunchB },
{ Qt::Key_LaunchE, XF86XK_LaunchC },
{ Qt::Key_LaunchF, XF86XK_LaunchD },
+ { Qt::Key_Display, XF86XK_Display },
};
//---------------------------------------------------------------------
++++++ flash-player-non-oss.diff ++++++
Index: khtml/html/html_objectimpl.cpp
===================================================================
--- khtml/html/html_objectimpl.cpp.orig
+++ khtml/html/html_objectimpl.cpp
@@ -590,14 +590,32 @@ void HTMLObjectBaseElementImpl::slotPart
// Prepare the URL to show in the question (host only if http, to make it short)
KUrl pluginPageURL(embed->pluginPage);
QString shortURL = pluginPageURL.protocol() == "http" ? pluginPageURL.host() : pluginPageURL.prettyUrl();
- int res = KMessageBox::questionYesNo( part->view(),
- i18n("No plugin found for '%1'.\nDo you want to download one from %2?", mimeName, shortURL),
+
+ int res;
+ if (mimeName.startsWith("Shockwave Flash", Qt::CaseInsensitive))
+ {
+ res = KMessageBox::questionYesNo( part->view(),
+ i18n("No plugin found for '%1'.\nDo you want to download one from %2?", mimeName, "openSUSE"),
i18n("Missing Plugin"), KGuiItem(i18n("Download")), KGuiItem(i18n("Do Not Download")), QString("plugin-")+serviceType);
- if (res == KMessageBox::Yes)
+ if (res == KMessageBox::Yes)
+ {
+ // Open YMP file
+ KUrl ymp_flash("http://download.opensuse.org/YaST/flash-player.ymp");
+ ext->openUrlRequest(ymp_flash);
+ return;
+ }
+ }
+ else
{
- // Display vendor download page
- ext->createNewWindow(pluginPageURL);
- return;
+ res = KMessageBox::questionYesNo( part->view(),
+ i18n("No plugin found for '%1'.\nDo you want to download one from %2?", mimeName, "openSUSE"),
+ i18n("Missing Plugin"), KGuiItem(i18n("Download")), KGuiItem(i18n("Do Not Download")), QString("plugin-")+serviceType);
+ if (res == KMessageBox::Yes)
+ {
+ // Display vendor download page
+ ext->createNewWindow(pluginPageURL);
+ return;
+ }
}
}
}
++++++ hidden.desktop ++++++
[Desktop Entry]
Hidden=true
++++++ hotplug-kde3.diff ++++++
Subject: Hotplug support for KDE3 applications
From: Lubos Lunak
Feature: bnc#378338
Patch-upstream: never
Relates: kdebase4-runtime/hotplug-kde3.diff, kdebase4-workspace/hotplug-kde3.diff
Index: kdecore/services/kservice.cpp
===================================================================
--- kdecore/services/kservice.cpp.orig
+++ kdecore/services/kservice.cpp
@@ -99,6 +99,8 @@ void KServicePrivate::init( const KDeskt
m_bValid = false;
return;*/
m_strType = "Application";
+ if( entryPath.contains( "/konqueror/servicemenus" ))
+ m_strType = "Service"; // workaround for bnc#378338, KDE3 entries there miss Type=
} else if ( m_strType != "Application" && m_strType != "Service" )
{
kWarning(7012) << "The desktop entry file " << entryPath
++++++ kde3-applications.diff ++++++
Index: kdecore/services/kservice.cpp
===================================================================
--- kdecore/services/kservice.cpp.orig
+++ kdecore/services/kservice.cpp
@@ -57,6 +57,8 @@ void KServicePrivate::init( const KDeskt
{
const QString entryPath = q->entryPath();
bool absPath = !QDir::isRelativePath(entryPath);
+ bool kde3application = config->fileName().startsWith("/opt/kde3/share/applications/kde/")
+ || config->fileName().startsWith("/opt/kde3/share/autostart/");
// TODO: it makes sense to have a KConstConfigGroup I guess
const KConfigGroup desktopGroup = const_cast(config)->desktopGroup();
@@ -84,6 +86,8 @@ void KServicePrivate::init( const KDeskt
if (i != -1)
m_strName = m_strName.left(i);
}
+ if (kde3application)
+ m_strName += "/KDE3";
m_strType = config->readType();
entryMap.remove("Type");
@@ -107,6 +111,18 @@ void KServicePrivate::init( const KDeskt
// NOT readPathEntry, it is not XDG-compliant. Path entries written by
// KDE4 will be still treated as such, though.
m_strExec = desktopGroup.readEntry( "Exec", QString() );
+ if (kde3application && !m_strExec.startsWith("/"))
+ m_strExec = "/opt/kde3/bin/"+m_strExec;
+ else if (desktopGroup.readEntry("X-KDE-SubstituteUID"), false) {
+ int space = m_strExec.indexOf(" ");
+ if (space==-1)
+ m_strExec = KStandardDirs::findExe(m_strExec);
+ else {
+ const QString command = m_strExec.left(space);
+ m_strExec.replace(command,KStandardDirs::findExe(command));
+ }
+ }
+
entryMap.remove("Exec");
if ( m_strType == "Application" ) {
@@ -210,6 +226,9 @@ void KServicePrivate::init( const KDeskt
m_initialPreference = desktopGroup.readEntry( "InitialPreference", 1 );
entryMap.remove("InitialPreference");
+ if (kde3application)
+ m_initialPreference = 1;
+
// Assign the "initial preference" to each mimetype/servicetype
// (and to set such preferences in memory from kbuildsycoca)
m_serviceTypes.reserve(lstServiceTypes.size());
@@ -250,6 +269,8 @@ void KServicePrivate::init( const KDeskt
m_DBUSStartusType = KService::DBusNone;
m_strDesktopEntryName = _name.toLower();
+ if (kde3application)
+ m_strDesktopEntryName = "kde-" + m_strDesktopEntryName;
m_bAllowAsDefault = desktopGroup.readEntry("AllowDefault", true);
entryMap.remove("AllowDefault");
@@ -269,7 +290,9 @@ void KServicePrivate::init( const KDeskt
// qDebug("Path = %s", entryPath.toLatin1().constData());
QMap::ConstIterator it = entryMap.constBegin();
for( ; it != entryMap.constEnd();++it) {
- const QString key = it.key();
+ QString key = it.key();
+ if (kde3application && key=="OnlyShowIn" && QVariant(*it)=="KDE;")
+ key = "NotShowIn";
// do not store other translations like Name[fr]; kbuildsycoca will rerun if we change languages anyway
if (!key.contains('[')) {
//kDebug(7012) << " Key =" << key << " Data =" << *it;
++++++ kde3-autostart.diff ++++++
Index: kdecore/kernel/kautostart.cpp
===================================================================
--- kdecore/kernel/kautostart.cpp.orig
+++ kdecore/kernel/kautostart.cpp
@@ -22,6 +22,7 @@
#include "kaboutdata.h"
#include "kglobal.h"
+#include "kshell.h"
#include "kcomponentdata.h"
#include "kdesktopfile.h"
#include "kstandarddirs.h"
@@ -30,6 +31,8 @@
#include
#include <QStringList>
+#include
+
class KAutostart::Private
{
public:
@@ -117,6 +120,14 @@ bool KAutostart::checkStartCondition() c
if (list[0].isEmpty() || list[2].isEmpty())
return true;
+ if( d->name.startsWith( "/etc/opt/kde3/" ) || d->name.startsWith( "/opt/kde3/" ))
+ {
+ QString cmd = QString( "/opt/kde3/bin/kreadconfig --file %1 --group %2 --key %3 --default %4 --type bool" )
+ .arg( KShell::quoteArg( list[0] ), KShell::quoteArg( list[1] ), KShell::quoteArg( list[2] ),
+ KShell::quoteArg( list[3] ));
+ return system( cmd.toLocal8Bit()) == 0;
+ }
+
KConfig config(list[0], KConfig::NoGlobals);
KConfigGroup cg(&config, list[1]);
Index: kinit/autostart.cpp
===================================================================
--- kinit/autostart.cpp.orig
+++ kinit/autostart.cpp
@@ -22,7 +22,10 @@
#include
#include
+#include
#include
+#include
+#include
class AutoStartItem
{
@@ -78,9 +81,10 @@ static QString extractName(QString path)
void
AutoStart::loadAutoStartList()
{
- const QStringList files = KGlobal::dirs()->findAllResources("autostart",
+ QStringList files = KGlobal::dirs()->findAllResources("autostart",
QString::fromLatin1("*.desktop"),
KStandardDirs::NoDuplicates);
+ files = mergeKDE3Autostart( files );
for(QStringList::ConstIterator it = files.begin();
it != files.end();
@@ -101,6 +105,30 @@ AutoStart::loadAutoStartList()
}
}
+// KStandardDirs cannot be used for KDE3, because it applies KDE4 prefixes,
+// so KDE3 files need to be found manually. Also, include only KDE3 autostart
+// items that don't have their normal equivalent - this way it is possible
+// for KDE4 to blacklist e.g. KDE3's Kicker by using its own .desktop
+// file with Hidden=true.
+QStringList
+AutoStart::mergeKDE3Autostart( QStringList autostart )
+{
+ QStringList dupecheck;
+ foreach( QString file, autostart )
+ dupecheck.append( QString( file ).mid( file.lastIndexOf( QLatin1Char('/') ) + 1 ));
+ foreach( QString prefix, QStringList() << QString::fromLatin1("/etc/opt/kde3/") << QString::fromLatin1("/opt/kde3") )
+ {
+ foreach( QString name, QDir( prefix + QString::fromLatin1("/share/autostart/") ).entryList( QStringList() << QString::fromLatin1("*.desktop"), QDir::Files ))
+ {
+ if( dupecheck.contains( name ))
+ continue;
+ autostart.append( prefix + QString::fromLatin1("/share/autostart/") + name ); // add it to the list
+ dupecheck.append( name );
+ }
+ }
+ return autostart;
+}
+
QString
AutoStart::startService()
{
Index: kinit/autostart.h
===================================================================
--- kinit/autostart.h.orig
+++ kinit/autostart.h
@@ -39,6 +39,7 @@ public:
bool phaseDone() const { return m_phasedone; }
private:
+ static QStringList mergeKDE3Autostart( QStringList autostart );
AutoStartList *m_startList;
QStringList m_started;
int m_phase;
++++++ kde4rc ++++++
[Directories]
prefixes=/etc/kde4/
dir_locale=/usr/share/locale-bundle
dir_html=/usr/share/doc-bundle
++++++ kdebug-areas-update.diff ++++++
Index: kdecore/kdebug.areas
===================================================================
--- kdecore/kdebug.areas.orig
+++ kdecore/kdebug.areas
@@ -723,6 +723,8 @@
100200 kfs
+100300 kupdateapplet
+
# rosegarden
200000 rosegarden
++++++ kdesu-settings.diff ++++++
Subject: Change kdesu settings
From: Lubos Lunak
Bug: 216796, 404521
Relates: kdelibs3/kdesu-settings.diff , kdebase4-runtime/kdesu-remember-keep-password.diff
Patch-upstream: never
Change kdesu(d) password keeping timeout only to 5 minutes and enable
it by default (to match kdesu using sudo in 10.3 behaviour).
Update: Change the timeout back to 2 hours (bnc#404521).
Index: kdesu/defaults.h
===================================================================
--- kdesu/defaults.h.orig
+++ kdesu/defaults.h
@@ -15,7 +15,7 @@ namespace KDESu {
const int defTimeout = 120*60;
const int defEchoMode = 0;
-const bool defKeep = false;
+const bool defKeep = true;
}
++++++ kjs-mark-register-stack.diff ++++++
Index: kjs/collector.cpp
===================================================================
--- kjs/collector.cpp.orig
+++ kjs/collector.cpp
@@ -528,6 +528,9 @@ static inline void* currentThreadStackBa
return stackBase;
}
+#ifdef __ia64__
+extern "C" void *__libc_ia64_register_backing_store_base __attribute__((weak));
+#endif
void Collector::markCurrentThreadConservatively()
{
@@ -547,6 +550,11 @@ void Collector::markCurrentThreadConserv
void* stackBase = currentThreadStackBase();
markStackObjectsConservatively(stackPointer, stackBase);
+#ifdef __ia64__
+ __builtin_ia64_flushrs();
+ void *bsp = __builtin_ia64_bsp();
+ markStackObjectsConservatively(__libc_ia64_register_backing_store_base, bsp);
+#endif
}
#if USE(MULTIPLE_THREADS)
++++++ plasma-libs.diff ++++++
Index: plasma/corona.cpp
===================================================================
--- plasma/corona.cpp.orig
+++ plasma/corona.cpp
@@ -185,7 +185,9 @@ public:
if (pluginName.isEmpty()) {
// default to the desktop containment
- pluginName = "desktop";
+ KSharedConfigPtr defaultconfig = KSharedConfig::openConfig("plasma-desktoprc");
+ KConfigGroup group = KConfigGroup(defaultconfig, "Defaults");
+ pluginName = group.readEntry("containment", "desktop");
}
if (pluginName != "null") {
Index: plasma/private/containment_p.h
===================================================================
--- plasma/private/containment_p.h.orig
+++ plasma/private/containment_p.h
@@ -48,7 +48,8 @@ public:
toolBox(0),
con(0),
type(Containment::NoContainmentType),
- drawWallpaper(true)
+ drawWallpaper(true),
+ showToolBox(true)
{
}
@@ -126,6 +127,7 @@ public:
Containment::Type type;
static bool s_positioning;
bool drawWallpaper;
+ bool showToolBox;
};
} // Plasma namespace
Index: plasma/containment.h
===================================================================
--- plasma/containment.h.orig
+++ plasma/containment.h
@@ -123,6 +123,8 @@ class PLASMA_EXPORT Containment : public
*/
Containment(QObject *parent, const QVariantList &args);
+ Containment(QObject *parent, const QVariantList &args, bool showToolBox);
+
~Containment();
/**
Index: plasma/containment.cpp
===================================================================
--- plasma/containment.cpp.orig
+++ plasma/containment.cpp
@@ -113,6 +113,18 @@ Containment::Containment(QObject *parent
setHasConfigurationInterface(false);
}
+Containment::Containment(QObject *parent, const QVariantList &args, bool showToolBox)
+ : Applet(parent, args),
+ d(new ContainmentPrivate(this))
+{
+ // WARNING: do not access config() OR globalConfig() in this method!
+ // that requires a scene, which is not available at this point
+ setPos(0, 0);
+ setBackgroundHints(NoBackground);
+ setHasConfigurationInterface(false);
+ d->showToolBox=showToolBox;
+}
+
Containment::~Containment()
{
delete d;
@@ -409,7 +421,7 @@ void Containment::setContainmentType(Con
return;
}
- if (type == DesktopContainment || type == PanelContainment) {
+ if ((type == DesktopContainment || type == PanelContainment) && d->showToolBox) {
d->createToolBox();
}
Index: plasma/theme.cpp
===================================================================
--- plasma/theme.cpp.orig
+++ plasma/theme.cpp
@@ -56,7 +56,6 @@ public:
: q(theme),
colorScheme(QPalette::Active, KColorScheme::Window, KSharedConfigPtr(0)),
buttonColorScheme(QPalette::Active, KColorScheme::Button, KSharedConfigPtr(0)),
- defaultWallpaperTheme(DEFAULT_WALLPAPER_THEME),
defaultWallpaperSuffix(DEFAULT_WALLPAPER_SUFFIX),
defaultWallpaperWidth(DEFAULT_WALLPAPER_WIDTH),
defaultWallpaperHeight(DEFAULT_WALLPAPER_HEIGHT),
@@ -70,6 +69,10 @@ public:
{
generalFont = QApplication::font();
cacheTheme = cacheConfig().readEntry("CacheTheme", true);
+
+ KSharedConfigPtr defaultconfig = KSharedConfig::openConfig("plasma-desktoprc");
+ KConfigGroup group = KConfigGroup(defaultconfig, "Defaults");
+ defaultWallpaperTheme = group.readEntry("wallpaper", DEFAULT_WALLPAPER_THEME);
}
~ThemePrivate()
@@ -360,7 +363,10 @@ void ThemePrivate::setThemeName(const QS
cg = config();
}
- defaultWallpaperTheme = cg.readEntry("defaultWallpaperTheme", DEFAULT_WALLPAPER_THEME);
+ KSharedConfigPtr defaultconfig = KSharedConfig::openConfig("plasma-desktoprc");
+ KConfigGroup group = KConfigGroup(defaultconfig, "Defaults");
+ defaultWallpaperTheme = cg.readEntry("defaultWallpaperTheme", group.readEntry("wallpaper", DEFAULT_WALLPAPER_THEME));
+
defaultWallpaperSuffix = cg.readEntry("defaultFileSuffix", DEFAULT_WALLPAPER_SUFFIX);
defaultWallpaperWidth = cg.readEntry("defaultWidth", DEFAULT_WALLPAPER_WIDTH);
defaultWallpaperHeight = cg.readEntry("defaultHeight", DEFAULT_WALLPAPER_HEIGHT);
@@ -494,6 +500,10 @@ QString Theme::wallpaperPath(const QSize
}
}
+ if (!QFile::exists(fullPath)) {
+ fullPath = KStandardDirs::locate("wallpaper", d->defaultWallpaperTheme);
+ }
+
return fullPath;
}
++++++ windeco-color.diff ++++++
Index: kdeui/kernel/kglobalsettings.cpp
===================================================================
--- kdeui/kernel/kglobalsettings.cpp.orig
+++ kdeui/kernel/kglobalsettings.cpp
@@ -319,7 +319,7 @@ QColor KGlobalSettings::activeTitleColor
return qt_colorref2qrgb(GetSysColor(COLOR_ACTIVECAPTION));
#else
KConfigGroup g( KGlobal::config(), "WM" );
- return g.readEntry( "activeBackground", QColor(96, 148, 207));
+ return g.readEntry( "activeBackground", QColor(106, 153, 213));
#endif
}
++++++ ycp.xml ++++++
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="YCP" version="0.1" kateversion="2.4" section="Sources" extensions="*.ycp" mimetype="text/x-ycp" license="LGPL" author="Benjamin Weber (benji.weber@gmail.com)">
<highlighting>
<list name="statements">
<item> break </item>
<item> return </item>
<item> continue </item>
<item> define </item>
<item> global </item>
<item> module </item>
<item> import </item>
<item> include </item>
<item> textdomain </item>
</list>
<list name="conditionals">
<item> if </item>
<item> else </item>
</list>
<list name="repeat">
<item> while </item>
<item> do </item>
<item> repeat </item>
<item> until </item>
</list>
<list name="builtins">
<item> is </item>
<item> select </item>
<item> remove </item>
<item> change </item>
<item> contains </item>
<item> setcontains </item>
<item> lookup </item>
<item> haskey </item>
<item> add </item>
<item> union </item>
<item> merge </item>
<item> size </item>
<item> symbolof </item>
<item> sleep </item>
<item> foreach </item>
<item> filter </item>
<item> maplist </item>
<item> mapmap </item>
<item> flatten </item>
<item> toset </item>
<item> sort </item>
<item> sformat </item>
<item> tointeger </item>
<item> crypt </item>
<item> cryptmd5 </item>
<item> cryptbigcrypt </item>
<item> cryptblowfish </item>
<item> eval </item>
<item> find </item>
<item> isnil </item>
<item> random </item>
<item> srandom </item>
<item> contains </item>
<item> haskey </item>
<item> filter </item>
<item> find </item>
<item> maplist </item>
<item> flatten </item>
<item> sort </item>
<item> toset </item>
<item> tointeger </item>
<item> tofloat </item>
<item> tostring </item>
<item> topath </item>
<item> toterm </item>
<item> crypt </item>
<item> cryptmd5 </item>
<item> cryptbigcrypt </item>
<item> cryptblowfish </item>
<item> timestring </item>
<item> substring </item>
<item> findfirstof </item>
<item> findlastof </item>
<item> findfirstnotof </item>
<item> findlastnotof </item>
<item> tolower </item>
<item> toupper </item>
<item> toascii </item>
<item> filterchars </item>
<item> deletechars </item>
<item> time </item>
<item> sleep </item>
<item> random </item>
<item> srandom </item>
<item> sformat </item>
<item> issubstring </item>
<item> regexpmatch </item>
<item> regexppos </item>
<item> splitstring </item>
<item> mergestring </item>
<item> mapmap </item>
<item> prepend </item>
<item> listmap </item>
<item> y2debug </item>
<item> y2milestone </item>
<item> y2warning </item>
<item> regexpsub </item>
<item> y2error </item>
<item> y2security </item>
<item> y2internal </item>
<item> regexptokenize </item>
<item> tohexstring </item>
</list>
<list name="WFMbuiltins">
<item> WFM </item>
<item> UI </item>
<item> SCR </item>
<item> Args </item>
<item> Read </item>
<item> Write </item>
<item> Dir </item>
<item> Execute </item>
<item> CallFunction </item>
<item> CallModule </item>
<item> SetLanguage </item>
<item> GetLanguage </item>
<item> SCROpen </item>
<item> SCRClose </item>
<item> SCRGetName </item>
<item> GetClientName </item>
<item> SCRSetDefault </item>
<item> SCRGetDefault </item>
</list>
<list name="SCRbuiltins">
<item> RegisterAgent </item>
<item> UnregisterAgent </item>
<item> UnregisterAllAgents </item>
<item> MountAgent </item>
<item> MountAllAgents </item>
<item> UnmountAgent </item>
<item> UnmountAllAgents </item>
<item> YaST2Version </item>
<item> SuSEVersion </item>
</list>
<list name="YUIbuiltins">
<item> AskForExistingDirectory </item>
<item> AskForExistingFile </item>
<item> AskForSaveFileName </item>
<item> BusyCursor </item>
<item> ChangeWidget </item>
<item> CheckShortcuts </item>
<item> CloseDialog </item>
<item> DumpWidgetTree </item>
<item> FakeUserInput </item>
<item> GetDisplayInfo </item>
<item> GetLanguage </item>
<item> GetModulename </item>
<item> GetProductName </item>
<item> Glyph </item>
<item> HasSpecialWidget </item>
<item> MakeScreenShot </item>
<item> NormalCursor </item>
<item> OpenDialog </item>
<item> PlayMacro </item>
<item> PollInput </item>
<item> PostponeShortcutCheck </item>
<item> QueryWidget </item>
<item> RecalcLayout </item>
<item> Recode </item>
<item> RecordMacro </item>
<item> RedrawScreen </item>
<item> ReplaceWidget </item>
<item> RunPkgSelection </item>
<item> SetConsoleFont </item>
<item> SetFocus </item>
<item> SetFunctionKeys </item>
<item> SetKeyboard </item>
<item> SetLanguage </item>
<item> SetModulename </item>
<item> SetProductName </item>
<item> StopRecordMacro </item>
<item> TimeoutUserInput </item>
<item> UserInput </item>
<item> WaitForEvent </item>
<item> WidgetExists </item>
</list>
<list name="types">
<item> any </item>
<item> void </item>
<item> boolean </item>
<item> integer </item>
<item> float </item>
<item> string </item>
<item> locale </item>
<item> symbol </item>
<item> list </item>
<item> map </item>
<item> term </item>
<item> path </item>
<item> block </item>
<item> declaration </item>
<item> expression </item>
<item> byteblock </item>
</list>
<list name="constants">
<item> true </item>
<item> false </item>
<item> nil </item>
</list>
<list name="widgets">
<item>`Wizard </item>
<item>`WizardCommand </item>
<item>`Bottom </item>
<item>`CheckBox </item>
<item>`ComboBox </item>
<item>`Empty </item>
<item>`Frame </item>
<item>`HBox </item>
<item>`HCenter </item>
<item>`HSpacing </item>
<item>`HSquash </item>
<item>`HStretch </item>
<item>`HVCenter </item>
<item>`HVSquash </item>
<item>`HVStretch </item>
<item>`HWeight </item>
<item>`Heading </item>
<item>`IconButton </item>
<item>`Image </item>
<item>`IntField </item>
<item>`Label </item>
<item>`Left </item>
<item>`LogView </item>
<item>`MenuButton </item>
<item>`MultiLineEdit </item>
<item>`MultiSelectionBox </item>
<item>`PackageSelector </item>
<item>`Password </item>
<item>`ProgressBar </item>
<item>`PushButton </item>
<item>`RadioButton </item>
<item>`RadioButtonGroup </item>
<item>`ReplacePoint </item>
<item>`RichText </item>
<item>`Right </item>
<item>`SelectionBox </item>
<item>`Table </item>
<item>`TextEntry </item>
<item>`Top </item>
<item>`Tree </item>
<item>`VBox </item>
<item>`VCenter </item>
<item>`VSpacing </item>
<item>`VSquash </item>
<item>`VStretch </item>
<item>`VWeight </item>
<item>`PkgSpecial </item>
<item>`BarGraph </item>
<item>`ColoredLabel </item>
<item>`DownloadProgress </item>
<item>`DummySpecialWidget </item>
<item>`PartitionSplitter </item>
<item>`Slider </item>
<item>`CurrentButton </item>
<item>`CurrentItem </item>
<item>`Enabled </item>
<item>`ExpectedSize </item>
<item>`Filename </item>
<item>`Item </item>
<item>`Items </item>
<item>`Label </item>
<item>`Labels </item>
<item>`LastLine </item>
<item>`Notify </item>
<item>`SelectedItems </item>
<item>`ValidChars </item>
<item>`Value </item>
<item>`Values </item>
<item>`WindowID </item>
<item>`EasterEgg </item>
<item>`animated </item>
<item>`autoScrollDown </item>
<item>`autoShortcut </item>
<item>`countShowDelta </item>
<item>`debugLayout </item>
<item>`decorated </item>
<item>`default </item>
<item>`defaultsize </item>
<item>`disabled </item>
<item>`easterEgg </item>
<item>`editable </item>
<item>`hstretch </item>
<item>`hvstretch </item>
<item>`immediate </item>
<item>`infocolor </item>
<item>`keepSorting </item>
<item>`notify </item>
<item>`outputField </item>
<item>`plainText </item>
<item>`scaleToFit </item>
<item>`shrinkable </item>
<item>`testMode </item>
<item>`tiled </item>
<item>`updateMode </item>
<item>`vstretch </item>
<item>`warncolor </item>
<item>`youMode </item>
<item>`zeroHeight </item>
<item>`zeroWidth </item>
<item>`key_F1 </item>
<item>`key_F2 </item>
<item>`key_F3 </item>
<item>`key_F4 </item>
<item>`key_F5 </item>
<item>`key_F6 </item>
<item>`key_F7 </item>
<item>`key_F8 </item>
<item>`key_F9 </item>
<item>`key_F10 </item>
<item>`key_F11 </item>
<item>`key_F12 </item>
<item>`key_F13 </item>
<item>`key_F14 </item>
<item>`key_F15 </item>
<item>`key_F16 </item>
<item>`key_F17 </item>
<item>`key_F18 </item>
<item>`key_F19 </item>
<item>`key_F20 </item>
<item>`key_F21 </item>
<item>`key_F22 </item>
<item>`key_F23 </item>
<item>`key_F24 </item>
<item>`key_none </item>
<item>`ArrowLeft </item>
<item>`ArrowRight </item>
<item>`ArrowUp </item>
<item>`ArrowDown </item>
<item>`CheckMark </item>
<item>`BulletArrowRight </item>
<item>`BulletCircle </item>
<item>`BulletSquare </item>
<item>`id </item>
<item>`opt </item>
<item>`item </item>
<item>`menu </item>
<item>`header </item>
<item>`rgb </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<keyword attribute="Keyword" context="#stay" String="statements" />
<keyword attribute="Keyword" context="#stay" String="conditionals" />
<keyword attribute="Keyword" context="#stay" String="repeat" />
<keyword attribute="Function" context="#stay" String="builtins" />
<keyword attribute="WFM" context="#stay" String="WFMbuiltins" />
<keyword attribute="SCR" context="#stay" String="SCRbuiltins" />
<keyword attribute="YUI" context="#stay" String="YUIbuiltins" />
<keyword attribute="Data Type" context="#stay" String="types" />
<keyword attribute="Keyword" context="#stay" String="constants" />
<keyword attribute="Widgets" context="#stay" String="widgets" />
<Float attribute="Float" context="#stay">
<AnyChar String="fF" attribute="Float" context="#stay"/>
</Float>
<HlCOct attribute="Octal" context="#stay"/>
<HlCHex attribute="Hex" context="#stay"/>
<Int attribute="Decimal" context="#stay"/>
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<DetectChar attribute="String" context="String" char=""" />
<DetectChar attribute="Generic" context="#stay" char="<" beginRegion="OChevron"/>
<DetectChar attribute="Generic" context="#stay" char=">" beginRegion="CChevron"/>
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
<DetectChar attribute="ListMap" context="#stay" char="[" endRegion="OList"/>
<DetectChar attribute="ListMap" context="#stay" char=":" endRegion="Default"/>
<DetectChar attribute="ListMap" context="#stay" char="]" endRegion="CListMap"/>
<Detect2Chars attribute="ListMap" context="#stay" char="$" char1="[" endRegion="OMap"/>
<DetectChar attribute="sym" context="#stay" char="`" endRegion="sy"/>
<DetectChar attribute="evl" context="#stay" char="``" endRegion="ev"/>
</context>
<context attribute="String" lineEndContext="#pop" name="String">
<DetectChar attribute="String" context="#pop" char="""/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Octal" defStyleNum="dsBaseN"/>
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="WFM" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
<itemData name="YUI" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
<itemData name="SCR" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
<itemData name="Widgets" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
<itemData name="Function" defStyleNum="dsFunction"/>
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="ListMap" defStyleNum="dsNormal" color="#865E2E" />
<itemData name="sym" defStyleNum="dsNormal" color="#327D00" bold="1"/>
<itemData name="Generic" defStyleNum="dsNormal" color="#327D00" bold="1"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//"/>
<comment name="multiLine" start="/*" end="*/"/>
</comments>
<keywords casesensitive="1"/>
</general>
</language>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org