From fc0ed91c74d30e75ac41bdadb9bae79660c0aa5e Mon Sep 17 00:00:00 2001 From: agilob Date: Wed, 8 Oct 2014 16:10:57 +0100 Subject: [PATCH 1/4] preview of emoticons --- widget/form/settings/generalform.cpp | 13 ++++++ widget/form/settings/generalform.h | 1 + widget/form/settings/generalsettings.ui | 56 ++++++++++++++++++++++++- 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/widget/form/settings/generalform.cpp b/widget/form/settings/generalform.cpp index 0df370048..5644f3eaf 100644 --- a/widget/form/settings/generalform.cpp +++ b/widget/form/settings/generalform.cpp @@ -38,6 +38,7 @@ GeneralForm::GeneralForm() : bodyUI->smileyPackBrowser->addItem(entry.first, entry.second); } bodyUI->smileyPackBrowser->setCurrentIndex(bodyUI->smileyPackBrowser->findData(Settings::getInstance().getSmileyPack())); + reloadSmiles(); bodyUI->cbUDPDisabled->setChecked(Settings::getInstance().getForceTCP()); bodyUI->proxyAddr->setText(Settings::getInstance().getProxyAddr()); @@ -89,6 +90,7 @@ void GeneralForm::onSmileyBrowserIndexChanged(int index) { QString filename = bodyUI->smileyPackBrowser->itemData(index).toString(); Settings::getInstance().setSmileyPack(filename); + reloadSmiles(); } void GeneralForm::onUDPUpdated() @@ -119,3 +121,14 @@ void GeneralForm::onUseProxyUpdated() bodyUI->proxyPort->setEnabled(state); Settings::getInstance().setUseProxy(state); } + +void GeneralForm::reloadSmiles() +{ + QString smiles[] = {":)", ";)", ":p", ":O", ":'("}; + int pixSize = 30; + bodyUI->smile1->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[0]).pixmap(pixSize, pixSize)); + bodyUI->smile2->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[1]).pixmap(pixSize, pixSize)); + bodyUI->smile3->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[2]).pixmap(pixSize, pixSize)); + bodyUI->smile4->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[3]).pixmap(pixSize, pixSize)); + bodyUI->smile5->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[4]).pixmap(pixSize, pixSize)); +} diff --git a/widget/form/settings/generalform.h b/widget/form/settings/generalform.h index 224c6ee26..babf08787 100644 --- a/widget/form/settings/generalform.h +++ b/widget/form/settings/generalform.h @@ -45,6 +45,7 @@ private slots: private: Ui::GeneralSettings *bodyUI; + void reloadSmiles(); }; #endif diff --git a/widget/form/settings/generalsettings.ui b/widget/form/settings/generalsettings.ui index e0ffb3ab4..23515cf2e 100644 --- a/widget/form/settings/generalsettings.ui +++ b/widget/form/settings/generalsettings.ui @@ -7,7 +7,7 @@ 0 0 527 - 369 + 397 @@ -72,6 +72,60 @@ + + + + + + :) + + + :) + + + + + + + ;) + + + ;) + + + + + + + :p + + + :p + + + + + + + :O + + + :O + + + + + + + :'( + + + :'( + + + + + From ca3182e281ac1ad6d7f3811c9a6b79dbf637b28e Mon Sep 17 00:00:00 2001 From: agilob Date: Sat, 11 Oct 2014 16:53:20 +0100 Subject: [PATCH 2/4] error handling for missing graphical icons preview of emoticons based on dynamic list of emoticons, not hardcoded anymore --- misc/smileypack.cpp | 16 ++++++++++++---- widget/form/settings/generalform.cpp | 20 +++++++++++++++++++- widget/form/settings/generalsettings.ui | 12 ++++++------ 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/misc/smileypack.cpp b/misc/smileypack.cpp index 57a754c76..f3230c3ea 100644 --- a/misc/smileypack.cpp +++ b/misc/smileypack.cpp @@ -127,12 +127,21 @@ bool SmileyPack::load(const QString& filename) { QString emoticon = stringElement.text(); filenameTable.insert(emoticon, file); - emoticonSet.push_back(emoticon); + cacheSmiley(file); // preload all smileys - + + QPixmap pm; + pm.loadFromData(getCachedSmiley(emoticon), "PNG"); + + if(pm.size().width() > 0) + emoticonSet.push_back(emoticon); + stringElement = stringElement.nextSibling().toElement(); + } - emoticons.push_back(emoticonSet); + + if(emoticonSet.size() > 0) + emoticons.push_back(emoticonSet); } // success! @@ -176,7 +185,6 @@ QIcon SmileyPack::getAsIcon(const QString &key) { QPixmap pm; pm.loadFromData(getCachedSmiley(key), "PNG"); - return QIcon(pm); } diff --git a/widget/form/settings/generalform.cpp b/widget/form/settings/generalform.cpp index 5644f3eaf..d471e9614 100644 --- a/widget/form/settings/generalform.cpp +++ b/widget/form/settings/generalform.cpp @@ -124,11 +124,29 @@ void GeneralForm::onUseProxyUpdated() void GeneralForm::reloadSmiles() { - QString smiles[] = {":)", ";)", ":p", ":O", ":'("}; + QList emoticons = SmileyPack::getInstance().getEmoticons(); + QStringList smiles; + smiles << ":)" << ";)" << ":p" << ":O" << ":'("; //just in case... + + for(int i = 0; i < emoticons.size(); i++) + { + foreach (QString icon, emoticons.at(i)) { + { + smiles.push_front(icon); + } + } + } + int pixSize = 30; bodyUI->smile1->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[0]).pixmap(pixSize, pixSize)); bodyUI->smile2->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[1]).pixmap(pixSize, pixSize)); bodyUI->smile3->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[2]).pixmap(pixSize, pixSize)); bodyUI->smile4->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[3]).pixmap(pixSize, pixSize)); bodyUI->smile5->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[4]).pixmap(pixSize, pixSize)); + + bodyUI->smile1->setToolTip(smiles[0]); + bodyUI->smile2->setToolTip(smiles[1]); + bodyUI->smile3->setToolTip(smiles[2]); + bodyUI->smile4->setToolTip(smiles[3]); + bodyUI->smile5->setToolTip(smiles[4]); } diff --git a/widget/form/settings/generalsettings.ui b/widget/form/settings/generalsettings.ui index 23515cf2e..7086f3afc 100644 --- a/widget/form/settings/generalsettings.ui +++ b/widget/form/settings/generalsettings.ui @@ -7,7 +7,7 @@ 0 0 527 - 397 + 421 @@ -80,7 +80,7 @@ :) - :) + @@ -90,7 +90,7 @@ ;) - ;) + @@ -100,7 +100,7 @@ :p - :p + @@ -110,7 +110,7 @@ :O - :O + @@ -120,7 +120,7 @@ :'( - :'( + From 27e4debb72dc044bc134f749307f4e220719bafb Mon Sep 17 00:00:00 2001 From: agilob Date: Sat, 11 Oct 2014 23:25:22 +0100 Subject: [PATCH 3/4] yup, too many brackets --- widget/form/settings/generalform.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/widget/form/settings/generalform.cpp b/widget/form/settings/generalform.cpp index d471e9614..25269b28b 100644 --- a/widget/form/settings/generalform.cpp +++ b/widget/form/settings/generalform.cpp @@ -130,11 +130,8 @@ void GeneralForm::reloadSmiles() for(int i = 0; i < emoticons.size(); i++) { - foreach (QString icon, emoticons.at(i)) { - { - smiles.push_front(icon); - } - } + foreach (QString icon, emoticons.at(i)) + smiles.push_front(icon); } int pixSize = 30; From db5c115a911fabd678929d0a19766fc0e183f7cb Mon Sep 17 00:00:00 2001 From: agilob Date: Mon, 13 Oct 2014 19:50:54 +0100 Subject: [PATCH 4/4] removed duplicated emoticons --- src/widget/form/settings/generalform.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/widget/form/settings/generalform.cpp b/src/widget/form/settings/generalform.cpp index f05b8ecea..ddf7ac95b 100644 --- a/src/widget/form/settings/generalform.cpp +++ b/src/widget/form/settings/generalform.cpp @@ -126,14 +126,11 @@ void GeneralForm::reloadSmiles() { QList emoticons = SmileyPack::getInstance().getEmoticons(); QStringList smiles; - smiles << ":)" << ";)" << ":p" << ":O" << ":'("; //just in case... - - for(int i = 0; i < emoticons.size(); i++) - { - foreach (QString icon, emoticons.at(i)) - smiles.push_front(icon); - } - + smiles << ":)" << ";)" << ":p" << ":O" << ":["; //just in case... + + for(int i = 0; i < emoticons.size(); i++) + smiles.push_front(emoticons.at(i).first()); + int pixSize = 30; bodyUI->smile1->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[0]).pixmap(pixSize, pixSize)); bodyUI->smile2->setPixmap(SmileyPack::getInstance().getAsIcon(smiles[1]).pixmap(pixSize, pixSize));