From: Jean-Baptiste Mardelle Date: Fri, 30 Dec 2011 01:12:16 +0000 (+0100) Subject: Fix online resources page browsing X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=cc5f8f7800705148d46a8604c4dbd17687e5be3e;p=kdenlive Fix online resources page browsing --- diff --git a/src/utils/freesound.cpp b/src/utils/freesound.cpp index 1ac1b2a7..9a81e9e0 100644 --- a/src/utils/freesound.cpp +++ b/src/utils/freesound.cpp @@ -78,6 +78,9 @@ FreeSound::FreeSound(const QString & folder, QWidget * parent) : } connect(Solid::Networking::notifier(), SIGNAL(shouldConnect()), this, SLOT(slotOnline())); connect(Solid::Networking::notifier(), SIGNAL(shouldDisconnect()), this, SLOT(slotOffline())); + connect(page_next, SIGNAL(clicked()), this, SLOT(slotNextPage())); + connect(page_prev, SIGNAL(clicked()), this, SLOT(slotPreviousPage())); + connect(page_number, SIGNAL(valueChanged(int)), this, SLOT(slotStartSearch(int))); } FreeSound::~FreeSound() @@ -85,24 +88,25 @@ FreeSound::~FreeSound() if (m_previewProcess) delete m_previewProcess; } -void FreeSound::slotStartSearch() +void FreeSound::slotStartSearch(int page) { m_result.clear(); m_currentPreview.clear(); m_currentUrl.clear(); page_number->blockSignals(true); - page_number->setValue(0); + page_number->setValue(page); page_number->blockSignals(false); QString uri; if (m_service == FREESOUND) { uri = "http://www.freesound.org/api/sounds/search/?q="; uri.append(search_text->text()); + if (page > 1) uri.append("&p=" + QString::number(page)); uri.append("&api_key=a1772c8236e945a4bee30a64058dabf8"); } else if (m_service == OPENCLIPART) { uri = "http://openclipart.org/api/search/?query="; uri.append(search_text->text()); - //water&page=4 + if (page > 1) uri.append("&page=" + QString::number(page)); } KIO::TransferJob *job = KIO::get(KUrl(uri)); connect (job, SIGNAL( data(KIO::Job *, const QByteArray & )), this, SLOT(slotDataIsHere(KIO::Job *,const QByteArray &))); @@ -301,3 +305,15 @@ void FreeSound::slotOffline() search_info->setText(i18n("You need to be online\n for searching")); } +void FreeSound::slotNextPage() +{ + int ix = page_number->value(); + if (search_results->count() > 0) page_number->setValue(ix + 1); +} + +void FreeSound::slotPreviousPage() +{ + int ix = page_number->value(); + if (ix > 1) page_number->setValue(ix - 1); +} + diff --git a/src/utils/freesound.h b/src/utils/freesound.h index 297dfccc..940220e1 100644 --- a/src/utils/freesound.h +++ b/src/utils/freesound.h @@ -41,7 +41,7 @@ public: private slots: - void slotStartSearch(); + void slotStartSearch(int page = 0); void slotDataIsHere(KIO::Job *,const QByteArray & data ); void slotShowResults(); void slotUpdateCurrentSound(); @@ -52,6 +52,8 @@ private slots: void slotChangeService(); void slotOnline(); void slotOffline(); + void slotNextPage(); + void slotPreviousPage(); private: QString m_folder; diff --git a/src/widgets/freesound_ui.ui b/src/widgets/freesound_ui.ui index 82cd7267..5c62926a 100644 --- a/src/widgets/freesound_ui.ui +++ b/src/widgets/freesound_ui.ui @@ -6,8 +6,8 @@ 0 0 - 250 - 227 + 360 + 229 @@ -173,6 +173,12 @@ 0 + + page + + + 1 + @@ -188,22 +194,26 @@ - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Close - - + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + +