X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fwidgets%2Fdecodergroupbox.cpp;h=cdefcc74325fe07227ad9821a3610b7c4633c5b2;hp=58874d38722d0723e46a53e271616c21541f55f2;hb=4f391bef39f279ce69e59b7e99ad5bba5c3fd737;hpb=37c1812204088774f369fc934e3971a82d454717 diff --git a/pv/widgets/decodergroupbox.cpp b/pv/widgets/decodergroupbox.cpp index 58874d38..cdefcc74 100644 --- a/pv/widgets/decodergroupbox.cpp +++ b/pv/widgets/decodergroupbox.cpp @@ -14,50 +14,68 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * along with this program; if not, see . */ -#include "decodergroupbox.h" +#include "decodergroupbox.hpp" #include #include #include #include -#include +#include namespace pv { namespace widgets { -DecoderGroupBox::DecoderGroupBox(QString title, QWidget *parent) : +DecoderGroupBox::DecoderGroupBox(QString title, QString tooltip, QWidget *parent, bool isDeletable) : QWidget(parent), - _layout(new QGridLayout) + layout_(new QGridLayout), + show_hide_button_(QIcon(":/icons/decoder-shown.svg"), QString(), this) { - _layout->setContentsMargins(0, 0, 0, 0); - setLayout(_layout); + layout_->setContentsMargins(0, 0, 0, 0); + setLayout(layout_); - _layout->addWidget(new QLabel(QString("

%1

").arg(title)), - 0, 0); - _layout->setColumnStretch(0, 1); + auto *lbl = new QLabel(QString("

%1

").arg(title)); + lbl->setToolTip(tooltip); + layout_->addWidget(lbl, 0, 0); + layout_->setColumnStretch(0, 1); QHBoxLayout *const toolbar = new QHBoxLayout; - _layout->addLayout(toolbar, 0, 1); - - QPushButton *const delete_button = new QPushButton( - QIcon(":/icons/decoder-delete.svg"), QString(), this); - delete_button->setFlat(true); - delete_button->setIconSize(QSize(16, 16)); - connect(delete_button, SIGNAL(clicked()), - this, SIGNAL(delete_decoder())); - toolbar->addWidget(delete_button); + layout_->addLayout(toolbar, 0, 1); + + show_hide_button_.setToolTip(tr("Show/hide this decoder trace")); + show_hide_button_.setFlat(true); + show_hide_button_.setIconSize(QSize(16, 16)); + connect(&show_hide_button_, SIGNAL(clicked()), + this, SIGNAL(show_hide_decoder())); + toolbar->addWidget(&show_hide_button_); + + if (isDeletable) { + QPushButton *const delete_button = new QPushButton( + QIcon(":/icons/decoder-delete.svg"), QString(), this); + delete_button->setToolTip(tr("Delete this decoder trace")); + delete_button->setFlat(true); + delete_button->setIconSize(QSize(16, 16)); + connect(delete_button, SIGNAL(clicked()), + this, SIGNAL(delete_decoder())); + toolbar->addWidget(delete_button); + } } void DecoderGroupBox::add_layout(QLayout *layout) { assert(layout); - _layout->addLayout(layout, 1, 0, 1, 2); + layout_->addLayout(layout, 1, 0, 1, 2); +} + +void DecoderGroupBox::set_decoder_visible(bool visible) +{ + show_hide_button_.setIcon(QIcon(visible ? + ":/icons/decoder-shown.svg" : + ":/icons/decoder-hidden.svg")); } -} // widgets -} // pv +} // namespace widgets +} // namespace pv