Skip to content

Commit 327964b

Browse files
committed
Introducing copy of the message into the send area.
1 parent bc1ddc2 commit 327964b

File tree

14 files changed

+80
-5
lines changed

14 files changed

+80
-5
lines changed

comms_champion/app/cc_view/src/GuiAppMgr.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,15 @@ void GuiAppMgr::recvCommentClicked()
155155
emit sigMsgCommentDialog(m_clickedMsg);
156156
}
157157

158+
void GuiAppMgr::recvDupClicked()
159+
{
160+
assert(m_selType == SelectionType::Recv);
161+
assert(m_clickedMsg);
162+
auto prot = MsgMgrG::instanceRef().getProtocol();
163+
auto newMsg = prot->cloneMessage(*m_clickedMsg);
164+
sendAddNewMessage(std::move(newMsg));
165+
}
166+
158167
void GuiAppMgr::recvDeleteClicked()
159168
{
160169
assert(!recvListEmpty());
@@ -241,6 +250,15 @@ void GuiAppMgr::sendCommentClicked()
241250
emit sigMsgCommentDialog(m_clickedMsg);
242251
}
243252

253+
void GuiAppMgr::sendDupClicked()
254+
{
255+
assert(m_selType == SelectionType::Send);
256+
assert(m_clickedMsg);
257+
auto prot = MsgMgrG::instanceRef().getProtocol();
258+
auto newMsg = prot->cloneMessage(*m_clickedMsg);
259+
sendAddNewMessage(std::move(newMsg));
260+
}
261+
244262
void GuiAppMgr::sendDeleteClicked()
245263
{
246264
assert(!sendListEmpty());

comms_champion/app/cc_view/src/GuiAppMgr.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public slots:
117117
void recvLoadClicked();
118118
void recvSaveClicked();
119119
void recvCommentClicked();
120+
void recvDupClicked();
120121
void recvDeleteClicked();
121122
void recvClearClicked();
122123
void recvShowRecvToggled(bool checked);
@@ -132,6 +133,7 @@ public slots:
132133
void sendAddRawClicked();
133134
void sendEditClicked();
134135
void sendCommentClicked();
136+
void sendDupClicked();
135137
void sendDeleteClicked();
136138
void sendClearClicked();
137139
void sendTopClicked();

comms_champion/app/cc_view/src/icon.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,12 @@ const QIcon& comment()
168168
return iconObj;
169169
}
170170

171+
const QIcon& dup()
172+
{
173+
static const QIcon iconObj(":/image/msg_copy.png");
174+
return iconObj;
175+
}
176+
171177
} // namespace icon
172178

173179
} // namespace comms_champion

comms_champion/app/cc_view/src/icon.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ const QIcon& errorLog();
5454
const QIcon& connect();
5555
const QIcon& disconnect();
5656
const QIcon& comment();
57+
const QIcon& dup();
5758

5859
} // namespace icon
5960

958 Bytes
Loading

comms_champion/app/cc_view/src/ui.qrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<file>image/error_log.png</file>
2525
<file>image/connect.png</file>
2626
<file>image/disconnect.png</file>
27-
<file>image/user_comment.png</file>
27+
<file>image/user_comment.png</file>
28+
<file>image/msg_copy.png</file>
2829
</qresource>
2930
</RCC>

comms_champion/app/cc_view/src/widget/MessageUpdateDialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ MessageUpdateDialog::MessageUpdateDialog(
246246
}
247247

248248
auto repeatCount = static_cast<int>(
249-
property::message::RepeatCount().getFrom(*m_msg));
249+
property::message::RepeatCount().getFrom(*m_msg), 1U);
250250
if (repeatCount != 0) {
251251
m_prevRepeatCount = repeatCount;
252252
}

comms_champion/app/cc_view/src/widget/RecvAreaToolBar.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,15 @@ QAction* createCommentButton(QToolBar& bar)
7272
return action;
7373
}
7474

75+
QAction* createDupButton(QToolBar& bar)
76+
{
77+
auto* action = bar.addAction(icon::dup(), "Duplicate Message to Send Area");
78+
QObject::connect(
79+
action, SIGNAL(triggered()),
80+
GuiAppMgr::instance(), SLOT(recvDupClicked()));
81+
return action;
82+
}
83+
7584
QAction* createDeleteButton(QToolBar& bar)
7685
{
7786
auto* action = bar.addAction(icon::remove(), "Delete Selected Message");
@@ -135,6 +144,7 @@ RecvAreaToolBar::RecvAreaToolBar(QWidget* parentObj)
135144
m_loadButton(createLoadButton(*this)),
136145
m_saveButton(createSaveButton(*this)),
137146
m_commentButton(createCommentButton(*this)),
147+
m_dupButton(createDupButton(*this)),
138148
m_deleteButton(createDeleteButton(*this)),
139149
m_clearButton(createClearButton(*this)),
140150
m_showGarbageButton(createShowGarbage(*this)),
@@ -241,6 +251,7 @@ void RecvAreaToolBar::refresh()
241251
refreshLoadButton();
242252
refreshSaveButton();
243253
refreshCommentButton();
254+
refreshDupButton();
244255
refreshDeleteButton();
245256
refreshClearButton();
246257
}
@@ -314,6 +325,16 @@ void RecvAreaToolBar::refreshCommentButton()
314325
button->setEnabled(enabled);
315326
}
316327

328+
void RecvAreaToolBar::refreshDupButton()
329+
{
330+
auto* button = m_dupButton;
331+
assert(button);
332+
bool enabled =
333+
(m_activeState == ActivityState::Active) &&
334+
(msgSelected());
335+
button->setEnabled(enabled);
336+
}
337+
317338
void RecvAreaToolBar::refreshDeleteButton()
318339
{
319340
auto* button = m_deleteButton;

comms_champion/app/cc_view/src/widget/RecvAreaToolBar.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ private slots:
5959
void refreshLoadButton();
6060
void refreshSaveButton();
6161
void refreshCommentButton();
62+
void refreshDupButton();
6263
void refreshDeleteButton();
6364
void refreshClearButton();
6465

@@ -69,6 +70,7 @@ private slots:
6970
QAction* m_loadButton = nullptr;
7071
QAction* m_saveButton = nullptr;
7172
QAction* m_commentButton = nullptr;
73+
QAction* m_dupButton = nullptr;
7274
QAction* m_deleteButton = nullptr;
7375
QAction* m_clearButton = nullptr;
7476
QAction* m_showGarbageButton = nullptr;

comms_champion/app/cc_view/src/widget/SendAreaToolBar.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,15 @@ QAction* createCommentButton(QToolBar& bar)
106106
return action;
107107
}
108108

109+
QAction* createDupButton(QToolBar& bar)
110+
{
111+
auto* action = bar.addAction(icon::dup(), "Duplicate Message");
112+
QObject::connect(
113+
action, SIGNAL(triggered()),
114+
GuiAppMgr::instance(), SLOT(sendDupClicked()));
115+
return action;
116+
}
117+
109118
QAction* createDeleteButton(QToolBar& bar)
110119
{
111120
auto* action = bar.addAction(icon::remove(), "Delete Selected Message");
@@ -172,6 +181,7 @@ SendAreaToolBar::SendAreaToolBar(QWidget* parentObj)
172181
m_addRawButton(createAddRawButton(*this)),
173182
m_editButton(createEditButton(*this)),
174183
m_commentButton(createCommentButton(*this)),
184+
m_dupButton(createDupButton(*this)),
175185
m_deleteButton(createDeleteButton(*this)),
176186
m_clearButton(createClearButton(*this)),
177187
m_topButton(createTopButton(*this)),
@@ -275,6 +285,7 @@ void SendAreaToolBar::refresh()
275285
refreshAddButtons();
276286
refreshEditButton();
277287
refreshCommentButton();
288+
refreshDupButton();
278289
refreshDeleteButton();
279290
refreshClearButton();
280291
refreshUpButton(m_topButton);
@@ -386,6 +397,17 @@ void SendAreaToolBar::refreshCommentButton()
386397
button->setEnabled(enabled);
387398
}
388399

400+
void SendAreaToolBar::refreshDupButton()
401+
{
402+
auto* button = m_dupButton;
403+
assert(button);
404+
bool enabled =
405+
(m_activeState == ActivityState::Active) &&
406+
(m_state == State::Idle) &&
407+
(msgSelected());
408+
button->setEnabled(enabled);
409+
}
410+
389411
void SendAreaToolBar::refreshDeleteButton()
390412
{
391413
auto* button = m_deleteButton;

0 commit comments

Comments
 (0)