qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
contentlayout.cpp
Go to the documentation of this file.
1 /*
2  Copyright © 2015-2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #include "contentlayout.h"
21 #include "style.h"
23 #include "src/widget/gui.h"
24 #include <QFrame>
25 #include <QStyleFactory>
26 
28  : QVBoxLayout()
29 {
30  init();
31 }
32 
34  : QVBoxLayout(parent)
35 {
36  init();
37 
38  QPalette palette = parent->palette();
39  palette.setBrush(QPalette::WindowText, QColor(0, 0, 0));
40  palette.setBrush(QPalette::Button, QColor(255, 255, 255));
41  palette.setBrush(QPalette::Light, QColor(255, 255, 255));
42  palette.setBrush(QPalette::Midlight, QColor(255, 255, 255));
43  palette.setBrush(QPalette::Dark, QColor(127, 127, 127));
44  palette.setBrush(QPalette::Mid, QColor(170, 170, 170));
45  palette.setBrush(QPalette::Text, QColor(0, 0, 0));
46  palette.setBrush(QPalette::BrightText, QColor(255, 255, 255));
47  palette.setBrush(QPalette::ButtonText, QColor(0, 0, 0));
48  palette.setBrush(QPalette::Base, QColor(255, 255, 255));
49  palette.setBrush(QPalette::Window, QColor(255, 255, 255));
50  palette.setBrush(QPalette::Shadow, QColor(0, 0, 0));
51  palette.setBrush(QPalette::AlternateBase, QColor(255, 255, 255));
52  palette.setBrush(QPalette::ToolTipBase, QColor(255, 255, 220));
53  palette.setBrush(QPalette::ToolTipText, QColor(0, 0, 0));
54 
55  palette.setBrush(QPalette::Disabled, QPalette::WindowText, QColor(127, 127, 127));
56  palette.setBrush(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127));
57  palette.setBrush(QPalette::Disabled, QPalette::ButtonText, QColor(127, 127, 127));
58 
59  parent->setPalette(palette);
60 }
61 
63 {
64  clear();
65 
66  mainHead->deleteLater();
67  mainContent->deleteLater();
68 }
69 
71 {
72 #ifndef Q_OS_MAC
73  mainHead->setStyleSheet(Style::getStylesheet("settings/mainHead.css"));
74  mainContent->setStyleSheet(Style::getStylesheet("window/general.css"));
75 #endif
76 }
77 
79 {
80  QLayoutItem* item;
81  while ((item = mainHead->layout()->takeAt(0)) != nullptr) {
82  item->widget()->hide();
83  item->widget()->setParent(nullptr);
84  delete item;
85  }
86 
87  while ((item = mainContent->layout()->takeAt(0)) != nullptr) {
88  item->widget()->hide();
89  item->widget()->setParent(nullptr);
90  delete item;
91  }
92 }
93 
95 {
96  setMargin(0);
97  setSpacing(0);
98 
99  mainHead = new QWidget();
100  mainHead->setLayout(new QVBoxLayout);
101  mainHead->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
102  mainHead->layout()->setMargin(0);
103  mainHead->layout()->setSpacing(0);
104  mainHead->setMouseTracking(true);
105 
106  mainHLine.setFrameShape(QFrame::HLine);
107  mainHLine.setFrameShadow(QFrame::Plain);
108  QPalette palette = mainHLine.palette();
109  palette.setBrush(QPalette::WindowText, QBrush(QColor(193, 193, 193)));
110  mainHLine.setPalette(palette);
111 
112  mainContent = new QWidget();
113  mainContent->setLayout(new QVBoxLayout);
114  mainContent->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
115 
116  if (QStyleFactory::keys().contains(Settings::getInstance().getStyle())
117  && Settings::getInstance().getStyle() != "None") {
118  mainHead->setStyle(QStyleFactory::create(Settings::getInstance().getStyle()));
119  mainContent->setStyle(QStyleFactory::create(Settings::getInstance().getStyle()));
120  }
121 
123 
124  reloadTheme();
125 
126  mainHLineLayout.addSpacing(4);
127  mainHLineLayout.addWidget(&mainHLine);
128  mainHLineLayout.addSpacing(5);
129 
130  addWidget(mainHead);
131  addLayout(&mainHLineLayout);
132  addWidget(mainContent);
133 }
style.h
ContentLayout::mainHLine
QFrame mainHLine
Definition: contentlayout.h:34
settings.h
ContentLayout::ContentLayout
ContentLayout()
Definition: contentlayout.cpp:27
GUI::getInstance
static GUI & getInstance()
Returns the singleton instance.
Definition: gui.cpp:56
ContentLayout::init
void init()
Definition: contentlayout.cpp:94
ContentLayout::mainHead
QWidget * mainHead
Definition: contentlayout.h:37
GUI::themeReload
void themeReload()
ContentLayout::mainHLineLayout
QHBoxLayout mainHLineLayout
Definition: contentlayout.h:35
Settings::getInstance
static Settings & getInstance()
Returns the singleton instance.
Definition: settings.cpp:88
contentlayout.h
Style::getStylesheet
static const QString getStylesheet(const QString &filename, const QFont &baseFont=QFont())
Definition: style.cpp:165
ContentLayout::reloadTheme
void reloadTheme()
Definition: contentlayout.cpp:70
ContentLayout::~ContentLayout
~ContentLayout()
Definition: contentlayout.cpp:62
ContentLayout::mainContent
QWidget * mainContent
Definition: contentlayout.h:36
gui.h
ContentLayout::clear
void clear()
Definition: contentlayout.cpp:78