This queries she shared memory segment at occasional intervals. This is useful for cross-program communication.
| 2542 | //* intervals. This is useful for cross-program communication. |
| 2543 | //************************************************************** |
| 2544 | void NixNote::heartbeatTimerTriggered() { |
| 2545 | QByteArray data = global.sharedMemory->read(); |
| 2546 | if (data.startsWith("SYNCHRONIZE")) { |
| 2547 | QLOG_DEBUG() << "Sync requested by shared memory segment."; |
| 2548 | this->synchronize(); |
| 2549 | return; |
| 2550 | } |
| 2551 | if (data.startsWith("IMMEDIATE_SHUTDOWN")) { |
| 2552 | QLOG_ERROR() << "Immediate shutdown requested by shared memory segment."; |
| 2553 | this->closeNixNote(); |
| 2554 | return; |
| 2555 | } |
| 2556 | if (data.startsWith("SHOW_WINDOW")) { |
| 2557 | this->raise(); |
| 2558 | this->showMaximized(); |
| 2559 | return; |
| 2560 | } |
| 2561 | if (data.startsWith("QUERY:")) { |
| 2562 | QList<qint32> results; |
| 2563 | QString query = data.mid(6); |
| 2564 | QLOG_DEBUG() << query; |
| 2565 | FilterCriteria filter; |
| 2566 | filter.setSearchString(query); |
| 2567 | FilterEngine engine; |
| 2568 | engine.filter(&filter, &results); |
| 2569 | QString xmlString; |
| 2570 | QXmlStreamWriter dom(&xmlString); |
| 2571 | dom.setAutoFormatting(true); |
| 2572 | dom.writeStartDocument(); |
| 2573 | dom.writeStartElement("response"); |
| 2574 | NoteTable ntable(global.db); |
| 2575 | for (int i=0; i<results.size(); i++) { |
| 2576 | dom.writeStartElement("note"); |
| 2577 | dom.writeStartElement("lid"); |
| 2578 | dom.writeCharacters(QString::number(results[i])); |
| 2579 | dom.writeEndElement(); |
| 2580 | Note n; |
| 2581 | ntable.get(n, results[i], false, false); |
| 2582 | if (n.title.isSet()) { |
| 2583 | dom.writeStartElement("title"); |
| 2584 | dom.writeCharacters(n.title); |
| 2585 | dom.writeEndElement(); |
| 2586 | } |
| 2587 | QString filename = global.fileManager.getThumbnailDirPath("")+QString::number(results[i])+".png"; |
| 2588 | QFile file(filename); |
| 2589 | if (file.exists()) { |
| 2590 | dom.writeStartElement("preview"); |
| 2591 | dom.writeCharacters(filename); |
| 2592 | dom.writeEndElement(); |
| 2593 | } |
| 2594 | dom.writeEndElement(); |
| 2595 | } |
| 2596 | dom.writeEndElement(); |
| 2597 | dom.writeEndDocument(); |
| 2598 | |
| 2599 | global.sharedMemory->write(xmlString); |
| 2600 | } |
| 2601 | if (data.startsWith("OPEN_NOTE:")) { |
nothing calls this directly
no test coverage detected