merge master
This commit is contained in:
commit
4fb1f62522
|
@ -4,7 +4,6 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "fonts/Twemoji.js" as T
|
|
||||||
import "theme"
|
import "theme"
|
||||||
import "fonts"
|
import "fonts"
|
||||||
|
|
||||||
|
|
149
EmojiDrawer.qml
149
EmojiDrawer.qml
|
@ -14,12 +14,18 @@ Item {
|
||||||
id: root
|
id: root
|
||||||
implicitHeight: 0
|
implicitHeight: 0
|
||||||
height: implicitHeight
|
height: implicitHeight
|
||||||
property int size: 24
|
property int size: 32
|
||||||
property int requestedHeight: size * 8
|
property int requestedHeight: size * 8
|
||||||
property string morph: "clw"
|
property string morph: "clw"
|
||||||
property string color: "v1"
|
property string color: "v1"
|
||||||
property bool narrowMode: width < (txtSearch.width + root.size * 14 + btnX.width)
|
// can't bind to the width of the category bar when narrow=true, so we have to calculate it ourselves
|
||||||
property string catimgpath: gcd.assetPath + "emojidrawer/" + (true ? "lightmode_" : "darkmode_")
|
// narrowMode when (width of emoji drawer) < (category icon size + padding)
|
||||||
|
// * (number of categories, minus one which is a VLine)
|
||||||
|
// - padding (no spacing at the end)
|
||||||
|
// + 2 * (left/right margin size)
|
||||||
|
property bool narrowMode: width < (root.size + categoryRow.spacing) * (categoryRow.children.length - 1) - categoryRow.spacing + categoryContainer.anchors.margins * 2
|
||||||
|
property bool searchMode: false
|
||||||
|
property string catimgpath: gcd.assetPath + "emojidrawer/" + (gcd.theme != "dark" ? "lightmode_" : "darkmode_")
|
||||||
|
|
||||||
signal picked(string shortcode)
|
signal picked(string shortcode)
|
||||||
signal slideopen()
|
signal slideopen()
|
||||||
|
@ -28,6 +34,7 @@ Item {
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: Theme.backgroundPaneColor
|
color: Theme.backgroundPaneColor
|
||||||
|
border.color: Theme.dividerColor
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,34 +54,60 @@ Item {
|
||||||
duration: 400;
|
duration: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
|
||||||
id: btnX
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.right: parent.right
|
|
||||||
text: "x"
|
|
||||||
|
|
||||||
onClicked: animClose.start()
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
id: categoryContainer
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
anchors.margins: 10
|
||||||
|
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
TextField {
|
id: categoryRow
|
||||||
id: txtSearch
|
spacing: 10
|
||||||
//: Search...
|
|
||||||
placeholderText: qsTr("search")
|
Row {
|
||||||
onTextChanged: {
|
ImageButton {
|
||||||
if (text == "") emojiModel.model = folder_expressions
|
tooltip: qsTr("search")
|
||||||
else emojiModel.model = folder_search
|
source: gcd.assetPath + "core/search-24px.webp"
|
||||||
emojiModel.updatefilters()
|
size: root.size
|
||||||
}
|
color: root.searchMode ? Theme.dividerColor : "transparent"
|
||||||
|
onClicked: {
|
||||||
|
root.searchMode = !root.searchMode
|
||||||
|
if (!root.searchMode) txtSearch.text = ""
|
||||||
|
else txtSearch.focus = true
|
||||||
|
}
|
||||||
|
imgSrc.visible: false
|
||||||
|
|
||||||
|
ColorOverlay {
|
||||||
|
color: root.searchMode ? Theme.backgroundMainColor : Theme.dividerColor
|
||||||
|
anchors.fill: parent.imgSrc
|
||||||
|
source: parent.imgSrc
|
||||||
|
antialiasing: true
|
||||||
|
smooth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: txtSearch
|
||||||
|
visible: root.searchMode
|
||||||
|
implicitWidth: 200
|
||||||
|
implicitHeight: root.size
|
||||||
|
//: Search...
|
||||||
|
placeholderText: qsTr("search")
|
||||||
|
onTextChanged: {
|
||||||
|
if (text == "") emojiModel.model = folder_expressions
|
||||||
|
else emojiModel.model = folder_search
|
||||||
|
emojiModel.updatefilters()
|
||||||
|
}
|
||||||
|
font.pixelSize: root.size * 0.5
|
||||||
|
background: Rectangle {
|
||||||
|
color: Theme.dividerColor
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageButton {
|
ImageButton {
|
||||||
id: btnEmojiExpressionsGroup
|
id: btnEmojiExpressionsGroup
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Expressions
|
//: Expressions
|
||||||
tooltip: qsTr("emojicat-expressions")
|
tooltip: qsTr("emojicat-expressions")
|
||||||
source: catimgpath + "big_smile.webp"
|
source: catimgpath + "big_smile.webp"
|
||||||
|
@ -83,7 +116,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Activities
|
//: Activities
|
||||||
tooltip: qsTr("emojicat-activities")
|
tooltip: qsTr("emojicat-activities")
|
||||||
source: catimgpath + "volleyball.webp"
|
source: catimgpath + "volleyball.webp"
|
||||||
|
@ -91,7 +124,7 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_activities_clothing
|
onClicked: emojiModel.model = folder_activities_clothing
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Food, drink & herbs
|
//: Food, drink & herbs
|
||||||
tooltip: qsTr("emojicat-food")
|
tooltip: qsTr("emojicat-food")
|
||||||
source: catimgpath + "red_apple.webp"
|
source: catimgpath + "red_apple.webp"
|
||||||
|
@ -99,7 +132,7 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_food_drink_herbs
|
onClicked: emojiModel.model = folder_food_drink_herbs
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Gender, relationships & sexuality
|
//: Gender, relationships & sexuality
|
||||||
tooltip: qsTr("emojicat-gender")
|
tooltip: qsTr("emojicat-gender")
|
||||||
size: root.size
|
size: root.size
|
||||||
|
@ -107,7 +140,7 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_gsr
|
onClicked: emojiModel.model = folder_gsr
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Nature and effects
|
//: Nature and effects
|
||||||
tooltip: qsTr("emojicat-nature")
|
tooltip: qsTr("emojicat-nature")
|
||||||
source: catimgpath + "crescent.webp"
|
source: catimgpath + "crescent.webp"
|
||||||
|
@ -115,15 +148,15 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_nature
|
onClicked: emojiModel.model = folder_nature
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Objects
|
//: Objects
|
||||||
tooltip: qsTr("emojicat-objects")
|
tooltip: qsTr("emojicat-objects")
|
||||||
source: catimgpath + "ligh_bulb.webp"
|
source: catimgpath + "light_bulb.webp"
|
||||||
size: root.size
|
size: root.size
|
||||||
onClicked: emojiModel.model = folder_objects
|
onClicked: emojiModel.model = folder_objects
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: People and animals
|
//: People and animals
|
||||||
tooltip: qsTr("emojicat-people")
|
tooltip: qsTr("emojicat-people")
|
||||||
source: catimgpath + "bear.webp"
|
source: catimgpath + "bear.webp"
|
||||||
|
@ -131,7 +164,7 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_people
|
onClicked: emojiModel.model = folder_people
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Symbols
|
//: Symbols
|
||||||
tooltip: qsTr("emojicat-symbols")
|
tooltip: qsTr("emojicat-symbols")
|
||||||
source: catimgpath + "pentacle.webp"
|
source: catimgpath + "pentacle.webp"
|
||||||
|
@ -139,7 +172,7 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_symbols
|
onClicked: emojiModel.model = folder_symbols
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Travel & places
|
//: Travel & places
|
||||||
tooltip: qsTr("emojicat-travel")
|
tooltip: qsTr("emojicat-travel")
|
||||||
source: catimgpath + "airplane.webp"
|
source: catimgpath + "airplane.webp"
|
||||||
|
@ -147,25 +180,24 @@ Item {
|
||||||
onClicked: emojiModel.model = folder_travel_places
|
onClicked: emojiModel.model = folder_travel_places
|
||||||
}
|
}
|
||||||
ImageButton {
|
ImageButton {
|
||||||
visible: !root.narrowMode
|
visible: !root.narrowMode && !root.searchMode
|
||||||
//: Miscellaneous
|
//: Miscellaneous
|
||||||
tooltip: qsTr("emojicat-misc")
|
tooltip: qsTr("emojicat-misc")
|
||||||
source: catimgpath + "hash.webp"
|
source: catimgpath + "hash.webp"
|
||||||
size: root.size
|
size: root.size
|
||||||
onClicked: emojiModel.model = folder_utils
|
onClicked: emojiModel.model = folder_utils
|
||||||
}
|
}
|
||||||
ImageButton {
|
|
||||||
visible: !root.narrowMode
|
Rectangle {
|
||||||
id: btnUndefinedGroup
|
width: 2
|
||||||
// (no tooltip; this is a catchall group meant to detect unclassified emoji during development)
|
height: root.size * 0.8
|
||||||
//TODO: remove this category upon finalizing the Emoji Drawer
|
color: Theme.dividerColor
|
||||||
source: gcd.assetPath + "mutstd/undefined_character.webp"
|
visible: !root.narrowMode && !root.searchMode
|
||||||
size: root.size
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
onClicked: emojiModel.model = folder_other
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
visible: root.narrowMode
|
visible: root.narrowMode && !root.searchMode
|
||||||
height: root.size
|
height: root.size
|
||||||
width: root.size
|
width: root.size
|
||||||
|
|
||||||
|
@ -175,17 +207,16 @@ Item {
|
||||||
source: cats[index].source
|
source: cats[index].source
|
||||||
property int index: 0
|
property int index: 0
|
||||||
property var cats: [
|
property var cats: [
|
||||||
{source: gcd.assetPath + "mutstd/smile.webp", model: folder_expressions},
|
{source: catimgpath + "big_smile.webp", model: folder_expressions},
|
||||||
{source: gcd.assetPath + "mutstd/artist_r1.webp", model: folder_activities_clothing},
|
{source: catimgpath + "volleyball.webp", model: folder_activities_clothing},
|
||||||
{source: gcd.assetPath + "mutstd/red_apple.webp", model: folder_food_drink_herbs},
|
{source: catimgpath + "red_apple.webp", model: folder_food_drink_herbs},
|
||||||
{source: gcd.assetPath + "mutstd/pride_100.webp", model: folder_gsr},
|
{source: catimgpath + "transgender_symbol.webp", model: folder_gsr},
|
||||||
{source: gcd.assetPath + "mutstd/sun_behind_small_cloud.webp", model: folder_nature},
|
{source: catimgpath + "crescent.webp", model: folder_nature},
|
||||||
{source: gcd.assetPath + "mutstd/crystal_ball.webp", model: folder_objects},
|
{source: catimgpath + "light_bulb.webp", model: folder_objects},
|
||||||
{source: gcd.assetPath + "mutstd/crow.webp", model: folder_people},
|
{source: catimgpath + "bear.webp", model: folder_people},
|
||||||
{source: gcd.assetPath + "mutstd/purple_heart.webp", model: folder_symbols},
|
{source: catimgpath + "pentacle.webp", model: folder_symbols},
|
||||||
{source: gcd.assetPath + "mutstd/airplane.webp", model: folder_travel_places},
|
{source: catimgpath + "airplane.webp", model: folder_travel_places},
|
||||||
{source: gcd.assetPath + "mutstd/hash_char.webp", model: folder_utils},
|
{source: catimgpath + "hash.webp", model: folder_utils}
|
||||||
{source: gcd.assetPath + "mutstd/undefined_character.webp", model: folder_other}
|
|
||||||
]
|
]
|
||||||
height: root.size * (maCatRot.pressed ? 0.8 : 1.0)
|
height: root.size * (maCatRot.pressed ? 0.8 : 1.0)
|
||||||
width: root.size * (maCatRot.pressed ? 0.8 : 1.0)
|
width: root.size * (maCatRot.pressed ? 0.8 : 1.0)
|
||||||
|
@ -285,8 +316,8 @@ Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
height: root.size * 3
|
height: root.size * 3
|
||||||
cellWidth: root.size
|
cellWidth: root.size * 1.2
|
||||||
cellHeight: root.size
|
cellHeight: root.size * 1.2
|
||||||
clip: true
|
clip: true
|
||||||
ScrollBar.vertical: ScrollBar {}
|
ScrollBar.vertical: ScrollBar {}
|
||||||
maximumFlickVelocity: 1250
|
maximumFlickVelocity: 1250
|
||||||
|
@ -307,7 +338,6 @@ Item {
|
||||||
ListModel { id: folder_symbols }
|
ListModel { id: folder_symbols }
|
||||||
ListModel { id: folder_travel_places }
|
ListModel { id: folder_travel_places }
|
||||||
ListModel { id: folder_utils }
|
ListModel { id: folder_utils }
|
||||||
ListModel { id: folder_other }
|
|
||||||
ListModel { id: folder_search }
|
ListModel { id: folder_search }
|
||||||
|
|
||||||
DelegateModel {
|
DelegateModel {
|
||||||
|
@ -315,14 +345,14 @@ Item {
|
||||||
model: folder_expressions
|
model: folder_expressions
|
||||||
|
|
||||||
delegate: Item {
|
delegate: Item {
|
||||||
width: root.size
|
width: root.size * 1.2
|
||||||
height: root.size
|
height: root.size * 1.2
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: img
|
id: img
|
||||||
//source: "file://" + gcd.binaryPath + "/assets/mutstd/" + code + ".webp"
|
//source: "file://" + gcd.binaryPath + "/assets/mutstd/" + code + ".webp"
|
||||||
source: gcd.assetPath + "mutstd/" + code + ".webp"
|
source: gcd.assetPath + "mutstd/" + code + ".webp"
|
||||||
width: root.size * (mouseArea.pressed ? 0.7 : 0.8)
|
width: root.size * (mouseArea.pressed ? 0.9 : 1)
|
||||||
height: width
|
height: width
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
property string shortcode: code
|
property string shortcode: code
|
||||||
|
@ -353,7 +383,6 @@ Item {
|
||||||
folder_symbols.clear()
|
folder_symbols.clear()
|
||||||
folder_travel_places.clear()
|
folder_travel_places.clear()
|
||||||
folder_utils.clear()
|
folder_utils.clear()
|
||||||
folder_other.clear()
|
|
||||||
folder_search.clear()
|
folder_search.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,7 +400,7 @@ Item {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var model = folder_other
|
var model = folder_expressions
|
||||||
if (txtSearch.text == "") {
|
if (txtSearch.text == "") {
|
||||||
switch(Mutant.standard.manifest[i].cat) {
|
switch(Mutant.standard.manifest[i].cat) {
|
||||||
case "activities_clothing": model = folder_activities_clothing; break;
|
case "activities_clothing": model = folder_activities_clothing; break;
|
||||||
|
|
3
Icon.qml
3
Icon.qml
|
@ -4,7 +4,6 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "fonts/Twemoji.js" as T
|
|
||||||
import "." as Widgets
|
import "." as Widgets
|
||||||
import "theme"
|
import "theme"
|
||||||
|
|
||||||
|
@ -21,6 +20,8 @@ Rectangle {
|
||||||
property alias iconColor: iconColorOverlay.color
|
property alias iconColor: iconColorOverlay.color
|
||||||
|
|
||||||
property alias source: srcImg.source
|
property alias source: srcImg.source
|
||||||
|
property alias sourceWidth: srcImg.sourceSize.width
|
||||||
|
property alias sourceHeight: srcImg.sourceSize.height
|
||||||
|
|
||||||
property real rotationAngle: 0.0
|
property real rotationAngle: 0.0
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,8 @@ Item {
|
||||||
property alias badgeColor: badge.color
|
property alias badgeColor: badge.color
|
||||||
|
|
||||||
property int size: Theme.contactPortraitSize
|
property int size: Theme.contactPortraitSize
|
||||||
property real logscale: 4 * Math.log10(gcd.themeScale + 1)
|
property int baseWidth: size * gcd.themeScale
|
||||||
property int baseWidth: size * logscale
|
height: size * gcd.themeScale
|
||||||
height: size * logscale
|
|
||||||
|
|
||||||
property alias portraitBorderColor: mainImage.color
|
property alias portraitBorderColor: mainImage.color
|
||||||
property alias portraitColor: imageInner.color
|
property alias portraitColor: imageInner.color
|
||||||
|
|
|
@ -112,6 +112,11 @@ Item {
|
||||||
onExited: {
|
onExited: {
|
||||||
isHover = false
|
isHover = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onCanceled: {
|
||||||
|
isHover = false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections { // UPDATE UNREAD MESSAGES COUNTER
|
Connections { // UPDATE UNREAD MESSAGES COUNTER
|
||||||
|
|
|
@ -3,6 +3,7 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
|
import "theme"
|
||||||
|
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
|
@ -10,7 +11,7 @@ GridLayout {
|
||||||
|
|
||||||
// have children ... control weather to stack or row them
|
// have children ... control weather to stack or row them
|
||||||
// n * minWidth determin
|
// n * minWidth determin
|
||||||
property int minCellWidth: 500
|
property int minCellWidth: Theme.sidePaneMinSize * gcd.themeScale
|
||||||
|
|
||||||
|
|
||||||
onWidthChanged: resizeCheck()
|
onWidthChanged: resizeCheck()
|
||||||
|
|
|
@ -10,8 +10,8 @@ import "../const"
|
||||||
|
|
||||||
|
|
||||||
T.ScrollBar {
|
T.ScrollBar {
|
||||||
palette.dark: Theme.defaultButtonColor
|
palette.dark: Theme.scrollbarDefaultColor
|
||||||
palette.mid: Theme.dividerColor
|
palette.mid: Theme.scrollbarActiveColor
|
||||||
|
|
||||||
id: control
|
id: control
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ T.ScrollBar {
|
||||||
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
||||||
implicitContentHeight + topPadding + bottomPadding)
|
implicitContentHeight + topPadding + bottomPadding)
|
||||||
|
|
||||||
|
width: 10
|
||||||
padding: 2
|
padding: 2
|
||||||
visible: control.policy !== T.ScrollBar.AlwaysOff && control.size < 1.0
|
visible: control.policy !== T.ScrollBar.AlwaysOff && control.size < 1.0
|
||||||
|
|
||||||
|
@ -28,7 +29,7 @@ T.ScrollBar {
|
||||||
implicitHeight: control.interactive ? 6 : 2
|
implicitHeight: control.interactive ? 6 : 2
|
||||||
|
|
||||||
radius: width / 2
|
radius: width / 2
|
||||||
color: control.pressed ? control.palette.dark : control.palette.mid
|
color: control.pressed ? control.palette.mid : control.palette.dark
|
||||||
opacity: 1.0
|
opacity: 1.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "fonts/Twemoji.js" as T
|
|
||||||
import "." as Widgets
|
import "." as Widgets
|
||||||
import "theme"
|
import "theme"
|
||||||
import "../opaque/fonts"
|
import "../opaque/fonts"
|
||||||
|
|
|
@ -7,13 +7,21 @@ Item {
|
||||||
property alias source: img.source
|
property alias source: img.source
|
||||||
property int size: 24
|
property int size: 24
|
||||||
property string tooltip: ""
|
property string tooltip: ""
|
||||||
|
property alias color: bgRect.color
|
||||||
width: size
|
width: size
|
||||||
height: size
|
height: size
|
||||||
signal clicked()
|
signal clicked()
|
||||||
|
property alias imgSrc: img
|
||||||
|
|
||||||
ToolTip.visible: tooltip != "" && ma.containsMouse
|
ToolTip.visible: tooltip != "" && ma.containsMouse
|
||||||
ToolTip.text: tooltip
|
ToolTip.text: tooltip
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: bgRect
|
||||||
|
anchors.fill: parent
|
||||||
|
color: "transparent"
|
||||||
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: img
|
id: img
|
||||||
width: root.size * (ma.pressed ? 0.5 : 0.8)
|
width: root.size * (ma.pressed ? 0.5 : 0.8)
|
||||||
|
|
File diff suppressed because one or more lines are too long
568
fonts/Twemoji.js
568
fonts/Twemoji.js
File diff suppressed because one or more lines are too long
|
@ -38,6 +38,9 @@ ThemeType {
|
||||||
textfieldButtonColor: purple
|
textfieldButtonColor: purple
|
||||||
textfieldButtonTextColor: darkGreyPurple
|
textfieldButtonTextColor: darkGreyPurple
|
||||||
|
|
||||||
|
scrollbarDefaultColor: purple
|
||||||
|
scrollbarActiveColor: hotPink
|
||||||
|
|
||||||
portraitOnlineBorderColor: whitePurple
|
portraitOnlineBorderColor: whitePurple
|
||||||
portraitOnlineBackgroundColor: whitePurple
|
portraitOnlineBackgroundColor: whitePurple
|
||||||
portraitOnlineTextColor: whitePurple
|
portraitOnlineTextColor: whitePurple
|
||||||
|
|
|
@ -39,6 +39,9 @@ ThemeType {
|
||||||
textfieldButtonColor: hotPink
|
textfieldButtonColor: hotPink
|
||||||
textfieldButtonTextColor: whitePurple
|
textfieldButtonTextColor: whitePurple
|
||||||
|
|
||||||
|
scrollbarDefaultColor: darkPurple
|
||||||
|
scrollbarActiveColor: hotPink
|
||||||
|
|
||||||
portraitOnlineBorderColor: darkPurple
|
portraitOnlineBorderColor: darkPurple
|
||||||
portraitOnlineBackgroundColor: darkPurple
|
portraitOnlineBackgroundColor: darkPurple
|
||||||
portraitOnlineTextColor: darkPurple
|
portraitOnlineTextColor: darkPurple
|
||||||
|
|
|
@ -90,6 +90,9 @@ Item {
|
||||||
readonly property color messageStatusAlertColor: theme.messageStatusAlertColor
|
readonly property color messageStatusAlertColor: theme.messageStatusAlertColor
|
||||||
readonly property color messageStatusAlertTextColor: theme.messageStatusAlertTextColor
|
readonly property color messageStatusAlertTextColor: theme.messageStatusAlertTextColor
|
||||||
|
|
||||||
|
readonly property color scrollbarDefaultColor: theme.scrollbarDefaultColor
|
||||||
|
readonly property color scrollbarActiveColor: theme.scrollbarActiveColor
|
||||||
|
|
||||||
readonly property int headerSize: 50
|
readonly property int headerSize: 50
|
||||||
readonly property int subHeaderSize: 35
|
readonly property int subHeaderSize: 35
|
||||||
readonly property int usernameSize: 30
|
readonly property int usernameSize: 30
|
||||||
|
@ -103,7 +106,7 @@ Item {
|
||||||
readonly property int contactPortraitSize: 75
|
readonly property int contactPortraitSize: 75
|
||||||
|
|
||||||
readonly property int sidePaneMinSize: 700
|
readonly property int sidePaneMinSize: 700
|
||||||
readonly property int doublePaneMinSize: 1000
|
readonly property int doublePaneMinSize: 1400
|
||||||
|
|
||||||
property ThemeType dark: CwtchDark{}
|
property ThemeType dark: CwtchDark{}
|
||||||
property ThemeType light: CwtchLight{}
|
property ThemeType light: CwtchLight{}
|
||||||
|
|
|
@ -28,6 +28,9 @@ QtObject {
|
||||||
property color textfieldButtonColor: "red"
|
property color textfieldButtonColor: "red"
|
||||||
property color textfieldButtonTextColor: "red"
|
property color textfieldButtonTextColor: "red"
|
||||||
|
|
||||||
|
property color scrollbarDefaultColor: "red"
|
||||||
|
property color scrollbarActiveColor: "red"
|
||||||
|
|
||||||
property color portraitOnlineBorderColor: "red"
|
property color portraitOnlineBorderColor: "red"
|
||||||
property color portraitOnlineBackgroundColor: "red"
|
property color portraitOnlineBackgroundColor: "red"
|
||||||
property color portraitOnlineTextColor: "red"
|
property color portraitOnlineTextColor: "red"
|
||||||
|
|
Loading…
Reference in New Issue