Skip to content

Commit

Permalink
Added very ugly hack to keep windows visible with webengine
Browse files Browse the repository at this point in the history
  • Loading branch information
Ri0n committed Apr 6, 2024
1 parent 6cc436a commit 97d2762
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 18 deletions.
36 changes: 20 additions & 16 deletions src/mainwin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,22 @@ MainWin::~MainWin()
delete d;
}

void MainWin::qt67visibilityHack(const std::function<void()> &callback)
{
// Q 6.7 has broken something. So every time we add webengine stuff, all the other widgets disappear
QList<QWidget *> widgets = { d->rosterWidget_, d->rosterAvatar };
// widgets += toolbars_;
std::copy(toolbars_.begin(), toolbars_.end(), std::back_inserter(widgets));
QList<bool> visibility;
for (auto w : widgets) {
visibility.append(w->isVisible());
}
callback();
for (auto w : widgets) {
w->setVisible(visibility.takeFirst());
}
}

void MainWin::splitterMoved()
{
QList<int> list = d->splitter->sizes();
Expand Down Expand Up @@ -921,17 +937,8 @@ void MainWin::buildOptionsMenu()
helpMenu->setIcon(IconsetFactory::icon("psi/help").icon());

QStringList actions;
actions << "help_readme"
<< "separator"
<< "help_online_wiki"
<< "help_online_home"
<< "help_online_forum"
<< "help_psi_muc"
<< "help_report_bug"
<< "diagnostics"
<< "separator"
<< "help_about"
<< "help_about_qt";
actions << "help_readme" << "separator" << "help_online_wiki" << "help_online_home" << "help_online_forum"
<< "help_psi_muc" << "help_report_bug" << "diagnostics" << "separator" << "help_about" << "help_about_qt";

d->updateMenu(actions, helpMenu);

Expand Down Expand Up @@ -968,9 +975,7 @@ void MainWin::buildMainMenu()
void MainWin::buildToolsMenu()
{
QStringList actions;
actions << "menu_file_transfer"
<< "separator"
<< "menu_xml_console";
actions << "menu_file_transfer" << "separator" << "menu_xml_console";

d->updateMenu(actions, d->toolsMenu);
}
Expand All @@ -987,8 +992,7 @@ void MainWin::buildGeneralMenu(QMenu *menu)
#ifdef GROUPCHAT
<< "menu_join_groupchat"
#endif
<< "menu_options"
<< "menu_file_transfer";
<< "menu_options" << "menu_file_transfer";
if (PsiOptions::instance()->getOption("options.ui.menu.main.change-profile").toBool()) {
actions << "menu_change_profile";
}
Expand Down
1 change: 1 addition & 0 deletions src/mainwin.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ class MainWin : public AdvancedWidget<QMainWindow> {
QMap<QString, QAction *> actions;

PsiCon *psiCon() const;
void qt67visibilityHack(const std::function<void()> &callback);

protected:
// reimplemented
Expand Down
4 changes: 2 additions & 2 deletions src/psiaccount.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4197,7 +4197,7 @@ void PsiAccount::actionDefault(const Jid &j)
else if (groupchats().contains(j.full())) {
TabbableWidget *tab = findDialog<TabbableWidget *>(Jid(j.full()));
if (tab) {
tab->ensureTabbedCorrectly();
d->psi->qt67visibilityHack([tab]() { tab->ensureTabbedCorrectly(); });
tab->bringToFront();
}
} else {
Expand Down Expand Up @@ -5638,7 +5638,7 @@ void PsiAccount::processChats(const Jid &j) { processChatsHelper(j, true); }
ChatDlg *PsiAccount::openChat(const Jid &j, ActivationType activationType)
{
ChatDlg *chat = ensureChatDlg(j);
chat->ensureTabbedCorrectly();
d->psi->qt67visibilityHack([chat]() { chat->ensureTabbedCorrectly(); });

processChats(j);
if (activationType == UserAction) {
Expand Down
2 changes: 2 additions & 0 deletions src/psicon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -877,6 +877,8 @@ QStringList PsiCon::xmppFatures() const
return features;
}

void PsiCon::qt67visibilityHack(const std::function<void()> &callback) { d->mainwin->qt67visibilityHack(callback); }

TabManager *PsiCon::tabManager() const { return d->tabManager; }

NetworkAccessManager *PsiCon::networkAccessManager() const { return d->nam; }
Expand Down
2 changes: 2 additions & 0 deletions src/psicon.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ class PsiCon : public QObject {
PopupManager *popupManager() const;
QStringList xmppFatures() const;

void qt67visibilityHack(const std::function<void()> &);

signals:
void quit(int);
void accountAdded(PsiAccount *);
Expand Down

0 comments on commit 97d2762

Please sign in to comment.