void QMacPasteboard::clear() { #ifdef DEBUG_PASTEBOARD qDebug("PasteBoard: clear!"); #endif clear_helper(); }
void QMacPasteboard::setMimeData(QMimeData *mime_src) { if (!paste) return; if (mime == mime_src || (!mime_src && mime && mac_mime_source)) return; mac_mime_source = false; delete mime; mime = mime_src; QList<QMacPasteboardMime*> availableConverters = QMacPasteboardMime::all(mime_type); if (mime != 0) { clear_helper(); QStringList formats = mime_src->formats(); #ifdef QT_MAC_USE_COCOA // QMimeData sub classes reimplementing the formats() might not expose the // temporary "application/x-qt-mime-type-name" mimetype. So check the existence // of this mime type while doing drag and drop. QString dummyMimeType(QLatin1String("application/x-qt-mime-type-name")); if (!formats.contains(dummyMimeType)) { QByteArray dummyType = mime_src->data(dummyMimeType); if (!dummyType.isEmpty()) { formats.append(dummyMimeType); } } #endif for(int f = 0; f < formats.size(); ++f) { QString mimeType = formats.at(f); for (QList<QMacPasteboardMime *>::Iterator it = availableConverters.begin(); it != availableConverters.end(); ++it) { QMacPasteboardMime *c = (*it); QString flavor(c->flavorFor(mimeType)); if(!flavor.isEmpty()) { QVariant mimeData = static_cast<QMacMimeData*>(mime_src)->variantData(mimeType); #if 0 //### Grrr, why didn't I put in a virtual int QMacPasteboardMime::count()? --Sam const int numItems = c->convertFromMime(mimeType, mimeData, flavor).size(); #else int numItems = 1; //this is a hack but it is much faster than allowing conversion above if(c->convertorName() == QLatin1String("FileURL")) numItems = mime_src->urls().count(); #endif for(int item = 0; item < numItems; ++item) { const int itemID = item+1; //id starts at 1 promises.append(QMacPasteboard::Promise(itemID, c, mimeType, mimeData, item)); PasteboardPutItemFlavor(paste, (PasteboardItemID)itemID, QCFString(flavor), 0, kPasteboardFlavorNoFlags); #ifdef DEBUG_PASTEBOARD qDebug(" - adding %d %s [%s] <%s> [%d]", itemID, qPrintable(mimeType), qPrintable(flavor), qPrintable(c->convertorName()), item); #endif } } } } } }
void SpectraSet::read_xml(std::string file_name, bool with_spectra, bool with_full_spectra) { boost::unique_lock<boost::mutex> lock(mutex_); clear_helper(); pugi::xml_document doc; if (!doc.load_file(file_name.c_str())) return; pugi::xml_node root = doc.child("QpxAcquisition"); if (!root) return; run_info_.from_xml(root.child(run_info_.xml_element_name().c_str())); if (!with_spectra) return; if (root.child("Spectra")) { Spill fake_spill; fake_spill.run = run_info_; for (pugi::xml_node &child : root.child("Spectra").children()) { if (child.child("ChannelData") && !with_full_spectra) child.remove_child("ChannelData"); Spectrum::Spectrum* new_spectrum = Spectrum::Factory::getInstance().create_from_xml(child); if (new_spectrum == nullptr) PL_INFO << "Could not parse spectrum"; else { new_spectrum->addSpill(fake_spill); my_spectra_.push_back(new_spectrum); } } } changed_ = false; identity_ = file_name; ready_ = true; newdata_ = true; terminating_ = false; cond_.notify_one(); }
void SpectraSet::set_spectra(const XMLableDB<Spectrum::Template>& newdb) { boost::unique_lock<boost::mutex> lock(mutex_); clear_helper(); int numofspectra = newdb.size(); for (int i=0; i < numofspectra; i++) { Spectrum::Spectrum* newSpectrum = Spectrum::Factory::getInstance().create_from_template(newdb.get(i)); if (newSpectrum != nullptr) { my_spectra_.push_back(newSpectrum); } } changed_ = true; ready_ = true; terminating_ = false; newdata_ = false; cond_.notify_one(); }
void SpectraSet::clear() { boost::unique_lock<boost::mutex> lock(mutex_); clear_helper(); cond_.notify_one(); }
SpectraSet::~SpectraSet() { terminate(); clear_helper(); }