History

added address bar dialog

stojce committed 12 years ago

Commit 466dbdc1 parent 76f78e77 files · +153 −24Browse files

Showing the changes to interface/src/ui/AddressBarDialog.cpp (1 of 7 files). Show all

Unified · Split

interface/src/ui/AddressBarDialog.cpp+91−0
@@ -0,0 +1,91 @@
1//
2// AddressBarDialog.cpp
3// interface/src/ui
4//
5// Created by Stojce Slavkovski on 9/22/14.
6// Copyright 2014 High Fidelity, Inc.
7//
8// Distributed under the Apache License, Version 2.0.
9// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10//
11
12#include "AddressBarDialog.h"
13#include "AddressManager.h"
14#include "Application.h"
15
16AddressBarDialog::AddressBarDialog() :
17 FramelessDialog(Application::getInstance()->getWindow(), 0, FramelessDialog::POSITION_TOP){
18 setupUI();
19}
20
21void AddressBarDialog::setupUI() {
22
23 setModal(true);
24 setWindowModality(Qt::WindowModal);
25 setHideOnBlur(false);
26
27 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
28 setSizePolicy(sizePolicy);
29 setMinimumSize(QSize(560, 100));
30 setStyleSheet("font-family: Helvetica, Arial, sans-serif;");
31
32 verticalLayout = new QVBoxLayout(this);
33
34 addressLayout = new QHBoxLayout();
35 addressLayout->setContentsMargins(0, 0, 10, 0);
36
37 leftSpacer = new QSpacerItem(20, 20, QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
38 addressLayout->addItem(leftSpacer);
39
40 addressLineEdit = new QLineEdit(this);
41 addressLineEdit->setPlaceholderText("Go to: domain, @user, #location");
42 QSizePolicy sizePolicyLineEdit(QSizePolicy::Preferred, QSizePolicy::Fixed);
43 sizePolicyLineEdit.setHorizontalStretch(60);
44 addressLineEdit->setSizePolicy(sizePolicyLineEdit);
45 addressLineEdit->setMinimumSize(QSize(200, 50));
46 addressLineEdit->setMaximumSize(QSize(615, 50));
47 QFont font("Helvetica,Arial,sans-serif", 20);
48 addressLineEdit->setFont(font);
49 addressLineEdit->setStyleSheet("padding: 0 10px;");
50 addressLayout->addWidget(addressLineEdit);
51
52 buttonSpacer = new QSpacerItem(10, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
53 addressLayout->addItem(buttonSpacer);
54
55 goButton = new QPushButton(this);
56 goButton->setSizePolicy(sizePolicy);
57 goButton->setMinimumSize(QSize(54, 54));
58 goButton->setFont(font);
59 goButton->setText("➡");
60 goButton->setStyleSheet("background: #0e7077; color: #e7eeee; border-radius: 4px;");
61 goButton->setIconSize(QSize(32, 32));
62 goButton->setDefault(true);
63 goButton->setFlat(true);
64 addressLayout->addWidget(goButton);
65
66 rightSpacer = new QSpacerItem(20, 20, QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
67 addressLayout->addItem(rightSpacer);
68
69 closeButton = new QPushButton(this);
70 closeButton->setSizePolicy(sizePolicy);
71 closeButton->setMinimumSize(QSize(16, 16));
72 closeButton->setMaximumSize(QSize(16, 16));
73 closeButton->setStyleSheet("color: #333");
74 QIcon icon(Application::resourcesPath() + "styles/close.svg");
75 closeButton->setIcon(icon);
76 closeButton->setFlat(true);
77 addressLayout->addWidget(closeButton, 0, Qt::AlignRight);
78
79 verticalLayout->addLayout(addressLayout);
80
81 connect(addressLineEdit, &QLineEdit::returnPressed, this, &AddressBarDialog::accept);
82 connect(goButton, &QPushButton::clicked, this, &AddressBarDialog::accept);
83 connect(closeButton, &QPushButton::clicked, this, &QDialog::close);
84}
85
86void AddressBarDialog::accept() {
87 // let the AddressManger figure out what to do with this
88 if (AddressManager::getInstance().handleLookupString(addressLineEdit->text())) {
89 close();
90 }
91}