File: preferences.h

package info (click to toggle)
portabase 2.1%2Bgit20120910-1.1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch
  • size: 8,648 kB
  • ctags: 3,498
  • sloc: cpp: 32,214; sh: 2,868; ansic: 2,320; makefile: 481; python: 121; xml: 23; asm: 10
file content (86 lines) | stat: -rw-r--r-- 3,458 bytes parent folder | download | duplicates (2)
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
/*
 * preferences.h
 *
 * (c) 2002-2004,2009-2011 by Jeremy Bowman <jmbowman@alum.mit.edu>
 *
 * 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.
 */

/** @file preferences.h
 * Header file for Preferences
 */

#ifndef PREFERENCES_H
#define PREFERENCES_H

#include <QFontDatabase>
#include <QPixmap>
#include "datatypes.h"
#include "pbdialog.h"

class QtColorPicker;
class QCheckBox;
class QComboBox;
class QFont;
class QLabel;
class QQMenuHelper;
class QSettings;
class QSpinBox;
class QTabWidget;

/**
 * Application preferences dialog.  Contains settings for time and date
 * formatting, font name and size, text wrapping in notes, data grid paging
 * options, etc.
 */
class Preferences: public PBDialog
{
    Q_OBJECT
public:
    Preferences(QQMenuHelper *menuHelper, QWidget *parent = 0);

    QFont applyChanges();

private slots:
    void updateSizes(int selected);
    void updateSample(int selectedSize);

private:
    void addGeneralTab(QSettings *settings);
    void addDateTimeTab(QSettings *settings);
    void addAppearanceTab(QSettings *settings);
    void configureColorPicker(QtColorPicker *picker);

private:
    QQMenuHelper *mh; /**< Support code for any document-based application */
    QTabWidget *tabs; /**< Tab widget used on all non-Fremantle platforms */
    QWidget *panel; /**< Large scrollable preferences panel used on Fremantle */
    QCheckBox *variableHeightRows; /**< Option to allow row heights to vary on Fremantle */
    QFontDatabase fontdb; /**< System font database */
    IntList sizes; /**< List of displayed font sizes */
    QComboBox *fontName; /**< Font name selection list */
    QComboBox *fontSize; /**< Font size selection list */
    QLabel *sample; /**< Sample of text using the selected font */
    QCheckBox *confirmDeletions; /**< Option to display confirmation dialogs for item deletions */
    QCheckBox *booleanToggle; /**< Option to toggle boolean fields by clicking on them in the data viewer */
    QCheckBox *showSeconds; /**< Option to show seconds for time fields */
    QCheckBox *noteWrap; /**< Option to autowrap text in the node editor */
    QComboBox *wrapType; /**< Option to force note text wrapping at line end rather than whitespace */
    QCheckBox *pagedDisplay; /**< Option to pages of data rows, rather than all in a scrolling list */
    QCheckBox *singleClickShow; /**< Option to show the row viewer with a single click in the data grid */
    QCheckBox *autoRotate; /**< Option to auto-rotate with Fremantle device orientation */
    QSpinBox *rowsPerPage; /**< Number of rows to display on each page of the data view */
    QCheckBox *smallScreen; /**< Option to use settings for PDA/phone-sized screens */
    QCheckBox *useAlternating; /**< Option to turn off alternating row colors on Fremantle*/
    QtColorPicker *evenButton; /**< Button to select the color of even rows */
    QtColorPicker *oddButton; /**< Button to select the color of odd rows */
    QStringList dateFormats; /**< List of standard date formatting styles */
    QComboBox *dateFormatCombo; /**< Date format selection list */
    QComboBox *ampmCombo; /**< Option to show AM/PM times rather than 24-hour times */
    QComboBox *weekStartCombo; /**< First day of the week selection list */
};

#endif