From ee5650fa1a0c478273e7a857bcf9f56b355ee340 Mon Sep 17 00:00:00 2001 From: Yuri Gorshenin Date: Fri, 28 Apr 2017 13:34:05 +0300 Subject: [PATCH] [assessment-tool] Small improvements. --- qt/qt_common/scale_slider.cpp | 4 +- .../assessment_tool/CMakeLists.txt | 2 - .../assessment_tool/helpers.hpp | 8 ++- .../assessment_tool/languages_list.cpp | 21 ------- .../assessment_tool/languages_list.hpp | 15 ----- .../assessment_tool/main_view.cpp | 2 + .../assessment_tool/sample_view.cpp | 59 ++++++++++++------- .../assessment_tool/sample_view.hpp | 13 ++-- 8 files changed, 57 insertions(+), 67 deletions(-) delete mode 100644 search/search_quality/assessment_tool/languages_list.cpp delete mode 100644 search/search_quality/assessment_tool/languages_list.hpp diff --git a/qt/qt_common/scale_slider.cpp b/qt/qt_common/scale_slider.cpp index 512a809ee7..3f391d821a 100644 --- a/qt/qt_common/scale_slider.cpp +++ b/qt/qt_common/scale_slider.cpp @@ -43,13 +43,13 @@ ScaleSlider::ScaleSlider(Qt::Orientation orient, QWidget * parent) // static void ScaleSlider::Embed(Qt::Orientation orient, QToolBar & toolBar, MapWidget & mapWidget) { - toolBar.addAction(QIcon(":/navig64/plus.png"), tr("Scale +"), &mapWidget, SLOT(ScalePlus())); + toolBar.addAction(QIcon(":/common/plus.png"), tr("Scale +"), &mapWidget, SLOT(ScalePlus())); { auto slider = my::make_unique(orient, &toolBar); mapWidget.BindSlider(*slider); toolBar.addWidget(slider.release()); } - toolBar.addAction(QIcon(":/navig64/minus.png"), tr("Scale -"), &mapWidget, SLOT(ScaleMinus())); + toolBar.addAction(QIcon(":/common/minus.png"), tr("Scale -"), &mapWidget, SLOT(ScaleMinus())); } double ScaleSlider::GetScaleFactor() const diff --git a/search/search_quality/assessment_tool/CMakeLists.txt b/search/search_quality/assessment_tool/CMakeLists.txt index c5d308522f..ea3cc2aedd 100644 --- a/search/search_quality/assessment_tool/CMakeLists.txt +++ b/search/search_quality/assessment_tool/CMakeLists.txt @@ -15,8 +15,6 @@ set( edits.hpp helpers.cpp helpers.hpp - languages_list.cpp - languages_list.hpp main_model.cpp main_model.hpp main_view.cpp diff --git a/search/search_quality/assessment_tool/helpers.hpp b/search/search_quality/assessment_tool/helpers.hpp index f72b873f1a..f75ad6d428 100644 --- a/search/search_quality/assessment_tool/helpers.hpp +++ b/search/search_quality/assessment_tool/helpers.hpp @@ -13,10 +13,16 @@ class UniString; QString ToQString(strings::UniString const & s); QString ToQString(std::string const & s); +template +Layout * BuildLayout(Args &&... args) +{ + return new Layout(std::forward(args)...); +} + template Layout * BuildLayoutWithoutMargins(Args &&... args) { - auto * layout = new Layout(std::forward(args)...); + auto * layout = BuildLayout(std::forward(args)...); layout->setContentsMargins(0 /* left */, 0 /* top */, 0 /* right */, 0 /* bottom */); return layout; } diff --git a/search/search_quality/assessment_tool/languages_list.cpp b/search/search_quality/assessment_tool/languages_list.cpp deleted file mode 100644 index 73e39d88ce..0000000000 --- a/search/search_quality/assessment_tool/languages_list.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "search/search_quality/assessment_tool/languages_list.hpp" - -#include "search/search_quality/assessment_tool/helpers.hpp" - -#include "coding/multilang_utf8_string.hpp" - -LanguagesList::LanguagesList(QWidget * parent) : QComboBox(parent) -{ - auto const langs = StringUtf8Multilang::GetSupportedLanguages(); - for (auto const & lang : langs) - addItem(ToQString(lang.m_code)); -} - -void LanguagesList::Select(std::string const & lang) -{ - auto const index = StringUtf8Multilang::GetLangIndex(lang); - if (index != StringUtf8Multilang::kUnsupportedLanguageCode) - setCurrentIndex(index); - else - setCurrentIndex(StringUtf8Multilang::kDefaultCode); -} diff --git a/search/search_quality/assessment_tool/languages_list.hpp b/search/search_quality/assessment_tool/languages_list.hpp deleted file mode 100644 index c717c0aff4..0000000000 --- a/search/search_quality/assessment_tool/languages_list.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -#include - -class QWidget; - -class LanguagesList : public QComboBox -{ -public: - explicit LanguagesList(QWidget * parent); - - void Select(std::string const & lang); -}; diff --git a/search/search_quality/assessment_tool/main_view.cpp b/search/search_quality/assessment_tool/main_view.cpp index 5cfab27a69..56f5512ef5 100644 --- a/search/search_quality/assessment_tool/main_view.cpp +++ b/search/search_quality/assessment_tool/main_view.cpp @@ -296,6 +296,8 @@ void MainView::InitDocks() } m_sampleDock = CreateDock(*m_sampleView); + connect(m_sampleDock, &QDockWidget::dockLocationChanged, + [this](Qt::DockWidgetArea area) { m_sampleView->OnLocationChanged(area); }); addDockWidget(Qt::RightDockWidgetArea, m_sampleDock); SetSampleDockTitle(false /* hasEdits */); } diff --git a/search/search_quality/assessment_tool/sample_view.cpp b/search/search_quality/assessment_tool/sample_view.cpp index 31fd0a6548..a85330d671 100644 --- a/search/search_quality/assessment_tool/sample_view.cpp +++ b/search/search_quality/assessment_tool/sample_view.cpp @@ -8,7 +8,6 @@ #include "search/result.hpp" #include "search/search_quality/assessment_tool/helpers.hpp" -#include "search/search_quality/assessment_tool/languages_list.hpp" #include "search/search_quality/assessment_tool/result_view.hpp" #include "search/search_quality/assessment_tool/results_view.hpp" #include "search/search_quality/sample.hpp" @@ -40,26 +39,28 @@ Layout * BuildSubLayout(QLayout & mainLayout, QWidget & parent) SampleView::SampleView(QWidget * parent, Framework & framework) : QWidget(parent), m_framework(framework) { - auto * mainLayout = BuildLayoutWithoutMargins(this /* parent */); + auto * mainLayout = BuildLayout(this /* parent */); + + // When the dock for SampleView is attached to the right side of the + // screen, we don't need left margin, because of zoom in/zoom out + // slider. In other cases, it's better to keep left margin as is. + m_defaultMargins = mainLayout->contentsMargins(); + m_rightAreaMargins = m_defaultMargins; + m_rightAreaMargins.setLeft(0); { - auto * layout = BuildSubLayout(*mainLayout, *this /* parent */); - - m_query = new QLineEdit(this /* parent */); + m_query = new QLabel(this /* parent */); m_query->setToolTip(tr("Query text")); + m_query->setWordWrap(true); + m_query->hide(); + mainLayout->addWidget(m_query); + } - // TODO (@y): enable this as soon as editing of query will be - // ready. - m_query->setEnabled(false); - layout->addWidget(m_query); - - m_langs = new LanguagesList(this /* parent */); + { + m_langs = new QLabel(this /* parent */); m_langs->setToolTip(tr("Query input language")); - - // TODO (@y): enable this as soon as editing of input language - // will be ready. - m_langs->setEnabled(false); - layout->addWidget(m_langs); + m_langs->hide(); + mainLayout->addWidget(m_langs); } { @@ -104,10 +105,16 @@ SampleView::SampleView(QWidget * parent, Framework & framework) void SampleView::SetContents(search::Sample const & sample, bool positionAvailable) { - m_query->setText(ToQString(sample.m_query)); - m_query->home(false /* mark */); - - m_langs->Select(sample.m_locale); + if (!sample.m_query.empty()) + { + m_query->setText(ToQString(sample.m_query)); + m_query->show(); + } + if (!sample.m_locale.empty()) + { + m_langs->setText(ToQString(sample.m_locale)); + m_langs->show(); + } m_showViewport->setEnabled(true); m_showPosition->setEnabled(positionAvailable); @@ -157,14 +164,22 @@ void SampleView::EnableEditing(Edits & resultsEdits, Edits & nonFoundResultsEdit void SampleView::Clear() { - m_query->setText(QString()); - m_langs->Select("default"); + m_query->hide(); + m_langs->hide(); + m_showViewport->setEnabled(false); m_showPosition->setEnabled(false); ClearAllResults(); OnSearchCompleted(); } +void SampleView::OnLocationChanged(Qt::DockWidgetArea area) { + if (area == Qt::RightDockWidgetArea) + layout()->setContentsMargins(m_rightAreaMargins); + else + layout()->setContentsMargins(m_defaultMargins); +} + void SampleView::EnableEditing(ResultsView & results, Edits & edits) { size_t const numRelevances = edits.GetRelevances().size(); diff --git a/search/search_quality/assessment_tool/sample_view.hpp b/search/search_quality/assessment_tool/sample_view.hpp index 0c2c88d2b1..2da066310d 100644 --- a/search/search_quality/assessment_tool/sample_view.hpp +++ b/search/search_quality/assessment_tool/sample_view.hpp @@ -4,11 +4,11 @@ #include "search/search_quality/assessment_tool/edits.hpp" #include "search/search_quality/sample.hpp" +#include #include class Framework; -class LanguagesList; -class QLineEdit; +class QLabel; class QPushButton; class ResultsView; class Spinner; @@ -35,6 +35,8 @@ public: ResultsView & GetFoundResultsView() { return *m_foundResults; } ResultsView & GetNonFoundResultsView() { return *m_nonFoundResults; } + void OnLocationChanged(Qt::DockWidgetArea area); + signals: void OnShowViewportClicked(); void OnShowPositionClicked(); @@ -47,10 +49,13 @@ private: Spinner * m_spinner = nullptr; - QLineEdit * m_query = nullptr; - LanguagesList * m_langs = nullptr; + QLabel * m_query = nullptr; + QLabel * m_langs = nullptr; QPushButton * m_showViewport = nullptr; QPushButton * m_showPosition = nullptr; ResultsView * m_foundResults = nullptr; ResultsView * m_nonFoundResults = nullptr; + + QMargins m_rightAreaMargins; + QMargins m_defaultMargins; };