2011-10-29 23:01:17 +02:00
|
|
|
#include "webhistorywrapper.h"
|
|
|
|
|
|
|
|
WebHistoryWrapper::WebHistoryWrapper(QObject* parent)
|
|
|
|
: QObject(parent)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QList<QWebHistoryItem> WebHistoryWrapper::forwardItems(int maxItems, QWebHistory* history)
|
|
|
|
{
|
|
|
|
QList<QWebHistoryItem> list;
|
|
|
|
QUrl lastUrl = history->currentItem().url();
|
|
|
|
|
|
|
|
int count = 0;
|
2011-11-06 17:01:23 +01:00
|
|
|
foreach(QWebHistoryItem item, history->forwardItems(maxItems + 5)) {
|
|
|
|
if (item.url() == lastUrl || count == maxItems) {
|
2011-10-29 23:01:17 +02:00
|
|
|
continue;
|
2011-11-06 17:01:23 +01:00
|
|
|
}
|
2011-10-29 23:01:17 +02:00
|
|
|
|
|
|
|
lastUrl = item.url();
|
|
|
|
list.append(item);
|
|
|
|
count++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
|
|
|
|
QList<QWebHistoryItem> WebHistoryWrapper::backItems(int maxItems, QWebHistory* history)
|
|
|
|
{
|
|
|
|
QList<QWebHistoryItem> list;
|
|
|
|
QUrl lastUrl = history->currentItem().url();
|
|
|
|
|
|
|
|
int count = 0;
|
|
|
|
QList<QWebHistoryItem> bItems = history->backItems(maxItems + 5);
|
|
|
|
for (int i = bItems.count() - 1; i >= 0; i--) {
|
|
|
|
QWebHistoryItem item = bItems.at(i);
|
2011-11-06 17:01:23 +01:00
|
|
|
if (item.url() == lastUrl || count == maxItems) {
|
2011-10-29 23:01:17 +02:00
|
|
|
continue;
|
2011-11-06 17:01:23 +01:00
|
|
|
}
|
2011-10-29 23:01:17 +02:00
|
|
|
|
|
|
|
lastUrl = item.url();
|
|
|
|
list.append(item);
|
|
|
|
count++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool WebHistoryWrapper::canGoForward(QWebHistory* history)
|
|
|
|
{
|
|
|
|
return !forwardItems(1, history).isEmpty();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool WebHistoryWrapper::canGoBack(QWebHistory* history)
|
|
|
|
{
|
|
|
|
return !backItems(1, history).isEmpty();
|
|
|
|
}
|
|
|
|
|
|
|
|
void WebHistoryWrapper::goBack(QWebHistory* history)
|
|
|
|
{
|
|
|
|
QList<QWebHistoryItem> items = backItems(1, history);
|
|
|
|
|
2011-11-06 17:01:23 +01:00
|
|
|
if (items.isEmpty()) {
|
2011-10-29 23:01:17 +02:00
|
|
|
return;
|
2011-11-06 17:01:23 +01:00
|
|
|
}
|
2011-10-29 23:01:17 +02:00
|
|
|
|
|
|
|
history->goToItem(items.at(0));
|
|
|
|
}
|
|
|
|
|
|
|
|
void WebHistoryWrapper::goForward(QWebHistory* history)
|
|
|
|
{
|
|
|
|
QList<QWebHistoryItem> items = forwardItems(1, history);
|
|
|
|
|
2011-11-06 17:01:23 +01:00
|
|
|
if (items.isEmpty()) {
|
2011-10-29 23:01:17 +02:00
|
|
|
return;
|
2011-11-06 17:01:23 +01:00
|
|
|
}
|
2011-10-29 23:01:17 +02:00
|
|
|
|
|
|
|
history->goToItem(items.at(0));
|
|
|
|
}
|