mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Merge PR57
This commit is contained in:
commit
0a41c0d712
11
core.cpp
11
core.cpp
@ -39,14 +39,14 @@ Core::Core(Camera* cam) :
|
|||||||
{
|
{
|
||||||
toxTimer = new QTimer(this);
|
toxTimer = new QTimer(this);
|
||||||
toxTimer->setSingleShot(true);
|
toxTimer->setSingleShot(true);
|
||||||
saveTimer = new QTimer(this);
|
//saveTimer = new QTimer(this);
|
||||||
saveTimer->start(TOX_SAVE_INTERVAL);
|
//saveTimer->start(TOX_SAVE_INTERVAL);
|
||||||
//fileTimer = new QTimer(this);
|
//fileTimer = new QTimer(this);
|
||||||
//fileTimer->start(TOX_FILE_INTERVAL);
|
//fileTimer->start(TOX_FILE_INTERVAL);
|
||||||
bootstrapTimer = new QTimer(this);
|
bootstrapTimer = new QTimer(this);
|
||||||
bootstrapTimer->start(TOX_BOOTSTRAP_INTERVAL);
|
bootstrapTimer->start(TOX_BOOTSTRAP_INTERVAL);
|
||||||
connect(toxTimer, &QTimer::timeout, this, &Core::process);
|
connect(toxTimer, &QTimer::timeout, this, &Core::process);
|
||||||
connect(saveTimer, &QTimer::timeout, this, &Core::saveConfiguration);
|
//connect(saveTimer, &QTimer::timeout, this, &Core::saveConfiguration); //Disable save timer in favor of saving on events
|
||||||
//connect(fileTimer, &QTimer::timeout, this, &Core::fileHeartbeat);
|
//connect(fileTimer, &QTimer::timeout, this, &Core::fileHeartbeat);
|
||||||
connect(bootstrapTimer, &QTimer::timeout, this, &Core::onBootstrapTimer);
|
connect(bootstrapTimer, &QTimer::timeout, this, &Core::onBootstrapTimer);
|
||||||
connect(&Settings::getInstance(), &Settings::dhtServerListChanged, this, &Core::bootstrapDht);
|
connect(&Settings::getInstance(), &Settings::dhtServerListChanged, this, &Core::bootstrapDht);
|
||||||
@ -317,6 +317,7 @@ void Core::acceptFriendRequest(const QString& userId)
|
|||||||
if (friendId == -1) {
|
if (friendId == -1) {
|
||||||
emit failedToAddFriend(userId);
|
emit failedToAddFriend(userId);
|
||||||
} else {
|
} else {
|
||||||
|
saveConfiguration();
|
||||||
emit friendAdded(friendId, userId);
|
emit friendAdded(friendId, userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -537,6 +538,7 @@ void Core::removeFriend(int friendId)
|
|||||||
if (tox_del_friend(tox, friendId) == -1) {
|
if (tox_del_friend(tox, friendId) == -1) {
|
||||||
emit failedToRemoveFriend(friendId);
|
emit failedToRemoveFriend(friendId);
|
||||||
} else {
|
} else {
|
||||||
|
saveConfiguration();
|
||||||
emit friendRemoved(friendId);
|
emit friendRemoved(friendId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -553,6 +555,7 @@ void Core::setUsername(const QString& username)
|
|||||||
if (tox_set_name(tox, cUsername.data(), cUsername.size()) == -1) {
|
if (tox_set_name(tox, cUsername.data(), cUsername.size()) == -1) {
|
||||||
emit failedToSetUsername(username);
|
emit failedToSetUsername(username);
|
||||||
} else {
|
} else {
|
||||||
|
saveConfiguration();
|
||||||
emit usernameSet(username);
|
emit usernameSet(username);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -564,6 +567,7 @@ void Core::setStatusMessage(const QString& message)
|
|||||||
if (tox_set_status_message(tox, cMessage.data(), cMessage.size()) == -1) {
|
if (tox_set_status_message(tox, cMessage.data(), cMessage.size()) == -1) {
|
||||||
emit failedToSetStatusMessage(message);
|
emit failedToSetStatusMessage(message);
|
||||||
} else {
|
} else {
|
||||||
|
saveConfiguration();
|
||||||
emit statusMessageSet(message);
|
emit statusMessageSet(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -587,6 +591,7 @@ void Core::setStatus(Status status)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (tox_set_user_status(tox, userstatus) == 0) {
|
if (tox_set_user_status(tox, userstatus) == 0) {
|
||||||
|
saveConfiguration();
|
||||||
emit statusSet(status);
|
emit statusSet(status);
|
||||||
} else {
|
} else {
|
||||||
emit failedToSetStatus(status);
|
emit failedToSetStatus(status);
|
||||||
|
3
core.h
3
core.h
@ -119,6 +119,8 @@ public:
|
|||||||
void quitGroupChat(int groupId) const;
|
void quitGroupChat(int groupId) const;
|
||||||
void dispatchVideoFrame(vpx_image img) const;
|
void dispatchVideoFrame(vpx_image img) const;
|
||||||
|
|
||||||
|
void saveConfiguration();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void start();
|
void start();
|
||||||
void process();
|
void process();
|
||||||
@ -261,7 +263,6 @@ private:
|
|||||||
void onBootstrapTimer();
|
void onBootstrapTimer();
|
||||||
|
|
||||||
void loadConfiguration();
|
void loadConfiguration();
|
||||||
void saveConfiguration();
|
|
||||||
void loadFriends();
|
void loadFriends();
|
||||||
static void sendAllFileData(Core* core, ToxFile* file);
|
static void sendAllFileData(Core* core, ToxFile* file);
|
||||||
|
|
||||||
|
1
friend.h
1
friend.h
@ -22,6 +22,7 @@ public:
|
|||||||
ChatForm* chatForm;
|
ChatForm* chatForm;
|
||||||
int hasNewMessages;
|
int hasNewMessages;
|
||||||
Status friendStatus;
|
Status friendStatus;
|
||||||
|
QPixmap avatar;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FRIEND_H
|
#endif // FRIEND_H
|
||||||
|
316
widget.ui
316
widget.ui
@ -10,6 +10,12 @@
|
|||||||
<height>320</height>
|
<height>320</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>640</width>
|
||||||
|
<height>320</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>1920</width>
|
<width>1920</width>
|
||||||
@ -23,10 +29,7 @@
|
|||||||
<iconset resource="res.qrc">
|
<iconset resource="res.qrc">
|
||||||
<normaloff>:/img/icon.png</normaloff>:/img/icon.png</iconset>
|
<normaloff>:/img/icon.png</normaloff>:/img/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
@ -39,8 +42,17 @@
|
|||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
<widget class="QWidget" name="titleBar" native="true">
|
<widget class="QWidget" name="titleBar" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>0</width>
|
||||||
@ -220,20 +232,94 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="1" column="0">
|
||||||
<widget class="QWidget" name="centralWidget" native="true">
|
<widget class="QSplitter" name="centralWidget">
|
||||||
<property name="enabled">
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="palette">
|
||||||
|
<palette>
|
||||||
|
<active>
|
||||||
|
<colorrole role="Base">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Window">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</active>
|
||||||
|
<inactive>
|
||||||
|
<colorrole role="Base">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Window">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</inactive>
|
||||||
|
<disabled>
|
||||||
|
<colorrole role="Base">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="Window">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</disabled>
|
||||||
|
</palette>
|
||||||
|
</property>
|
||||||
|
<property name="mouseTracking">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<property name="orientation">
|
||||||
<property name="margin">
|
<enum>Qt::Horizontal</enum>
|
||||||
<number>0</number>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="spacing">
|
<property name="childrenCollapsible">
|
||||||
<number>0</number>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QWidget" name="statusPanel" native="true">
|
<widget class="QWidget" name="statusPanel" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>225</width>
|
<width>225</width>
|
||||||
@ -242,7 +328,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>225</width>
|
<width>1920</width>
|
||||||
<height>16777215</height>
|
<height>16777215</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -700,9 +786,18 @@
|
|||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="statusHead" native="true">
|
<widget class="QWidget" name="statusHead" native="true">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>225</width>
|
||||||
<height>60</height>
|
<height>60</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -1124,15 +1219,14 @@
|
|||||||
<property name="autoFillBackground">
|
<property name="autoFillBackground">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QLabel" name="profilePicture">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<property name="geometry">
|
<item row="0" column="0">
|
||||||
<rect>
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<x>10</x>
|
<property name="spacing">
|
||||||
<y>10</y>
|
<number>0</number>
|
||||||
<width>40</width>
|
|
||||||
<height>40</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="profilePicture">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
@ -1155,18 +1249,14 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
<widget class="EditableLabelWidget" name="nameLabel">
|
<widget class="EditableLabelWidget" name="nameLabel">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>101</width>
|
|
||||||
<height>20</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="palette">
|
<property name="palette">
|
||||||
<palette>
|
<palette>
|
||||||
<active>
|
<active>
|
||||||
@ -1593,15 +1683,9 @@
|
|||||||
<string>Your name</string>
|
<string>Your name</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
<widget class="EditableLabelWidget" name="statusLabel">
|
<widget class="EditableLabelWidget" name="statusLabel">
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>70</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>101</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="palette">
|
<property name="palette">
|
||||||
<palette>
|
<palette>
|
||||||
<active>
|
<active>
|
||||||
@ -1675,15 +1759,27 @@
|
|||||||
<string>Your status</string>
|
<string>Your status</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="ClickableLabel" name="statImg">
|
</item>
|
||||||
<property name="geometry">
|
</layout>
|
||||||
<rect>
|
</item>
|
||||||
<x>170</x>
|
<item>
|
||||||
<y>10</y>
|
<spacer name="horizontalSpacer_3">
|
||||||
<width>40</width>
|
<property name="orientation">
|
||||||
<height>40</height>
|
<enum>Qt::Horizontal</enum>
|
||||||
</rect>
|
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Maximum</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>1920</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="ClickableLabel" name="statImg">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
@ -1696,11 +1792,14 @@
|
|||||||
<height>40</height>
|
<height>40</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<property name="pixmap">
|
<property name="pixmap">
|
||||||
<pixmap>img/status/dot_away_2x.png</pixmap>
|
<pixmap resource="res.qrc">:/img/status/dot_away_2x.png</pixmap>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
@ -1709,14 +1808,26 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<zorder>profilePicture</zorder>
|
</item>
|
||||||
<zorder>statImg</zorder>
|
</layout>
|
||||||
<zorder>nameLabel</zorder>
|
</item>
|
||||||
<zorder>statusLabel</zorder>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QScrollArea" name="friendList">
|
<widget class="QScrollArea" name="friendList">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>225</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="layoutDirection">
|
<property name="layoutDirection">
|
||||||
<enum>Qt::RightToLeft</enum>
|
<enum>Qt::RightToLeft</enum>
|
||||||
</property>
|
</property>
|
||||||
@ -1734,18 +1845,27 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>225</width>
|
<width>258</width>
|
||||||
<height>199</height>
|
<height>199</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item alignment="Qt::AlignHCenter">
|
||||||
<widget class="QWidget" name="tooliconsZone" native="true">
|
<widget class="QWidget" name="tooliconsZone" native="true">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>225</width>
|
||||||
<height>35</height>
|
<height>35</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -2188,6 +2308,9 @@
|
|||||||
<height>35</height>
|
<height>35</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
@ -2200,6 +2323,22 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Maximum</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>500</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="groupButton">
|
<widget class="QPushButton" name="groupButton">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
@ -2208,6 +2347,9 @@
|
|||||||
<height>35</height>
|
<height>35</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
@ -2220,6 +2362,22 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Maximum</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>500</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="transferButton">
|
<widget class="QPushButton" name="transferButton">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
@ -2234,6 +2392,9 @@
|
|||||||
<height>35</height>
|
<height>35</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
@ -2246,6 +2407,22 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Maximum</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>500</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="settingsButton">
|
<widget class="QPushButton" name="settingsButton">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
@ -2260,6 +2437,9 @@
|
|||||||
<height>35</height>
|
<height>35</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::NoFocus</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
@ -2277,9 +2457,13 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QWidget" name="mainPanel" native="true">
|
<widget class="QWidget" name="mainPanel" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
|
||||||
|
<horstretch>1</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>375</width>
|
<width>375</width>
|
||||||
@ -2713,6 +2897,12 @@
|
|||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="mainHead" native="true">
|
<widget class="QWidget" name="mainHead" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>0</width>
|
||||||
@ -2791,9 +2981,15 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="mainContent" native="true">
|
<widget class="QWidget" name="mainContent" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>375</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -2801,8 +2997,6 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -23,6 +23,7 @@ FileTransfertWidget::FileTransfertWidget(ToxFile File)
|
|||||||
setAutoFillBackground(true);
|
setAutoFillBackground(true);
|
||||||
|
|
||||||
setMinimumSize(250,58);
|
setMinimumSize(250,58);
|
||||||
|
setMaximumHeight(58);
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
mainLayout->setMargin(0);
|
mainLayout->setMargin(0);
|
||||||
|
|
||||||
|
@ -75,6 +75,8 @@ void AddFriendForm::onSendTriggered()
|
|||||||
showWarning(tr("Please fill in a valid Tox ID","Tox ID of the friend you're sending a friend request to"));
|
showWarning(tr("Please fill in a valid Tox ID","Tox ID of the friend you're sending a friend request to"));
|
||||||
} else if (isToxId(id)) {
|
} else if (isToxId(id)) {
|
||||||
emit friendRequested(id, getMessage());
|
emit friendRequested(id, getMessage());
|
||||||
|
this->toxId.setText("");
|
||||||
|
this->message.setText("");
|
||||||
} else {
|
} else {
|
||||||
id = id.replace("@", "._tox.");
|
id = id.replace("@", "._tox.");
|
||||||
dns.setName(id);
|
dns.setName(id);
|
||||||
|
@ -11,11 +11,12 @@ FriendWidget::FriendWidget(int FriendId, QString id)
|
|||||||
{
|
{
|
||||||
this->setMouseTracking(true);
|
this->setMouseTracking(true);
|
||||||
this->setAutoFillBackground(true);
|
this->setAutoFillBackground(true);
|
||||||
this->setLayout(&layout);
|
|
||||||
this->setFixedWidth(225);
|
this->setFixedWidth(225);
|
||||||
this->setFixedHeight(55);
|
this->setFixedHeight(55);
|
||||||
|
this->setLayout(&layout);
|
||||||
layout.setSpacing(0);
|
layout.setSpacing(0);
|
||||||
layout.setMargin(0);
|
layout.setMargin(0);
|
||||||
|
layout.setStretchFactor(this, 100);
|
||||||
textLayout.setSpacing(0);
|
textLayout.setSpacing(0);
|
||||||
textLayout.setMargin(0);
|
textLayout.setMargin(0);
|
||||||
|
|
||||||
@ -53,6 +54,11 @@ FriendWidget::FriendWidget(int FriendId, QString id)
|
|||||||
isActiveWidget = 0;
|
isActiveWidget = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FriendWidget::setNewFixedWidth(int newWidth)
|
||||||
|
{
|
||||||
|
this->setFixedWidth(newWidth);
|
||||||
|
}
|
||||||
|
|
||||||
void FriendWidget::mouseReleaseEvent (QMouseEvent*)
|
void FriendWidget::mouseReleaseEvent (QMouseEvent*)
|
||||||
{
|
{
|
||||||
emit friendWidgetClicked(this);
|
emit friendWidgetClicked(this);
|
||||||
|
@ -18,6 +18,7 @@ public:
|
|||||||
void leaveEvent(QEvent* event);
|
void leaveEvent(QEvent* event);
|
||||||
void setAsActiveChatroom();
|
void setAsActiveChatroom();
|
||||||
void setAsInactiveChatroom();
|
void setAsInactiveChatroom();
|
||||||
|
void setNewFixedWidth(int newWidth);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void friendWidgetClicked(FriendWidget* widget);
|
void friendWidgetClicked(FriendWidget* widget);
|
||||||
|
@ -56,6 +56,11 @@ GroupWidget::GroupWidget(int GroupId, QString Name)
|
|||||||
isActiveWidget = 0;
|
isActiveWidget = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GroupWidget::setNewFixedWidth(int newWidth)
|
||||||
|
{
|
||||||
|
this->setFixedWidth(newWidth);
|
||||||
|
}
|
||||||
|
|
||||||
void GroupWidget::mouseReleaseEvent (QMouseEvent*)
|
void GroupWidget::mouseReleaseEvent (QMouseEvent*)
|
||||||
{
|
{
|
||||||
emit groupWidgetClicked(this);
|
emit groupWidgetClicked(this);
|
||||||
@ -163,5 +168,5 @@ void GroupWidget::setAsInactiveChatroom()
|
|||||||
QPalette pal3;
|
QPalette pal3;
|
||||||
pal3.setColor(QPalette::Background, QColor(65,65,65,255));
|
pal3.setColor(QPalette::Background, QColor(65,65,65,255));
|
||||||
this->setPalette(pal3);
|
this->setPalette(pal3);
|
||||||
avatar.setPixmap(QPixmap("img/group.png"));
|
avatar.setPixmap(QPixmap(":img/group.png"));
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ public:
|
|||||||
QVBoxLayout textLayout;
|
QVBoxLayout textLayout;
|
||||||
void setAsInactiveChatroom();
|
void setAsInactiveChatroom();
|
||||||
void setAsActiveChatroom();
|
void setAsActiveChatroom();
|
||||||
|
void setNewFixedWidth(int newWidth);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QColor lastColor;
|
QColor lastColor;
|
||||||
|
@ -38,7 +38,6 @@ Widget::Widget(QWidget *parent) :
|
|||||||
if (useNativeTheme)
|
if (useNativeTheme)
|
||||||
{
|
{
|
||||||
ui->titleBar->hide();
|
ui->titleBar->hide();
|
||||||
//setWindowFlags(windowFlags() & ~Qt::FramelessWindowHint);
|
|
||||||
this->layout()->setContentsMargins(0, 0, 0, 0);
|
this->layout()->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
QString friendListStylesheet = "";
|
QString friendListStylesheet = "";
|
||||||
@ -89,13 +88,6 @@ Widget::Widget(QWidget *parent) :
|
|||||||
setWindowFlags(Qt::CustomizeWindowHint);
|
setWindowFlags(Qt::CustomizeWindowHint);
|
||||||
setWindowFlags(Qt::FramelessWindowHint);
|
setWindowFlags(Qt::FramelessWindowHint);
|
||||||
setAttribute(Qt::WA_DeleteOnClose);
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
setMouseTracking(true);
|
|
||||||
ui->titleBar->setMouseTracking(true);
|
|
||||||
ui->LTitle->setMouseTracking(true);
|
|
||||||
ui->tbMenu->setMouseTracking(true);
|
|
||||||
ui->pbMin->setMouseTracking(true);
|
|
||||||
ui->pbMax->setMouseTracking(true);
|
|
||||||
ui->pbClose->setMouseTracking(true);
|
|
||||||
|
|
||||||
addAction(ui->actionClose);
|
addAction(ui->actionClose);
|
||||||
|
|
||||||
@ -116,7 +108,7 @@ Widget::Widget(QWidget *parent) :
|
|||||||
QRect geo = settings.value("geometry").toRect();
|
QRect geo = settings.value("geometry").toRect();
|
||||||
|
|
||||||
if (geo.height() > 0 and geo.x() < QApplication::desktop()->width() and geo.width() > 0 and geo.y() < QApplication::desktop()->height())
|
if (geo.height() > 0 and geo.x() < QApplication::desktop()->width() and geo.width() > 0 and geo.y() < QApplication::desktop()->height())
|
||||||
setGeometry(geo);
|
this->setGeometry(geo);
|
||||||
|
|
||||||
if (settings.value("maximized").toBool())
|
if (settings.value("maximized").toBool())
|
||||||
{
|
{
|
||||||
@ -134,7 +126,7 @@ Widget::Widget(QWidget *parent) :
|
|||||||
|
|
||||||
isWindowMinimized = 0;
|
isWindowMinimized = 0;
|
||||||
|
|
||||||
centralLayout = new QHBoxLayout(ui->centralWidget);
|
//centralLayout = new QSplitter(ui->centralWidget);
|
||||||
|
|
||||||
|
|
||||||
ui->mainContent->setLayout(new QVBoxLayout());
|
ui->mainContent->setLayout(new QVBoxLayout());
|
||||||
@ -146,6 +138,7 @@ Widget::Widget(QWidget *parent) :
|
|||||||
friendListWidget->layout()->setSpacing(0);
|
friendListWidget->layout()->setSpacing(0);
|
||||||
friendListWidget->layout()->setMargin(0);
|
friendListWidget->layout()->setMargin(0);
|
||||||
friendListWidget->setLayoutDirection(Qt::LeftToRight);
|
friendListWidget->setLayoutDirection(Qt::LeftToRight);
|
||||||
|
//friendListWidget->
|
||||||
ui->friendList->setWidget(friendListWidget);
|
ui->friendList->setWidget(friendListWidget);
|
||||||
|
|
||||||
ui->nameLabel->setText(Settings::getInstance().getUsername());
|
ui->nameLabel->setText(Settings::getInstance().getUsername());
|
||||||
@ -153,6 +146,25 @@ Widget::Widget(QWidget *parent) :
|
|||||||
ui->statusLabel->setText(Settings::getInstance().getStatusMessage());
|
ui->statusLabel->setText(Settings::getInstance().getStatusMessage());
|
||||||
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);
|
||||||
|
ui->centralWidget->setStyleSheet("QSplitter{background-color: white;}");
|
||||||
|
|
||||||
|
this->setMouseTracking(true);
|
||||||
|
|
||||||
|
QList<QWidget*> widgets = this->findChildren<QWidget*>();
|
||||||
|
foreach (QWidget *widget, widgets)
|
||||||
|
widget->setMouseTracking(true);
|
||||||
|
|
||||||
|
ui->titleBar->setMouseTracking(true);
|
||||||
|
ui->LTitle->setMouseTracking(true);
|
||||||
|
ui->tbMenu->setMouseTracking(true);
|
||||||
|
ui->pbMin->setMouseTracking(true);
|
||||||
|
ui->pbMax->setMouseTracking(true);
|
||||||
|
ui->pbClose->setMouseTracking(true);
|
||||||
|
ui->statusHead->setMouseTracking(true);
|
||||||
|
|
||||||
|
QList<int> currentSizes = ui->centralWidget->sizes();
|
||||||
|
currentSizes[0] = 225;
|
||||||
|
ui->centralWidget->setSizes(currentSizes);
|
||||||
|
|
||||||
camera = new Camera;
|
camera = new Camera;
|
||||||
camview = new SelfCamView(camera);
|
camview = new SelfCamView(camera);
|
||||||
@ -194,6 +206,7 @@ Widget::Widget(QWidget *parent) :
|
|||||||
connect(this, &Widget::friendRequested, core, &Core::requestFriendship);
|
connect(this, &Widget::friendRequested, core, &Core::requestFriendship);
|
||||||
connect(this, &Widget::friendRequestAccepted, core, &Core::acceptFriendRequest);
|
connect(this, &Widget::friendRequestAccepted, core, &Core::acceptFriendRequest);
|
||||||
|
|
||||||
|
connect(ui->centralWidget, SIGNAL(splitterMoved(int,int)),this, SLOT(splitterMoved(int,int)));
|
||||||
connect(ui->addButton, SIGNAL(clicked()), this, SLOT(onAddClicked()));
|
connect(ui->addButton, SIGNAL(clicked()), this, SLOT(onAddClicked()));
|
||||||
connect(ui->groupButton, SIGNAL(clicked()), this, SLOT(onGroupClicked()));
|
connect(ui->groupButton, SIGNAL(clicked()), this, SLOT(onGroupClicked()));
|
||||||
connect(ui->transferButton, SIGNAL(clicked()), this, SLOT(onTransferClicked()));
|
connect(ui->transferButton, SIGNAL(clicked()), this, SLOT(onTransferClicked()));
|
||||||
@ -214,6 +227,7 @@ Widget::Widget(QWidget *parent) :
|
|||||||
|
|
||||||
Widget::~Widget()
|
Widget::~Widget()
|
||||||
{
|
{
|
||||||
|
core->saveConfiguration();
|
||||||
instance = nullptr;
|
instance = nullptr;
|
||||||
coreThread->exit();
|
coreThread->exit();
|
||||||
coreThread->wait();
|
coreThread->wait();
|
||||||
@ -233,7 +247,6 @@ Widget::~Widget()
|
|||||||
settings.setValue("maximized", isMaximized());
|
settings.setValue("maximized", isMaximized());
|
||||||
settings.setValue("useNativeTheme", useNativeTheme);
|
settings.setValue("useNativeTheme", useNativeTheme);
|
||||||
delete ui;
|
delete ui;
|
||||||
delete centralLayout;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget* Widget::getInstance()
|
Widget* Widget::getInstance()
|
||||||
@ -243,6 +256,23 @@ Widget* Widget::getInstance()
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Super ugly hack to enable resizable friend widgets
|
||||||
|
//There should be a way to set them to resize automagicly, but I can't seem to find it.
|
||||||
|
void Widget::splitterMoved(int, int)
|
||||||
|
{
|
||||||
|
updateFriendListWidth();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Widget::updateFriendListWidth()
|
||||||
|
{
|
||||||
|
int newWidth = ui->friendList->width();
|
||||||
|
for (Friend* f : FriendList::friendList)
|
||||||
|
if (f->widget != nullptr)
|
||||||
|
f->widget->setNewFixedWidth(newWidth);
|
||||||
|
for (Group* g : GroupList::groupList)
|
||||||
|
if (g->widget != nullptr)
|
||||||
|
g->widget->setNewFixedWidth(newWidth);
|
||||||
|
}
|
||||||
|
|
||||||
QString Widget::getUsername()
|
QString Widget::getUsername()
|
||||||
{
|
{
|
||||||
@ -380,6 +410,7 @@ void Widget::addFriend(int friendId, const QString &userId)
|
|||||||
QWidget* widget = ui->friendList->widget();
|
QWidget* widget = ui->friendList->widget();
|
||||||
QLayout* layout = widget->layout();
|
QLayout* layout = widget->layout();
|
||||||
layout->addWidget(newfriend->widget);
|
layout->addWidget(newfriend->widget);
|
||||||
|
updateFriendListWidth();
|
||||||
connect(newfriend->widget, SIGNAL(friendWidgetClicked(FriendWidget*)), this, SLOT(onFriendWidgetClicked(FriendWidget*)));
|
connect(newfriend->widget, SIGNAL(friendWidgetClicked(FriendWidget*)), this, SLOT(onFriendWidgetClicked(FriendWidget*)));
|
||||||
connect(newfriend->widget, SIGNAL(removeFriend(int)), this, SLOT(removeFriend(int)));
|
connect(newfriend->widget, SIGNAL(removeFriend(int)), this, SLOT(removeFriend(int)));
|
||||||
connect(newfriend->widget, SIGNAL(copyFriendIdToClipboard(int)), this, SLOT(copyFriendIdToClipboard(int)));
|
connect(newfriend->widget, SIGNAL(copyFriendIdToClipboard(int)), this, SLOT(copyFriendIdToClipboard(int)));
|
||||||
@ -400,6 +431,7 @@ void Widget::addFriend(int friendId, const QString &userId)
|
|||||||
connect(core, &Core::avEnding, newfriend->chatForm, &ChatForm::onAvEnding);
|
connect(core, &Core::avEnding, newfriend->chatForm, &ChatForm::onAvEnding);
|
||||||
connect(core, &Core::avRequestTimeout, newfriend->chatForm, &ChatForm::onAvRequestTimeout);
|
connect(core, &Core::avRequestTimeout, newfriend->chatForm, &ChatForm::onAvRequestTimeout);
|
||||||
connect(core, &Core::avPeerTimeout, newfriend->chatForm, &ChatForm::onAvPeerTimeout);
|
connect(core, &Core::avPeerTimeout, newfriend->chatForm, &ChatForm::onAvPeerTimeout);
|
||||||
|
core->saveConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Widget::addFriendFailed(const QString&)
|
void Widget::addFriendFailed(const QString&)
|
||||||
@ -541,6 +573,7 @@ void Widget::onFriendRequestReceived(const QString& userId, const QString& messa
|
|||||||
void Widget::removeFriend(int friendId)
|
void Widget::removeFriend(int friendId)
|
||||||
{
|
{
|
||||||
Friend* f = FriendList::findFriend(friendId);
|
Friend* f = FriendList::findFriend(friendId);
|
||||||
|
f->widget->setAsInactiveChatroom();
|
||||||
if (f->widget == activeFriendWidget)
|
if (f->widget == activeFriendWidget)
|
||||||
activeFriendWidget = nullptr;
|
activeFriendWidget = nullptr;
|
||||||
FriendList::removeFriend(friendId);
|
FriendList::removeFriend(friendId);
|
||||||
@ -557,7 +590,6 @@ void Widget::copyFriendIdToClipboard(int friendId)
|
|||||||
{
|
{
|
||||||
QClipboard *clipboard = QApplication::clipboard();
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
clipboard->setText(f->userId, QClipboard::Clipboard);
|
clipboard->setText(f->userId, QClipboard::Clipboard);
|
||||||
clipboard->deleteLater();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,6 +675,7 @@ void Widget::onGroupWidgetClicked(GroupWidget* widget)
|
|||||||
void Widget::removeGroup(int groupId)
|
void Widget::removeGroup(int groupId)
|
||||||
{
|
{
|
||||||
Group* g = GroupList::findGroup(groupId);
|
Group* g = GroupList::findGroup(groupId);
|
||||||
|
g->widget->setAsInactiveChatroom();
|
||||||
if (g->widget == activeGroupWidget)
|
if (g->widget == activeGroupWidget)
|
||||||
activeGroupWidget = nullptr;
|
activeGroupWidget = nullptr;
|
||||||
GroupList::removeGroup(groupId);
|
GroupList::removeGroup(groupId);
|
||||||
@ -671,6 +704,7 @@ Group *Widget::createGroup(int groupId)
|
|||||||
QWidget* widget = ui->friendList->widget();
|
QWidget* widget = ui->friendList->widget();
|
||||||
QLayout* layout = widget->layout();
|
QLayout* layout = widget->layout();
|
||||||
layout->addWidget(newgroup->widget);
|
layout->addWidget(newgroup->widget);
|
||||||
|
updateFriendListWidth();
|
||||||
connect(newgroup->widget, SIGNAL(groupWidgetClicked(GroupWidget*)), this, SLOT(onGroupWidgetClicked(GroupWidget*)));
|
connect(newgroup->widget, SIGNAL(groupWidgetClicked(GroupWidget*)), this, SLOT(onGroupWidgetClicked(GroupWidget*)));
|
||||||
connect(newgroup->widget, SIGNAL(removeGroup(int)), this, SLOT(removeGroup(int)));
|
connect(newgroup->widget, SIGNAL(removeGroup(int)), this, SLOT(removeGroup(int)));
|
||||||
connect(newgroup->chatForm, SIGNAL(sendMessage(int,QString)), core, SLOT(sendGroupMessage(int,QString)));
|
connect(newgroup->chatForm, SIGNAL(sendMessage(int,QString)), core, SLOT(sendGroupMessage(int,QString)));
|
||||||
@ -702,81 +736,16 @@ bool Widget::isFriendWidgetCurActiveWidget(Friend* f)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Widget::resizeEvent(QResizeEvent *)
|
||||||
|
|
||||||
void Widget::mouseMoveEvent(QMouseEvent *e)
|
|
||||||
{
|
{
|
||||||
if (!useNativeTheme)
|
updateFriendListWidth();
|
||||||
{
|
|
||||||
int xMouse = e->pos().x();
|
|
||||||
int yMouse = e->pos().y();
|
|
||||||
int wWidth = this->geometry().width();
|
|
||||||
int wHeight = this->geometry().height();
|
|
||||||
|
|
||||||
if (moveWidget)
|
|
||||||
{
|
|
||||||
inResizeZone = false;
|
|
||||||
moveWindow(e);
|
|
||||||
}
|
|
||||||
else if (allowToResize)
|
|
||||||
resizeWindow(e);
|
|
||||||
//right
|
|
||||||
else if (xMouse >= wWidth - PIXELS_TO_ACT or allowToResize)
|
|
||||||
{
|
|
||||||
inResizeZone = true;
|
|
||||||
|
|
||||||
if (yMouse >= wHeight - PIXELS_TO_ACT)
|
|
||||||
setCursor(Qt::SizeFDiagCursor);
|
|
||||||
else if (yMouse <= PIXELS_TO_ACT)
|
|
||||||
setCursor(Qt::SizeBDiagCursor);
|
|
||||||
else
|
|
||||||
setCursor(Qt::SizeHorCursor);
|
|
||||||
|
|
||||||
resizeWindow(e);
|
|
||||||
}
|
|
||||||
//left
|
|
||||||
else if (xMouse <= PIXELS_TO_ACT or allowToResize)
|
|
||||||
{
|
|
||||||
inResizeZone = true;
|
|
||||||
|
|
||||||
if (yMouse >= wHeight - PIXELS_TO_ACT)
|
|
||||||
setCursor(Qt::SizeBDiagCursor);
|
|
||||||
else if (yMouse <= PIXELS_TO_ACT)
|
|
||||||
setCursor(Qt::SizeFDiagCursor);
|
|
||||||
else
|
|
||||||
setCursor(Qt::SizeHorCursor);
|
|
||||||
|
|
||||||
resizeWindow(e);
|
|
||||||
}
|
|
||||||
//bottom edge
|
|
||||||
else if ((yMouse >= wHeight - PIXELS_TO_ACT) or allowToResize)
|
|
||||||
{
|
|
||||||
inResizeZone = true;
|
|
||||||
setCursor(Qt::SizeVerCursor);
|
|
||||||
|
|
||||||
resizeWindow(e);
|
|
||||||
}
|
|
||||||
//Cursor part top
|
|
||||||
else if (yMouse <= PIXELS_TO_ACT or allowToResize)
|
|
||||||
{
|
|
||||||
inResizeZone = true;
|
|
||||||
setCursor(Qt::SizeVerCursor);
|
|
||||||
|
|
||||||
resizeWindow(e);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
inResizeZone = false;
|
|
||||||
setCursor(Qt::ArrowCursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
e->accept();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Widget::event(QEvent * e)
|
bool Widget::event(QEvent * e)
|
||||||
{
|
{
|
||||||
if (e->type() == QEvent::WindowStateChange)
|
|
||||||
|
if( e->type() == QEvent::WindowStateChange )
|
||||||
{
|
{
|
||||||
if(windowState().testFlag(Qt::WindowMinimized) == true)
|
if(windowState().testFlag(Qt::WindowMinimized) == true)
|
||||||
{
|
{
|
||||||
@ -802,7 +771,7 @@ bool Widget::event(QEvent * e)
|
|||||||
Group* g = GroupList::findGroup(activeGroupWidget->groupId);
|
Group* g = GroupList::findGroup(activeGroupWidget->groupId);
|
||||||
g->hasNewMessages = 0;
|
g->hasNewMessages = 0;
|
||||||
g->userWasMentioned = 0;
|
g->userWasMentioned = 0;
|
||||||
g->widget->statusPic.setPixmap(QPixmap("img/status/dot_groupchat.png"));
|
g->widget->statusPic.setPixmap(QPixmap(":img/status/dot_groupchat.png"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (e->type() == QEvent::WindowDeactivate && !useNativeTheme)
|
else if (e->type() == QEvent::WindowDeactivate && !useNativeTheme)
|
||||||
@ -810,6 +779,73 @@ bool Widget::event(QEvent * e)
|
|||||||
this->setObjectName("inactiveWindow");
|
this->setObjectName("inactiveWindow");
|
||||||
this->style()->polish(this);
|
this->style()->polish(this);
|
||||||
}
|
}
|
||||||
|
else if (e->type() == QEvent::MouseMove && !useNativeTheme)
|
||||||
|
{
|
||||||
|
QMouseEvent *k = (QMouseEvent *)e;
|
||||||
|
int xMouse = k->pos().x();
|
||||||
|
int yMouse = k->pos().y();
|
||||||
|
int wWidth = this->geometry().width();
|
||||||
|
int wHeight = this->geometry().height();
|
||||||
|
|
||||||
|
if (moveWidget)
|
||||||
|
{
|
||||||
|
inResizeZone = false;
|
||||||
|
moveWindow(k);
|
||||||
|
}
|
||||||
|
else if (allowToResize)
|
||||||
|
resizeWindow(k);
|
||||||
|
//right
|
||||||
|
else if (xMouse >= wWidth - PIXELS_TO_ACT or allowToResize)
|
||||||
|
{
|
||||||
|
inResizeZone = true;
|
||||||
|
|
||||||
|
if (yMouse >= wHeight - PIXELS_TO_ACT)
|
||||||
|
setCursor(Qt::SizeFDiagCursor);
|
||||||
|
else if (yMouse <= PIXELS_TO_ACT)
|
||||||
|
setCursor(Qt::SizeBDiagCursor);
|
||||||
|
else
|
||||||
|
setCursor(Qt::SizeHorCursor);
|
||||||
|
|
||||||
|
resizeWindow(k);
|
||||||
|
}
|
||||||
|
//left
|
||||||
|
else if (xMouse <= PIXELS_TO_ACT or allowToResize)
|
||||||
|
{
|
||||||
|
inResizeZone = true;
|
||||||
|
|
||||||
|
if (yMouse >= wHeight - PIXELS_TO_ACT)
|
||||||
|
setCursor(Qt::SizeBDiagCursor);
|
||||||
|
else if (yMouse <= PIXELS_TO_ACT)
|
||||||
|
setCursor(Qt::SizeFDiagCursor);
|
||||||
|
else
|
||||||
|
setCursor(Qt::SizeHorCursor);
|
||||||
|
|
||||||
|
resizeWindow(k);
|
||||||
|
}
|
||||||
|
//bottom edge
|
||||||
|
else if ((yMouse >= wHeight - PIXELS_TO_ACT) or allowToResize)
|
||||||
|
{
|
||||||
|
inResizeZone = true;
|
||||||
|
setCursor(Qt::SizeVerCursor);
|
||||||
|
|
||||||
|
resizeWindow(k);
|
||||||
|
}
|
||||||
|
//Cursor part top
|
||||||
|
else if (yMouse <= PIXELS_TO_ACT or allowToResize)
|
||||||
|
{
|
||||||
|
inResizeZone = true;
|
||||||
|
setCursor(Qt::SizeVerCursor);
|
||||||
|
|
||||||
|
resizeWindow(k);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
inResizeZone = false;
|
||||||
|
setCursor(Qt::ArrowCursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
e->accept();
|
||||||
|
}
|
||||||
|
|
||||||
return QWidget::event(e);
|
return QWidget::event(e);
|
||||||
}
|
}
|
||||||
@ -901,6 +937,7 @@ void Widget::moveWindow(QMouseEvent *e)
|
|||||||
|
|
||||||
void Widget::resizeWindow(QMouseEvent *e)
|
void Widget::resizeWindow(QMouseEvent *e)
|
||||||
{
|
{
|
||||||
|
updateFriendListWidth();
|
||||||
if (!useNativeTheme)
|
if (!useNativeTheme)
|
||||||
{
|
{
|
||||||
if (allowToResize)
|
if (allowToResize)
|
||||||
@ -1019,7 +1056,7 @@ void Widget::setCentralWidget(QWidget *widget, const QString &widgetName)
|
|||||||
connect(widget, SIGNAL(cancelled()), this, SLOT(close()));
|
connect(widget, SIGNAL(cancelled()), this, SLOT(close()));
|
||||||
|
|
||||||
centralLayout->addWidget(widget);
|
centralLayout->addWidget(widget);
|
||||||
ui->centralWidget->setLayout(centralLayout);
|
//ui->centralWidget->setLayout(centralLayout);
|
||||||
ui->LTitle->setText(widgetName);
|
ui->LTitle->setText(widgetName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,6 +44,7 @@ public:
|
|||||||
void updateFriendStatusLights(int friendId);
|
void updateFriendStatusLights(int friendId);
|
||||||
int useNativeTheme;
|
int useNativeTheme;
|
||||||
~Widget();
|
~Widget();
|
||||||
|
void updateFriendListWidth();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void friendRequestAccepted(const QString& userId);
|
void friendRequestAccepted(const QString& userId);
|
||||||
@ -53,6 +54,9 @@ signals:
|
|||||||
void usernameChanged(const QString& username);
|
void usernameChanged(const QString& username);
|
||||||
void statusMessageChanged(const QString& statusMessage);
|
void statusMessageChanged(const QString& statusMessage);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void resizeEvent(QResizeEvent *);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void maximizeBtnClicked();
|
void maximizeBtnClicked();
|
||||||
void minimizeBtnClicked();
|
void minimizeBtnClicked();
|
||||||
@ -89,6 +93,7 @@ private slots:
|
|||||||
void copyFriendIdToClipboard(int friendId);
|
void copyFriendIdToClipboard(int friendId);
|
||||||
void removeGroup(int groupId);
|
void removeGroup(int groupId);
|
||||||
void onStatusImgClicked();
|
void onStatusImgClicked();
|
||||||
|
void splitterMoved(int pos, int index);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void moveWindow(QMouseEvent *e);
|
void moveWindow(QMouseEvent *e);
|
||||||
@ -99,7 +104,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::Widget *ui;
|
Ui::Widget *ui;
|
||||||
QHBoxLayout *centralLayout;
|
QSplitter *centralLayout;
|
||||||
QPoint dragPosition;
|
QPoint dragPosition;
|
||||||
TitleMode m_titleMode;
|
TitleMode m_titleMode;
|
||||||
bool moveWidget;
|
bool moveWidget;
|
||||||
@ -109,7 +114,6 @@ private:
|
|||||||
bool resizeHorEsq;
|
bool resizeHorEsq;
|
||||||
bool resizeDiagSupEsq;
|
bool resizeDiagSupEsq;
|
||||||
bool resizeDiagSupDer;
|
bool resizeDiagSupDer;
|
||||||
void mouseMoveEvent(QMouseEvent *e);
|
|
||||||
void mousePressEvent(QMouseEvent *e);
|
void mousePressEvent(QMouseEvent *e);
|
||||||
void mouseReleaseEvent(QMouseEvent *e);
|
void mouseReleaseEvent(QMouseEvent *e);
|
||||||
void mouseDoubleClickEvent(QMouseEvent *e);
|
void mouseDoubleClickEvent(QMouseEvent *e);
|
||||||
@ -127,6 +131,7 @@ private:
|
|||||||
int isFriendWidgetActive, isGroupWidgetActive;
|
int isFriendWidgetActive, isGroupWidgetActive;
|
||||||
SelfCamView* camview;
|
SelfCamView* camview;
|
||||||
Camera* camera;
|
Camera* camera;
|
||||||
|
bool notify(QObject *receiver, QEvent *event);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // WIDGET_H
|
#endif // WIDGET_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user