Qt: Use QFrames as separators in the filter expression toolbar.

Use QFrames instead of QActions as separators in the filter expression
toolbar. This keeps them from showing up in the overflow menu.

Change-Id: I60f6f0434fe5ba88fe1b4221e9e70640eed840bb
Reviewed-on: https://code.wireshark.org/review/25860
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
Gerald Combs 2018-02-17 19:50:48 -08:00
parent c61b543e97
commit 042cfea07c
2 changed files with 11 additions and 9 deletions

View File

@ -397,17 +397,17 @@ MainWindow::MainWindow(QWidget *parent) :
// larger toolbar. We do this by adding them to a child toolbar.
// https://bugreports.qt.io/browse/QTBUG-2472
filter_expression_toolbar_ = new DragDropToolBar();
// Try to draw separator lines from the button label ascent to its baseline.
// Try to draw 1-pixel-wide separator lines from the button label
// ascent to its baseline.
int sep_margin = (filter_expression_toolbar_->fontMetrics().height() * 0.5) - 1;
QColor sep_color = ColorUtils::alphaBlend(filter_expression_toolbar_->palette().text(),
filter_expression_toolbar_->palette().base(), 0.5);
sep_color.setAlphaF(0.3);
filter_expression_toolbar_->palette().base(), 0.3);
filter_expression_toolbar_->setStyleSheet(QString(
"QToolBar { background: none; border: none; spacing: 1px; }"
"QToolBar::separator {"
" width: 1px; max-width: 1px;"
" margin-top: %1px; margin-bottom: %2px;"
" background: %3; }"
"QFrame {"
" min-width: 1px; max-width: 1px;"
" margin: %1px 0 %2px 0; padding: 0;"
" background-color: %3;"
"}"
).arg(sep_margin).arg(sep_margin - 1).arg(sep_color.name()));

View File

@ -1009,8 +1009,10 @@ gboolean MainWindow::filter_expression_add_action(const void *key _U_, void *val
dfb_action->setProperty(dfe_property_label_, QString(fe->label));
dfb_action->setProperty(dfe_property_expression_, QString(fe->expression));
if (data->window->filter_expression_toolbar_->actions().count() > 0) {
data->window->filter_expression_toolbar_->addSeparator();
if (data->actions_added) {
QFrame *sep = new QFrame();
sep->setEnabled(false);
data->window->filter_expression_toolbar_->addWidget(sep);
}
data->window->filter_expression_toolbar_->addAction(dfb_action);
connect(dfb_action, SIGNAL(triggered()), data->window, SLOT(displayFilterButtonClicked()));