diff --git a/src/UniqueMessage.cpp b/src/UniqueMessage.cpp new file mode 100644 --- /dev/null +++ b/src/UniqueMessage.cpp @@ -0,0 +1,89 @@ +/* + * + * This file is part of the Virtual Leaf. + * + * The Virtual Leaf is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Virtual Leaf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Virtual Leaf. If not, see . + * + * Copyright 2010 Roeland Merks. + * + */ + +#include +#include +#include +#include +#include +#include "UniqueMessage.h" + +#include + +static const std::string _module_id("$Id$"); + +using namespace std; +UniqueMessageBox::UniqueMessageBox ( /* Icon icon,*/ + const QString & title, + const QString & text, + QWidget * parent , + Qt::WindowFlags f ) : +QDialog(parent, f) { + + label = new QLabel(text); + boxtext = text; + + show_again = new QCheckBox(tr("Do not show this message again")); + //addButton(show_again, QMessageBox::ActionRole); + //addButton(QMessageBox::Ok); + okButton = new QPushButton(tr("Ok")); + + if (issued_messages.contains(boxtext) ) { + + cerr << "Saw message before\n"; + display = false; + } else { + //cerr << "First time message\n"; + //issued_messages << text; + display=true; + } + + connect(okButton, SIGNAL(clicked()), this, SLOT(close()) ); + QHBoxLayout *hlayout = new QHBoxLayout; + hlayout->addWidget(label); + hlayout->addWidget(okButton); + QVBoxLayout *layout = new QVBoxLayout; + layout->addLayout(hlayout); + layout->addWidget(show_again); + setLayout(layout); + setWindowTitle(title); +}; + +UniqueMessageBox::~UniqueMessageBox(void) { + + if (show_again->checkState() == Qt::Checked ) { + cerr << "Message won't be shown again\n"; + issued_messages << boxtext; + + } +} +int UniqueMessageBox::exec(void) { + + if (display) + return QDialog::exec(); + else { + return 1; + } + +} + +QStringList UniqueMessageBox::issued_messages; +