1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Merge pull request #88 from F1ynn/master

Added proper status button
This commit is contained in:
Tux3 / Mlkj / !Lev.uXFMLA 2014-07-06 00:02:49 +02:00
commit 7608d4ef24
10 changed files with 90 additions and 45 deletions

View File

@ -103,5 +103,10 @@
<file>translations/fr.qm</file> <file>translations/fr.qm</file>
<file>translations/ru.qm</file> <file>translations/ru.qm</file>
<file>ui/fileTransferWidget/fileTransferWidget.css</file> <file>ui/fileTransferWidget/fileTransferWidget.css</file>
<file>ui/statusButton/dot_away.png</file>
<file>ui/statusButton/dot_busy.png</file>
<file>ui/statusButton/dot_idle.png</file>
<file>ui/statusButton/dot_online.png</file>
<file>ui/statusButton/statusButton.css</file>
</qresource> </qresource>
</RCC> </RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

View File

@ -0,0 +1,23 @@
QPushButton
{
background: none;
background-color: rgb(65,65,65);
border: none;
border-radius: 6px;
}
/*Disabled due to a bug preventing button status from
resetting to default after menu item pressed
QPushButton:hover
{
background-color: rgb(75,75,75);
}*/
QPushButton:pressed
{
background-color: rgb(55,55,55);
}
QPushButton:focus {
outline: none;
}

View File

@ -2025,32 +2025,36 @@ QSplitter:handle{
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="ClickableLabel" name="statImg"> <widget class="QPushButton" name="statusButton">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>40</width> <width>20</width>
<height>40</height> <height>40</height>
</size> </size>
</property> </property>
<property name="maximumSize">
<size>
<width>40</width>
<height>40</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
<property name="pixmap"> <property name="icon">
<pixmap resource="res.qrc">:/img/status/dot_away_2x.png</pixmap> <iconset resource="res.qrc">
<normaloff>:/ui/statusButton/dot_away.png</normaloff>:/ui/statusButton/dot_away.png</iconset>
</property> </property>
<property name="alignment"> <property name="iconSize">
<set>Qt::AlignCenter</set> <size>
<width>10</width>
<height>10</height>
</size>
</property> </property>
<property name="wordWrap"> <property name="autoExclusive">
<bool>false</bool>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
<property name="default">
<bool>false</bool>
</property>
<property name="flat">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
@ -2077,6 +2081,9 @@ QSplitter:handle{
<property name="layoutDirection"> <property name="layoutDirection">
<enum>Qt::RightToLeft</enum> <enum>Qt::RightToLeft</enum>
</property> </property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<property name="frameShape"> <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
@ -2091,7 +2098,7 @@ QSplitter:handle{
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>256</width> <width>255</width>
<height>199</height> <height>199</height>
</rect> </rect>
</property> </property>
@ -3280,11 +3287,6 @@ QSplitter:handle{
<extends>QLabel</extends> <extends>QLabel</extends>
<header>widget/tool/editablelabelwidget.h</header> <header>widget/tool/editablelabelwidget.h</header>
</customwidget> </customwidget>
<customwidget>
<class>ClickableLabel</class>
<extends>QLabel</extends>
<header>widget/tool/clickablelabel.h</header>
</customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="res.qrc"/> <include location="res.qrc"/>

View File

@ -118,7 +118,9 @@ FileTransfertWidget::FileTransfertWidget(ToxFile File)
infoLayout->setSpacing(4); infoLayout->setSpacing(4);
textLayout->addWidget(size); textLayout->addWidget(size);
textLayout->addStretch(0);
textLayout->addWidget(speed); textLayout->addWidget(speed);
textLayout->addStretch(0);
textLayout->addWidget(eta); textLayout->addWidget(eta);
textLayout->setMargin(2); textLayout->setMargin(2);
textLayout->setSpacing(5); textLayout->setSpacing(5);

View File

@ -125,9 +125,6 @@ Widget::Widget(QWidget *parent) :
isWindowMinimized = 0; isWindowMinimized = 0;
//centralLayout = new QSplitter(ui->centralWidget);
ui->mainContent->setLayout(new QVBoxLayout()); ui->mainContent->setLayout(new QVBoxLayout());
ui->mainHead->setLayout(new QVBoxLayout()); ui->mainHead->setLayout(new QVBoxLayout());
ui->mainHead->layout()->setMargin(0); ui->mainHead->layout()->setMargin(0);
@ -145,6 +142,20 @@ Widget::Widget(QWidget *parent) :
ui->statusLabel->label->setStyleSheet("QLabel { color : white; font-size: 8pt;}"); ui->statusLabel->label->setStyleSheet("QLabel { color : white; font-size: 8pt;}");
ui->friendList->widget()->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); ui->friendList->widget()->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
QFile f1(":/ui/statusButton/statusButton.css");
f1.open(QFile::ReadOnly | QFile::Text);
QTextStream statusButtonStylesheetStream(&f1);
ui->statusButton->setStyleSheet(statusButtonStylesheetStream.readAll());
QMenu *statusButtonMenu = new QMenu(ui->statusButton);
QAction* setStatusOnline = statusButtonMenu->addAction(tr("Online","Button to set your status to 'Online'"));
setStatusOnline->setIcon(QIcon(":ui/statusButton/dot_online.png"));
QAction* setStatusAway = statusButtonMenu->addAction(tr("Away","Button to set your status to 'Away'"));
setStatusAway->setIcon(QIcon(":ui/statusButton/dot_idle.png"));
QAction* setStatusBusy = statusButtonMenu->addAction(tr("Busy","Button to set your status to 'Busy'"));
setStatusBusy->setIcon(QIcon(":ui/statusButton/dot_busy.png"));
ui->statusButton->setMenu(statusButtonMenu);
this->setMouseTracking(true); this->setMouseTracking(true);
QList<QWidget*> widgets = this->findChildren<QWidget*>(); QList<QWidget*> widgets = this->findChildren<QWidget*>();
@ -210,7 +221,9 @@ Widget::Widget(QWidget *parent) :
connect(ui->settingsButton, SIGNAL(clicked()), this, SLOT(onSettingsClicked())); connect(ui->settingsButton, SIGNAL(clicked()), this, SLOT(onSettingsClicked()));
connect(ui->nameLabel, SIGNAL(textChanged(QString,QString)), this, SLOT(onUsernameChanged(QString,QString))); connect(ui->nameLabel, SIGNAL(textChanged(QString,QString)), this, SLOT(onUsernameChanged(QString,QString)));
connect(ui->statusLabel, SIGNAL(textChanged(QString,QString)), this, SLOT(onStatusMessageChanged(QString,QString))); connect(ui->statusLabel, SIGNAL(textChanged(QString,QString)), this, SLOT(onStatusMessageChanged(QString,QString)));
connect(ui->statImg, SIGNAL(clicked()), this, SLOT(onStatusImgClicked())); connect(setStatusOnline, SIGNAL(triggered()), this, SLOT(setStatusOnline()));
connect(setStatusAway, SIGNAL(triggered()), this, SLOT(setStatusAway()));
connect(setStatusBusy, SIGNAL(triggered()), this, SLOT(setStatusBusy()));
connect(&settingsForm.name, SIGNAL(textEdited(QString)), this, SLOT(onUsernameChanged(QString))); connect(&settingsForm.name, SIGNAL(textEdited(QString)), this, SLOT(onUsernameChanged(QString)));
connect(&settingsForm.statusText, SIGNAL(textEdited(QString)), this, SLOT(onStatusMessageChanged(QString))); connect(&settingsForm.statusText, SIGNAL(textEdited(QString)), this, SLOT(onStatusMessageChanged(QString)));
connect(&friendForm, SIGNAL(friendRequested(QString,QString)), this, SIGNAL(friendRequested(QString,QString))); connect(&friendForm, SIGNAL(friendRequested(QString,QString)), this, SIGNAL(friendRequested(QString,QString)));
@ -303,13 +316,13 @@ void Widget::onFailedToStartCore()
void Widget::onStatusSet(Status status) void Widget::onStatusSet(Status status)
{ {
if (status == Status::Online) if (status == Status::Online)
ui->statImg->setPixmap(QPixmap(":img/status/dot_online_2x.png")); ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_online.png"));
else if (status == Status::Away) else if (status == Status::Away)
ui->statImg->setPixmap(QPixmap(":img/status/dot_idle_2x.png")); ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_idle.png"));
else if (status == Status::Busy) else if (status == Status::Busy)
ui->statImg->setPixmap(QPixmap(":img/status/dot_busy_2x.png")); ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_busy.png"));
else if (status == Status::Offline) else if (status == Status::Offline)
ui->statImg->setPixmap(QPixmap(":img/status/dot_away_2x.png")); ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_away.png"));
} }
void Widget::onAddClicked() void Widget::onAddClicked()
@ -1111,19 +1124,17 @@ void Widget::minimizeBtnClicked()
} }
} }
void Widget::onStatusImgClicked() void Widget::setStatusOnline()
{ {
QMenu menu; core->setStatus(Status::Online);
QAction* online = menu.addAction(tr("Online","Button to set your status to 'Online'")); }
QAction* away = menu.addAction(tr("Away","Button to set your status to 'Away'"));
QAction* busy = menu.addAction(tr("Busy","Button to set your status to 'Busy'")); void Widget::setStatusAway()
{
QPoint pos = QCursor::pos(); core->setStatus(Status::Away);
QAction* selectedItem = menu.exec(pos); }
if (selectedItem == online)
core->setStatus(Status::Online); void Widget::setStatusBusy()
else if (selectedItem == away) {
core->setStatus(Status::Away); core->setStatus(Status::Busy);
else if (selectedItem == busy)
core->setStatus(Status::Busy);
} }

View File

@ -92,8 +92,10 @@ private slots:
void removeFriend(int friendId); void removeFriend(int friendId);
void copyFriendIdToClipboard(int friendId); void copyFriendIdToClipboard(int friendId);
void removeGroup(int groupId); void removeGroup(int groupId);
void onStatusImgClicked();
void splitterMoved(int pos, int index); void splitterMoved(int pos, int index);
void setStatusOnline();
void setStatusAway();
void setStatusBusy();
protected slots: protected slots:
void moveWindow(QMouseEvent *e); void moveWindow(QMouseEvent *e);