// This file is part of Friendiqa // https://git.friendi.ca/lubuwest/Friendiqa // Copyright (C) 2017 Marco R. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // In addition, as a special exception, the copyright holders give // permission to link the code of portions of this program with the // OpenSSL library under certain conditions as described in each // individual source file, and distribute linked combinations including // the two. // // You must obey the GNU General Public License in all respects for all // of the code used other than OpenSSL. If you modify file(s) with this // exception, you may extend this exception to your version of the // file(s), but you are not obligated to do so. If you do not wish to do // so, delete this exception statement from your version. If you delete // this exception statement from all source files in the program, then // also delete it here. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . import QtQuick 2.7 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 import "qrc:/js/smiley.js" as Smileyjs import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/genericqml" Rectangle{ id:smileyDialog x: mm width: messageColumn.width-5*mm height:root.height/2 BlueButton{ id:closeButton anchors.top: parent.top anchors.topMargin: 1*mm anchors.right: parent.right anchors.rightMargin: 1*mm text: "\uf057" onClicked:{smileyDialog.visible=false} } TabView{ id:smileyTabView tabPosition: Qt.BottomEdge anchors.top: closeButton.bottom anchors.topMargin: 1*mm width: smileyDialog.width-2*mm height: smileyDialog.height-7*mm currentIndex: 0 style: TabViewStyle { frameOverlap: 1 tab: Rectangle { color: "white" implicitWidth: smileyTabView.width/4-2*mm implicitHeight: 4*mm Text { id: text anchors.centerIn: parent text: styleData.title color: "dark grey" font.pixelSize:2.5*mm font.bold: styleData.selected } } frame: Rectangle { color: "light grey" } tabsAlignment:Qt.AlignHCenter } Tab{ title: qsTr("Unicode") Rectangle{ id: htmlGridTab GridView { id:htmlView anchors.fill: parent cellWidth: 5*mm cellHeight: 5*mm clip: true model: htmlModel delegate: htmlItem } ListModel{ id:htmlModel } Component.onCompleted:{ for (var icon in Smileyjs.html){ htmlModel.append({"emoji":Smileyjs.html[icon]}) } } } } Tab{ title: qsTr("Standard") Rectangle{ id: coreGridTab GridView { id: coreSmileyView anchors.fill: parent cellWidth: 5*mm cellHeight: 5*mm clip: true model: coreSmileyModel delegate: smileyItem } ListModel{ id: coreSmileyModel } Component.onCompleted:{ var smileyarray=Smileyjs.core for (var icon in smileyarray){ coreSmileyModel.append({"emoji":smileyarray[icon]}) } } } } Tab{ title: qsTr("Addon") Rectangle{ id: addonGridTab GridView { id: addonView anchors.fill: parent cellWidth: 5*mm cellHeight: 5*mm clip: true model: addonModel delegate: smileyItem } ListModel{ id: addonModel } Component.onCompleted:{ for (var icon in Smileyjs.addon){ addonModel.append({"emoji":Smileyjs.addon[icon]}) } } } } Tab{ title: qsTr("Adult") Rectangle{ id: adultGridTab GridView { id: adultView anchors.fill: parent cellWidth: 5*mm cellHeight: 5*mm clip: true model: adultModel delegate: smileyItem } ListModel{ id: adultModel } Component.onCompleted:{ for (var icon in Smileyjs.adult){ adultModel.append({"emoji":Smileyjs.adult[icon]}) } } } } } Component{ id:smileyItem AnimatedImage{id:smileyImage width:4.5*mm height: 4.5*mm fillMode:Image.PreserveAspectFit source:emoji.url MouseArea{ anchors.fill: parent onClicked:{ //bodyField.append(emoji.name+" ") bodyField.insert(bodyField.cursorPosition,emoji.name+" "); smileyDialog.visible=false } } } } Component{ id:htmlItem Text{id:smileText width:4.5*mm height: 4.5*mm textFormat:Text.RichText font.pixelSize: 4*mm text: emoji MouseArea{ anchors.fill: parent onClicked:{ //bodyField.append(emoji.name+" ") bodyField.insert(bodyField.cursorPosition,emoji+" "); smileyDialog.visible=false } } } } }