1 /****************************************************************************
2 **
3 ** Copyright (C) 2015 The Qt Company Ltd.
4 ** Contact: http://www.qt.io/licensing/
5 **
6 ** This file is part of the examples of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** You may use this file under the terms of the BSD license as follows:
10 **
11 ** "Redistribution and use in source and binary forms, with or without
12 ** modification, are permitted provided that the following conditions are
13 ** met:
14 **   * Redistributions of source code must retain the above copyright
15 **     notice, this list of conditions and the following disclaimer.
16 **   * Redistributions in binary form must reproduce the above copyright
17 **     notice, this list of conditions and the following disclaimer in
18 **     the documentation and/or other materials provided with the
19 **     distribution.
20 **   * Neither the name of The Qt Company Ltd nor the names of its
21 **     contributors may be used to endorse or promote products derived
22 **     from this software without specific prior written permission.
23 **
24 **
25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 **
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40 
41 #include <QtGui>
42 
43 #include "pages.h"
44 
ConfigurationPage(QWidget * parent)45 ConfigurationPage::ConfigurationPage(QWidget *parent)
46     : QWidget(parent)
47 {
48     QGroupBox *configGroup = new QGroupBox(tr("Server configuration"));
49 
50     QLabel *serverLabel = new QLabel(tr("Server:"));
51     QComboBox *serverCombo = new QComboBox;
52     serverCombo->addItem(tr("Qt (Australia)"));
53     serverCombo->addItem(tr("Qt (Germany)"));
54     serverCombo->addItem(tr("Qt (Norway)"));
55     serverCombo->addItem(tr("Qt (People's Republic of China)"));
56     serverCombo->addItem(tr("Qt (USA)"));
57 
58     QHBoxLayout *serverLayout = new QHBoxLayout;
59     serverLayout->addWidget(serverLabel);
60     serverLayout->addWidget(serverCombo);
61 
62     QVBoxLayout *configLayout = new QVBoxLayout;
63     configLayout->addLayout(serverLayout);
64     configGroup->setLayout(configLayout);
65 
66     QVBoxLayout *mainLayout = new QVBoxLayout;
67     mainLayout->addWidget(configGroup);
68     mainLayout->addStretch(1);
69     setLayout(mainLayout);
70 }
71 
UpdatePage(QWidget * parent)72 UpdatePage::UpdatePage(QWidget *parent)
73     : QWidget(parent)
74 {
75     QGroupBox *updateGroup = new QGroupBox(tr("Package selection"));
76     QCheckBox *systemCheckBox = new QCheckBox(tr("Update system"));
77     QCheckBox *appsCheckBox = new QCheckBox(tr("Update applications"));
78     QCheckBox *docsCheckBox = new QCheckBox(tr("Update documentation"));
79 
80     QGroupBox *packageGroup = new QGroupBox(tr("Existing packages"));
81 
82     QListWidget *packageList = new QListWidget;
83     QListWidgetItem *qtItem = new QListWidgetItem(packageList);
84     qtItem->setText(tr("Qt"));
85     QListWidgetItem *qsaItem = new QListWidgetItem(packageList);
86     qsaItem->setText(tr("QSA"));
87     QListWidgetItem *teamBuilderItem = new QListWidgetItem(packageList);
88     teamBuilderItem->setText(tr("Teambuilder"));
89 
90     QPushButton *startUpdateButton = new QPushButton(tr("Start update"));
91 
92     QVBoxLayout *updateLayout = new QVBoxLayout;
93     updateLayout->addWidget(systemCheckBox);
94     updateLayout->addWidget(appsCheckBox);
95     updateLayout->addWidget(docsCheckBox);
96     updateGroup->setLayout(updateLayout);
97 
98     QVBoxLayout *packageLayout = new QVBoxLayout;
99     packageLayout->addWidget(packageList);
100     packageGroup->setLayout(packageLayout);
101 
102     QVBoxLayout *mainLayout = new QVBoxLayout;
103     mainLayout->addWidget(updateGroup);
104     mainLayout->addWidget(packageGroup);
105     mainLayout->addSpacing(12);
106     mainLayout->addWidget(startUpdateButton);
107     mainLayout->addStretch(1);
108     setLayout(mainLayout);
109 }
110 
QueryPage(QWidget * parent)111 QueryPage::QueryPage(QWidget *parent)
112     : QWidget(parent)
113 {
114     QGroupBox *packagesGroup = new QGroupBox(tr("Look for packages"));
115 
116     QLabel *nameLabel = new QLabel(tr("Name:"));
117     QLineEdit *nameEdit = new QLineEdit;
118 
119     QLabel *dateLabel = new QLabel(tr("Released after:"));
120     QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());
121 
122     QCheckBox *releasesCheckBox = new QCheckBox(tr("Releases"));
123     QCheckBox *upgradesCheckBox = new QCheckBox(tr("Upgrades"));
124 
125     QSpinBox *hitsSpinBox = new QSpinBox;
126     hitsSpinBox->setPrefix(tr("Return up to "));
127     hitsSpinBox->setSuffix(tr(" results"));
128     hitsSpinBox->setSpecialValueText(tr("Return only the first result"));
129     hitsSpinBox->setMinimum(1);
130     hitsSpinBox->setMaximum(100);
131     hitsSpinBox->setSingleStep(10);
132 
133     QPushButton *startQueryButton = new QPushButton(tr("Start query"));
134 
135     QGridLayout *packagesLayout = new QGridLayout;
136     packagesLayout->addWidget(nameLabel, 0, 0);
137     packagesLayout->addWidget(nameEdit, 0, 1);
138     packagesLayout->addWidget(dateLabel, 1, 0);
139     packagesLayout->addWidget(dateEdit, 1, 1);
140     packagesLayout->addWidget(releasesCheckBox, 2, 0);
141     packagesLayout->addWidget(upgradesCheckBox, 3, 0);
142     packagesLayout->addWidget(hitsSpinBox, 4, 0, 1, 2);
143     packagesGroup->setLayout(packagesLayout);
144 
145     QVBoxLayout *mainLayout = new QVBoxLayout;
146     mainLayout->addWidget(packagesGroup);
147     mainLayout->addSpacing(12);
148     mainLayout->addWidget(startQueryButton);
149     mainLayout->addStretch(1);
150     setLayout(mainLayout);
151 }
152