Skip to content

Commit f06f8be

Browse files
committed
Adding cache for emojis (for fast loading of icons)
1 parent fa9f227 commit f06f8be

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

src/settings/_default.settings

+7
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@
3838
"category": "General",
3939
"setting": "unique_install_id"
4040
},
41+
{
42+
"value": "smileys-emotion",
43+
"title": "",
44+
"type": "hidden",
45+
"category": "General",
46+
"setting": "emoji_group_filter"
47+
},
4148
{
4249
"max": 10000,
4350
"title": "Image Length (seconds)",

src/windows/models/emoji_model.py

+10
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from classes import info
3636
from classes.logger import log
3737
from classes.app import get_app
38+
from classes.settings import get_settings
3839

3940
import json
4041

@@ -211,11 +212,20 @@ def update_model(self, clear=True):
211212
self.model.appendRow(row)
212213
self.model_paths[path] = path
213214

215+
# Get default emoji filter group
216+
s = get_settings()
217+
default_type = s.get('emoji_group_filter') or 'smileys-emotion'
218+
214219
# Loop through emoji groups, and populate emoji filter drop-down
215220
get_app().window.emojiFilterGroup.clear()
216221
get_app().window.emojiFilterGroup.addItem(_("Show All"), "Show All")
222+
dropdown_index = 1
217223
for emoji_type in sorted(emoji_groups.keys()):
218224
get_app().window.emojiFilterGroup.addItem(_(emoji_type.capitalize()), emoji_type)
225+
if emoji_type == default_type:
226+
# Initialize emoji filter group to settings
227+
get_app().window.emojiFilterGroup.setCurrentIndex(dropdown_index)
228+
dropdown_index += 1
219229

220230
def __init__(self, *args):
221231

src/windows/views/emojis_listview.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
"""
2727

2828
import os
29-
from PyQt5.QtCore import QMimeData, QSize, QPoint, Qt, pyqtSlot, QSortFilterProxyModel, QRegExp
29+
from PyQt5.QtCore import QMimeData, QSize, QPoint, Qt, pyqtSlot, QRegExp
3030
from PyQt5.QtGui import *
31-
from PyQt5.QtWidgets import QListView, QMenu
31+
from PyQt5.QtWidgets import QListView
3232

3333
import openshot # Python module for libopenshot (required video editing module installed separately)
3434
from classes.query import File
3535
from classes.app import get_app
36-
from windows.models.emoji_model import EmojisModel, EmojiFilterProxyModel
36+
from classes.settings import get_settings
3737
from classes.logger import log
3838
import json
3939

@@ -113,6 +113,13 @@ def add_file(self, filepath):
113113
def filter_changed(self):
114114
self.refresh_view()
115115

116+
# Save current emoji filter to settings
117+
s = get_settings()
118+
setting_emoji_group = s.get('emoji_group_filter') or 'smileys-emotion'
119+
current_emoji_group = get_app().window.emojiFilterGroup.currentData()
120+
if setting_emoji_group != current_emoji_group:
121+
s.set('emoji_group_filter', current_emoji_group)
122+
116123
def refresh_view(self):
117124
"""Filter transitions with proxy class"""
118125
filter_text = self.win.emojisFilter.text()
@@ -147,6 +154,7 @@ def __init__(self, model):
147154

148155
# Load initial emoji model data
149156
self.emojis_model.update_model()
157+
self.refresh_view()
150158

151159
# setup filter events
152160
app = get_app()

0 commit comments

Comments
 (0)