FeedPropertiesDialog::FeedPropertiesDialog(bool isFeed, QWidget *parent) : Dialog(parent) , isFeed_(isFeed) { setWindowFlags (windowFlags() & ~Qt::WindowContextHelpButtonHint); setWindowTitle(tr("Properties")); setMinimumWidth(450); setMinimumHeight(350); tabWidget = new QTabWidget(); tabWidget->addTab(createGeneralTab(), tr("General")); tabWidget->addTab(createDisplayTab(), tr("Display")); tabWidget->addTab(createColumnsTab(), tr("Columns")); tabWidget->addTab(createAuthenticationTab(), tr("Authentication")); tabWidget->addTab(createStatusTab(), tr("Status")); pageLayout->addWidget(tabWidget); if (!isFeed_) { tabWidget->removeTab(3); } buttonBox->addButton(QDialogButtonBox::Ok); buttonBox->addButton(QDialogButtonBox::Cancel); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(this, SIGNAL(signalLoadIcon(QString,QString)), parent, SIGNAL(faviconRequestUrl(QString,QString))); connect(parent, SIGNAL(signalIconFeedReady(QString,QByteArray)), this, SLOT(slotFaviconUpdate(QString,QByteArray))); }
UpdateFeeds::UpdateFeeds(QObject *parent, bool addFeed) : QObject(parent) , updateObject_(NULL) , requestFeed_(NULL) , parseObject_(NULL) , faviconObject_(NULL) , updateFeedThread_(NULL) , getFaviconThread_(NULL) , addFeed_(addFeed) , saveMemoryDBTimer_(NULL) { getFeedThread_ = new QThread(); getFeedThread_->setObjectName("getFeedThread_"); updateFeedThread_ = new QThread(); updateFeedThread_->setObjectName("updateFeedThread_"); Settings settings; int timeoutRequest = settings.value("Settings/timeoutRequest", 15).toInt(); int numberRequests = settings.value("Settings/numberRequest", 10).toInt(); int numberRepeats = settings.value("Settings/numberRepeats", 2).toInt(); requestFeed_ = new RequestFeed(timeoutRequest, numberRequests, numberRepeats); parseObject_ = new ParseObject(); if (addFeed_) { connect(parent, SIGNAL(signalRequestUrl(int,QString,QDateTime,QString)), requestFeed_, SLOT(requestUrl(int,QString,QDateTime,QString))); connect(requestFeed_, SIGNAL(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString)), parent, SLOT(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString))); connect(parent, SIGNAL(xmlReadyParse(QByteArray,int,QDateTime,QString)), parseObject_, SLOT(parseXml(QByteArray,int,QDateTime,QString))); connect(parseObject_, SIGNAL(signalFinishUpdate(int,bool,int,QString)), parent, SLOT(slotUpdateFeed(int,bool,int,QString))); } else { getFaviconThread_ = new QThread(); getFaviconThread_->setObjectName("getFaviconThread_"); updateObject_ = new UpdateObject(); faviconObject_ = new FaviconObject(); connect(updateObject_, SIGNAL(signalRequestUrl(int,QString,QDateTime,QString)), requestFeed_, SLOT(requestUrl(int,QString,QDateTime,QString))); connect(requestFeed_, SIGNAL(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString)), updateObject_, SLOT(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString))); connect(requestFeed_, SIGNAL(setStatusFeed(int,QString)), parent, SLOT(setStatusFeed(int,QString))); connect(parent, SIGNAL(signalStopUpdate()), requestFeed_, SLOT(stopRequest())); connect(parent, SIGNAL(signalGetFeedTimer(int)), updateObject_, SLOT(slotGetFeedTimer(int))); connect(parent, SIGNAL(signalGetAllFeedsTimer()), updateObject_, SLOT(slotGetAllFeedsTimer())); connect(parent, SIGNAL(signalGetAllFeeds()), updateObject_, SLOT(slotGetAllFeeds())); connect(parent, SIGNAL(signalGetFeed(int,QString,QDateTime,int)), updateObject_, SLOT(slotGetFeed(int,QString,QDateTime,int))); connect(parent, SIGNAL(signalGetFeedsFolder(QString)), updateObject_, SLOT(slotGetFeedsFolder(QString))); connect(parent, SIGNAL(signalImportFeeds(QByteArray)), updateObject_, SLOT(slotImportFeeds(QByteArray))); connect(updateObject_, SIGNAL(showProgressBar(int)), parent, SLOT(showProgressBar(int))); connect(updateObject_, SIGNAL(loadProgress(int)), parent, SLOT(slotSetValue(int))); connect(updateObject_, SIGNAL(signalMessageStatusBar(QString,int)), parent, SLOT(showMessageStatusBar(QString,int))); connect(updateObject_, SIGNAL(signalUpdateFeedsModel()), parent, SLOT(feedsModelReload()), Qt::BlockingQueuedConnection); connect(updateObject_, SIGNAL(xmlReadyParse(QByteArray,int,QDateTime,QString)), parseObject_, SLOT(parseXml(QByteArray,int,QDateTime,QString)), Qt::QueuedConnection); connect(parseObject_, SIGNAL(signalFinishUpdate(int,bool,int,QString)), updateObject_, SLOT(finishUpdate(int,bool,int,QString)), Qt::QueuedConnection); connect(updateObject_, SIGNAL(feedUpdated(int,bool,int,bool)), parent, SLOT(slotUpdateFeed(int,bool,int,bool))); connect(updateObject_, SIGNAL(setStatusFeed(int,QString)), parent, SLOT(setStatusFeed(int,QString))); qRegisterMetaType<FeedCountStruct>("FeedCountStruct"); connect(parseObject_, SIGNAL(feedCountsUpdate(FeedCountStruct)), parent, SLOT(slotFeedCountsUpdate(FeedCountStruct))); connect(parseObject_, SIGNAL(signalPlaySound(QString)), parent, SLOT(slotPlaySound(QString))); connect(parseObject_, SIGNAL(signalAddColorList(int,QString)), parent, SLOT(slotAddColorList(int,QString))); connect(parent, SIGNAL(signalNextUpdate(bool)), updateObject_, SLOT(slotNextUpdateFeed(bool))); connect(updateObject_, SIGNAL(signalUpdateModel(bool)), parent, SLOT(feedsModelReload(bool))); connect(updateObject_, SIGNAL(signalUpdateNews()), parent, SLOT(slotUpdateNews())); connect(updateObject_, SIGNAL(signalCountsStatusBar(int,int)), parent, SLOT(slotCountsStatusBar(int,int))); connect(parent, SIGNAL(signalRecountCategoryCounts()), updateObject_, SLOT(slotRecountCategoryCounts())); qRegisterMetaType<QList<int> >("QList<int>"); connect(updateObject_, SIGNAL(signalRecountCategoryCounts(QList<int>,QList<int>,QList<int>,QStringList)), parent, SLOT(slotRecountCategoryCounts(QList<int>,QList<int>,QList<int>,QStringList))); connect(parent, SIGNAL(signalRecountFeedCounts(int,bool)), updateObject_, SLOT(slotRecountFeedCounts(int,bool))); connect(updateObject_, SIGNAL(feedCountsUpdate(FeedCountStruct)), parent, SLOT(slotFeedCountsUpdate(FeedCountStruct))); connect(updateObject_, SIGNAL(signalFeedsViewportUpdate()), parent, SLOT(slotFeedsViewportUpdate())); connect(parent, SIGNAL(signalSetFeedRead(int,int,int,QList<int>)), updateObject_, SLOT(slotSetFeedRead(int,int,int,QList<int>))); connect(parent, SIGNAL(signalMarkFeedRead(int,bool,bool)), updateObject_, SLOT(slotMarkFeedRead(int,bool,bool))); connect(parent, SIGNAL(signalRefreshInfoTray()), updateObject_, SLOT(slotRefreshInfoTray())); connect(updateObject_, SIGNAL(signalRefreshInfoTray(int,int)), parent, SLOT(slotRefreshInfoTray(int,int))); connect(parent, SIGNAL(signalUpdateStatus(int,bool)), updateObject_, SLOT(slotUpdateStatus(int,bool))); connect(parent, SIGNAL(signalMarkAllFeedsRead()), updateObject_, SLOT(slotMarkAllFeedsRead())); connect(parent, SIGNAL(signalMarkReadCategory(int,int)), updateObject_, SLOT(slotMarkReadCategory(int,int))); connect(parent, SIGNAL(signalRefreshNewsView(int)), updateObject_, SIGNAL(signalMarkAllFeedsRead(int))); connect(updateObject_, SIGNAL(signalMarkAllFeedsRead(int)), parent, SLOT(slotRefreshNewsView(int))); connect(parent, SIGNAL(signalMarkAllFeedsOld()), updateObject_, SLOT(slotMarkAllFeedsOld())); connect(parent, SIGNAL(signalSetFeedsFilter(bool)), updateObject_, SIGNAL(signalSetFeedsFilter(bool))); connect(updateObject_, SIGNAL(signalSetFeedsFilter(bool)), parent, SLOT(setFeedsFilter(bool))); connect(mainApp, SIGNAL(signalSqlQueryExec(QString)), updateObject_, SLOT(slotSqlQueryExec(QString))); connect(mainApp, SIGNAL(signalRunUserFilter(int, int)), parseObject_, SLOT(runUserFilter(int, int))); // faviconObject_ connect(parent, SIGNAL(faviconRequestUrl(QString,QString)), faviconObject_, SLOT(requestUrl(QString,QString))); connect(faviconObject_, SIGNAL(signalIconRecived(QString,QByteArray,QString)), parent, SLOT(slotIconFeedPreparing(QString,QByteArray,QString))); connect(parent, SIGNAL(signalIconFeedReady(QString,QByteArray)), updateObject_, SLOT(slotIconSave(QString,QByteArray))); connect(updateObject_, SIGNAL(signalIconUpdate(int,QByteArray)), parent, SLOT(slotIconFeedUpdate(int,QByteArray))); updateObject_->moveToThread(updateFeedThread_); faviconObject_->moveToThread(getFaviconThread_); getFaviconThread_->start(QThread::LowPriority); startSaveTimer(); } requestFeed_->moveToThread(getFeedThread_); parseObject_->moveToThread(updateFeedThread_); getFeedThread_->start(QThread::LowPriority); updateFeedThread_->start(QThread::LowPriority); }