CCObject* EziFacebookFriend::copyWithZone(CCZone *pZone)
{
    CCZone* pNewZone = NULL;
    EziFacebookFriend* pCopy = NULL;
    if(pZone && pZone->m_pCopyObject)
    {
        //in case of being called at sub class
        pCopy = (EziFacebookFriend*)(pZone->m_pCopyObject);
    }
    else
    {
        pCopy = new EziFacebookFriend();
        pNewZone = new CCZone(pCopy);
    }
    
    pCopy->setName(getName());
    pCopy->setID(getFBID());
    pCopy->setScore(getScore());
    pCopy->setPhotoPath(getPhotoPath());
    pCopy->setInstalled(isInstalled());
    pCopy->setPhotoURL(getPhotoURL());
    
    //pCopy->initWithAction((CCActionInterval *)(m_pInner->copy()->autorelease()));
    
    CC_SAFE_DELETE(pNewZone);
    return pCopy;
}
Example #2
0
QString Essence::getLocalPhotoFile()
{
    QString result;
    QString idValue = getValue(photoIdField).toString().trimmed();
    if (idValue.size() > 0)
    {
        result = app->getPhotosPath(getPhotoPath()) + "/" + idValue + ".jpg";
    }
    return result;
}
Example #3
0
QString Essence::getPhotoFile(QString copyTo)
{
    QString idValue;    // Значение идентификатора фотографии
    QString file;       // Полное имя файла с фотографией
    QString localFile;  // Локальный путь к фотографии
    QString pictureUrl;
    bool phEnabled = photoEnabled;

    // Если справочник является частью документа
    if (isDocumentLoading())
    {
        phEnabled = false;          // То загрузка фотографий запрещена
        copyTo = "";                // И копирование тоже
    }

    if (phEnabled || copyTo.size() > 0)
    {
        // Сначала получим имя поля из которого будем брать значение идентификатора
        if (photoIdField.size() == 0 && isDictionary)
        {
            // Если имя поля, из которого нужно брать идентификатор фотографии не установлено, то будем считать идентификатором код позиции
            photoIdField = db->getObjectName("код");
        }

        // Теперь получим значение идентификатора
        if (tableModel->rowCount() > 0 && photoIdField.size() > 0)
        {
            pictureUrl = preparePictureUrl();
            idValue = getValue(photoIdField).toString().trimmed();
            if (idValue.size() > 0)
            {
                localFile = getPhotoPath() + "/" + idValue + ".jpg";       // Запомним локальный путь к фотографии на случай обращения к серверу за фотографией
                file = getLocalPhotoFile();
                if (!QFile(file).exists())
                {   // Локальный файл с фотографией не найден, попробуем получить фотографию с нашего сервера. Будем делать это только для справочника, а не для документа
                    // Мы знаем, под каким именем искать фотографию на нашем сервере, то попробуем обратиться к нему за фотографией
                    if (db->getFileCheckSum(localFile, PictureFileType, true) != 0)
                    {
//                        app->showMessageOnStatusBar(tr("Запущена загрузка с сервера фотографии с кодом ") + QString("%1").arg(idValue), 3000);
                        QByteArray picture = db->getFile(localFile, PictureFileType, true); // Получить файл с картинкой из расширенной базы
                        if (picture.size() > 0)
                        {   // Если удалось получить какую-то фотографию
                            app->saveFile(file, &picture);
                            if (copyTo.size() > 0)
                                app->saveFileToServer(app->getPhotosPath() + "/" + copyTo, file, PictureFileType, true);   // Если указано, что фотографию нужно скопировать, то скопируем ее
                        }
                    }
                    if (!QFile(file).exists())
                    {   // Фотография не найдена на сервере, попробуем получить фотографию из Интернета
                        file = pictureUrl;
                        // Если в скриптах указано, откуда брать фотографию
                        if (file.left(4) == "http" && photoPath.size() > 0)  // Имя файла - это адрес в интернете, и указано, куда этот файл будет сохраняться
                        {
                            QUrl url(file);
                            if (url.isValid())
                            {
                                if (urls.count() <= 1000)
                                {
                                    // Если сетевой менеджер еще не подключен, то подключим его
                                    if (m_networkAccessManager == 0)
                                    {   // Вызывается только один раз, по необходимости загрузить фотографию
                                        m_networkAccessManager = new QNetworkAccessManager(this);
                                        connect(m_networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
                                    }
                                    if (m_networkAccessManager != 0)
                                    {
                                        urlId v = {idValue, copyTo};
                                        urls.insert(QString("%1:%2%3").arg(url.host()).arg(url.port(80)).arg(url.path()), v);             // Запомним URL картинки и его локальный код
                                        QNetworkRequest m_request(url);
                                        QNetworkReply* reply = m_networkAccessManager->get(m_request);   // Запустим скачивание картинки
                                        if (reply->error() != QNetworkReply::NoError)
                                           app->showMessageOnStatusBar(reply->errorString(), 3000);
                                    }
                                }
                                else
                                    app->showMessageOnStatusBar(tr("Очередь на загрузку фотографий из Интернета превысила 1000 наименований."), 3000);
                            }
                            else