Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/LtsWidgets/lts_dialog_helper.cpp
T
torstenandCopilot d6b6ffce7c Apply clang-format to Lts/Common and DTC/enum headers
- Formatted all CodeGen module files (9 files)
- Formatted LtsAppDescriptor module files
- Formatted LtsAppManager/AppChooser files
- Applied clang-format to all DTC and enum headers across modules
- Removed coordTransTests from CommonUnitTestsPlaceholder (moved to tests/)

Cosmetic changes only, no functional modifications.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-19 14:46:29 +02:00

154 lines
3.7 KiB
C++

#include "lts_dialog_helper.h"
#include "lts_dialog.h"
#include "ui_lts_dialog_helper.h"
#include <QDebug>
#include <QScrollArea>
#include <QScrollBar>
namespace LtsWidgets
{
class LDHScrollBar : public QScrollBar
{
Q_OBJECT
public:
using QScrollBar::QScrollBar;
void showEvent(QShowEvent* e) override
{
QScrollBar::showEvent(e);
emit scrollbarVisiblityChanged(true);
}
void hideEvent(QHideEvent* e) override
{
QScrollBar::hideEvent(e);
emit scrollbarVisiblityChanged(false);
}
Q_SIGNALS:
void scrollbarVisiblityChanged(bool visible);
};
LtsDialogHelper::LtsDialogHelper(QWidget* parent) : QWidget(parent), m_ui(new Ui::LtsDialogHelper()), m_dialog(nullptr)
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
auto hScroll = new LDHScrollBar(this);
auto vScroll = new LDHScrollBar(this);
m_ui->scrollArea->setHorizontalScrollBar(hScroll);
m_ui->scrollArea->setVerticalScrollBar(vScroll);
connect(hScroll, &LDHScrollBar::scrollbarVisiblityChanged, this, &LtsDialogHelper::onHScrollBarVisibilityChanged);
connect(vScroll, &LDHScrollBar::scrollbarVisiblityChanged, this, &LtsDialogHelper::onVScrollBarVisibilityChanged);
#ifdef TABLET_MODE
QList<QWidget*> scrollWidgets = findChildren<QWidget*>();
for (auto i = scrollWidgets.begin(); i != scrollWidgets.end(); ++i)
{
QWidget* widget = *i;
QVariant isConst = widget->property("const");
if (isConst.isValid() && isConst.toBool())
continue;
LtsWidgets::addTouchScroll(widget);
}
#endif
m_ui->buttonBox->setMinimumHeight(m_ui->buttonBox->sizeHint().height());
}
LtsDialogHelper::~LtsDialogHelper()
{
m_ui->scrollArea->horizontalScrollBar()->disconnect(this);
m_ui->scrollArea->verticalScrollBar()->disconnect(this);
delete m_ui;
}
LtsDialogButtonBox* LtsDialogHelper::getButtonBox()
{
return m_ui->buttonBox;
}
void LtsDialogHelper::setDialog(LtsDialog* dialog)
{
if (m_dialog != nullptr)
return;
m_dialog = dialog;
m_dialog->setContentsMargins(QMargins());
if (m_dialog->layout())
m_dialog->layout()->setContentsMargins(QMargins());
m_ui->scrollArea->setWidget(m_dialog);
{
connect(dialog, &LtsDialog::destroyed, this, [this]() {
m_dialog = nullptr;
deleteLater();
});
}
}
LtsDialog* LtsDialogHelper::getDialog()
{
return m_dialog;
}
void LtsDialogHelper::retranslate()
{
if (m_dialog == nullptr)
return;
m_dialog->setContentsMargins(QMargins());
if (m_dialog->layout())
m_dialog->layout()->setContentsMargins(QMargins());
bool oldChangesFlag = m_dialog->m_changesMade;
m_dialog->retranslate();
if (oldChangesFlag)
m_dialog->slotChangesMade();
else
m_dialog->resetChanges();
}
void LtsDialogHelper::resizeEvent(QResizeEvent* e)
{
emit signalSizeChanged(e->size());
}
void LtsDialogHelper::changeEvent(QEvent* e)
{
QWidget::changeEvent(e);
if (e->type() == QEvent::LanguageChange)
retranslate();
}
void LtsDialogHelper::onHScrollBarVisibilityChanged(bool visible)
{
if (m_dialog == nullptr || !m_dialog->layout())
return;
QMargins m = m_dialog->layout()->contentsMargins();
m.setBottom(visible ? -1 : 0);
m_dialog->layout()->setContentsMargins(m);
}
void LtsDialogHelper::onVScrollBarVisibilityChanged(bool visible)
{
if (m_dialog == nullptr || !m_dialog->layout())
return;
QMargins m = m_dialog->layout()->contentsMargins();
m.setRight(visible ? -1 : 0);
m_dialog->layout()->setContentsMargins(m);
}
} // namespace LtsWidgets
#include "lts_dialog_helper.moc"