If the user wants to automatically launch NeoChat when the system starts up, the user may also want to minimize the window to system tray on startup. So a new option named "Minimize to system tray on startup" is added. The option is only visible on desktop platforms, and is only enabled when "Close to system tray" is checked. In order to restore window geometry for the first time the user opens the window if the option is checked, 1. a new function named `restoreWindowGeometry` is added, and `restoreWindowGeometryConnections` will be enabled if the option is checked, and will be disabled after the window debuts. 2. `saveWindowGeometryConnections` will be enabled if the option is not checked, and will be disabled if checked and enabled after the window debuts.
90 lines
3.3 KiB
QML
90 lines
3.3 KiB
QML
// SPDX-FileCopyrightText: 2020 Tobias Fella <fella@posteo.de>
|
|
// SPDX-FileCopyrightText: 2021 Carl Schwan <carl@carlschwan.eu>
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
import QtQuick 2.15
|
|
import QtQuick.Controls 2.15 as QQC2
|
|
import QtQuick.Layouts 1.15
|
|
|
|
import org.kde.kirigami 2.15 as Kirigami
|
|
|
|
import org.kde.neochat 1.0
|
|
|
|
Kirigami.ScrollablePage {
|
|
title: i18nc('@title:window', 'General')
|
|
ColumnLayout {
|
|
Kirigami.FormLayout {
|
|
QQC2.CheckBox {
|
|
Kirigami.FormData.label: i18n("General settings:")
|
|
text: i18n("Close to system tray")
|
|
checked: Config.systemTray
|
|
visible: Controller.supportSystemTray
|
|
enabled: !Config.isSystemTrayImmutable
|
|
onToggled: {
|
|
Config.systemTray = checked
|
|
Config.save()
|
|
}
|
|
}
|
|
QQC2.CheckBox {
|
|
text: i18n("Minimize to system tray on startup")
|
|
checked: Config.minimizeToSystemTrayOnStartup
|
|
visible: Controller.supportSystemTray && !Kirigami.Settings.isMobile
|
|
enabled: Config.systemTray && !Config.isMinimizeToSystemTrayOnStartupImmutable
|
|
onToggled: {
|
|
Config.minimizeToSystemTrayOnStartup = checked
|
|
Config.save()
|
|
}
|
|
}
|
|
QQC2.CheckBox {
|
|
// TODO: When there are enough notification and timeline event
|
|
// settings, make 2 separate groups with FormData labels.
|
|
Kirigami.FormData.label: i18n("Notifications and events:")
|
|
text: i18n("Show notifications")
|
|
checked: Config.showNotifications
|
|
enabled: !Config.isShowNotificationsImmutable
|
|
onToggled: {
|
|
Config.showNotifications = checked
|
|
Config.save()
|
|
}
|
|
}
|
|
QQC2.CheckBox {
|
|
text: i18n("Show leave and join events")
|
|
checked: Config.showLeaveJoinEvent
|
|
enabled: !Config.isShowLeaveJoinEventImmutable
|
|
onToggled: {
|
|
Config.showLeaveJoinEvent = checked
|
|
Config.save()
|
|
}
|
|
}
|
|
QQC2.RadioButton {
|
|
Kirigami.FormData.label: i18n("Rooms and private chats:")
|
|
text: i18n("Separated")
|
|
checked: !Config.mergeRoomList
|
|
enabled: !Config.isMergeRoomListImmutable
|
|
onToggled: {
|
|
Config.mergeRoomList = false
|
|
Config.save()
|
|
}
|
|
}
|
|
QQC2.RadioButton {
|
|
text: i18n("Intermixed")
|
|
checked: Config.mergeRoomList
|
|
enabled: !Config.isMergeRoomListImmutable
|
|
onToggled: {
|
|
Config.mergeRoomList = true
|
|
Config.save()
|
|
}
|
|
}
|
|
QQC2.CheckBox {
|
|
text: i18n("Use s/text/replacement syntax to edit your last message")
|
|
checked: Config.allowQuickEdit
|
|
enabled: !Config.isAllowQuickEditImmutable
|
|
onToggled: {
|
|
Config.allowQuickEdit = checked
|
|
Config.save()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|