Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/LtsWidgets/lts_dialog_button_box.h
T
torstenandCopilot b774f4035c Qt6 Migration: DDS-Stubs, Logger-Fixes, Export-Header Korrekturen
- NGL_ADD_LIBRARY2: 87 CMakeLists.txt konvertiert für Export-Header Generierung
- 44 Export-Header Include-Pfade korrigiert (_export.h)
- 81 DDS-Stub-Header generiert (*_dtc.h, *_fts.h, *_dts.h, *_ftc.h)
- INGLLogger: Duplikat gelöscht, m_logger Member entfernt, variadische Makros
- Q_FUNC_INFO Redefinition behoben (Qt6 definiert bereits)
- FATAL_LOG Makro hinzugefügt
- InfrastructureManagement DDS-Stubs (ism.hpp, ism_enums.hpp, ism_ftc.h)
- FilterManagement DDS-Stubs (flt_ftc.h, flt_dts.h)
- AreaEffectSimulation DDS-Stubs (aes.hpp, aes_enums.hpp)
- SymbolAppearance Klasse vollständig definiert mit content() Methode
- BuildingComponentFilter Klasse definiert mit Copy-Konstruktor
- Ftc Factory: nullptr Return (abstract class)
- AesFilter Klasse in aes.hpp hinzugefügt
- Dtc Klasse in ppm.hpp mit participantChanged Signal
- AesType Enum: alle 15 At* Werte definiert
- AesEffectState_def: EsReceived hinzugefügt
- DataModification Enum: eAdded/eModified/eRemoved
- function_reply_object.h → core_types.h Include-Pfad (72 Dateien)
- Enum-Class-Streaming Template-Operator in INGLLogger.h
- ism_mounting_point.h: QImage → QtGui/QImage, QGuiApplication/QScreen
- ism_data_plugin_interface.h: QSet Include, Include-Reihenfolge
- QRegExp → QRegularExpression in tpm_js_parser.cpp
- .underlying() Aufrufe zu direktem Enum-Vergleich korrigiert
- Include-Pfade: aes.hpp in symbol_appearance_settings_impl.h und aes_display_filter_impl.h

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

198 lines
4.4 KiB
C++
Executable File

#pragma once
#include <QObject>
#include "ltswidgets_export.h"
#include "lts_message_dialog.h"
#include <QWidget>
#include <QPushButton>
namespace Ui
{
class LtsDialogButtonBox;
}
namespace LtsWidgets
{
enum class DialogButton
{
ReadOnly,
Ok,
Apply,
Close,
Yes,
No,
Remove,
Hide,
Add,
Help,
Edit,
Save,
Load,
Show,
Import,
Export,
CenterMap,
ZoomMapTo,
Library,
Print,
#ifdef LTS_DEBUG
_debug_,
#endif
};
class LTSWIDGETS_EXPORT LtsDialogButtonBox : public QWidget
{
Q_OBJECT
public:
explicit LtsDialogButtonBox(QWidget *parent);
~LtsDialogButtonBox();
template <typename Func2>
void connectButton(DialogButton button, const typename QtPrivate::FunctionPointer<Func2>::Object *receiver,
Func2 slot, Qt::ConnectionType type = Qt::AutoConnection)
{
{
switch (button)
{
#ifdef LTS_DEBUG
case DialogButton::_debug_:
#endif
case DialogButton::Close:
case DialogButton::Ok:
case DialogButton::ReadOnly:
case DialogButton::Apply:
case DialogButton::Help:
{
LtsMessageDialog::showMessage(this,
QStringLiteral("Bitte den fuer das Plugin verantwortlichen kontaktieren:<br />"
"m_buttonBox nicht mit Ok, Apply, Help, _debug_ oder Close verbinden<br />"
"Note: Bitte nur m_buttonBox verwenden, keine LtsDialogButtonBox selber erstellen"
"Ok & Apply werden automatisch zur virtual Methode 'apply()' im LtsDialog weitergeleitet.<br />"
"Close schließt einfach den Dialog - im Destruktor oder in 'aboutToClose()' ist der 'Close Code' gut aufgehoben.<br />"
"<br />"
"FIXEN !!!!!"),
QStringLiteral("--- STOP --- !!! FIXEN !!! ---"));
break;
}
default:
break;
}
}
QPushButton *theSender = getButton(button);
if (!theSender)
return;
switch (button)
{
case DialogButton::Remove:
{
connect(this, &LtsDialogButtonBox::signalRemoveClicked, receiver, slot, type);
connect(theSender, &QPushButton::clicked, this, &LtsDialogButtonBox::slotRemoveClicked);
break;
}
case DialogButton::Export:
case DialogButton::Import:
{
if (m_isTablet)
{
theSender->setVisible(false);
return;
}
Q_FALLTHROUGH();
}
default:
connect(theSender, &QPushButton::clicked, receiver, slot, type);
break;
}
setButtonsVisible(theSender);
}
template <typename Func1, typename Func2>
bool connectLibraryButton(const typename QtPrivate::FunctionPointer<Func2>::Object *receiver,
Func1 slotLoad,
Func2 slotSave,
Qt::ConnectionType type = Qt::AutoConnection)
{
QPushButton *theSender = getButton(DialogButton::Library);
if (!theSender)
return false;
if (m_isTablet)
{
theSender->setVisible(false);
return true;
}
setButtonsVisible(theSender);
type = static_cast<Qt::ConnectionType>(type | Qt::UniqueConnection);
return (connect(this, &LtsDialogButtonBox::signalLibraryLoadClicked, receiver, slotLoad, type) &&
connect(this, &LtsDialogButtonBox::signalLibrarySaveClicked, receiver, slotSave, type));
}
void setText(DialogButton button, const QString &text);
void setToolTip(DialogButton button, const QString &text);
void setIcon(DialogButton button, const QIcon &icon);
void setMenu(DialogButton button, QMenu *menu);
void setButtonEnabled(DialogButton button, bool enabled = true);
bool isButtonEnabled(DialogButton button) const;
void setButtonVisible(DialogButton button, bool visible = true);
bool isButtonVisible(DialogButton button) const;
QPushButton *getButton(DialogButton button) const;
void _setVisibilityForAll(bool visible);
signals:
void signalRemoveClicked();
void signalHelpClicked();
void signalLibraryLoadClicked();
void signalLibrarySaveClicked();
private slots:
void slotRemoveClicked();
private:
const bool m_isTablet;
void setButtonsVisible(QPushButton *pb);
Ui::LtsDialogButtonBox *m_ui;
};
}