Skip to content

Commit

Permalink
Current version is 0.16.260:
Browse files Browse the repository at this point in the history
Psi+ was updated.
  • Loading branch information
tehnick committed Nov 18, 2013
1 parent 7c2c3f8 commit b7aa10c
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 9 deletions.
54 changes: 46 additions & 8 deletions src/mainwin.cpp
Expand Up @@ -118,6 +118,11 @@ class MainWin::Private
bool onTop, asTool;
QMenu* mainMenu, *optionsMenu, *toolsMenu;
GlobalStatusMenu *statusMenu;
#ifdef Q_OS_LINUX
// Status menu for MenuBar.
// Workaround a Unity bug.
GlobalStatusMenu *statusMenuMB;
#endif
int sbState;
QString nickname;
PsiTrayIcon* tray;
Expand Down Expand Up @@ -456,6 +461,16 @@ MainWin::MainWin(bool _onTop, bool _asTool, PsiCon* psi)
connect(d->statusMenu, SIGNAL(statusSelected(XMPP::Status::Type, bool)), d->psi, SLOT(statusMenuChanged(XMPP::Status::Type, bool)));
connect(d->statusMenu, SIGNAL(statusPresetSelected(XMPP::Status,bool,bool)), d->psi, SLOT(setGlobalStatus(XMPP::Status,bool,bool)));
connect(d->statusMenu, SIGNAL(statusPresetDialogForced(const QString &)), d->psi, SLOT(showStatusDialog(const QString &)));

#ifdef Q_OS_LINUX
d->statusMenuMB = new GlobalStatusMenu((QWidget*)this, d->psi);
d->statusMenuMB->setTitle(tr("Status"));
d->statusMenuMB->setObjectName("statusMenu");
connect(d->statusMenuMB, SIGNAL(statusSelected(XMPP::Status::Type, bool)), d->psi, SLOT(statusMenuChanged(XMPP::Status::Type, bool)));
connect(d->statusMenuMB, SIGNAL(statusPresetSelected(XMPP::Status,bool,bool)), d->psi, SLOT(setGlobalStatus(XMPP::Status,bool,bool)));
connect(d->statusMenuMB, SIGNAL(statusPresetDialogForced(const QString &)), d->psi, SLOT(showStatusDialog(const QString &)));
#endif

d->optionsMenu = new QMenu(tr("General"), this);
d->optionsMenu->setObjectName("optionsMenu");
#ifdef Q_OS_MAC
Expand All @@ -469,7 +484,10 @@ MainWin::MainWin(bool _onTop, bool _asTool, PsiCon* psi)
#endif


buildStatusMenu();
buildStatusMenu(d->statusMenu);
#ifdef Q_OS_LINUX
buildStatusMenu(d->statusMenuMB);
#endif
buildOptionsMenu();
connect(d->optionsMenu, SIGNAL(aboutToShow()), SLOT(buildOptionsMenu()));

Expand Down Expand Up @@ -506,7 +524,11 @@ MainWin::MainWin(bool _onTop, bool _asTool, PsiCon* psi)
mainMenuBar()->addMenu(d->optionsMenu);
#endif

#ifdef Q_OS_LINUX
mainMenuBar()->addMenu(d->statusMenuMB);
#else
mainMenuBar()->addMenu(d->statusMenu);
#endif

mainMenuBar()->addMenu(viewMenu);
d->getAction("show_offline")->addTo(viewMenu);
Expand Down Expand Up @@ -851,11 +873,20 @@ void MainWin::setUseDock(bool use)

void MainWin::buildStatusMenu()
{
d->statusMenu->clear();
d->statusMenu->fill();
GlobalStatusMenu *statusMenu = qobject_cast<GlobalStatusMenu*>(sender());
Q_ASSERT(statusMenu);
if (statusMenu) {
buildStatusMenu(statusMenu);
}
}

void MainWin::buildStatusMenu(GlobalStatusMenu *statusMenu)
{
statusMenu->clear();
statusMenu->fill();
#ifdef USE_PEP
d->statusMenu->addSeparator();
d->getAction("publish_tune")->addTo(d->statusMenu);
statusMenu->addSeparator();
d->getAction("publish_tune")->addTo(statusMenu);
#endif
}

Expand Down Expand Up @@ -1408,6 +1439,9 @@ void MainWin::decorateButton(int status)
d->rosterAvatar->setStatusIcon(PsiIconset::instance()->statusPtr(STATUS_OFFLINE)->icon());
}

#ifdef Q_OS_LINUX
d->statusMenuMB->statusChanged(makeStatus(STATUS_OFFLINE, ""));
#endif
d->statusMenu->statusChanged(makeStatus(STATUS_OFFLINE, ""));

setWindowIcon(PsiIconset::instance()->status(STATUS_OFFLINE).impix());
Expand All @@ -1417,8 +1451,10 @@ void MainWin::decorateButton(int status)
d->statusButton->setIcon(PsiIconset::instance()->statusPtr(status));
d->statusSmallerAlt->setPsiIcon(PsiIconset::instance()->statusPtr(status));
d->rosterAvatar->setStatusIcon(PsiIconset::instance()->statusPtr(status)->icon());
#ifdef Q_OS_LINUX
d->statusMenuMB->statusChanged(makeStatus(status, d->psi->currentStatusMessage()));
#endif
d->statusMenu->statusChanged(makeStatus(status, d->psi->currentStatusMessage()));

setWindowIcon(PsiIconset::instance()->status(status).impix());
}

Expand Down Expand Up @@ -1603,8 +1639,10 @@ void MainWin::optionsUpdate()

setWindowOpacity(double(qMax(MINIMUM_OPACITY,PsiOptions::instance()->getOption("options.ui.contactlist.opacity").toInt()))/100);

buildStatusMenu();

buildStatusMenu(d->statusMenu);
#ifdef Q_OS_LINUX
buildStatusMenu(d->statusMenuMB);
#endif
updateTray();
}

Expand Down
4 changes: 4 additions & 0 deletions src/mainwin.h
Expand Up @@ -45,6 +45,8 @@ class IconAction;
class PsiIcon;
class ContactView;
class PsiTrayIcon;
class GlobalStatusMenu;

namespace XMPP {
class Status;
}
Expand Down Expand Up @@ -195,6 +197,8 @@ public slots:
void saveToolbarsState();
void loadToolbarsState();

void buildStatusMenu(GlobalStatusMenu *statusMenu);

private:
class Private;
Private *d;
Expand Down
2 changes: 1 addition & 1 deletion version
@@ -1 +1 @@
0.16.259 (2013-11-17)
0.16.260 (2013-11-18)

0 comments on commit b7aa10c

Please sign in to comment.