Skip to content

Commit

Permalink
Tests: Improve clipboard monitoring for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hluk committed Nov 18, 2023
1 parent 2258208 commit b669e74
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 5 deletions.
4 changes: 4 additions & 0 deletions src/app/clipboardmonitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ ClipboardMonitor::ClipboardMonitor(const QStringList &formats)
}
#endif

}

void ClipboardMonitor::startMonitoring()
{
m_clipboard->startMonitoring(m_formats);
}

Expand Down
1 change: 1 addition & 0 deletions src/app/clipboardmonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class ClipboardMonitor final : public QObject

public:
explicit ClipboardMonitor(const QStringList &formats);
void startMonitoring();

signals:
void clipboardChanged(const QVariantMap &data, ClipboardOwnership ownership);
Expand Down
9 changes: 5 additions & 4 deletions src/platform/x11/x11platformclipboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,6 @@ void X11PlatformClipboard::startMonitoring(const QStringList &formats)
for (auto clipboardData : {&m_clipboardData, &m_selectionData}) {
clipboardData->owner.clear();
clipboardData->newOwner.clear();
updateClipboardData(clipboardData);
useNewClipboardData(clipboardData);
}

initSingleShotTimer( &m_timerCheckAgain, 0, this, &X11PlatformClipboard::check );
Expand All @@ -108,6 +106,9 @@ void X11PlatformClipboard::startMonitoring(const QStringList &formats)
m_monitoring = true;

DummyClipboard::startMonitoring(formats);

updateClipboardData(&m_clipboardData);
updateClipboardData(&m_selectionData);
}

void X11PlatformClipboard::setMonitoringEnabled(ClipboardMode mode, bool enable)
Expand Down Expand Up @@ -298,8 +299,8 @@ void X11PlatformClipboard::updateClipboardData(X11PlatformClipboard::ClipboardDa
return;
}

// In case there is no timestamp, update only if the data changed.
if ( newDataTimestamp == 0 && clipboardData->data == clipboardData->newData )
// Update only if the data changed.
if ( clipboardData->data == clipboardData->newData )
return;

clipboardData->newDataTimestamp = newDataTimestamp;
Expand Down
2 changes: 2 additions & 0 deletions src/scriptable/scriptable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2808,6 +2808,8 @@ void Scriptable::monitorClipboard()
this, &Scriptable::onMonitorClipboardUnchanged );
connect( &monitor, &ClipboardMonitor::synchronizeSelection,
this, &Scriptable::onSynchronizeSelection );

monitor.startMonitoring();
loop.exec();
}

Expand Down
2 changes: 1 addition & 1 deletion src/tests/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3814,6 +3814,7 @@ void Tests::automaticCommandStoreSpecialFormat()

void Tests::automaticCommandIgnoreSpecialFormat()
{
TEST( m_test->setClipboard("SHOULD BE IGNORED", "test-format") );
const auto script = R"(
setCommands([
{ automatic: true, name: 'CMD1', cmd: 'copyq add CMD1', input: 'test-format', remove: true },
Expand All @@ -3824,7 +3825,6 @@ void Tests::automaticCommandIgnoreSpecialFormat()
RUN(script, "");
WAIT_ON_OUTPUT("commands().length", "3\n");

TEST( m_test->setClipboard("SHOULD BE IGNORED", "test-format") );
WAIT_ON_OUTPUT("separator" << "," << "read" << "0" << "1", "CMD1,");

TEST( m_test->setClipboard("SHOULD NOT BE IGNORED") );
Expand Down

0 comments on commit b669e74

Please sign in to comment.