[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyQt] Re: Problems building PyKDE4
From: Jim Bublitz <jbublitz () nwinternet ! com>
Date: 2008-03-08 16:50:29
Message-ID: 200803080850.30131.jbublitz () nwinternet ! com
[Download RAW message or body]
On Saturday 08 March 2008 07:06, you wrote:
> Hi,
>
> trying to compile PyKDE4 yields in an error, that ksycocafactory.h cannot
> be found. I checked all rpm packages for openSUSE 10.3 and none contains
> this file. What am I doing wrong.
It's some bug in the way the tarball gets built - I'll track it down and
release a new tarball.
In the meantime, you can do the following:
1. Under the top level directory (PyKDE4-4.0.0), create a directory 'extra'
2. Under extra/, create two directories 'kde400' and 'kde401'.
3. In each of extra/kde400 and extra/kde401, copy both of the attached files
kicontheme.h and ksycocafactory.h
ksyscocafactory.h isn't normally installed by KDE but is required by some
downstream classes - you can find it in the kdelibs source tarball.
kicontheme.h has two small edits that have been necessary since KDE2.
Thanks for the info - let me know if you find any other bugs.
Jim
["ksycocafactory.h" (text/x-c++hdr)]
/* This file is part of the KDE libraries
* Copyright (C) 1999 Waldo Bastian <bastian@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License version 2 as published by the Free Software Foundation;
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
**/
#ifndef KSYCOCAFACTORY_H
#define KSYCOCAFACTORY_H
#include <ksycocaentry.h>
class KSycoca;
class QString;
class KSycocaDict;
class KSycocaResourceList;
template <typename T> class QList;
template <typename KT, typename VT> class QHash;
typedef QHash<QString, KSycocaEntry::Ptr> KSycocaEntryDict;
/**
* @internal
* Base class for sycoca factories
*/
class KDECORE_EXPORT KSycocaFactory
{
public:
virtual KSycocaFactoryId factoryId() const = 0;
protected: // virtual class
/**
* Create a factory which can be used to lookup from/create a database
* (depending on KSycoca::isBuilding())
*/
explicit KSycocaFactory( KSycocaFactoryId factory_id );
public:
virtual ~KSycocaFactory();
/**
* @return the position of the factory in the sycoca file
*/
int offset() const;
/**
* @return the dict, for special use by KBuildSycoca
*/
KSycocaEntryDict * entryDict() { return m_entryDict; }
/**
* Construct an entry from a config file.
* To be implemented in the real factories.
*/
virtual KSycocaEntry *createEntry(const QString &file, const char *resource) \
const = 0;
/**
* Add an entry
*/
virtual void addEntry(const KSycocaEntry::Ptr& newEntry);
/**
* Remove all entries with the given name.
* Not very fast (O(N)), use with care.
*/
void removeEntry(const QString& entryName);
/**
* Read an entry from the database
*/
virtual KSycocaEntry *createEntry(int offset) const = 0;
/**
* Get a list of all entries from the database.
*/
virtual KSycocaEntry::List allEntries() const;
/**
* Saves all entries it maintains as well as index files
* for these entries to the stream 'str'.
*
* Also sets mOffset to the starting position.
*
* The stream is positioned at the end of the last index.
*
* Don't forget to call the parent first when you override
* this function.
*/
virtual void save(QDataStream &str);
/**
* Writes out a header to the stream 'str'.
* The baseclass positions the stream correctly.
*
* Don't forget to call the parent first when you override
* this function.
*/
virtual void saveHeader(QDataStream &str);
/**
* @return the resources for which this factory is responsible.
* @internal to kbuildsycoca
*/
const KSycocaResourceList * resourceList() const;
/**
* @return the sycoca dict, for factories to find entries by name.
*/
const KSycocaDict *sycocaDict() const;
/**
* @return true if the factory is completely empty - no entries defined
*/
bool isEmpty() const;
protected:
QDataStream *m_str;
KSycocaResourceList *m_resourceList;
KSycocaEntryDict *m_entryDict;
private:
class Private;
Private* const d;
protected:
/** Virtual hook, used to add new "virtual" functions while maintaining
binary compatibility. Unused in this class.
*/
virtual void virtual_hook( int id, void* data );
};
/** This, instead of a typedef, allows to declare "class ..." in header files
* @internal
*/
class KDECORE_EXPORT KSycocaFactoryList : public QList<KSycocaFactory*> \
//krazy:exclude=dpointer (acts as a typedef) {
public:
KSycocaFactoryList() { }
};
#endif
["kicontheme.h" (text/x-c++hdr)]
/* vi: ts=8 sts=4 sw=4
*
* This file is part of the KDE project, module kdecore.
* Copyright (C) 2000 Geert Jansen <jansen@kde.org>
* Antonio Larrosa <larrosa@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License version 2 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
*/
#ifndef KICONTHEME_H
#define KICONTHEME_H
#include <kdeui_export.h>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QList>
#include "kiconloader.h"
class QAction;
//class KIconThemeDir;
class K3Icon;
/**
* @internal
* Class to use/access icon themes in KDE. This class is used by the
* iconloader but can be used by others too.
* @warning You should not use this class externally. This class is exported because
* the KCM needs it.
* @see KIconLoader
*/
class KDEUI_EXPORT KIconTheme
{
public:
/**
* Load an icon theme by name.
* @param name the name of the theme (e.g. "hicolor" or "keramik")
* @param appName the name of the application. Can be null. This argument
* allows applications to have themed application icons.
*/
explicit KIconTheme(const QString& name, const QString& appName=QString());
~KIconTheme();
/**
* The stylized name of the icon theme.
* @return the (human-readable) name of the theme
*/
QString name() const;
/**
* The internal name of the icon theme (same as the name argument passed
* to the constructor).
* @return the internal name of the theme
*/
QString internalName() const;
/**
* A description for the icon theme.
* @return a human-readable description of the theme, QString()
* if there is none
*/
QString description() const;
/**
* Return the name of the "example" icon. This can be used to
* present the theme to the user.
* @return the name of the example icon, QString() if there is none
*/
QString example() const;
/**
* Return the name of the screenshot.
* @return the name of the screenshot, QString() if there is none
*/
QString screenshot() const;
/**
* Returns the toplevel theme directory.
* @return the directory of the theme
*/
QString dir() const;
/**
* The themes this icon theme falls back on.
* @return a list of icon themes that are used as fall-backs
*/
QStringList inherits() const;
/**
* The icon theme exists?
* @return true if the icon theme is valid
*/
bool isValid() const;
/**
* The icon theme should be hidden to the user?
* @return true if the icon theme is hidden
*/
bool isHidden() const;
/**
* The minimum display depth required for this theme. This can either
* be 8 or 32.
* @return the minimum bpp (8 or 32)
*/
int depth() const;
/**
* The default size of this theme for a certain icon group.
* @param group The icon group. See KIconLoader::Group.
* @return The default size in pixels for the given icon group.
*/
int defaultSize(KIconLoader::Group group) const;
/**
* Query available sizes for a group.
* @param group The icon group. See KIconLoader::Group.
* @return a list of available sized for the given group
*/
QList<int> querySizes(KIconLoader::Group group) const;
/**
* Query available icons for a size and context.
* @param size the size of the icons
* @param context the context of the icons
* @return the list of icon names
*/
QStringList queryIcons(int size, KIconLoader::Context context = KIconLoader::Any) const;
/**
* Query available icons for a context and preferred size.
* @param size the size of the icons
* @param context the context of the icons
* @return the list of icon names
*/
QStringList queryIconsByContext(int size, KIconLoader::Context context = KIconLoader::Any) const;
/**
* Lookup an icon in the theme.
* @param name The name of the icon, without extension.
* @param size The desired size of the icon.
* @param match The matching mode. KIconLoader::MatchExact returns an icon
* only if matches exactly. KIconLoader::MatchBest returns the best matching
* icon.
* @return A K3Icon class that describes the icon. If an icon is found, an invalid
* K3Icon object otherwise.
* @see KIconLoader::isValid will return true, and false otherwise.
*/
K3Icon iconPath(const QString& name, int size, KIconLoader::MatchType match) const;
/**
* Returns true if the theme has any icons for the given context.
*/
bool hasContext( KIconLoader::Context context ) const;
/**
* List all icon themes installed on the system, global and local.
* @return the list of all icon themes
*/
static QStringList list();
/**
* Returns the current icon theme.
* @return the name of the current theme
*/
static QString current();
/**
* Reconfigure the theme.
*/
static void reconfigure();
/**
* Returns the default icon theme.
* @return the name of the default theme name
*/
static QString defaultThemeName();
/**
* Defines the context menus that assignIconsToContextMenus is
* aware of.
*
* For ReadOnlyText the menu is expected to have one entry.
*
* TextEditor is expected to have the full complement of
* undo, redo, cut, copy, paste and clear.
*/
enum ContextMenus { TextEditor,
ReadOnlyText };
/**
* Assigns standard icons to the various standard text edit context menus.
*/
static void assignIconsToContextMenu(ContextMenus type, QList<QAction*> actions);
private:
class KIconThemePrivate;
KIconThemePrivate * const d;
};
#endif
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic