Exemplo n.º 1
0
PHISImageCache::PHISImageCache( PHIResponseRec *resp, const QString &path, QObject *parent )
    : QObject( parent ), _resp( resp ), _path( path )
{
    qDebug( "PHISImageCache::PHISImageCache()" );
    Q_ASSERT( resp );
    _id=PHISPageCache::getDbId();
    QSqlDatabase db=QSqlDatabase::addDatabase( QStringLiteral( "QSQLITE" ), QString::number( _id ) );
    db.setDatabaseName( path+QDir::separator()+QLatin1String( "db" )+QDir::separator()
        +QLatin1String( "phiimgcache.db" ) );
    QDir dbdir( path );
    if ( !dbdir.exists() ) dbdir.mkpath( path );
    if ( !db.open() ) {
        _resp->log( PHILOGERR, PHIRC_DB_ERROR,
            QObject::tr( "Could not open image cache DB %1. Images will not be deleted automatically." )
            .arg( db.databaseName() ) );
        return;
    }
    QStringList tables=db.tables();
    if ( tables.isEmpty() ) {
        QSqlQuery query( db );
        if ( !query.exec( QString::fromLatin1( PHICREATETABLE ) ) ) {
            _resp->log( PHILOGERR, PHIRC_QUERY_ERROR,
                QObject::tr( "Could not create image cache table: %1" )
                .arg( query.lastError().text() ) );
        }
    }
}
NS_IMETHODIMP nsAbMDBDirectory::HasDirectory(nsIAbDirectory *dir, bool *hasDir)
{
  if (!hasDir)
    return NS_ERROR_NULL_POINTER;

  nsresult rv;

  nsCOMPtr<nsIAbMDBDirectory> dbdir(do_QueryInterface(dir, &rv));
  NS_ENSURE_SUCCESS(rv, rv);
  
  bool bIsMailingList  = false;
  dir->GetIsMailList(&bIsMailingList);
  if (bIsMailingList)
  {
    nsCOMPtr<nsIAddrDatabase> database;
    rv = GetDatabase(getter_AddRefs(database));

    if (NS_SUCCEEDED(rv))
      rv = database->ContainsMailList(dir, hasDir);
  }

  return rv;
}