Implement selection of recent address

pull/53/head
michal.szwaj 2018-03-25 03:13:23 +02:00
parent f01f057b68
commit 9db15b953e
4 changed files with 20 additions and 2 deletions

View File

@ -36,6 +36,7 @@ private slots:
void onConnectButtonClicked();
void onConnectionFailed(const QString& message);
void onConnectionSucceed(aasdk::tcp::ITCPEndpoint::SocketPointer socket, const std::string& ipAddress);
void onRecentAddressClicked(const QModelIndex& index);
private:
void insertIpAddress(const std::string& ipAddress);

View File

@ -46,8 +46,11 @@ void RecentAddressesList::read()
void RecentAddressesList::insertAddress(const std::string& address)
{
list_.push_front(address);
this->save();
if(std::find(list_.begin(), list_.end(), address) != list_.end())
{
list_.push_front(address);
this->save();
}
}
RecentAddressesList::RecentAddresses RecentAddressesList::getList() const

View File

@ -24,6 +24,7 @@ ConnectDialog::ConnectDialog(boost::asio::io_service& ioService, aasdk::tcp::ITC
ui_->setupUi(this);
connect(ui_->pushButtonCancel, &QPushButton::clicked, this, &ConnectDialog::close);
connect(ui_->pushButtonConnect, &QPushButton::clicked, this, &ConnectDialog::onConnectButtonClicked);
connect(ui_->listViewRecent, &QListView::clicked, this, &ConnectDialog::onRecentAddressClicked);
connect(this, &ConnectDialog::connectionSucceed, this, &ConnectDialog::onConnectionSucceed);
connect(this, &ConnectDialog::connectionFailed, this, &ConnectDialog::onConnectionFailed);
@ -81,6 +82,16 @@ void ConnectDialog::onConnectionFailed(const QString& message)
errorMessage.exec();
}
void ConnectDialog::onRecentAddressClicked(const QModelIndex& index)
{
const auto& recentAddressesList = recentAddressesList_.getList();
if(static_cast<size_t>(index.row()) <= recentAddressesList.size())
{
ui_->lineEditIPAddress->setText(QString::fromStdString(recentAddressesList.at(index.row())));
}
}
void ConnectDialog::setControlsEnabledStatus(bool status)
{
ui_->pushButtonConnect->setVisible(status);

View File

@ -57,6 +57,9 @@
<height>141</height>
</rect>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
</widget>
</widget>
<widget class="QLabel" name="labelHeadUnitServerInfo">