Add border line above the text input

This commit is contained in:
Konstantinos Sideris 2018-03-18 17:08:13 +02:00
parent 7253dc2c54
commit b70e09c7ec
7 changed files with 32 additions and 19 deletions

View file

@ -149,8 +149,6 @@ private:
QWidget *communitiesSideBar_; QWidget *communitiesSideBar_;
QVBoxLayout *communitiesSideBarLayout_; QVBoxLayout *communitiesSideBarLayout_;
QVBoxLayout *sideBarLayout_; QVBoxLayout *sideBarLayout_;
QVBoxLayout *sideBarTopLayout_;
QVBoxLayout *sideBarMainLayout_;
QWidget *sideBarTopWidget_; QWidget *sideBarTopWidget_;
QVBoxLayout *sideBarTopWidgetLayout_; QVBoxLayout *sideBarTopWidgetLayout_;

View file

@ -83,11 +83,16 @@ class TextInputWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor)
public: public:
TextInputWidget(QWidget *parent = 0); TextInputWidget(QWidget *parent = 0);
void stopTyping(); void stopTyping();
QColor borderColor() const { return borderColor_; }
void setBorderColor(QColor &color) { borderColor_ = color; }
public slots: public slots:
void openFileSelection(); void openFileSelection();
void hideUploadSpinner(); void hideUploadSpinner();
@ -126,4 +131,6 @@ private:
FlatButton *sendFileBtn_; FlatButton *sendFileBtn_;
FlatButton *sendMessageBtn_; FlatButton *sendMessageBtn_;
emoji::PickButton *emojiBtn_; emoji::PickButton *emojiBtn_;
QColor borderColor_;
}; };

View file

@ -163,3 +163,7 @@ TopRoomBar {
border: none; border: none;
border-bottom: 1px solid #414A59; border-bottom: 1px solid #414A59;
} }
TextInputWidget {
qproperty-borderColor: #414A59;
}

View file

@ -146,6 +146,10 @@ TextField {
qproperty-labelColor: #333; qproperty-labelColor: #333;
} }
TextInputWidget {
qproperty-borderColor: #dcdcdc;
}
ScrollBar { ScrollBar {
qproperty-handleColor: #ccc; qproperty-handleColor: #ccc;
qproperty-backgroundColor: #efefef; qproperty-backgroundColor: #efefef;

View file

@ -128,3 +128,7 @@ TopRoomBar {
border: none; border: none;
border-bottom: 1px solid palette(text); border-bottom: 1px solid palette(text);
} }
TextInputWidget {
qproperty-borderColor: palette(text);
}

View file

@ -84,16 +84,6 @@ ChatPage::ChatPage(QSharedPointer<MatrixClient> client,
sideBarLayout_->setSpacing(0); sideBarLayout_->setSpacing(0);
sideBarLayout_->setMargin(0); sideBarLayout_->setMargin(0);
sideBarTopLayout_ = new QVBoxLayout();
sideBarTopLayout_->setSpacing(0);
sideBarTopLayout_->setMargin(0);
sideBarMainLayout_ = new QVBoxLayout();
sideBarMainLayout_->setSpacing(0);
sideBarMainLayout_->setMargin(0);
sideBarLayout_->addLayout(sideBarTopLayout_);
sideBarLayout_->addLayout(sideBarMainLayout_);
sideBarTopWidget_ = new QWidget(sideBar_); sideBarTopWidget_ = new QWidget(sideBar_);
sidebarActions_ = new SideBarActions(this); sidebarActions_ = new SideBarActions(this);
connect( connect(

View file

@ -33,6 +33,8 @@
static constexpr size_t INPUT_HISTORY_SIZE = 127; static constexpr size_t INPUT_HISTORY_SIZE = 127;
static constexpr int MAX_TEXTINPUT_HEIGHT = 120; static constexpr int MAX_TEXTINPUT_HEIGHT = 120;
static constexpr int InputHeight = 26;
static constexpr int ButtonHeight = 24;
FilteredTextEdit::FilteredTextEdit(QWidget *parent) FilteredTextEdit::FilteredTextEdit(QWidget *parent)
: QTextEdit{parent} : QTextEdit{parent}
@ -313,11 +315,11 @@ TextInputWidget::TextInputWidget(QWidget *parent)
sendFileBtn_ = new FlatButton(this); sendFileBtn_ = new FlatButton(this);
sendFileBtn_->setIcon(send_file_icon); sendFileBtn_->setIcon(send_file_icon);
sendFileBtn_->setIconSize(QSize(24, 24)); sendFileBtn_->setIconSize(QSize(ButtonHeight, ButtonHeight));
spinner_ = new LoadingIndicator(this); spinner_ = new LoadingIndicator(this);
spinner_->setFixedHeight(32); spinner_->setFixedHeight(InputHeight);
spinner_->setFixedWidth(32); spinner_->setFixedWidth(InputHeight);
spinner_->setObjectName("FileUploadSpinner"); spinner_->setObjectName("FileUploadSpinner");
spinner_->hide(); spinner_->hide();
@ -325,13 +327,13 @@ TextInputWidget::TextInputWidget(QWidget *parent)
font.setPixelSize(conf::textInputFontSize); font.setPixelSize(conf::textInputFontSize);
input_ = new FilteredTextEdit(this); input_ = new FilteredTextEdit(this);
input_->setFixedHeight(32); input_->setFixedHeight(InputHeight);
input_->setFont(font); input_->setFont(font);
input_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); input_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
input_->setPlaceholderText(tr("Write a message...")); input_->setPlaceholderText(tr("Write a message..."));
connect(input_, &FilteredTextEdit::heightChanged, this, [this](int height) { connect(input_, &FilteredTextEdit::heightChanged, this, [this](int height) {
int textInputHeight = std::min(MAX_TEXTINPUT_HEIGHT, std::max(height, 32)); int textInputHeight = std::min(MAX_TEXTINPUT_HEIGHT, std::max(height, InputHeight));
int widgetHeight = int widgetHeight =
std::min(MAX_TEXTINPUT_HEIGHT, std::max(height, conf::textInput::height)); std::min(MAX_TEXTINPUT_HEIGHT, std::max(height, conf::textInput::height));
@ -344,14 +346,14 @@ TextInputWidget::TextInputWidget(QWidget *parent)
QIcon send_message_icon; QIcon send_message_icon;
send_message_icon.addFile(":/icons/icons/ui/cursor.png"); send_message_icon.addFile(":/icons/icons/ui/cursor.png");
sendMessageBtn_->setIcon(send_message_icon); sendMessageBtn_->setIcon(send_message_icon);
sendMessageBtn_->setIconSize(QSize(24, 24)); sendMessageBtn_->setIconSize(QSize(ButtonHeight, ButtonHeight));
emojiBtn_ = new emoji::PickButton(this); emojiBtn_ = new emoji::PickButton(this);
QIcon emoji_icon; QIcon emoji_icon;
emoji_icon.addFile(":/icons/icons/ui/smile.png"); emoji_icon.addFile(":/icons/icons/ui/smile.png");
emojiBtn_->setIcon(emoji_icon); emojiBtn_->setIcon(emoji_icon);
emojiBtn_->setIconSize(QSize(24, 24)); emojiBtn_->setIconSize(QSize(ButtonHeight, ButtonHeight));
topLayout_->addWidget(sendFileBtn_); topLayout_->addWidget(sendFileBtn_);
topLayout_->addWidget(input_); topLayout_->addWidget(input_);
@ -483,5 +485,9 @@ TextInputWidget::paintEvent(QPaintEvent *)
QStyleOption opt; QStyleOption opt;
opt.init(this); opt.init(this);
QPainter p(this); QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
p.setPen(QPen(borderColor()));
p.drawLine(QPointF(0, 0), QPointF(width(), 0));
} }