diff --git a/qt/i2pd_qt/TunnelPane.cpp b/qt/i2pd_qt/TunnelPane.cpp index 48adcf78..bbf5914d 100644 --- a/qt/i2pd_qt/TunnelPane.cpp +++ b/qt/i2pd_qt/TunnelPane.cpp @@ -2,6 +2,7 @@ #include "QMessageBox" #include "mainwindow.h" +#include "ui_mainwindow.h" TunnelPane::TunnelPane(TunnelsPageUpdateListener* tunnelsPageUpdateListener_, TunnelConfig* tunnelConfig_, QWidget* wrongInputPane_, QLabel* wrongInputLabel_, MainWindow* mainWindow_): QObject(), @@ -184,6 +185,7 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters, void TunnelPane::updated() { std::string oldName=tunnelConfig->getName(); + //validate and show red if invalid if(!applyDataFromUIToTunnelConfig())return; tunnelsPageUpdateListener->updated(oldName, tunnelConfig); } @@ -231,6 +233,9 @@ void TunnelPane::deleteTunnelForm() { void TunnelPane::highlightWrongInput(QString warningText, QWidget* controlWithWrongInput) { wrongInputPane->setVisible(true); wrongInputLabel->setText(warningText); - if(controlWithWrongInput)controlWithWrongInput->setFocus(); + if(controlWithWrongInput){ + mainWindow->ui->tunnelsScrollArea->ensureWidgetVisible(controlWithWrongInput); + controlWithWrongInput->setFocus(); + } mainWindow->showTunnelsPage(); } diff --git a/qt/i2pd_qt/mainwindow.cpp b/qt/i2pd_qt/mainwindow.cpp index 7f9810cc..aba00cec 100644 --- a/qt/i2pd_qt/mainwindow.cpp +++ b/qt/i2pd_qt/mainwindow.cpp @@ -706,7 +706,7 @@ void MainWindow::appendTunnelForms(std::string tunnelNameToFocus) { tunnelPanes.push_back(tunnelPane); if(name==tunnelNameToFocus){ tunnelPane->getNameLineEdit()->setFocus(); - //todo ui->settingsScrollArea->###scroll + ui->tunnelsScrollArea->ensureWidgetVisible(tunnelPane->getNameLineEdit()); } continue; } @@ -719,7 +719,7 @@ void MainWindow::appendTunnelForms(std::string tunnelNameToFocus) { tunnelPanes.push_back(tunnelPane); if(name==tunnelNameToFocus){ tunnelPane->getNameLineEdit()->setFocus(); - //todo ui->settingsScrollArea->###scroll + ui->tunnelsScrollArea->ensureWidgetVisible(tunnelPane->getNameLineEdit()); } continue; } @@ -765,15 +765,6 @@ void MainWindow::reloadTunnelsConfigAndUI(std::string tunnelNameToFocus) { void MainWindow::SaveTunnelsConfig() { std::stringstream out; - //validate and show red if wrong - for (std::list::iterator it=tunnelPanes.begin(); it!=tunnelPanes.end(); ++it) { - TunnelPane* tunpane = *it; - if(!tunpane->applyDataFromUIToTunnelConfig()) { - //!valid - return; - } - } - for (std::map::iterator it=tunnelConfigs.begin(); it!=tunnelConfigs.end(); ++it) { const std::string& name = it->first; TunnelConfig* tunconf = it->second; @@ -863,6 +854,6 @@ void MainWindow::backClickedFromChild() { void MainWindow::highlightWrongInput(QString warningText, QWidget* widgetToFocus) { ui->wrongInputLabel->setVisible(true); ui->wrongInputLabel->setText(warningText); - if(widgetToFocus)widgetToFocus->setFocus(); + if(widgetToFocus){ui->settingsScrollArea->ensureWidgetVisible(widgetToFocus);widgetToFocus->setFocus();} showSettingsPage(); } diff --git a/qt/i2pd_qt/mainwindow.h b/qt/i2pd_qt/mainwindow.h index 831ce7b5..df8ab1e8 100644 --- a/qt/i2pd_qt/mainwindow.h +++ b/qt/i2pd_qt/mainwindow.h @@ -441,11 +441,12 @@ private: QMenu *trayIconMenu; #endif +public: Ui::MainWindow* ui; Ui::StatusButtonsForm* statusButtonsUI; Ui::routerCommandsWidget* routerCommandsUI; Ui::GeneralSettingsContentsForm* uiSettings; - +private: TextBrowserTweaked1 * textBrowser; QWidget * routerCommandsParent; PageWithBackButton * pageWithBackButton; diff --git a/qt/i2pd_qt/mainwindow.ui b/qt/i2pd_qt/mainwindow.ui index bdd4693d..b4aaed1d 100644 --- a/qt/i2pd_qt/mainwindow.ui +++ b/qt/i2pd_qt/mainwindow.ui @@ -7,7 +7,7 @@ 0 0 908 - 550 + 554 @@ -50,7 +50,7 @@ 10 10 888 - 555 + 531 @@ -624,7 +624,7 @@ - 1 + 0