url as combobox with completion
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QCompleter>
|
||||||
#include <ui_testgui.hxx>
|
#include <ui_testgui.hxx>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
@@ -49,8 +50,11 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
|||||||
QSettings settings("mrw", "webtester");
|
QSettings settings("mrw", "webtester");
|
||||||
restoreGeometry(settings.value("geometry").toByteArray());
|
restoreGeometry(settings.value("geometry").toByteArray());
|
||||||
restoreState(settings.value("windowstate").toByteArray());
|
restoreState(settings.value("windowstate").toByteArray());
|
||||||
|
_url->completer()->setFilterMode(Qt::MatchContains);
|
||||||
|
_url->completer()->setCaseSensitivity(Qt::CaseInsensitive);
|
||||||
|
_url->completer()->setCompletionMode(QCompleter::PopupCompletion);
|
||||||
if (!url.isEmpty()) {
|
if (!url.isEmpty()) {
|
||||||
_url->setText(url);
|
storeUrl(url);
|
||||||
}
|
}
|
||||||
TestWebPage* page(new TestWebPage(_web));
|
TestWebPage* page(new TestWebPage(_web));
|
||||||
_web->setPage(page);
|
_web->setPage(page);
|
||||||
@@ -70,8 +74,10 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
|||||||
void on__load_clicked() {
|
void on__load_clicked() {
|
||||||
enterText(true);
|
enterText(true);
|
||||||
if (_record->isChecked())
|
if (_record->isChecked())
|
||||||
appendCommand("load "+map(_url->text()));
|
appendCommand("load "+map(_url->currentText()));
|
||||||
_web->load(_url->text());
|
storeUrl(_url->currentText());
|
||||||
|
_webprogress->setFormat(_url->currentText());
|
||||||
|
_web->load(_url->currentText());
|
||||||
}
|
}
|
||||||
void on__abort_clicked() {
|
void on__abort_clicked() {
|
||||||
enterText(true);
|
enterText(true);
|
||||||
@@ -156,6 +162,9 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
|||||||
_status->setCurrentIndex(STATUS_SUCCESS);
|
_status->setCurrentIndex(STATUS_SUCCESS);
|
||||||
} catch (std::exception &x) {
|
} catch (std::exception &x) {
|
||||||
_status->setCurrentIndex(STATUS_ERROR);
|
_status->setCurrentIndex(STATUS_ERROR);
|
||||||
|
QMessageBox::critical(this, tr("Test Failed"), tr("Error [%1]: %2")
|
||||||
|
.arg(demangle(typeid(x).name()))
|
||||||
|
.arg(x.what()));
|
||||||
}
|
}
|
||||||
_run->setEnabled(true);
|
_run->setEnabled(true);
|
||||||
_record->setEnabled(true);
|
_record->setEnabled(true);
|
||||||
@@ -202,7 +211,8 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
|||||||
//std::cout<<"titleChanged: "<<title.toStdString()<<std::endl;
|
//std::cout<<"titleChanged: "<<title.toStdString()<<std::endl;
|
||||||
}
|
}
|
||||||
void on__web_urlChanged(const QUrl& url) {
|
void on__web_urlChanged(const QUrl& url) {
|
||||||
_url->setText(url.url());
|
_webprogress->setFormat(url.url());
|
||||||
|
storeUrl(url);
|
||||||
enterText(true);
|
enterText(true);
|
||||||
if (_record->isChecked())
|
if (_record->isChecked())
|
||||||
appendCommand("expect "+map("urlChanged "+url.url()));
|
appendCommand("expect "+map("urlChanged "+url.url()));
|
||||||
@@ -415,6 +425,12 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
|
void storeUrl(QUrl u) {
|
||||||
|
if (!_url->findText(u.url())) {
|
||||||
|
_url->addItem(u.url());
|
||||||
|
_url->setCurrentText(u.url());
|
||||||
|
}
|
||||||
|
}
|
||||||
void loadFile(QString name) {
|
void loadFile(QString name) {
|
||||||
QFile file(name);
|
QFile file(name);
|
||||||
try {
|
try {
|
||||||
|
@@ -33,15 +33,21 @@
|
|||||||
<property name="text">
|
<property name="text">
|
||||||
<string>URL:</string>
|
<string>URL:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
|
||||||
<cstring>_url</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="_url">
|
<widget class="QComboBox" name="_url">
|
||||||
<property name="text">
|
<property name="sizePolicy">
|
||||||
<string>https://</string>
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="insertPolicy">
|
||||||
|
<enum>QComboBox::InsertAtTop</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -752,7 +758,7 @@ this.dispatchEvent(evObj);</string>
|
|||||||
<string>Revert to saved</string>
|
<string>Revert to saved</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="shortcut">
|
<property name="shortcut">
|
||||||
<string>Ctrl+R</string>
|
<string>Ctrl+Shift+R</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="_actionOpenSetupScript">
|
<action name="_actionOpenSetupScript">
|
||||||
@@ -774,28 +780,11 @@ this.dispatchEvent(evObj);</string>
|
|||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>_url</tabstop>
|
|
||||||
<tabstop>_load</tabstop>
|
<tabstop>_load</tabstop>
|
||||||
<tabstop>_web</tabstop>
|
<tabstop>_web</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
|
||||||
<sender>_url</sender>
|
|
||||||
<signal>returnPressed()</signal>
|
|
||||||
<receiver>_load</receiver>
|
|
||||||
<slot>click()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>493</x>
|
|
||||||
<y>343</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>580</x>
|
|
||||||
<y>344</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
<connection>
|
||||||
<sender>_selector</sender>
|
<sender>_selector</sender>
|
||||||
<signal>returnPressed()</signal>
|
<signal>returnPressed()</signal>
|
||||||
@@ -1084,5 +1073,21 @@ this.dispatchEvent(evObj);</string>
|
|||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>_url</sender>
|
||||||
|
<signal>activated(int)</signal>
|
||||||
|
<receiver>_load</receiver>
|
||||||
|
<slot>click()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>277</x>
|
||||||
|
<y>315</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>549</x>
|
||||||
|
<y>315</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
</connections>
|
</connections>
|
||||||
</ui>
|
</ui>
|
||||||
|
Reference in New Issue
Block a user