Merge remote-tracking branch 'origin/master' into widget_fix_merged

preferencesAboutTextFull
Yimgo 12 years ago
commit 338c6390b2
  1. 8
      src/board/UBBoardPaletteManager.cpp
  2. 24
      src/board/UBFeaturesController.cpp
  3. 1
      src/board/UBFeaturesController.h
  4. 36
      src/domain/UBGraphicsItemDelegate.cpp
  5. 29
      src/domain/UBGraphicsItemDelegate.h
  6. 10
      src/gui/UBFeaturesActionBar.cpp
  7. 2
      src/gui/UBFeaturesActionBar.h
  8. 35
      src/gui/UBFeaturesWidget.cpp
  9. 11
      src/gui/UBFeaturesWidget.h

@ -677,8 +677,10 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
{ {
case eUBDockPaletteWidget_BOARD: case eUBDockPaletteWidget_BOARD:
{ {
mLeftPalette->assignParent(UBApplication::boardController->controlContainer()); mLeftPalette->assignParent(mContainer);
mRightPalette->assignParent(UBApplication::boardController->controlContainer()); mRightPalette->assignParent(mContainer);
mRightPalette->stackUnder(mStylusPalette);
mLeftPalette->stackUnder(mStylusPalette);
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{ {
@ -710,6 +712,8 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
{ {
mLeftPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); mLeftPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView());
mRightPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); mRightPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView());
mRightPalette->lower();
mLeftPalette->lower();
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{ {

@ -21,8 +21,6 @@
const QString UBFeaturesController::virtualRootName = "root"; const QString UBFeaturesController::virtualRootName = "root";
void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & currVirtualPath) void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & currVirtualPath)
{ {
@ -624,6 +622,7 @@ void UBFeaturesController::importImage(const QImage &image, const QString &fileN
importImage(image, currentElement, fileName); importImage(image, currentElement, fileName);
} }
void UBFeaturesController::importImage( const QImage &image, const UBFeature &destination, const QString &fileName ) void UBFeaturesController::importImage( const QImage &image, const UBFeature &destination, const QString &fileName )
{ {
QString mFileName = fileName; QString mFileName = fileName;
@ -650,6 +649,27 @@ void UBFeaturesController::importImage( const QImage &image, const UBFeature &de
} }
QStringList UBFeaturesController::getFileNamesInFolders()
{
QStringList strList;
Q_ASSERT(curListModel);
for (int i = 0; i < curListModel->rowCount(QModelIndex()); i++) {
QModelIndex ind = curListModel->index(i, 0);
if (!ind.isValid()) {
qDebug() << "incorrect model index catched";
continue;
}
UBFeature curFeature = curListModel->data(ind, Qt::UserRole + 1).value<UBFeature>();
if (curFeature.getType() == FEATURE_FOLDER) {
strList << QFileInfo(curFeature.getFullPath().toLocalFile()).fileName();
}
}
return strList;
}
void UBFeaturesController::addNewFolder(QString name) void UBFeaturesController::addNewFolder(QString name)
{ {
QString path = currentElement.getFullPath().toLocalFile() + "/" + name; QString path = currentElement.getFullPath().toLocalFile() + "/" + name;

@ -157,6 +157,7 @@ public:
void removeFromFavorite(const QUrl &path, bool deleteManualy = false); void removeFromFavorite(const QUrl &path, bool deleteManualy = false);
void importImage(const QImage &image, const QString &fileName = QString()); void importImage(const QImage &image, const QString &fileName = QString());
void importImage( const QImage &image, const UBFeature &destination, const QString &fileName = QString() ); void importImage( const QImage &image, const UBFeature &destination, const QString &fileName = QString() );
QStringList getFileNamesInFolders();
void fileSystemScan(const QUrl &currPath, const QString & currVirtualPath); void fileSystemScan(const QUrl &currPath, const QString & currVirtualPath);
int featuresCount(const QUrl &currPath); int featuresCount(const QUrl &currPath);

@ -418,6 +418,10 @@ bool UBGraphicsItemDelegate::isLocked()
void UBGraphicsItemDelegate::duplicate() void UBGraphicsItemDelegate::duplicate()
{ {
// TODO UB 4.x .. rewrite .. .this is absurde ... we know what we are duplicating
UBApplication::boardController->copy();
UBApplication::boardController->paste();
UBApplication::boardController->duplicateItem(dynamic_cast<UBItem*>(delegated())); UBApplication::boardController->duplicateItem(dynamic_cast<UBItem*>(delegated()));
} }
@ -736,7 +740,11 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI
} }
MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent) MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent)
{} {
val = 0;
smallPoint = false;
setNumDigits(4);
}
MediaTimer::~MediaTimer() MediaTimer::~MediaTimer()
{} {}
@ -819,9 +827,7 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen,
} }
} }
char* MediaTimer::getSegments(char ch) // gets list of segments for ch char MediaTimer::segments [][8] =
{
char segments[30][8] =
{ {
{ 0, 1, 2, 4, 5, 6,99, 0}, // 0 0 { 0, 1, 2, 4, 5, 6,99, 0}, // 0 0
{ 2, 5,99, 0, 0, 0, 0, 0}, // 1 1 { 2, 5,99, 0, 0, 0, 0, 0}, // 1 1
@ -837,15 +843,16 @@ char* MediaTimer::getSegments(char ch) // gets list of segments fo
{99, 0, 0, 0, 0, 0, 0, 0} // 11 empty {99, 0, 0, 0, 0, 0, 0, 0} // 11 empty
}; };
int n; const char* MediaTimer::getSegments(char ch) // gets list of segments for ch
{
if (ch >= '0' && ch <= '9') if (ch >= '0' && ch <= '9')
return segments[ch - '0']; return segments[ch - '0'];
if (ch == ':') if (ch == ':')
n = 10; return segments[10];
if (ch == ' ') if (ch == ' ')
n = 11; return segments[11];
return segments[n]; return NULL;
} }
void MediaTimer::drawSegment(const QPoint &pos, char segmentNo, QPainter &p, void MediaTimer::drawSegment(const QPoint &pos, char segmentNo, QPainter &p,
@ -1067,13 +1074,6 @@ void MediaTimer::internalSetString(const QString& s)
update(); update();
} }
void MediaTimer::init()
{
val = 0;
smallPoint = false;
setNumDigits(4);
}
void MediaTimer::display(const QString &s) void MediaTimer::display(const QString &s)
{ {
val = 0; val = 0;
@ -1141,7 +1141,6 @@ DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGra
setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Control)); setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Control));
lcdTimer = new MediaTimer(this); lcdTimer = new MediaTimer(this);
lcdTimer->init();
update(); update();
} }
@ -1194,6 +1193,8 @@ void DelegateMediaControl::positionHandles()
mLCDTimerArea.setHeight(parentItem()->boundingRect().height()); mLCDTimerArea.setHeight(parentItem()->boundingRect().height());
lcdTimer->setRect(mLCDTimerArea); lcdTimer->setRect(mLCDTimerArea);
lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0);
//lcdTimer->setRect(mLCDTimerArea);
//lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0);
mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()); mSeecArea.setWidth(rect().width()-mLCDTimerArea.width());
@ -1202,6 +1203,7 @@ void DelegateMediaControl::positionHandles()
setRect(selfRect); setRect(selfRect);
lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0);
//lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0);
} }
@ -1210,6 +1212,7 @@ void DelegateMediaControl::update()
QTime t; QTime t;
t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs);
lcdTimer->display(t.toString("m:ss")); lcdTimer->display(t.toString("m:ss"));
//lcdTimer->display(t.toString("m:ss"));
QGraphicsRectItem::update(); QGraphicsRectItem::update();
} }
@ -1262,6 +1265,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos)
minX = frameWidth; minX = frameWidth;
length = mSeecArea.width() - lcdTimer->rect().width(); length = mSeecArea.width() - lcdTimer->rect().width();
length = mSeecArea.width() /*- lcdTimer->rect().width()*/;
qreal mouseX = mousePos.x(); qreal mouseX = mousePos.x();
if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2)) if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2))

@ -71,33 +71,40 @@ class DelegateButton: public QGraphicsSvgItem
}; };
/*
Code of this class is copied from QT QLCDNumber class sources
See src\gui\widgets\qlcdnumber.cpp for original code
*/
class MediaTimer: public QGraphicsRectItem class MediaTimer: public QGraphicsRectItem
{ {
public: public:
MediaTimer(QGraphicsItem * parent = 0); MediaTimer(QGraphicsItem * parent = 0);
~MediaTimer(); ~MediaTimer();
char* getSegments(char);
void addPoint(QPolygon&, const QPoint&);
void init();
void internalSetString(const QString& s);
void drawString(const QString& s, QPainter &, QBitArray * = 0, bool = true);
void drawDigit(const QPoint &, QPainter &, int, char, char = ' ');
void drawSegment(const QPoint &, char, QPainter &, int, bool = false);
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget); QWidget *widget);
void display(const QString &str); void display(const QString &str);
void setNumDigits(int nDigits);
private: private:
static const char* getSegments(char);
void drawString(const QString& s, QPainter &, QBitArray * = 0, bool = true);
void drawDigit(const QPoint &, QPainter &, int, char, char = ' ');
void drawSegment(const QPoint &, char, QPainter &, int, bool = false);
void addPoint(QPolygon&, const QPoint&);
void internalSetString(const QString& s);
void setNumDigits(int nDigits);
static char segments [][8];
int ndigits; int ndigits;
QString digitStr; QString digitStr;
QBitArray points; QBitArray points;
double val; double val;
uint shadow : 1; uint shadow : 1;
uint smallPoint : 1; uint smallPoint : 1;
}; };
class DelegateMediaControl: public QObject, public QGraphicsRectItem class DelegateMediaControl: public QObject, public QGraphicsRectItem

@ -209,6 +209,16 @@ void UBFeaturesActionBar::onActionRescanModel()
emit rescanModel(); emit rescanModel();
} }
void UBFeaturesActionBar::lockIt()
{
setEnabled(false);
}
void UBFeaturesActionBar::unlockIt()
{
setEnabled(true);
}
void UBFeaturesActionBar::dragEnterEvent( QDragEnterEvent *event ) void UBFeaturesActionBar::dragEnterEvent( QDragEnterEvent *event )
{ {
const UBFeaturesMimeData *fMimeData = qobject_cast<const UBFeaturesMimeData*>(event->mimeData()); const UBFeaturesMimeData *fMimeData = qobject_cast<const UBFeaturesMimeData*>(event->mimeData());

@ -45,6 +45,8 @@ private slots:
void onActionRemoveFavorite(); void onActionRemoveFavorite();
void onActionTrash(); void onActionTrash();
void onActionRescanModel(); void onActionRescanModel();
void lockIt();
void unlockIt();
protected: protected:
void dragEnterEvent( QDragEnterEvent *event ); void dragEnterEvent( QDragEnterEvent *event );

@ -1,5 +1,4 @@
#include <QDomDocument> #include <QDomDocument>
#include "UBFeaturesWidget.h" #include "UBFeaturesWidget.h"
#include "gui/UBThumbnailWidget.h" #include "gui/UBThumbnailWidget.h"
#include "frameworks/UBFileSystemUtils.h" #include "frameworks/UBFileSystemUtils.h"
@ -60,6 +59,7 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name)
layout->addWidget(mActionBar); layout->addWidget(mActionBar);
connect(centralWidget->listView(), SIGNAL(clicked(const QModelIndex &)), this, SLOT(currentSelected(const QModelIndex &))); connect(centralWidget->listView(), SIGNAL(clicked(const QModelIndex &)), this, SLOT(currentSelected(const QModelIndex &)));
connect(this, SIGNAL(sendFileNameList(QStringList)), centralWidget, SIGNAL(sendFileNameList(QStringList)));
connect(mActionBar, SIGNAL(searchElement(const QString &)), this, SLOT( searchStarted(const QString &))); connect(mActionBar, SIGNAL(searchElement(const QString &)), this, SLOT( searchStarted(const QString &)));
connect(mActionBar, SIGNAL(newFolderToCreate()), this, SLOT(createNewFolder())); connect(mActionBar, SIGNAL(newFolderToCreate()), this, SLOT(createNewFolder()));
connect(mActionBar, SIGNAL(deleteElements(const UBFeaturesMimeData *)), this, SLOT(deleteElements(const UBFeaturesMimeData *))); connect(mActionBar, SIGNAL(deleteElements(const UBFeaturesMimeData *)), this, SLOT(deleteElements(const UBFeaturesMimeData *)));
@ -78,6 +78,8 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name)
connect(centralWidget, SIGNAL(createNewFolderSignal(QString)), controller, SLOT(addNewFolder(QString))); connect(centralWidget, SIGNAL(createNewFolderSignal(QString)), controller, SLOT(addNewFolder(QString)));
connect(controller, SIGNAL(scanStarted()), centralWidget, SLOT(scanStarted())); connect(controller, SIGNAL(scanStarted()), centralWidget, SLOT(scanStarted()));
connect(controller, SIGNAL(scanFinished()), centralWidget, SLOT(scanFinished())); connect(controller, SIGNAL(scanFinished()), centralWidget, SLOT(scanFinished()));
connect(controller, SIGNAL(scanStarted()), mActionBar, SLOT(lockIt()));
connect(controller, SIGNAL(scanFinished()), mActionBar, SLOT(unlockIt()));
connect(controller, SIGNAL(maxFilesCountEvaluated(int)), centralWidget, SIGNAL(maxFilesCountEvaluated(int))); connect(controller, SIGNAL(maxFilesCountEvaluated(int)), centralWidget, SIGNAL(maxFilesCountEvaluated(int)));
connect(controller, SIGNAL(featureAddedFromThread()), centralWidget, SLOT(increaseStatusBarValue())); connect(controller, SIGNAL(featureAddedFromThread()), centralWidget, SLOT(increaseStatusBarValue()));
} }
@ -144,6 +146,7 @@ void UBFeaturesWidget::currentSelected(const QModelIndex &current)
void UBFeaturesWidget::createNewFolder() void UBFeaturesWidget::createNewFolder()
{ {
centralWidget->showAdditionalData(UBFeaturesCentralWidget::NewFolderDialog, UBFeaturesCentralWidget::Modal); centralWidget->showAdditionalData(UBFeaturesCentralWidget::NewFolderDialog, UBFeaturesCentralWidget::Modal);
emit sendFileNameList(controller->getFileNamesInFolders());
} }
void UBFeaturesWidget::addFolder() void UBFeaturesWidget::addFolder()
@ -491,6 +494,7 @@ UBFeaturesCentralWidget::UBFeaturesCentralWidget(QWidget *parent) : QWidget(pare
connect(dlg, SIGNAL(createNewFolder(QString)), this, SLOT(createNewFolderSlot(QString))); connect(dlg, SIGNAL(createNewFolder(QString)), this, SLOT(createNewFolderSlot(QString)));
connect(dlg, SIGNAL(closeDialog()), this, SLOT(hideAdditionalData())); connect(dlg, SIGNAL(closeDialog()), this, SLOT(hideAdditionalData()));
connect(this, SIGNAL(sendFileNameList(QStringList)), dlg, SLOT(setFileNameList(QStringList)));
//Progress bar to show scanning progress //Progress bar to show scanning progress
QProgressBar *progressBar = new QProgressBar(); QProgressBar *progressBar = new QProgressBar();
@ -603,8 +607,6 @@ void UBFeaturesCentralWidget::increaseStatusBarValue()
UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget(parent) UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget(parent)
{ {
// SET_STYLE_SHEET()
this->setStyleSheet("background:white;"); this->setStyleSheet("background:white;");
QVBoxLayout *mainLayout = new QVBoxLayout(); QVBoxLayout *mainLayout = new QVBoxLayout();
@ -615,14 +617,14 @@ UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget(
QLabel *mLabel = new QLabel(labelText, this); QLabel *mLabel = new QLabel(labelText, this);
mLineEdit = new QLineEdit(this); mLineEdit = new QLineEdit(this);
mValidator = new QRegExpValidator(QRegExp("[\^\/\:\?\*\|\<\>\"]{2,}"), this); mValidator = new QRegExpValidator(QRegExp("[^\\/\\:\\?\\*\\|\\<\\>\\\"]{2,}"), this);
mLineEdit->setValidator(mValidator); mLineEdit->setValidator(mValidator);
labelLayout->addWidget(mLabel); labelLayout->addWidget(mLabel);
labelLayout->addWidget(mLineEdit); labelLayout->addWidget(mLineEdit);
QHBoxLayout *buttonLayout = new QHBoxLayout(this); QHBoxLayout *buttonLayout = new QHBoxLayout(this);
QPushButton *acceptButton = new QPushButton(acceptText, this); acceptButton = new QPushButton(acceptText, this);
QPushButton *cancelButton = new QPushButton(cancelText, this); QPushButton *cancelButton = new QPushButton(cancelText, this);
buttonLayout->addWidget(acceptButton); buttonLayout->addWidget(acceptButton);
buttonLayout->addWidget(cancelButton); buttonLayout->addWidget(cancelButton);
@ -630,14 +632,23 @@ UBFeaturesNewFolderDialog::UBFeaturesNewFolderDialog(QWidget *parent) : QWidget(
mainLayout->addLayout(labelLayout); mainLayout->addLayout(labelLayout);
mainLayout->addLayout(buttonLayout); mainLayout->addLayout(buttonLayout);
acceptButton->setEnabled(false);
connect(acceptButton, SIGNAL(clicked()), this, SLOT(accept())); connect(acceptButton, SIGNAL(clicked()), this, SLOT(accept()));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
connect(mLineEdit, SIGNAL(textEdited(QString)), this, SLOT(reactOnTextChanged(QString)));
reactOnTextChanged(QString());
} }
void UBFeaturesNewFolderDialog::setRegexp(const QRegExp pRegExp) void UBFeaturesNewFolderDialog::setRegexp(const QRegExp pRegExp)
{ {
mValidator->setRegExp(pRegExp); mValidator->setRegExp(pRegExp);
} }
bool UBFeaturesNewFolderDialog::validString(const QString &pStr)
{
return mLineEdit->hasAcceptableInput() && !mFileNameList.contains(pStr, Qt::CaseSensitive);
}
void UBFeaturesNewFolderDialog::accept() void UBFeaturesNewFolderDialog::accept()
{ {
@ -650,6 +661,20 @@ void UBFeaturesNewFolderDialog::reject()
mLineEdit->clear(); mLineEdit->clear();
emit closeDialog(); emit closeDialog();
} }
void UBFeaturesNewFolderDialog::setFileNameList(const QStringList &pLst)
{
mFileNameList = pLst;
}
void UBFeaturesNewFolderDialog::reactOnTextChanged(const QString &pStr)
{
if (validString(pStr)) {
acceptButton->setEnabled(true);
mLineEdit->setStyleSheet("background:white;");
} else {
acceptButton->setEnabled(false);
mLineEdit->setStyleSheet("background:#FFB3C8;");
}
}
UBFeaturesWebView::UBFeaturesWebView(QWidget* parent, const char* name):QWidget(parent) UBFeaturesWebView::UBFeaturesWebView(QWidget* parent, const char* name):QWidget(parent)
, mpView(NULL) , mpView(NULL)

@ -72,6 +72,9 @@ public:
int scrollbarHorisontalPadding() const { return 10;} int scrollbarHorisontalPadding() const { return 10;}
int scrollbarVerticalIndent() const { return 0;} int scrollbarVerticalIndent() const { return 0;}
signals:
void sendFileNameList(const QStringList lst);
private slots: private slots:
void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground); void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground);
void currentSelected( const QModelIndex & ); void currentSelected( const QModelIndex & );
@ -190,7 +193,6 @@ public:
void setLockedExcludingAdditional(bool pLock); void setLockedExcludingAdditional(bool pLock);
QStackedWidget *mStackedWidget; QStackedWidget *mStackedWidget;
UBFeaturesNavigatorWidget *mNavigator; UBFeaturesNavigatorWidget *mNavigator;
UBFeatureProperties *mFeatureProperties; UBFeatureProperties *mFeatureProperties;
@ -201,6 +203,7 @@ public:
signals: signals:
void lockMainWidget(bool pLock); void lockMainWidget(bool pLock);
void createNewFolderSignal(QString pStr); void createNewFolderSignal(QString pStr);
void sendFileNameList(const QStringList lst);
// progressbar widget related signals // progressbar widget related signals
void maxFilesCountEvaluated(int pValue); void maxFilesCountEvaluated(int pValue);
@ -228,6 +231,7 @@ public:
UBFeaturesNewFolderDialog(QWidget *parent = 0); UBFeaturesNewFolderDialog(QWidget *parent = 0);
void setRegexp(const QRegExp pRegExp); void setRegexp(const QRegExp pRegExp);
bool validString(const QString &pStr);
signals: signals:
void createNewFolder(QString str); void createNewFolder(QString str);
@ -236,10 +240,15 @@ signals:
private slots: private slots:
void accept(); void accept();
void reject(); void reject();
void setFileNameList(const QStringList &pLst);
void reactOnTextChanged(const QString &pStr);
private: private:
QLineEdit *mLineEdit; QLineEdit *mLineEdit;
QRegExpValidator *mValidator; QRegExpValidator *mValidator;
QStringList mFileNameList;
QPushButton *acceptButton;
}; };

Loading…
Cancel
Save