Skip to content

Commit e3cf834

Browse files
authored
Chat menu (#895)
* groupchatdlg: set setSizePolicy in UI file * group chat menu: remove editing actions * groupchatdlg: group together act_bookmark and actSetTopic * groupchatdlg: updateBookmarkIcon() checks bm->isAvailable() internally * groupchatdlg: gchat_set_topic connect() where other actions do this * psiactionlist: remove actSetTopic.setToolTip() and inline setTopicText * psiactionlist: make chat_paste_send and gchat_paste_send available for selection in options * psichatdlg.cpp: remove editing actions
1 parent 073b2ea commit e3cf834

File tree

4 files changed

+18
-25
lines changed

4 files changed

+18
-25
lines changed

src/groupchatdlg.cpp

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,10 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager) : Tab
975975
connect(action, SIGNAL(triggered()), SLOT(pinTab()));
976976
} else if (name == QLatin1String("gchat_templates")) {
977977
action->setMenu(getTemplateMenu());
978+
} else if (name == QLatin1String("gchat_paste_send")) {
979+
connect(action, SIGNAL(triggered()), SLOT(doPasteAndSend()));
980+
} else if (name == QLatin1String("gchat_set_topic")) {
981+
connect(action, &QAction::triggered, this, &GCMainDlg::openTopic);
978982
}
979983
}
980984

@@ -998,11 +1002,11 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager) : Tab
9981002
connect(d->act_mini_cmd, SIGNAL(triggered()), d, SLOT(doMiniCmd()));
9991003
addAction(d->act_mini_cmd);
10001004

1001-
d->act_bookmark = new IconAction(this);
10021005
auto actSetTopic = d->actions->action("gchat_set_topic");
1003-
connect(actSetTopic, &IconAction::triggered, this, &GCMainDlg::openTopic);
1004-
connect(d->act_bookmark, SIGNAL(triggered()), SLOT(doBookmark()));
10051006
ui_.le_topic->addAction(actSetTopic);
1007+
1008+
d->act_bookmark = new IconAction(this);
1009+
connect(d->act_bookmark, SIGNAL(triggered()), SLOT(doBookmark()));
10061010
ui_.le_topic->addAction(d->act_bookmark);
10071011

10081012
d->act_copy_muc_jid = new QAction(tr("Copy Groupchat JID"), this);
@@ -1011,17 +1015,13 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager) : Tab
10111015
ui_.le_topic->addAction(d->act_copy_muc_jid);
10121016

10131017
BookmarkManager *bm = account()->bookmarkManager();
1014-
d->act_bookmark->setVisible(bm->isAvailable());
1015-
if (bm->isAvailable()) {
1016-
updateBookmarkIcon();
1017-
}
1018+
updateBookmarkIcon();
10181019
connect(bm, SIGNAL(availabilityChanged()), SLOT(updateBookmarkIcon()));
10191020
connect(bm, SIGNAL(conferencesChanged(QList<ConferenceBookmark>)), SLOT(updateBookmarkIcon()));
10201021
connect(bm, SIGNAL(conferencesChanged(QList<ConferenceBookmark>)), SLOT(updateMucName()));
10211022
connect(bm, SIGNAL(bookmarksSaved()), SLOT(updateBookmarkIcon()));
10221023

1023-
d->act_pastesend = new IconAction(tr("Paste and Send"), "psi/action_paste_and_send", tr("Paste and Send"), 0, this);
1024-
connect(d->act_pastesend, SIGNAL(triggered()), SLOT(doPasteAndSend()));
1024+
d->act_pastesend = d->actions->action("gchat_paste_send");
10251025

10261026
d->act_minimize = new QAction(this);
10271027
connect(d->act_minimize, SIGNAL(triggered()), SLOT(doMinimize()));
@@ -1033,7 +1033,6 @@ GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager) : Tab
10331033
// #ifdef WHITEBOARDING
10341034
// ui_.toolbar->addAction(d->act_whiteboard);
10351035
// #endif
1036-
ui_.toolbar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
10371036

10381037
// Common actions
10391038
d->act_send = new QAction(this);
@@ -2622,9 +2621,6 @@ void GCMainDlg::buildMenu()
26222621
// #endif
26232622
d->pm_settings->addSeparator();
26242623

2625-
d->pm_settings->addAction(d->actions->action("gchat_icon"));
2626-
d->pm_settings->addAction(d->actions->action("gchat_templates"));
2627-
d->pm_settings->addAction(d->act_pastesend);
26282624
d->pm_settings->addAction(d->act_nick);
26292625
d->pm_settings->addAction(d->act_bookmark);
26302626
d->pm_settings->addAction(d->actions->action("gchat_set_topic"));
@@ -2639,7 +2635,6 @@ void GCMainDlg::buildMenu()
26392635
PluginManager::instance()->addGCToolBarButton(this, d->pm_settings, account(), jid().full());
26402636
}
26412637
#endif
2642-
d->pm_settings->addAction(d->actions->action("gchat_share_files"));
26432638
}
26442639

26452640
void GCMainDlg::chatEditCreated()

src/groupchatdlg.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@
225225
<item>
226226
<widget class="QToolBar" name="toolbar">
227227
<property name="sizePolicy">
228-
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
228+
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
229229
<horstretch>0</horstretch>
230230
<verstretch>0</verstretch>
231231
</sizepolicy>

src/psiactionlist.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,7 @@ void PsiActionList::Private::createChat()
499499
IconAction *actShareFiles = new IconAction(tr("Share Files"), "psi/share_file", tr("Share Files"), 0, this);
500500
IconAction *actPinTab = new IconAction(tr("Pin/UnPin Tab"), "psi/pin", tr("Pin/UnPin Tab"), 0, this);
501501
IconAction *actTemplates = new IconAction(tr("Templates"), "psi/action_templates", tr("Templates"), 0, this);
502+
IconAction *actPasteSend = new IconAction(tr("Paste and Send"), "psi/action_paste_and_send", tr("Paste and Send"), 0, this);
502503

503504
ActionNames actions[] = { { "chat_clear", actClear },
504505
{ "chat_find", actFind },
@@ -515,6 +516,7 @@ void PsiActionList::Private::createChat()
515516
{ "chat_share_files", actShareFiles },
516517
{ "chat_pin_tab", actPinTab },
517518
{ "chat_templates", actTemplates },
519+
{ "chat_paste_send", actPasteSend },
518520
{ "", nullptr } };
519521

520522
createActionList(tr("Chat basic buttons"), Actions_Chat, actions);
@@ -537,10 +539,9 @@ void PsiActionList::Private::createGroupchat()
537539
IconAction *actShareFiles = new IconAction(tr("Share Files"), "psi/share_file", tr("Share Files"), 0, this);
538540
IconAction *actPinTab = new IconAction(tr("Pin/UnPin Tab"), "psi/pin", tr("Pin/UnPin Tab"), 0, this);
539541
IconAction *actTemplates = new IconAction(tr("Templates"), "psi/action_templates", tr("Templates"), 0, this);
542+
IconAction *actPasteSend = new IconAction(tr("Paste and Send"), "psi/action_paste_and_send", tr("Paste and Send"), 0, this);
540543

541-
QString setTopicText = tr("Set Topic");
542-
IconAction *actSetTopic = new IconAction(setTopicText, QLatin1String("psi/topic"), setTopicText, 0, this);
543-
actSetTopic->setToolTip(setTopicText);
544+
IconAction *actSetTopic = new IconAction(tr("Set Topic"), QLatin1String("psi/topic"), tr("Set Topic"), 0, this);
544545

545546
ActionNames actions[] = { { "gchat_info", actInfo },
546547
{ "gchat_clear", actClear },
@@ -552,6 +553,7 @@ void PsiActionList::Private::createGroupchat()
552553
{ "gchat_pin_tab", actPinTab },
553554
{ "gchat_templates", actTemplates },
554555
{ "gchat_set_topic", actSetTopic },
556+
{ "gchat_paste_send", actPasteSend },
555557
{ "", nullptr } };
556558

557559
createActionList(tr("Groupchat basic buttons"), Actions_Groupchat, actions);

src/psichatdlg.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ void PsiChatDlg::initUi()
319319
connect(ui_.log, &ChatView::quote, ui_.mle->chatEdit(), &ChatEdit::insertAsQuote);
320320
connect(ui_.log, &ChatView::editMessageRequested, ui_.mle->chatEdit(), &ChatEdit::startCorrection);
321321

322-
act_pastesend_ = new IconAction(tr("Paste and Send"), "psi/action_paste_and_send", tr("Paste and Send"), 0, this);
323-
connect(act_pastesend_, SIGNAL(triggered()), SLOT(doPasteAndSend()));
322+
act_pastesend_ = actions_->action("chat_paste_send");
324323

325324
ui_.log->realTextWidget()->installEventFilter(this);
326325
ui_.mini_prompt->hide();
@@ -566,6 +565,8 @@ void PsiChatDlg::initToolButtons()
566565
connect(action, SIGNAL(triggered()), SLOT(pinTab()));
567566
} else if (name == "chat_templates") {
568567
action->setMenu(getTemplateMenu());
568+
} else if (name == "chat_paste_send") {
569+
connect(action, SIGNAL(triggered()), SLOT(doPasteAndSend()));
569570
}
570571
}
571572

@@ -1001,11 +1002,6 @@ void PsiChatDlg::buildMenu()
10011002
pm_settings_->addAction(actions_->action("chat_clear"));
10021003
pm_settings_->addSeparator();
10031004

1004-
pm_settings_->addAction(actions_->action("chat_icon"));
1005-
pm_settings_->addAction(actions_->action("chat_templates"));
1006-
pm_settings_->addAction(act_pastesend_);
1007-
pm_settings_->addAction(actions_->action("chat_share_files"));
1008-
pm_settings_->addAction(actions_->action("chat_file"));
10091005
if (AvCallManager::isSupported()) {
10101006
pm_settings_->addAction(actions_->action("chat_voice"));
10111007
}

0 commit comments

Comments
 (0)