url as combobox with completion
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include <QScrollBar>
|
||||
#include <QFile>
|
||||
#include <QMessageBox>
|
||||
#include <QCompleter>
|
||||
#include <ui_testgui.hxx>
|
||||
#include <stdexcept>
|
||||
#include <QNetworkReply>
|
||||
@@ -49,8 +50,11 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
||||
QSettings settings("mrw", "webtester");
|
||||
restoreGeometry(settings.value("geometry").toByteArray());
|
||||
restoreState(settings.value("windowstate").toByteArray());
|
||||
_url->completer()->setFilterMode(Qt::MatchContains);
|
||||
_url->completer()->setCaseSensitivity(Qt::CaseInsensitive);
|
||||
_url->completer()->setCompletionMode(QCompleter::PopupCompletion);
|
||||
if (!url.isEmpty()) {
|
||||
_url->setText(url);
|
||||
storeUrl(url);
|
||||
}
|
||||
TestWebPage* page(new TestWebPage(_web));
|
||||
_web->setPage(page);
|
||||
@@ -70,8 +74,10 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
||||
void on__load_clicked() {
|
||||
enterText(true);
|
||||
if (_record->isChecked())
|
||||
appendCommand("load "+map(_url->text()));
|
||||
_web->load(_url->text());
|
||||
appendCommand("load "+map(_url->currentText()));
|
||||
storeUrl(_url->currentText());
|
||||
_webprogress->setFormat(_url->currentText());
|
||||
_web->load(_url->currentText());
|
||||
}
|
||||
void on__abort_clicked() {
|
||||
enterText(true);
|
||||
@@ -156,6 +162,9 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
||||
_status->setCurrentIndex(STATUS_SUCCESS);
|
||||
} catch (std::exception &x) {
|
||||
_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);
|
||||
_record->setEnabled(true);
|
||||
@@ -202,7 +211,8 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
||||
//std::cout<<"titleChanged: "<<title.toStdString()<<std::endl;
|
||||
}
|
||||
void on__web_urlChanged(const QUrl& url) {
|
||||
_url->setText(url.url());
|
||||
_webprogress->setFormat(url.url());
|
||||
storeUrl(url);
|
||||
enterText(true);
|
||||
if (_record->isChecked())
|
||||
appendCommand("expect "+map("urlChanged "+url.url()));
|
||||
@@ -415,6 +425,12 @@ class TestGUI: public QMainWindow, protected Ui::TestGUI {
|
||||
return false;
|
||||
}
|
||||
private:
|
||||
void storeUrl(QUrl u) {
|
||||
if (!_url->findText(u.url())) {
|
||||
_url->addItem(u.url());
|
||||
_url->setCurrentText(u.url());
|
||||
}
|
||||
}
|
||||
void loadFile(QString name) {
|
||||
QFile file(name);
|
||||
try {
|
||||
|
@@ -33,15 +33,21 @@
|
||||
<property name="text">
|
||||
<string>URL:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>_url</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="_url">
|
||||
<property name="text">
|
||||
<string>https://</string>
|
||||
<widget class="QComboBox" name="_url">
|
||||
<property name="sizePolicy">
|
||||
<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>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -752,7 +758,7 @@ this.dispatchEvent(evObj);</string>
|
||||
<string>Revert to saved</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+R</string>
|
||||
<string>Ctrl+Shift+R</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="_actionOpenSetupScript">
|
||||
@@ -774,28 +780,11 @@ this.dispatchEvent(evObj);</string>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>_url</tabstop>
|
||||
<tabstop>_load</tabstop>
|
||||
<tabstop>_web</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<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>
|
||||
<sender>_selector</sender>
|
||||
<signal>returnPressed()</signal>
|
||||
@@ -1084,5 +1073,21 @@ this.dispatchEvent(evObj);</string>
|
||||
</hint>
|
||||
</hints>
|
||||
</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>
|
||||
</ui>
|
||||
|
Reference in New Issue
Block a user