mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-29 06:08:48 +03:00
Persist sidebar sizes
This commit is contained in:
parent
1d80f5d0b4
commit
4985e1f536
4 changed files with 62 additions and 6 deletions
1
resources/icons/ui/user-friends-solid.svg
Normal file
1
resources/icons/ui/user-friends-solid.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="user-friends" class="svg-inline--fa fa-user-friends fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"></path></svg>
|
After Width: | Height: | Size: 747 B |
|
@ -25,7 +25,7 @@ Rectangle {
|
||||||
|
|
||||||
minimumWidth: communitiesList.avatarSize * 4 + Nheko.paddingMedium * 2
|
minimumWidth: communitiesList.avatarSize * 4 + Nheko.paddingMedium * 2
|
||||||
collapsedWidth: communitiesList.avatarSize + 2 * Nheko.paddingMedium
|
collapsedWidth: communitiesList.avatarSize + 2 * Nheko.paddingMedium
|
||||||
preferredWidth: collapsedWidth
|
preferredWidth: Settings.communityListWidth >= minimumWidth ? Settings.communityListWidth : collapsedWidth
|
||||||
maximumWidth: communitiesList.avatarSize * 10 + 2 * Nheko.paddingMedium
|
maximumWidth: communitiesList.avatarSize * 10 + 2 * Nheko.paddingMedium
|
||||||
|
|
||||||
CommunitiesList {
|
CommunitiesList {
|
||||||
|
@ -34,14 +34,22 @@ Rectangle {
|
||||||
collapsed: parent.collapsed
|
collapsed: parent.collapsed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binding {
|
||||||
|
target: Settings
|
||||||
|
property: 'communityListWidth'
|
||||||
|
value: communityListC.preferredWidth
|
||||||
|
when: !adaptiveView.singlePageMode
|
||||||
|
delayed: true
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AdaptiveLayoutElement {
|
AdaptiveLayoutElement {
|
||||||
id: roomListC
|
id: roomListC
|
||||||
|
|
||||||
minimumWidth: Nheko.avatarSize * 5 + Nheko.paddingSmall * 2
|
minimumWidth: roomlist.avatarSize * 4 + Nheko.paddingSmall * 2
|
||||||
preferredWidth: Nheko.avatarSize * 5 + Nheko.paddingSmall * 2
|
preferredWidth: Settings.roomListWidth >= minimumWidth ? Settings.roomListWidth : roomlist.avatarSize * 5 + Nheko.paddingSmall * 2
|
||||||
maximumWidth: Nheko.avatarSize * 10 + Nheko.paddingSmall * 2
|
maximumWidth: roomlist.avatarSize * 10 + Nheko.paddingSmall * 2
|
||||||
collapsedWidth: roomlist.avatarSize + 2 * Nheko.paddingMedium
|
collapsedWidth: roomlist.avatarSize + 2 * Nheko.paddingMedium
|
||||||
|
|
||||||
RoomList {
|
RoomList {
|
||||||
|
@ -50,6 +58,14 @@ Rectangle {
|
||||||
collapsed: parent.collapsed
|
collapsed: parent.collapsed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binding {
|
||||||
|
target: Settings
|
||||||
|
property: 'roomListWidth'
|
||||||
|
value: roomListC.preferredWidth
|
||||||
|
when: !adaptiveView.singlePageMode
|
||||||
|
delayed: true
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AdaptiveLayoutElement {
|
AdaptiveLayoutElement {
|
||||||
|
|
|
@ -65,9 +65,13 @@ UserSettings::load(std::optional<QString> profile)
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
tray_ = settings.value("user/window/tray", false).toBool();
|
tray_ = settings.value("user/window/tray", false).toBool();
|
||||||
|
startInTray_ = settings.value("user/window/start_in_tray", false).toBool();
|
||||||
|
|
||||||
|
roomListWidth_ = settings.value("user/sidebar/room_list_width", -1).toInt();
|
||||||
|
communityListWidth_ = settings.value("user/sidebar/community_list_width", -1).toInt();
|
||||||
|
|
||||||
hasDesktopNotifications_ = settings.value("user/desktop_notifications", true).toBool();
|
hasDesktopNotifications_ = settings.value("user/desktop_notifications", true).toBool();
|
||||||
hasAlertOnNotification_ = settings.value("user/alert_on_notification", false).toBool();
|
hasAlertOnNotification_ = settings.value("user/alert_on_notification", false).toBool();
|
||||||
startInTray_ = settings.value("user/window/start_in_tray", false).toBool();
|
|
||||||
groupView_ = settings.value("user/group_view", true).toBool();
|
groupView_ = settings.value("user/group_view", true).toBool();
|
||||||
hiddenTags_ = settings.value("user/hidden_tags", QStringList{}).toStringList();
|
hiddenTags_ = settings.value("user/hidden_tags", QStringList{}).toStringList();
|
||||||
buttonsInTimeline_ = settings.value("user/timeline/buttons", true).toBool();
|
buttonsInTimeline_ = settings.value("user/timeline/buttons", true).toBool();
|
||||||
|
@ -248,6 +252,24 @@ UserSettings::setTimelineMaxWidth(int state)
|
||||||
emit timelineMaxWidthChanged(state);
|
emit timelineMaxWidthChanged(state);
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
UserSettings::setCommunityListWidth(int state)
|
||||||
|
{
|
||||||
|
if (state == communityListWidth_)
|
||||||
|
return;
|
||||||
|
communityListWidth_ = state;
|
||||||
|
emit communityListWidthChanged(state);
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
void
|
||||||
|
UserSettings::setRoomListWidth(int state)
|
||||||
|
{
|
||||||
|
if (state == roomListWidth_)
|
||||||
|
return;
|
||||||
|
roomListWidth_ = state;
|
||||||
|
emit roomListWidthChanged(state);
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
UserSettings::setDesktopNotifications(bool state)
|
UserSettings::setDesktopNotifications(bool state)
|
||||||
|
@ -571,6 +593,11 @@ UserSettings::save()
|
||||||
settings.setValue("start_in_tray", startInTray_);
|
settings.setValue("start_in_tray", startInTray_);
|
||||||
settings.endGroup(); // window
|
settings.endGroup(); // window
|
||||||
|
|
||||||
|
settings.beginGroup("sidebar");
|
||||||
|
settings.setValue("community_list_width", communityListWidth_);
|
||||||
|
settings.setValue("room_list_width", roomListWidth_);
|
||||||
|
settings.endGroup(); // window
|
||||||
|
|
||||||
settings.beginGroup("timeline");
|
settings.beginGroup("timeline");
|
||||||
settings.setValue("buttons", buttonsInTimeline_);
|
settings.setValue("buttons", buttonsInTimeline_);
|
||||||
settings.setValue("message_hover_highlight", messageHoverHighlight_);
|
settings.setValue("message_hover_highlight", messageHoverHighlight_);
|
||||||
|
|
|
@ -61,6 +61,10 @@ class UserSettings : public QObject
|
||||||
NOTIFY privacyScreenTimeoutChanged)
|
NOTIFY privacyScreenTimeoutChanged)
|
||||||
Q_PROPERTY(int timelineMaxWidth READ timelineMaxWidth WRITE setTimelineMaxWidth NOTIFY
|
Q_PROPERTY(int timelineMaxWidth READ timelineMaxWidth WRITE setTimelineMaxWidth NOTIFY
|
||||||
timelineMaxWidthChanged)
|
timelineMaxWidthChanged)
|
||||||
|
Q_PROPERTY(
|
||||||
|
int roomListWidth READ roomListWidth WRITE setRoomListWidth NOTIFY roomListWidthChanged)
|
||||||
|
Q_PROPERTY(int communityListWidth READ communityListWidth WRITE setCommunityListWidth NOTIFY
|
||||||
|
communityListWidthChanged)
|
||||||
Q_PROPERTY(bool mobileMode READ mobileMode WRITE setMobileMode NOTIFY mobileModeChanged)
|
Q_PROPERTY(bool mobileMode READ mobileMode WRITE setMobileMode NOTIFY mobileModeChanged)
|
||||||
Q_PROPERTY(double fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
|
Q_PROPERTY(double fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
|
||||||
Q_PROPERTY(QString font READ font WRITE setFontFamily NOTIFY fontChanged)
|
Q_PROPERTY(QString font READ font WRITE setFontFamily NOTIFY fontChanged)
|
||||||
|
@ -129,6 +133,8 @@ public:
|
||||||
void setSortByImportance(bool state);
|
void setSortByImportance(bool state);
|
||||||
void setButtonsInTimeline(bool state);
|
void setButtonsInTimeline(bool state);
|
||||||
void setTimelineMaxWidth(int state);
|
void setTimelineMaxWidth(int state);
|
||||||
|
void setCommunityListWidth(int state);
|
||||||
|
void setRoomListWidth(int state);
|
||||||
void setDesktopNotifications(bool state);
|
void setDesktopNotifications(bool state);
|
||||||
void setAlertOnNotification(bool state);
|
void setAlertOnNotification(bool state);
|
||||||
void setAvatarCircles(bool state);
|
void setAvatarCircles(bool state);
|
||||||
|
@ -178,6 +184,8 @@ public:
|
||||||
return hasDesktopNotifications() || hasAlertOnNotification();
|
return hasDesktopNotifications() || hasAlertOnNotification();
|
||||||
}
|
}
|
||||||
int timelineMaxWidth() const { return timelineMaxWidth_; }
|
int timelineMaxWidth() const { return timelineMaxWidth_; }
|
||||||
|
int communityListWidth() const { return communityListWidth_; }
|
||||||
|
int roomListWidth() const { return roomListWidth_; }
|
||||||
double fontSize() const { return baseFontSize_; }
|
double fontSize() const { return baseFontSize_; }
|
||||||
QString font() const { return font_; }
|
QString font() const { return font_; }
|
||||||
QString emojiFont() const
|
QString emojiFont() const
|
||||||
|
@ -227,6 +235,8 @@ signals:
|
||||||
void privacyScreenChanged(bool state);
|
void privacyScreenChanged(bool state);
|
||||||
void privacyScreenTimeoutChanged(int state);
|
void privacyScreenTimeoutChanged(int state);
|
||||||
void timelineMaxWidthChanged(int state);
|
void timelineMaxWidthChanged(int state);
|
||||||
|
void roomListWidthChanged(int state);
|
||||||
|
void communityListWidthChanged(int state);
|
||||||
void mobileModeChanged(bool mode);
|
void mobileModeChanged(bool mode);
|
||||||
void fontSizeChanged(double state);
|
void fontSizeChanged(double state);
|
||||||
void fontChanged(QString state);
|
void fontChanged(QString state);
|
||||||
|
@ -276,6 +286,8 @@ private:
|
||||||
bool shareKeysWithTrustedUsers_;
|
bool shareKeysWithTrustedUsers_;
|
||||||
bool mobileMode_;
|
bool mobileMode_;
|
||||||
int timelineMaxWidth_;
|
int timelineMaxWidth_;
|
||||||
|
int roomListWidth_;
|
||||||
|
int communityListWidth_;
|
||||||
double baseFontSize_;
|
double baseFontSize_;
|
||||||
QString font_;
|
QString font_;
|
||||||
QString emojiFont_;
|
QString emojiFont_;
|
||||||
|
|
Loading…
Reference in a new issue