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