diff options
Diffstat (limited to 'src/ui/widgets/InfoBoardWidget.cpp')
-rw-r--r-- | src/ui/widgets/InfoBoardWidget.cpp | 60 |
1 files changed, 51 insertions, 9 deletions
diff --git a/src/ui/widgets/InfoBoardWidget.cpp b/src/ui/widgets/InfoBoardWidget.cpp index 76f82505..33517a8e 100644 --- a/src/ui/widgets/InfoBoardWidget.cpp +++ b/src/ui/widgets/InfoBoardWidget.cpp @@ -25,12 +25,13 @@ #include "ui/widgets/InfoBoardWidget.h" InfoBoardWidget::InfoBoardWidget(QWidget *parent, GpgME::GpgContext *ctx, KeyList *keyList) : - QWidget(parent), mCtx(ctx), mKeyList(keyList){ + QWidget(parent), mCtx(ctx), mKeyList(keyList) { infoBoard = new QTextEdit(this); infoBoard->setReadOnly(true); - infoBoard->setMinimumHeight(140); + infoBoard->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); infoBoard->setMinimumWidth(480); + infoBoard->setContentsMargins(0, 0, 0, 0); connect(mCtx, SIGNAL(signalKeyInfoChanged()), this, SLOT(slotReset())); @@ -41,21 +42,41 @@ InfoBoardWidget::InfoBoardWidget(QWidget *parent, GpgME::GpgContext *ctx, KeyLis detailMenu->addAction(importFromKeyserverAct); importFromKeyserverAct->setVisible(false); + QWidget *actionButtonMenu = new QWidget(); + actionButtonMenu->setContentsMargins(0, 0, 0, 0); + actionButtonMenu->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); + actionButtonMenu->setFixedHeight(36); + actionButtonLayout = new QHBoxLayout(); + actionButtonLayout->setContentsMargins(0, 0, 0, 0); + actionButtonLayout->setSpacing(0); + actionButtonMenu->setLayout(actionButtonLayout); + auto label = new QLabel("Optional Actions Menu"); - label->setMinimumHeight(16); + label->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + label->setContentsMargins(0, 0, 0, 0); + actionButtonLayout->addWidget(label); actionButtonLayout->addStretch(); + QFrame *line; line = new QFrame(this); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); + line->setContentsMargins(0, 0, 0, 0); auto *notificationWidgetLayout = new QVBoxLayout(this); + notificationWidgetLayout->setContentsMargins(0, 0, 0, 0); + notificationWidgetLayout->setSpacing(0); + notificationWidgetLayout->addWidget(infoBoard); - notificationWidgetLayout->addLayout(actionButtonLayout); + notificationWidgetLayout->setStretchFactor(infoBoard, 10); + notificationWidgetLayout->addWidget(actionButtonMenu); + notificationWidgetLayout->setStretchFactor(actionButtonMenu, 1); notificationWidgetLayout->addWidget(line); + notificationWidgetLayout->setStretchFactor(line, 1); + notificationWidgetLayout->addStretch(0); this->setLayout(notificationWidgetLayout); } @@ -96,15 +117,36 @@ void InfoBoardWidget::slotRefresh(const QString &text, InfoBoardStatus status) { } void InfoBoardWidget::associateTextEdit(QTextEdit *edit) { - this->mTextPage = edit; - if(mTextPage != nullptr) { + if (mTextPage != nullptr) disconnect(mTextPage, SIGNAL(textChanged()), this, SLOT(slotReset())); - } + this->mTextPage = edit; connect(edit, SIGNAL(textChanged()), this, SLOT(slotReset())); } -void InfoBoardWidget::addOptionalAction(const QString& name, const std::function<void()>& action) { +void InfoBoardWidget::associateFileTreeView(FilePage *treeView) { +// if (mFileTreeView != nullptr) +// disconnect(mFileTreeView, &FilePage::pathChanged, this, &InfoBoardWidget::slotReset); +// this->mFileTreeView = treeView; +// connect(treeView, &FilePage::pathChanged, this, &InfoBoardWidget::slotReset); +} + +void InfoBoardWidget::associateTabWidget(QTabWidget *tab) { + if (mTextPage != nullptr) + disconnect(mTextPage, SIGNAL(textChanged()), this, SLOT(slotReset())); +// if (mFileTreeView != nullptr) +// disconnect(mFileTreeView, &FilePage::pathChanged, this, &InfoBoardWidget::slotReset); + if (mTabWidget != nullptr) + disconnect(mTabWidget, SIGNAL(tabBarClicked(int)), this, SLOT(slotReset())); + + mTextPage = nullptr; + mFileTreeView = nullptr; + mTabWidget = tab; + connect(tab, SIGNAL(tabBarClicked(int)), this, SLOT(slotReset())); +} + +void InfoBoardWidget::addOptionalAction(const QString &name, const std::function<void()> &action) { auto actionButton = new QPushButton(name); + infoBoard->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); actionButtonLayout->addWidget(actionButton); connect(actionButton, &QPushButton::clicked, this, [=]() { action(); @@ -113,7 +155,7 @@ void InfoBoardWidget::addOptionalAction(const QString& name, const std::function void InfoBoardWidget::resetOptionActionsMenu() { QLayoutItem *item; - while ((item = actionButtonLayout->layout()->takeAt( 2)) != nullptr ) { + while ((item = actionButtonLayout->layout()->takeAt(2)) != nullptr) { actionButtonLayout->removeItem(item); delete item->widget(); delete item; |