From d2fe28acc6a305a8632809916e99ac95cce62871 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Thu, 27 Aug 2015 15:17:25 -0400 Subject: Add a new "ScrollDialog" to lumina-fm for instances where a lot of text might be getting shown to the user. Use this dialog for checksums as well. --- lumina-fm/ScrollDialog.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 lumina-fm/ScrollDialog.h (limited to 'lumina-fm/ScrollDialog.h') diff --git a/lumina-fm/ScrollDialog.h b/lumina-fm/ScrollDialog.h new file mode 100644 index 00000000..eefe62f4 --- /dev/null +++ b/lumina-fm/ScrollDialog.h @@ -0,0 +1,55 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the dialog for showing a lot of text in a scrollable format (instead of QMessageBox) +//=========================================== +#ifndef _LUMINA_FILE_MANAGER_SCROLL_DIALOG_H +#define _LUMINA_FILE_MANAGER_SCROLL_DIALOG_H + +#include +#include +#include +#include + +class ScrollDialog : public QDialog{ + Q_OBJECT + +private: + QDialogButtonBox *buttons; + QTextEdit *label; + QVBoxLayout *layout1; + +public: + ScrollDialog(QWidget *parent = 0) : QDialog(parent){ + //Create the widgets + buttons = new QDialogButtonBox(QDialogButtonBox::Ok, Qt::Horizontal, this); + label = new QTextEdit(this); + label->setReadOnly(true); + label->setWordWrapMode(QTextOption::NoWrap); + layout1 = new QVBoxLayout(this); + //Put them in the dialog + layout1->addWidget(label); + layout1->addWidget(buttons); + this->setLayout(layout1); + //Connect signals/slots + connect(buttons, SIGNAL(accepted()), this, SLOT(accept()) ); + connect(buttons, SIGNAL(rejected()), this, SLOT(reject()) ); + //Set a useful size/position + this->resize(400,200); + if(parent!=0){ + QPoint ctr = parent->mapToGlobal(parent->geometry().center()); + this->move( ctr.x()-(this->width()/2), ctr.y()-(this->height()/2) ); + } + } + ~ScrollDialog(){} + + void setText(QString txt){ + label->setPlainText(txt); + //this->resize( label->fontMetrics().width(txt.section("\n",0,0))+30, this->height()); + } + +}; +#endif \ No newline at end of file -- cgit