void SecurityKeyManager::load(dtn::security::SecurityKey &keydata) const
		{
			if ((keydata.type == SecurityKey::KEY_SHARED) && !keydata.file.exists())
			{
				// get the default shared key
				ibrcommon::File default_key = dtn::daemon::Configuration::getInstance().getSecurity().getBABDefaultKey();

				if (default_key.exists()) {
					keydata.file = default_key;
				}
			}

			// throw exception if key-file does not exists
			if (!keydata.file.exists())
			{
				std::stringstream ss;
				ss << "Key file for " << keydata.reference.getString() << " (" << keydata.file.getPath() << ") not found";
				throw SecurityKey::KeyNotFoundException(ss.str());
			}

			// load meta-data
			if (keydata.getMetaFilename().exists())
			{
				std::ifstream metastream(keydata.getMetaFilename().getPath().c_str(), std::ios::in);
				metastream >> keydata;
			}
Beispiel #2
0
void TileView::dragEnterEvent(QDragEnterEvent *event) {
    if (event->mimeData()->hasFormat("application/x-metatile") && event->mimeData()->hasFormat("application/x-tile")) {
        if ((event->source() == m_allowedDragWidget) || (event->source()->parent() == parent())) {
            QByteArray data(event->mimeData()->data("application/x-tile"));
            QDataStream stream(&data, QIODevice::ReadOnly);
            QImage tmpImage;
            stream >> tmpImage;
            if (tmpImage.size() == QSize(m_width, m_height)) {
                QByteArray metadata(event->mimeData()->data("application/x-metatile"));
                QDataStream metastream(&metadata, QIODevice::ReadOnly);
                int id, projectRow;
                metastream >> id >> projectRow;
                if (projectRow == m_projectIndex.row()) {
                    if (event->source()->parent() == parent()) event->setDropAction(Qt::MoveAction);
                    else event->setDropAction(event->proposedAction());
                    m_currentDragAccepted = true;
                }
                else m_currentDragAccepted = false;
            }
            else m_currentDragAccepted = false;