forked from blue/squawk
fallback availabiluty icons, chatty icon
This commit is contained in:
parent
833913cac2
commit
12511b1864
18 changed files with 399 additions and 51 deletions
|
@ -42,7 +42,7 @@ Conversation::Conversation(Models::Contact* p_contact, QWidget* parent):
|
|||
m_ui->splitter->setStretchFactor(1, 0);
|
||||
|
||||
setName(p_contact->getContactName());
|
||||
setState(p_contact->getAvailability());
|
||||
updateState();
|
||||
setStatus(p_contact->getStatus());
|
||||
|
||||
connect(contact, SIGNAL(childChanged(Models::Item*, int, int)), this, SLOT(onContactChanged(Models::Item*, int, int)));
|
||||
|
@ -106,10 +106,10 @@ void Conversation::setName(const QString& name)
|
|||
line->setPalName(getJid(), name);
|
||||
}
|
||||
|
||||
void Conversation::setState(Shared::Availability state)
|
||||
void Conversation::updateState()
|
||||
{
|
||||
m_ui->statusIcon->setPixmap(QIcon::fromTheme(Shared::availabilityThemeIcons[state]).pixmap(50));
|
||||
m_ui->statusIcon->setToolTip(Shared::availabilityNames[state]);
|
||||
m_ui->statusIcon->setPixmap(contact->getStatusIcon(true).pixmap(40));
|
||||
m_ui->statusIcon->setToolTip(Shared::availabilityNames[contact->getAvailability()]);
|
||||
}
|
||||
|
||||
void Conversation::setStatus(const QString& status)
|
||||
|
@ -135,7 +135,7 @@ void Conversation::onContactChanged(Models::Item* item, int row, int col)
|
|||
setName(contact->getContactName());
|
||||
break;
|
||||
case 3:
|
||||
setState(contact->getAvailability());
|
||||
updateState();
|
||||
break;
|
||||
case 5:
|
||||
setStatus(contact->getStatus());
|
||||
|
|
|
@ -65,7 +65,7 @@ signals:
|
|||
void shown();
|
||||
|
||||
protected:
|
||||
void setState(Shared::Availability state);
|
||||
void updateState();
|
||||
void setStatus(const QString& status);
|
||||
void setName(const QString& name);
|
||||
void applyVisualEffects();
|
||||
|
|
|
@ -69,12 +69,12 @@ void Models::Account::setAvailability(Shared::Availability p_avail)
|
|||
}
|
||||
}
|
||||
|
||||
QIcon Models::Account::getStatusIcon() const
|
||||
QIcon Models::Account::getStatusIcon(bool big) const
|
||||
{
|
||||
if (state == Shared::connected) {
|
||||
return QIcon::fromTheme(Shared::availabilityThemeIcons[availability]);
|
||||
return Shared::availabilityIcon(availability, big);
|
||||
} else if (state == Shared::disconnected) {
|
||||
return QIcon::fromTheme(Shared::availabilityThemeIcons[Shared::offline]);
|
||||
return Shared::availabilityIcon(Shared::offline, big);
|
||||
} else {
|
||||
return QIcon::fromTheme(Shared::connectionStateThemeIcons[state]);
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Models {
|
|||
void setAvailability(unsigned int p_avail);
|
||||
Shared::Availability getAvailability() const;
|
||||
|
||||
QIcon getStatusIcon() const;
|
||||
QIcon getStatusIcon(bool big = false) const;
|
||||
|
||||
QVariant data(int column) const override;
|
||||
int columnCount() const override;
|
||||
|
|
|
@ -216,12 +216,12 @@ void Models::Contact::setState(Shared::SubscriptionState p_state)
|
|||
}
|
||||
}
|
||||
|
||||
QIcon Models::Contact::getStatusIcon() const
|
||||
QIcon Models::Contact::getStatusIcon(bool big) const
|
||||
{
|
||||
if (getMessagesCount() > 0) {
|
||||
return QIcon::fromTheme("mail-message");
|
||||
} else if (state == Shared::both) {
|
||||
return QIcon::fromTheme(Shared::availabilityThemeIcons[availability]);
|
||||
return Shared::availabilityIcon(availability, big);;
|
||||
} else {
|
||||
return QIcon::fromTheme(Shared::subscriptionStateThemeIcons[state]);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public:
|
|||
QString getJid() const;
|
||||
Shared::Availability getAvailability() const;
|
||||
Shared::SubscriptionState getState() const;
|
||||
QIcon getStatusIcon() const;
|
||||
QIcon getStatusIcon(bool big = false) const;
|
||||
|
||||
int columnCount() const override;
|
||||
QVariant data(int column) const override;
|
||||
|
|
|
@ -140,12 +140,12 @@ void Models::Presence::dropMessages()
|
|||
}
|
||||
}
|
||||
|
||||
QIcon Models::Presence::getStatusIcon() const
|
||||
QIcon Models::Presence::getStatusIcon(bool big) const
|
||||
{
|
||||
if (getMessagesCount() > 0) {
|
||||
return QIcon::fromTheme("mail-message");
|
||||
} else {
|
||||
return QIcon::fromTheme(Shared::availabilityThemeIcons[availability]);
|
||||
return Shared::availabilityIcon(availability, big);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ public:
|
|||
|
||||
QString getStatus() const;
|
||||
void setStatus(const QString& p_state);
|
||||
QIcon getStatusIcon() const;
|
||||
QIcon getStatusIcon(bool big = false) const;
|
||||
|
||||
void update(const QString& key, const QVariant& value);
|
||||
unsigned int getMessagesCount() const;
|
||||
|
|
|
@ -76,17 +76,17 @@ QVariant Models::Roster::data (const QModelIndex& index, int role) const
|
|||
switch (item->type) {
|
||||
case Item::account:{
|
||||
Account* acc = static_cast<Account*>(item);
|
||||
result = acc->getStatusIcon();
|
||||
result = acc->getStatusIcon(false);
|
||||
}
|
||||
break;
|
||||
case Item::contact:{
|
||||
Contact* contact = static_cast<Contact*>(item);
|
||||
result = contact->getStatusIcon();
|
||||
result = contact->getStatusIcon(false);
|
||||
}
|
||||
break;
|
||||
case Item::presence:{
|
||||
Presence* presence = static_cast<Presence*>(item);
|
||||
result = presence->getStatusIcon();
|
||||
result = presence->getStatusIcon(false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -16,8 +16,9 @@ Squawk::Squawk(QWidget *parent) :
|
|||
m_ui->roster->setModel(&rosterModel);
|
||||
m_ui->roster->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
|
||||
const std::deque<QString>& 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]), Shared::availabilityNames[i]);
|
||||
m_ui->comboBox->addItem(QIcon::fromTheme(Shared::availabilityThemeIcons[i], QIcon(fallback[i])), Shared::availabilityNames[i]);
|
||||
}
|
||||
m_ui->comboBox->setCurrentIndex(Shared::offline);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue