diff --git a/global.cpp b/global.cpp index 6a8427a..51d8922 100644 --- a/global.cpp +++ b/global.cpp @@ -3,6 +3,7 @@ #include #include #include +#include Shared::Message::Message(Shared::Message::Type p_type): jFrom(), @@ -281,3 +282,34 @@ QIcon Shared::subscriptionStateIcon(Shared::SubscriptionState ss, bool big) return QIcon::fromTheme(subscriptionStateThemeIcons[ss], QIcon(fallback[ss])); } +QIcon Shared::connectionStateIcon(Shared::ConnectionState cs, bool big) +{ + const std::deque& fallback = QApplication::palette().window().color().lightnessF() > 0.5 ? + big ? + Shared::fallbackConnectionStateThemeIconsDarkBig: + Shared::fallbackConnectionStateThemeIconsDarkSmall: + big ? + Shared::fallbackConnectionStateThemeIconsLightBig: + Shared::fallbackConnectionStateThemeIconsLightSmall; + + return QIcon::fromTheme(connectionStateThemeIcons[cs], QIcon(fallback[cs])); +} + +static const QString ds = ":images/fallback/dark/small/"; +static const QString db = ":images/fallback/dark/big/"; +static const QString ls = ":images/fallback/light/small/"; +static const QString lb = ":images/fallback/light/big/"; + +QIcon Shared::icon(const QString& name, bool big) +{ + std::map>::const_iterator itr = icons.find(name); + if (itr != icons.end()) { + const QString& prefix = QApplication::palette().window().color().lightnessF() > 0.5 ? + big ? db : ds: + big ? lb : ls; + return QIcon::fromTheme(itr->second.first, QIcon(prefix + itr->second.second)); + } else { + qDebug() << "Icon" << name << "not found"; + throw 1; + } +} diff --git a/global.h b/global.h index fdaab1b..f18ea53 100644 --- a/global.h +++ b/global.h @@ -40,7 +40,7 @@ static const SubscriptionState subscriptionStateHighest = unknown; static const SubscriptionState subscriptionStateLowest = none; static const std::deque connectionStateNames = {"Disconnected", "Connecting", "Connected", "Error"}; -static const std::deque connectionStateThemeIcons = {"network-disconnect", "view-refresh", "network-connect", "state-error"}; +static const std::deque connectionStateThemeIcons = {"state-offline", "state-sync", "state-ok", "state-error"}; static const std::deque availabilityThemeIcons = { "user-online", @@ -138,6 +138,13 @@ static const std::deque fallbackSubscriptionStateThemeIconsLightBig = { ":images/fallback/light/big/question.svg" }; +static const std::deque fallbackConnectionStateThemeIconsLightBig = { + ":images/fallback/light/big/state-offline.svg", + ":images/fallback/light/big/state-sync.svg", + ":images/fallback/light/big/state-ok.svg", + ":images/fallback/light/big/state-error.svg" +}; + static const std::deque fallbackAvailabilityThemeIconsLightSmall = { ":images/fallback/light/small/online.svg", ":images/fallback/light/small/away.svg", @@ -156,6 +163,13 @@ static const std::deque fallbackSubscriptionStateThemeIconsLightSmall = ":images/fallback/light/small/question.svg" }; +static const std::deque fallbackConnectionStateThemeIconsLightSmall = { + ":images/fallback/light/small/state-offline.svg", + ":images/fallback/light/small/state-sync.svg", + ":images/fallback/light/small/state-ok.svg", + ":images/fallback/light/small/state-error.svg" +}; + static const std::deque fallbackAvailabilityThemeIconsDarkBig = { ":images/fallback/dark/big/online.svg", ":images/fallback/dark/big/away.svg", @@ -174,6 +188,13 @@ static const std::deque fallbackSubscriptionStateThemeIconsDarkBig = { ":images/fallback/dark/big/question.svg" }; +static const std::deque fallbackConnectionStateThemeIconsDarkBig = { + ":images/fallback/dark/big/state-offline.svg", + ":images/fallback/dark/big/state-sync.svg", + ":images/fallback/dark/big/state-ok.svg", + ":images/fallback/dark/big/state-error.svg" +}; + static const std::deque fallbackAvailabilityThemeIconsDarkSmall = { ":images/fallback/dark/small/online.svg", ":images/fallback/dark/small/away.svg", @@ -192,8 +213,46 @@ static const std::deque fallbackSubscriptionStateThemeIconsDarkSmall = ":images/fallback/dark/small/question.svg" }; +static const std::deque fallbackConnectionStateThemeIconsDarkSmall = { + ":images/fallback/dark/small/state-offline.svg", + ":images/fallback/dark/small/state-sync.svg", + ":images/fallback/dark/small/state-ok.svg", + ":images/fallback/dark/small/state-error.svg" +}; + QIcon availabilityIcon(Availability av, bool big = false); QIcon subscriptionStateIcon(SubscriptionState ss, bool big = false); +QIcon connectionStateIcon(ConnectionState cs, bool big = false); +QIcon icon(const QString& name, bool big = false); + +static const std::map> icons = { + {"user-online", {"user-online", "online"}}, + {"user-away", {"user-away", "away"}}, + {"user-away-extended", {"user-away-extended", "absent"}}, + {"user-busy", {"user-busy", "busy"}}, + {"user-chatty", {"chatty", "chatty"}}, + {"user-invisible", {"user-invisible", "invisible"}}, + {"user-offline", {"offline", "offline"}}, + {"edit-none", {"edit-none", "edit-none"}}, + {"arrow-down-double", {"arrow-down-double", "arrow-down-double"}}, + {"arrow-up-double", {"arrow-up-double", "arrow-up-double"}}, + {"dialog-ok", {"dialog-ok", "dialog-ok"}}, + {"question", {"question", "question"}}, + {"state-offline", {"state-offline", "state-offline"}}, + {"state-sync", {"state-sync", "state-sync"}}, + {"state-ok", {"state-ok", "state-ok"}}, + {"state-error", {"state-error", "state-error"}}, + + {"edit-delete", {"edit-delete", "edit-delete"}}, + {"mail-message", {"mail-message", "mail-message"}}, + {"network-connect", {"network-connect", "network-connect"}}, + {"network-disconnect", {"network-disconnect", "network-disconnect"}}, + {"news-subscribe", {"news-subscribe", "news-subscribe"}}, + {"news-unsubscribe", {"news-unsubscribe", "news-unsubscribe"}}, + {"view-refresh", {"view-refresh", "view-refresh"}}, + {"send", {"document-send", "send"}}, + {"clean", {"edit-clear-all", "clean"}}, +}; }; diff --git a/resources/images/fallback/dark/big/edit-delete.svg b/resources/images/fallback/dark/big/edit-delete.svg new file mode 100644 index 0000000..c9e2f4e --- /dev/null +++ b/resources/images/fallback/dark/big/edit-delete.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/dark/big/mail-message.svg b/resources/images/fallback/dark/big/mail-message.svg new file mode 100644 index 0000000..f66ff27 --- /dev/null +++ b/resources/images/fallback/dark/big/mail-message.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/dark/big/network-connect.svg b/resources/images/fallback/dark/big/network-connect.svg new file mode 100644 index 0000000..e7d2b62 --- /dev/null +++ b/resources/images/fallback/dark/big/network-connect.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/dark/big/network-disconnect.svg b/resources/images/fallback/dark/big/network-disconnect.svg new file mode 100644 index 0000000..bb87f59 --- /dev/null +++ b/resources/images/fallback/dark/big/network-disconnect.svg @@ -0,0 +1,22 @@ + + + + + + + diff --git a/resources/images/fallback/dark/big/news-subscribe.svg b/resources/images/fallback/dark/big/news-subscribe.svg new file mode 100644 index 0000000..ed5e01d --- /dev/null +++ b/resources/images/fallback/dark/big/news-subscribe.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/dark/big/news-unsubscribe.svg b/resources/images/fallback/dark/big/news-unsubscribe.svg new file mode 100644 index 0000000..219442f --- /dev/null +++ b/resources/images/fallback/dark/big/news-unsubscribe.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/dark/big/state-error.svg b/resources/images/fallback/dark/big/state-error.svg new file mode 100644 index 0000000..f1d4489 --- /dev/null +++ b/resources/images/fallback/dark/big/state-error.svg @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/resources/images/fallback/dark/big/state-offline.svg b/resources/images/fallback/dark/big/state-offline.svg new file mode 100644 index 0000000..33af526 --- /dev/null +++ b/resources/images/fallback/dark/big/state-offline.svg @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/resources/images/fallback/dark/big/state-ok.svg b/resources/images/fallback/dark/big/state-ok.svg new file mode 100644 index 0000000..83968b8 --- /dev/null +++ b/resources/images/fallback/dark/big/state-ok.svg @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/resources/images/fallback/dark/big/state-sync.svg b/resources/images/fallback/dark/big/state-sync.svg new file mode 100644 index 0000000..299f07d --- /dev/null +++ b/resources/images/fallback/dark/big/state-sync.svg @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/resources/images/fallback/dark/big/view-refresh.svg b/resources/images/fallback/dark/big/view-refresh.svg new file mode 100644 index 0000000..b887d28 --- /dev/null +++ b/resources/images/fallback/dark/big/view-refresh.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/resources/images/fallback/dark/small/edit-delete.svg b/resources/images/fallback/dark/small/edit-delete.svg new file mode 100644 index 0000000..9dfb2e0 --- /dev/null +++ b/resources/images/fallback/dark/small/edit-delete.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/dark/small/mail-message.svg b/resources/images/fallback/dark/small/mail-message.svg new file mode 100644 index 0000000..49f4419 --- /dev/null +++ b/resources/images/fallback/dark/small/mail-message.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/dark/small/network-connect.svg b/resources/images/fallback/dark/small/network-connect.svg new file mode 100644 index 0000000..73fdf9f --- /dev/null +++ b/resources/images/fallback/dark/small/network-connect.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/dark/small/network-disconnect.svg b/resources/images/fallback/dark/small/network-disconnect.svg new file mode 100644 index 0000000..95caabc --- /dev/null +++ b/resources/images/fallback/dark/small/network-disconnect.svg @@ -0,0 +1,21 @@ + + + + + + + diff --git a/resources/images/fallback/dark/small/news-subscribe.svg b/resources/images/fallback/dark/small/news-subscribe.svg new file mode 100644 index 0000000..3e3ebe9 --- /dev/null +++ b/resources/images/fallback/dark/small/news-subscribe.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/dark/small/news-unsubscribe.svg b/resources/images/fallback/dark/small/news-unsubscribe.svg new file mode 100644 index 0000000..c4e5759 --- /dev/null +++ b/resources/images/fallback/dark/small/news-unsubscribe.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/resources/images/fallback/dark/small/state-error.svg b/resources/images/fallback/dark/small/state-error.svg new file mode 100644 index 0000000..493f2b4 --- /dev/null +++ b/resources/images/fallback/dark/small/state-error.svg @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/resources/images/fallback/dark/small/state-offline.svg b/resources/images/fallback/dark/small/state-offline.svg new file mode 100644 index 0000000..34d6ef8 --- /dev/null +++ b/resources/images/fallback/dark/small/state-offline.svg @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/resources/images/fallback/dark/small/state-ok.svg b/resources/images/fallback/dark/small/state-ok.svg new file mode 100644 index 0000000..378a7e8 --- /dev/null +++ b/resources/images/fallback/dark/small/state-ok.svg @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/resources/images/fallback/dark/small/state-sync.svg b/resources/images/fallback/dark/small/state-sync.svg new file mode 100644 index 0000000..07aea4f --- /dev/null +++ b/resources/images/fallback/dark/small/state-sync.svg @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/resources/images/fallback/dark/small/view-refresh.svg b/resources/images/fallback/dark/small/view-refresh.svg new file mode 100644 index 0000000..d32165e --- /dev/null +++ b/resources/images/fallback/dark/small/view-refresh.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/light/big/edit-delete.svg b/resources/images/fallback/light/big/edit-delete.svg new file mode 100644 index 0000000..c9e2f4e --- /dev/null +++ b/resources/images/fallback/light/big/edit-delete.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/light/big/mail-message.svg b/resources/images/fallback/light/big/mail-message.svg new file mode 100644 index 0000000..7374f7c --- /dev/null +++ b/resources/images/fallback/light/big/mail-message.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/light/big/network-connect.svg b/resources/images/fallback/light/big/network-connect.svg new file mode 100644 index 0000000..20625fd --- /dev/null +++ b/resources/images/fallback/light/big/network-connect.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/light/big/network-disconnect.svg b/resources/images/fallback/light/big/network-disconnect.svg new file mode 100644 index 0000000..ac38590 --- /dev/null +++ b/resources/images/fallback/light/big/network-disconnect.svg @@ -0,0 +1,22 @@ + + + + + + + diff --git a/resources/images/fallback/light/big/news-subscribe.svg b/resources/images/fallback/light/big/news-subscribe.svg new file mode 100644 index 0000000..202a9dd --- /dev/null +++ b/resources/images/fallback/light/big/news-subscribe.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/light/big/news-unsubscribe.svg b/resources/images/fallback/light/big/news-unsubscribe.svg new file mode 100644 index 0000000..219442f --- /dev/null +++ b/resources/images/fallback/light/big/news-unsubscribe.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/light/big/state-error.svg b/resources/images/fallback/light/big/state-error.svg new file mode 100644 index 0000000..452d49e --- /dev/null +++ b/resources/images/fallback/light/big/state-error.svg @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/resources/images/fallback/light/big/state-offline.svg b/resources/images/fallback/light/big/state-offline.svg new file mode 100644 index 0000000..ebc4a46 --- /dev/null +++ b/resources/images/fallback/light/big/state-offline.svg @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/resources/images/fallback/light/big/state-ok.svg b/resources/images/fallback/light/big/state-ok.svg new file mode 100644 index 0000000..3279e53 --- /dev/null +++ b/resources/images/fallback/light/big/state-ok.svg @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/resources/images/fallback/light/big/state-sync.svg b/resources/images/fallback/light/big/state-sync.svg new file mode 100644 index 0000000..2bfd3ba --- /dev/null +++ b/resources/images/fallback/light/big/state-sync.svg @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/resources/images/fallback/light/big/view-refresh.svg b/resources/images/fallback/light/big/view-refresh.svg new file mode 100644 index 0000000..cc01cb2 --- /dev/null +++ b/resources/images/fallback/light/big/view-refresh.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/resources/images/fallback/light/small/edit-delete.svg b/resources/images/fallback/light/small/edit-delete.svg new file mode 100644 index 0000000..9dfb2e0 --- /dev/null +++ b/resources/images/fallback/light/small/edit-delete.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/images/fallback/light/small/mail-message.svg b/resources/images/fallback/light/small/mail-message.svg new file mode 100644 index 0000000..3befb4e --- /dev/null +++ b/resources/images/fallback/light/small/mail-message.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/light/small/network-connect.svg b/resources/images/fallback/light/small/network-connect.svg new file mode 100644 index 0000000..16e25c5 --- /dev/null +++ b/resources/images/fallback/light/small/network-connect.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/light/small/network-disconnect.svg b/resources/images/fallback/light/small/network-disconnect.svg new file mode 100644 index 0000000..5e5cc3b --- /dev/null +++ b/resources/images/fallback/light/small/network-disconnect.svg @@ -0,0 +1,21 @@ + + + + + + + diff --git a/resources/images/fallback/light/small/news-subscribe.svg b/resources/images/fallback/light/small/news-subscribe.svg new file mode 100644 index 0000000..a2ff0c8 --- /dev/null +++ b/resources/images/fallback/light/small/news-subscribe.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/images/fallback/light/small/news-unsubscribe.svg b/resources/images/fallback/light/small/news-unsubscribe.svg new file mode 100644 index 0000000..073ade6 --- /dev/null +++ b/resources/images/fallback/light/small/news-unsubscribe.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/resources/images/fallback/light/small/state-error.svg b/resources/images/fallback/light/small/state-error.svg new file mode 100644 index 0000000..4745eba --- /dev/null +++ b/resources/images/fallback/light/small/state-error.svg @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/resources/images/fallback/light/small/state-offline.svg b/resources/images/fallback/light/small/state-offline.svg new file mode 100644 index 0000000..1e9b4fa --- /dev/null +++ b/resources/images/fallback/light/small/state-offline.svg @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/resources/images/fallback/light/small/state-ok.svg b/resources/images/fallback/light/small/state-ok.svg new file mode 100644 index 0000000..86a9c5d --- /dev/null +++ b/resources/images/fallback/light/small/state-ok.svg @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/resources/images/fallback/light/small/state-sync.svg b/resources/images/fallback/light/small/state-sync.svg new file mode 100644 index 0000000..7823794 --- /dev/null +++ b/resources/images/fallback/light/small/state-sync.svg @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/resources/images/fallback/light/small/view-refresh.svg b/resources/images/fallback/light/small/view-refresh.svg new file mode 100644 index 0000000..cddb324 --- /dev/null +++ b/resources/images/fallback/light/small/view-refresh.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/resources/resources.qrc b/resources/resources.qrc index 2c9505b..6a59b26 100644 --- a/resources/resources.qrc +++ b/resources/resources.qrc @@ -17,6 +17,21 @@ images/fallback/dark/big/edit-none.svg images/fallback/dark/big/question.svg + images/fallback/dark/big/state-ok.svg + images/fallback/dark/big/state-sync.svg + images/fallback/dark/big/state-offline.svg + images/fallback/dark/big/state-error.svg + + images/fallback/dark/big/edit-delete.svg + images/fallback/dark/big/mail-message.svg + images/fallback/dark/big/network-connect.svg + images/fallback/dark/big/network-disconnect.svg + images/fallback/dark/big/news-subscribe.svg + images/fallback/dark/big/news-unsubscribe.svg + images/fallback/dark/big/view-refresh.svg + images/fallback/dark/big/clean.svg + images/fallback/dark/big/send.svg + images/fallback/dark/small/absent.svg images/fallback/dark/small/away.svg @@ -33,6 +48,21 @@ images/fallback/dark/small/edit-none.svg images/fallback/dark/small/question.svg + images/fallback/dark/small/state-ok.svg + images/fallback/dark/small/state-sync.svg + images/fallback/dark/small/state-offline.svg + images/fallback/dark/small/state-error.svg + + images/fallback/dark/small/edit-delete.svg + images/fallback/dark/small/mail-message.svg + images/fallback/dark/small/network-connect.svg + images/fallback/dark/small/network-disconnect.svg + images/fallback/dark/small/news-subscribe.svg + images/fallback/dark/small/news-unsubscribe.svg + images/fallback/dark/small/view-refresh.svg + images/fallback/dark/small/clean.svg + images/fallback/dark/small/send.svg + images/fallback/light/big/absent.svg images/fallback/light/big/away.svg @@ -49,6 +79,21 @@ images/fallback/light/big/edit-none.svg images/fallback/light/big/question.svg + images/fallback/light/big/state-ok.svg + images/fallback/light/big/state-sync.svg + images/fallback/light/big/state-offline.svg + images/fallback/light/big/state-error.svg + + images/fallback/light/big/edit-delete.svg + images/fallback/light/big/mail-message.svg + images/fallback/light/big/network-connect.svg + images/fallback/light/big/network-disconnect.svg + images/fallback/light/big/news-subscribe.svg + images/fallback/light/big/news-unsubscribe.svg + images/fallback/light/big/view-refresh.svg + images/fallback/light/big/clean.svg + images/fallback/light/big/send.svg + images/fallback/light/small/absent.svg images/fallback/light/small/away.svg @@ -64,5 +109,20 @@ images/fallback/light/small/dialog-ok.svg images/fallback/light/small/edit-none.svg images/fallback/light/small/question.svg + + images/fallback/light/small/state-ok.svg + images/fallback/light/small/state-sync.svg + images/fallback/light/small/state-offline.svg + images/fallback/light/small/state-error.svg + + images/fallback/light/small/edit-delete.svg + images/fallback/light/small/mail-message.svg + images/fallback/light/small/network-connect.svg + images/fallback/light/small/network-disconnect.svg + images/fallback/light/small/news-subscribe.svg + images/fallback/light/small/news-unsubscribe.svg + images/fallback/light/small/view-refresh.svg + images/fallback/light/small/clean.svg + images/fallback/light/small/send.svg diff --git a/ui/conversation.cpp b/ui/conversation.cpp index 1829986..52e98d8 100644 --- a/ui/conversation.cpp +++ b/ui/conversation.cpp @@ -255,7 +255,7 @@ void Conversation::onSliderValueChanged(int value) scroll = down; } else { if (!requestingHistory && value == 0) { - m_ui->historyStatus->setPixmap(QIcon::fromTheme("view-refresh").pixmap(25)); + m_ui->historyStatus->setPixmap(Shared::icon("view-refresh", true).pixmap(25)); requestingHistory = true; emit requestArchive(line->firstMessageId()); } @@ -279,7 +279,7 @@ void Conversation::showEvent(QShowEvent* event) { if (!everShown) { everShown = true; - m_ui->historyStatus->setPixmap(QIcon::fromTheme("view-refresh").pixmap(25)); + m_ui->historyStatus->setPixmap(Shared::icon("view-refresh", true).pixmap(25)); requestingHistory = true; emit requestArchive(line->firstMessageId()); } diff --git a/ui/models/account.cpp b/ui/models/account.cpp index 383ee1c..196206a 100644 --- a/ui/models/account.cpp +++ b/ui/models/account.cpp @@ -76,7 +76,7 @@ QIcon Models::Account::getStatusIcon(bool big) const } else if (state == Shared::disconnected) { return Shared::availabilityIcon(Shared::offline, big); } else { - return QIcon::fromTheme(Shared::connectionStateThemeIcons[state]); + return Shared::connectionStateIcon(state); } } diff --git a/ui/models/accounts.cpp b/ui/models/accounts.cpp index e64e2c3..c8b7129 100644 --- a/ui/models/accounts.cpp +++ b/ui/models/accounts.cpp @@ -31,7 +31,7 @@ QVariant Models::Accounts::data (const QModelIndex& index, int role) const break; case Qt::DecorationRole: if (index.column() == 2) { - answer = QIcon::fromTheme(Shared::connectionStateThemeIcons[accs[index.row()]->getState()]); + answer = Shared::connectionStateIcon(accs[index.row()]->getState()); } break; default: diff --git a/ui/models/contact.cpp b/ui/models/contact.cpp index d2d03af..0397a0c 100644 --- a/ui/models/contact.cpp +++ b/ui/models/contact.cpp @@ -219,7 +219,7 @@ void Models::Contact::setState(Shared::SubscriptionState p_state) QIcon Models::Contact::getStatusIcon(bool big) const { if (getMessagesCount() > 0) { - return QIcon::fromTheme("mail-message"); + return Shared::icon("mail-message"); } else if (state == Shared::both) { return Shared::availabilityIcon(availability, big);; } else { diff --git a/ui/models/presence.cpp b/ui/models/presence.cpp index 623df61..be2f8c9 100644 --- a/ui/models/presence.cpp +++ b/ui/models/presence.cpp @@ -143,7 +143,7 @@ void Models::Presence::dropMessages() QIcon Models::Presence::getStatusIcon(bool big) const { if (getMessagesCount() > 0) { - return QIcon::fromTheme("mail-message"); + return Shared::icon("mail-message"); } else { return Shared::availabilityIcon(availability, big); } diff --git a/ui/squawk.cpp b/ui/squawk.cpp index c5bff2c..92114a1 100644 --- a/ui/squawk.cpp +++ b/ui/squawk.cpp @@ -16,9 +16,9 @@ Squawk::Squawk(QWidget *parent) : m_ui->roster->setModel(&rosterModel); m_ui->roster->setContextMenuPolicy(Qt::CustomContextMenu); - const std::deque& fallback = palette().window().color().lightnessF() > 0.5 ? Shared::fallbackAvailabilityThemeIconsDarkSmall : Shared::fallbackAvailabilityThemeIconsLightSmall; - for (int i = 0; i < Shared::availabilityNames.size(); ++i) { - m_ui->comboBox->addItem(QIcon::fromTheme(Shared::availabilityThemeIcons[i], QIcon(fallback[i])), Shared::availabilityNames[i]); + for (unsigned int i = Shared::availabilityLowest; i < Shared::availabilityHighest + 1; ++i) { + Shared::Availability av = static_cast(i); + m_ui->comboBox->addItem(Shared::availabilityIcon(av), Shared::availabilityNames[av]); } m_ui->comboBox->setCurrentIndex(Shared::offline); @@ -356,18 +356,18 @@ void Squawk::onRosterContextMenu(const QPoint& point) QString name = acc->getName(); if (acc->getState() != Shared::disconnected) { - QAction* con = contextMenu->addAction(QIcon::fromTheme("network-disconnect"), "Disconnect"); + QAction* con = contextMenu->addAction(Shared::icon("network-disconnect"), "Disconnect"); connect(con, &QAction::triggered, [this, name]() { emit disconnectAccount(name); }); } else { - QAction* con = contextMenu->addAction(QIcon::fromTheme("network-connect"), "Connect"); + QAction* con = contextMenu->addAction(Shared::icon("network-connect"), "Connect"); connect(con, &QAction::triggered, [this, name]() { emit connectAccount(name); }); } - QAction* remove = contextMenu->addAction(QIcon::fromTheme("edit-delete"), "Remove"); + QAction* remove = contextMenu->addAction(Shared::icon("edit-delete"), "Remove"); connect(remove, &QAction::triggered, [this, name]() { emit removeAccount(name); }); @@ -378,7 +378,7 @@ void Squawk::onRosterContextMenu(const QPoint& point) Models::Contact* cnt = static_cast(item); hasMenu = true; - QAction* dialog = contextMenu->addAction(QIcon::fromTheme("mail-message"), "Open dialog"); + QAction* dialog = contextMenu->addAction(Shared::icon("mail-message"), "Open dialog"); connect(dialog, &QAction::triggered, [this, index]() { onRosterItemDoubleClicked(index); }); @@ -387,7 +387,7 @@ void Squawk::onRosterContextMenu(const QPoint& point) switch (state) { case Shared::both: case Shared::to: { - QAction* unsub = contextMenu->addAction(QIcon::fromTheme("news-unsubscribe"), "Unsubscribe"); + QAction* unsub = contextMenu->addAction(Shared::icon("news-unsubscribe"), "Unsubscribe"); connect(unsub, &QAction::triggered, [this, cnt]() { emit unsubscribeContact(cnt->getAccountName(), cnt->getJid(), ""); }); @@ -396,14 +396,14 @@ void Squawk::onRosterContextMenu(const QPoint& point) case Shared::from: case Shared::unknown: case Shared::none: { - QAction* sub = contextMenu->addAction(QIcon::fromTheme("news-subscribe"), "Subscribe"); + QAction* sub = contextMenu->addAction(Shared::icon("news-subscribe"), "Subscribe"); connect(sub, &QAction::triggered, [this, cnt]() { emit subscribeContact(cnt->getAccountName(), cnt->getJid(), ""); }); } } - QAction* remove = contextMenu->addAction(QIcon::fromTheme("edit-delete"), "Remove"); + QAction* remove = contextMenu->addAction(Shared::icon("edit-delete"), "Remove"); connect(remove, &QAction::triggered, [this, cnt]() { emit removeContactRequest(cnt->getAccountName(), cnt->getJid()); });