20#include <gwenhywfar/debug.h>
23#include <QApplication>
31 ,_parentWidget(
NULL) {
47 _pushedParents.push_back(_parentWidget);
54 if (!_pushedParents.empty()) {
55 _parentWidget=_pushedParents.back();
56 _pushedParents.pop_back();
65 QString str = QString::fromUtf8(text);
66 const int start = str.indexOf(QStringLiteral(
"<html>"), 0, Qt::CaseInsensitive);
68 const int end = str.indexOf(QStringLiteral(
"</html>"), start, Qt::CaseInsensitive);
70 return str.mid(start, end+7);
80 QWidget *owner = qApp->activeWindow();
83 if (!(qt5Dlg.
setup(owner))) {
94 QWidget *owner = qApp->activeWindow();
97 if (!(qtDlg->
setup(owner))) {
122 return qtDlg->
runDialog((untilEnd==0)?
false:
true);
130 const char *patterns,
137 QWidget *owner = qApp->activeWindow();
140 sCaption=QString::fromUtf8(caption);
147 qDebug(
"Patterns example: '%s'", patterns);
152 str=QString::fromUtf8(s1, s2-s1);
157 str=QString::fromUtf8(s1);
160 str.replace(
',',
' ');
161 str.replace(
';',
' ');
176 str=QFileDialog::getOpenFileName(owner, sCaption, sPath, sPatterns);
180 str=QFileDialog::getSaveFileName(owner, sCaption, sPath, sPatterns);
184 str=QFileDialog::getExistingDirectory(owner, sCaption, sPath);
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
A C++ binding for the C module GWEN_GUI.
bool setup(QWidget *parentWindow)
int runDialog(bool untilEnd)
static QT5_GuiDialog * getDialog(GWEN_DIALOG *dlg)
virtual int getFileName(const char *caption, GWEN_GUI_FILENAME_TYPE fnt, uint32_t flags, const char *patterns, GWEN_BUFFER *pathBuffer, uint32_t guiid)
virtual int openDialog(GWEN_DIALOG *dlg, uint32_t guiid)
static QString extractHtml(const char *text)
void pushParentWidget(QWidget *w)
virtual int runDialog(GWEN_DIALOG *dlg, int untilEnd)
virtual int closeDialog(GWEN_DIALOG *dlg)
virtual int execDialog(GWEN_DIALOG *dlg, uint32_t guiid)
#define DBG_ERROR(dbg_logger, format, args...)
struct GWEN_DIALOG GWEN_DIALOG
#define GWEN_ERROR_GENERIC
#define GWEN_ERROR_ABORTED
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_Gui_SetName(GWEN_GUI *gui, const char *name)
void GWEN_Gui_AddFlags(GWEN_GUI *gui, uint32_t fl)
@ GWEN_Gui_FileNameType_OpenDirectory
@ GWEN_Gui_FileNameType_SaveFileName
@ GWEN_Gui_FileNameType_OpenFileName
#define GWEN_GUI_FLAGS_DIALOGSUPPORTED
GWENHYWFAR_API void GWEN_Gui_UseDialogs(GWEN_GUI *gui)