/usr/include/qgis/qgsoptionsdialogbase.h is in libqgis-dev 2.8.6+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | /***************************************************************************
qgsoptionsdialogbase.h - base vertical tabs option dialog
---------------------
begin : March 24, 2013
copyright : (C) 2013 by Larry Shaffer
email : larrys at dakcarto dot com
***************************************************************************
* *
* This program 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 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSOPTIONSDIALOGBASE_H
#define QGSOPTIONSDIALOGBASE_H
#include "qgisgui.h"
#include <QDialog>
#include <QPointer>
#include <QSettings>
class QDialogButtonBox;
class QListWidget;
class QStackedWidget;
class QSplitter;
/** \ingroup gui
* \class QgsOptionsDialogBase
* A base dialog for options and properties dialogs that offers vertical tabs.
* It handles saving/restoring of geometry, splitter and current tab states,
* switching vertical tabs between icon/text to icon-only modes (splitter collapsed to left),
* and connecting QDialogButtonBox's accepted/rejected signals to dialog's accept/reject slots
*
* To use:
* 1) Start with copy of qgsoptionsdialog_template.ui and build options/properties dialog.
* 2) In source file for dialog, inherit this class instead of QDialog, then in constructor:
* ...
* setupUi( this ); // set up .ui file objects
* initOptionsBase( false ); // set up this class to use .ui objects, optionally restoring base ui
* ...
* restoreOptionsBaseUi(); // restore the base ui with initOptionsBase or use this later on
*/
class GUI_EXPORT QgsOptionsDialogBase : public QDialog
{
Q_OBJECT
public:
/** Constructor
* @param settingsKey QSettings subgroup key for saving/restore ui states, e.g. "ProjectProperties".
* @param parent parent object (owner)
* @param fl widget flags
* @param settings custom QSettings pointer
*/
QgsOptionsDialogBase( QString settingsKey, QWidget* parent = 0, Qt::WindowFlags fl = 0, QSettings* settings = 0 );
~QgsOptionsDialogBase();
/** Set up the base ui connections for vertical tabs.
* @param restoreUi Whether to restore the base ui at this time.
* @param title the window title
*/
void initOptionsBase( bool restoreUi = true, QString title = QString() );
// set custom QSettings pointer if dialog used outside QGIS (in plugin)
void setSettings( QSettings* settings );
/** Restore the base ui.
* Sometimes useful to do at end of subclass's constructor.
* @param title the window title (it does not need to be defined if previously given to initOptionsBase();
*/
void restoreOptionsBaseUi( QString title = QString() );
/** determine if the options list is in icon only mode
*/
bool iconOnly() {return mIconOnly;}
protected slots:
void updateOptionsListVerticalTabs();
void optionsStackedWidget_CurrentChanged( int indx );
void optionsStackedWidget_WidgetRemoved( int indx );
void warnAboutMissingObjects();
protected:
void showEvent( QShowEvent* e ) override;
void paintEvent( QPaintEvent* e ) override;
virtual void updateWindowTitle();
QString mOptsKey;
bool mInit;
QListWidget* mOptListWidget;
QStackedWidget* mOptStackedWidget;
QSplitter* mOptSplitter;
QDialogButtonBox* mOptButtonBox;
QString mDialogTitle;
bool mIconOnly;
// pointer to app or custom, external QSettings
// QPointer in case custom settings obj gets deleted while dialog is open
QPointer<QSettings> mSettings;
bool mDelSettings;
};
#endif // QGSOPTIONSDIALOGBASE_H
|