Changeset 48112 in webkit


Ignore:
Timestamp:
Sep 7, 2009 7:15:06 AM (15 years ago)
Author:
eric@webkit.org
Message:

2009-09-07 Jakub Wieczorek <faw217@gmail.com>

Reviewed by Simon Hausmann.

Remove the private classes from QWebPluginDatabase.
https://bugs.webkit.org/show_bug.cgi?id=27651

Instead, hold the PluginDatabase and PluginPackage objects as class
members and take care of refcounting on our own instead of using RefPtr.

This way we not only made the code cleaner but also got rid of
redundant allocations when constructing null QWebPluginInfo objects.

The private classes have been forward-declared and the d-pointers left
to be on the safe side.

  • Api/qwebplugindatabase.cpp: (QWebPluginInfo::QWebPluginInfo): (QWebPluginInfo::~QWebPluginInfo): (QWebPluginInfo::name): (QWebPluginInfo::description): (QWebPluginInfo::mimeTypes): (QWebPluginInfo::path): (QWebPluginInfo::isNull): (QWebPluginInfo::setEnabled): (QWebPluginInfo::isEnabled): (QWebPluginInfo::operator==): (QWebPluginInfo::operator!=): (QWebPluginInfo::operator=): (QWebPluginDatabase::QWebPluginDatabase): (QWebPluginDatabase::~QWebPluginDatabase): (QWebPluginDatabase::plugins): (QWebPluginDatabase::searchPaths): (QWebPluginDatabase::setSearchPaths): (QWebPluginDatabase::addSearchPath): (QWebPluginDatabase::refresh): (QWebPluginDatabase::pluginForMimeType): (QWebPluginDatabase::setPreferredPluginForMimeType):
  • Api/qwebplugindatabase.h:
  • Api/qwebplugindatabase_p.h: Removed.
Location:
trunk/WebKit/qt
Files:
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/qt/Api/qwebplugindatabase.cpp

    r46975 r48112  
    2020#include "config.h"
    2121#include "qwebplugindatabase.h"
    22 #include "qwebplugindatabase_p.h"
    2322
    2423#include "PluginDatabase.h"
     
    3231    \brief Represents a single MIME type supported by a plugin.
    3332*/
    34 
    35 QWebPluginInfoPrivate::QWebPluginInfoPrivate(RefPtr<PluginPackage> pluginPackage)
    36     : plugin(pluginPackage)
    37 {
    38 }
    39 
    40 QWebPluginDatabasePrivate::QWebPluginDatabasePrivate(PluginDatabase* pluginDatabase)
    41     : database(pluginDatabase)
    42 {
    43 }
    4433
    4534/*!
     
    6554*/
    6655QWebPluginInfo::QWebPluginInfo()
    67     : d(new QWebPluginInfoPrivate(0))
    68 {
    69 }
    70 
    71 QWebPluginInfo::QWebPluginInfo(PluginPackage* plugin)
    72     : d(new QWebPluginInfoPrivate(plugin))
    73 {
     56    : m_package(0)
     57{
     58}
     59
     60QWebPluginInfo::QWebPluginInfo(PluginPackage* package)
     61    : m_package(package)
     62{
     63    if (m_package)
     64        m_package->ref();
    7465}
    7566
     
    7869*/
    7970QWebPluginInfo::QWebPluginInfo(const QWebPluginInfo& other)
    80     : d(new QWebPluginInfoPrivate(other.d->plugin))
    81 {
     71    : m_package(other.m_package)
     72{
     73    if (m_package)
     74        m_package->ref();
    8275}
    8376
     
    8780QWebPluginInfo::~QWebPluginInfo()
    8881{
    89     delete d;
     82    if (m_package)
     83        m_package->deref();
    9084}
    9185
     
    9791QString QWebPluginInfo::name() const
    9892{
    99     if (!d->plugin)
     93    if (!m_package)
    10094        return QString();
    101     return d->plugin->name();
     95    return m_package->name();
    10296}
    10397
     
    109103QString QWebPluginInfo::description() const
    110104{
    111     if (!d->plugin)
     105    if (!m_package)
    112106        return QString();
    113     return d->plugin->description();
     107    return m_package->description();
    114108}
    115109
     
    121115QList<QWebPluginInfo::MimeType> QWebPluginInfo::mimeTypes() const
    122116{
    123     if (!d->plugin)
     117    if (!m_package)
    124118        return QList<MimeType>();
    125119
    126120    QList<MimeType> mimeTypes;
    127     const MIMEToDescriptionsMap& mimeToDescriptions = d->plugin->mimeToDescriptions();
     121    const MIMEToDescriptionsMap& mimeToDescriptions = m_package->mimeToDescriptions();
    128122    MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end();
    129123    for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) {
     
    133127
    134128        QStringList fileExtensions;
    135         Vector<String> extensions = d->plugin->mimeToExtensions().get(mimeType.name);
     129        Vector<String> extensions = m_package->mimeToExtensions().get(mimeType.name);
    136130
    137131        for (unsigned i = 0; i < extensions.size(); ++i)
     
    167161QString QWebPluginInfo::path() const
    168162{
    169     if (!d->plugin)
     163    if (!m_package)
    170164        return QString();
    171     return d->plugin->path();
     165    return m_package->path();
    172166}
    173167
     
    177171bool QWebPluginInfo::isNull() const
    178172{
    179     return !d->plugin;
     173    return !m_package;
    180174}
    181175
     
    190184void QWebPluginInfo::setEnabled(bool enabled)
    191185{
    192     if (!d->plugin)
     186    if (!m_package)
    193187        return;
    194     d->plugin->setEnabled(enabled);
     188    m_package->setEnabled(enabled);
    195189}
    196190
     
    202196bool QWebPluginInfo::isEnabled() const
    203197{
    204     if (!d->plugin)
     198    if (!m_package)
    205199        return false;
    206     return d->plugin->isEnabled();
     200    return m_package->isEnabled();
    207201}
    208202
    209203bool QWebPluginInfo::operator==(const QWebPluginInfo& other) const
    210204{
    211     return d->plugin == other.d->plugin;
     205    return m_package == other.m_package;
    212206}
    213207
    214208bool QWebPluginInfo::operator!=(const QWebPluginInfo& other) const
    215209{
    216     return d->plugin != other.d->plugin;
     210    return m_package != other.m_package;
    217211}
    218212
     
    222216        return *this;
    223217
    224     d->plugin = other.d->plugin;
     218    if (m_package)
     219        m_package->deref();
     220    m_package = other.m_package;
     221    if (m_package)
     222        m_package->ref();
     223
    225224    return *this;
    226225}
     
    254253QWebPluginDatabase::QWebPluginDatabase(QObject* parent)
    255254    : QObject(parent)
    256     , d(new QWebPluginDatabasePrivate(PluginDatabase::installedPlugins()))
     255    , m_database(PluginDatabase::installedPlugins())
    257256{
    258257}
     
    260259QWebPluginDatabase::~QWebPluginDatabase()
    261260{
    262     delete d;
    263261}
    264262
     
    274272{
    275273    QList<QWebPluginInfo> qwebplugins;
    276     const Vector<PluginPackage*>& plugins = d->database->plugins();
     274    const Vector<PluginPackage*>& plugins = m_database->plugins();
    277275
    278276    for (unsigned int i = 0; i < plugins.size(); ++i) {
     
    309307    QStringList paths;
    310308
    311     const Vector<String>& directories = d->database->pluginDirectories();
     309    const Vector<String>& directories = m_database->pluginDirectories();
    312310    for (unsigned int i = 0; i < directories.size(); ++i)
    313311        paths.append(directories[i]);
     
    329327        directories.append(paths.at(i));
    330328
    331     d->database->setPluginDirectories(directories);
     329    m_database->setPluginDirectories(directories);
    332330    // PluginDatabase::setPluginDirectories() does not refresh the database.
    333     d->database->refresh();
     331    m_database->refresh();
    334332}
    335333
     
    342340void QWebPluginDatabase::addSearchPath(const QString& path)
    343341{
    344     d->database->addExtraPluginDirectory(path);
     342    m_database->addExtraPluginDirectory(path);
    345343    // PluginDatabase::addExtraPluginDirectory() does refresh the database.
    346344}
     
    356354void QWebPluginDatabase::refresh()
    357355{
    358     d->database->refresh();
     356    m_database->refresh();
    359357}
    360358
     
    366364QWebPluginInfo QWebPluginDatabase::pluginForMimeType(const QString& mimeType)
    367365{
    368     return QWebPluginInfo(d->database->pluginForMIMEType(mimeType));
     366    return QWebPluginInfo(m_database->pluginForMIMEType(mimeType));
    369367}
    370368
     
    379377void QWebPluginDatabase::setPreferredPluginForMimeType(const QString& mimeType, const QWebPluginInfo& plugin)
    380378{
    381     d->database->setPreferredPluginForMIMEType(mimeType, plugin.d->plugin.get());
    382 }
     379    m_database->setPreferredPluginForMIMEType(mimeType, plugin.m_package);
     380}
  • trunk/WebKit/qt/Api/qwebplugindatabase.h

    r46764 r48112  
    2828
    2929namespace WebCore {
     30    class PluginDatabase;
    3031    class PluginPackage;
    3132}
     
    4041
    4142private:
    42     QWebPluginInfo(WebCore::PluginPackage* plugin);
     43    QWebPluginInfo(WebCore::PluginPackage* package);
    4344
    4445public:
     
    6263
    6364private:
    64     QWebPluginInfoPrivate *d;
     65    QWebPluginInfoPrivate* d;
     66    WebCore::PluginPackage* m_package;
    6567};
    6668
     
    8991
    9092private:
    91     QWebPluginDatabasePrivate *d;
     93    QWebPluginDatabasePrivate* d;
     94    WebCore::PluginDatabase* m_database;
    9295};
    9396
  • trunk/WebKit/qt/ChangeLog

    r48097 r48112  
     12009-09-07  Jakub Wieczorek  <faw217@gmail.com>
     2
     3        Reviewed by Simon Hausmann.
     4
     5        Remove the private classes from QWebPluginDatabase.
     6        https://bugs.webkit.org/show_bug.cgi?id=27651
     7
     8        Instead, hold the PluginDatabase and PluginPackage objects as class
     9        members and take care of refcounting on our own instead of using RefPtr.
     10
     11        This way we not only made the code cleaner but also got rid of
     12        redundant allocations when constructing null QWebPluginInfo objects.
     13
     14        The private classes have been forward-declared and the d-pointers left
     15        to be on the safe side.
     16
     17        * Api/qwebplugindatabase.cpp:
     18        (QWebPluginInfo::QWebPluginInfo):
     19        (QWebPluginInfo::~QWebPluginInfo):
     20        (QWebPluginInfo::name):
     21        (QWebPluginInfo::description):
     22        (QWebPluginInfo::mimeTypes):
     23        (QWebPluginInfo::path):
     24        (QWebPluginInfo::isNull):
     25        (QWebPluginInfo::setEnabled):
     26        (QWebPluginInfo::isEnabled):
     27        (QWebPluginInfo::operator==):
     28        (QWebPluginInfo::operator!=):
     29        (QWebPluginInfo::operator=):
     30        (QWebPluginDatabase::QWebPluginDatabase):
     31        (QWebPluginDatabase::~QWebPluginDatabase):
     32        (QWebPluginDatabase::plugins):
     33        (QWebPluginDatabase::searchPaths):
     34        (QWebPluginDatabase::setSearchPaths):
     35        (QWebPluginDatabase::addSearchPath):
     36        (QWebPluginDatabase::refresh):
     37        (QWebPluginDatabase::pluginForMimeType):
     38        (QWebPluginDatabase::setPreferredPluginForMimeType):
     39        * Api/qwebplugindatabase.h:
     40        * Api/qwebplugindatabase_p.h: Removed.
     41
    1422009-09-05  Jakub Wieczorek  <faw217@gmail.com>
    243
Note: See TracChangeset for help on using the changeset viewer.