File indexing completed on 2024-04-28 05:41:40

0001 /*
0002     This file is part of KCachegrind.
0003 
0004     SPDX-FileCopyrightText: 2009-2016 Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
0005 
0006     SPDX-License-Identifier: GPL-2.0-only
0007 */
0008 
0009 /*
0010  * Base class for pages in configuration dialog
0011  */
0012 
0013 #ifndef CONFIGPAGE_H
0014 #define CONFIGPAGE_H
0015 
0016 #include <QString>
0017 #include <QMap>
0018 #include <QWidget>
0019 
0020 class ConfigPage: public QWidget
0021 {
0022     Q_OBJECT
0023 public:
0024     ConfigPage(QWidget* parent, QString title, QString longTitle = QString());
0025     ~ConfigPage() override {}
0026 
0027     QString title() { return _title; }
0028     QString longTitle() { return _longTitle; }
0029 
0030     // the default implementation focuses on widget named via <names>
0031     virtual void activate(QString);
0032 
0033     // called on OK; prohibits closing by returning false
0034     // an error message to show and item name to navigate to can be set
0035     virtual bool check(QString& errorMsg, QString& errorItem);
0036     virtual void accept();
0037 
0038 protected:
0039     QString inRangeError(int, int);
0040 
0041     QMap<QString, QWidget*> _names;
0042 
0043 private:
0044     QString _title;
0045     QString _longTitle;
0046 };
0047 
0048 #endif // CONFIGPAGE