annotate sv/main/EasaierSessionManager.cpp @ 217:c24fafc45d50

add the lock and unlock window
author benoitrigolleau
date Thu, 07 Feb 2008 15:17:13 +0000
parents c4e897bf012b
children ec2ca3fbd957
rev   line source
lbajardsilogic@21 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@21 2
lbajardsilogic@21 3 /* Sound Access
lbajardsilogic@21 4 EASAIER client application.
lbajardsilogic@21 5 Silogic 2007. Laure Bajard.
lbajardsilogic@21 6
lbajardsilogic@21 7 This program is free software; you can redistribute it and/or
lbajardsilogic@21 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@21 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@21 10 License, or (at your option) any later version. See the file
lbajardsilogic@21 11 COPYING included with this distribution for more information.
lbajardsilogic@21 12 */
lbajardsilogic@21 13
lbajardsilogic@21 14 #include "EasaierSessionManager.h"
lbajardsilogic@21 15
lbajardsilogic@21 16 #include <QUrl>
lbajardsilogic@21 17 #include <QMessageBox>
lbajardsilogic@21 18 #include <QTextStream>
lbajardsilogic@21 19 #include <iostream>
lbajardsilogic@191 20 #include <QStatusBar>
lbajardsilogic@191 21 #include <vector>
lbajardsilogic@191 22
lbajardsilogic@191 23 #include <QApplication>
lbajardsilogic@191 24 #include <Qt>
lbajardsilogic@191 25 #include <QUrl>
lbajardsilogic@29 26
lbajardsilogic@21 27 #include "layer/Layer.h"
lbajardsilogic@191 28 #include "base/TempDirectory.h"
lbajardsilogic@21 29 #include "data/fileio/AudioSourceInfoReader.h"
lbajardsilogic@21 30 #include "data/fileio/ModelReader.h"
lbajardsilogic@21 31 #include "data/fileio/QueryConfigReader.h"
lbajardsilogic@21 32 #include "data/fileio/SparqlResultsReader.h"
lbajardsilogic@143 33 #include "data/fileio/SparqlRelatedMediaReader.h"
lbajardsilogic@146 34 #include "data/fileio/VideoFileReaderFactory.h"
lbajardsilogic@21 35 #include "data/model/WaveFileModel.h"
lbajardsilogic@21 36 #include "main/MainWindow.h"
lbajardsilogic@21 37 #include "widgets/QueryResultsWidget.h"
lbajardsilogic@143 38 #include "widgets/RelatedMediaWidget.h"
benoitrigolleau@81 39 #include "base/PropertyContainer.h"
lbajardsilogic@85 40 #include "data/fileio/AudioFileReaderFactory.h"
lbajardsilogic@21 41
lbajardsilogic@21 42 EasaierSessionManager::EasaierSessionManager(HttpClient* httpClient) : QObject(),
lbajardsilogic@21 43 m_fileName(""),
lbajardsilogic@21 44 m_httpClient(httpClient),
lbajardsilogic@21 45 m_document(0),
lbajardsilogic@21 46 m_audioSourceInfoModel(0),
lbajardsilogic@214 47 m_queryModel(0),
lbajardsilogic@214 48 m_currentPane(0)
lbajardsilogic@64 49 {
lbajardsilogic@64 50 connect(m_httpClient, SIGNAL(requestFinished(int, bool)), this, SLOT(fileLoaded(int, bool)));
lbajardsilogic@64 51 }
lbajardsilogic@21 52
lbajardsilogic@21 53 EasaierSessionManager::~EasaierSessionManager()
lbajardsilogic@21 54 {
lbajardsilogic@21 55 closeSession();
lbajardsilogic@21 56 m_httpClient = 0;
lbajardsilogic@21 57 }
lbajardsilogic@21 58
lbajardsilogic@21 59 bool EasaierSessionManager::newSession()
lbajardsilogic@21 60 {
lbajardsilogic@21 61 closeSession();
lbajardsilogic@21 62
lbajardsilogic@21 63 m_queryModel = new QueryModel();
lbajardsilogic@95 64 QString filename = "/data/query/queryfield.xml";
benoitrigolleau@97 65 QString query = m_httpClient->getServletName() + "?theme=getFile&fileName=data/query/queryfield.xml";
lbajardsilogic@90 66 loadFile(query, filename, LoadedFile::QUERY_CONFIG);
lbajardsilogic@21 67
lbajardsilogic@21 68 return true;
lbajardsilogic@21 69 }
lbajardsilogic@21 70
lbajardsilogic@21 71 bool EasaierSessionManager::openSession(Document *document)
lbajardsilogic@21 72 {
lbajardsilogic@21 73 newSession();
lbajardsilogic@21 74
lbajardsilogic@21 75 m_fileName = document->getAudioSourceInfoFileName();
lbajardsilogic@21 76 m_document = document;
lbajardsilogic@21 77
lbajardsilogic@90 78 QString params = "&identification=" + m_fileName;
lbajardsilogic@90 79
lbajardsilogic@95 80 QString query = m_httpClient->getServletName() + "?theme=infoFile"+params;
lbajardsilogic@177 81 QString filename = "/easaier/servlet/infoFile";
lbajardsilogic@177 82 loadFile(query, filename, LoadedFile::AUDIO_SOURCE_INFO);
lbajardsilogic@90 83
lbajardsilogic@177 84 //get related media
lbajardsilogic@177 85 query = m_httpClient->getServletName() + "?theme=relatedMedia" + params;
lbajardsilogic@177 86 filename = "/easaier/servlet/relatedMedia";
lbajardsilogic@177 87 loadFile(query, filename, LoadedFile::RELATED_MEDIA_LIST);
lbajardsilogic@90 88
lbajardsilogic@21 89 return true;
lbajardsilogic@21 90 }
lbajardsilogic@21 91
lbajardsilogic@21 92 bool EasaierSessionManager::openAudioInfoFile(Document *document)
lbajardsilogic@21 93 {
lbajardsilogic@21 94 closeFile();
lbajardsilogic@21 95
lbajardsilogic@21 96 m_fileName = document->getAudioSourceInfoFileName();
lbajardsilogic@21 97 m_document = document;
lbajardsilogic@21 98
lbajardsilogic@90 99 QString params = "&identification=" + m_fileName;
lbajardsilogic@90 100
lbajardsilogic@143 101 //get infofile
lbajardsilogic@143 102 QString query = m_httpClient->getServletName() + "?theme=infoFile" + params;
lbajardsilogic@90 103
lbajardsilogic@95 104 QString filename = "/easaier/servlet/infoFile";
lbajardsilogic@92 105
lbajardsilogic@90 106 loadFile(query, filename, LoadedFile::AUDIO_SOURCE_INFO);
lbajardsilogic@21 107
lbajardsilogic@143 108 //get related media
lbajardsilogic@143 109
lbajardsilogic@143 110 query = m_httpClient->getServletName() + "?theme=relatedMedia" + params;
lbajardsilogic@143 111 filename = "/easaier/servlet/relatedMedia";
lbajardsilogic@143 112 loadFile(query, filename, LoadedFile::RELATED_MEDIA_LIST);
lbajardsilogic@143 113
lbajardsilogic@21 114 return true;
lbajardsilogic@21 115 }
lbajardsilogic@21 116
lbajardsilogic@21 117 void EasaierSessionManager::closeFile()
lbajardsilogic@21 118 {
lbajardsilogic@21 119 m_audioSourceInfoModel = 0;
lbajardsilogic@21 120
lbajardsilogic@21 121 while (!m_loadFile.empty())
lbajardsilogic@191 122 {
lbajardsilogic@191 123 m_loadFile.begin()->second->close();
lbajardsilogic@191 124 delete m_loadFile.begin()->second;
lbajardsilogic@21 125 m_loadFile.erase(m_loadFile.begin());
lbajardsilogic@21 126 }
lbajardsilogic@21 127
lbajardsilogic@21 128 m_modelLoaded.clear();
lbajardsilogic@21 129 }
lbajardsilogic@21 130
lbajardsilogic@21 131 void EasaierSessionManager::closeSession()
lbajardsilogic@21 132 {
lbajardsilogic@21 133 closeFile();
lbajardsilogic@21 134
lbajardsilogic@21 135 m_fileName = "";
lbajardsilogic@21 136 m_document = 0;
lbajardsilogic@21 137
lbajardsilogic@21 138 if (m_queryModel)
lbajardsilogic@21 139 {
lbajardsilogic@21 140 delete m_queryModel;
lbajardsilogic@21 141 m_queryModel = 0;
lbajardsilogic@21 142 }
lbajardsilogic@21 143 }
lbajardsilogic@21 144
benoitrigolleau@103 145 void EasaierSessionManager::loadFile(const QString& queryAux, const QString& filename, LoadedFile::FileType type)
lbajardsilogic@21 146 {
benoitrigolleau@103 147 if ((queryAux == 0) || (filename == 0))
lbajardsilogic@21 148 return;
lbajardsilogic@21 149
lbajardsilogic@21 150 if (m_httpClient->getHost() == "")
lbajardsilogic@21 151 return;
lbajardsilogic@21 152
benoitrigolleau@103 153 QUrl url(queryAux);
benoitrigolleau@103 154 QString query = QString(url.toEncoded());
benoitrigolleau@103 155
lbajardsilogic@191 156 QString directory = filename.left(filename.lastIndexOf("/"));
lbajardsilogic@191 157 QString file = filename.right(filename.length() - filename.lastIndexOf("/"));
lbajardsilogic@191 158
lbajardsilogic@191 159 if (directory.left(1) == "/")
lbajardsilogic@191 160 {
lbajardsilogic@191 161 directory.remove(0, 1);
lbajardsilogic@191 162 }
lbajardsilogic@191 163
lbajardsilogic@191 164 //create the subdirectory in local
lbajardsilogic@191 165 QString localPath = TempDirectory::getInstance()->getSubDirectoryPath(directory);
lbajardsilogic@191 166 localPath.append(file);
lbajardsilogic@191 167
lbajardsilogic@191 168 LoadedFile* newFile = new LoadedFile(localPath);
lbajardsilogic@90 169 newFile->setFileType(type);
lbajardsilogic@100 170 newFile->setUri(filename);
benoitrigolleau@88 171
lbajardsilogic@90 172 int index = m_httpClient->get(query, newFile);
lbajardsilogic@21 173
lbajardsilogic@95 174 std::cerr << "Ask for file : GET " << query.toStdString() << " - index : " << index << std::endl;
lbajardsilogic@64 175
lbajardsilogic@21 176 m_loadFile[index] = newFile;
lbajardsilogic@21 177
lbajardsilogic@29 178 if (type == LoadedFile::QUERY_RESULTS)
lbajardsilogic@21 179 MainWindow::instance()->statusBar()->showMessage(tr("Querying database..."));
lbajardsilogic@21 180 else if (type == LoadedFile::QUERY_CONFIG)
lbajardsilogic@21 181 MainWindow::instance()->statusBar()->showMessage(tr("Asking for query config..."));
lbajardsilogic@21 182 else
lbajardsilogic@29 183 MainWindow::instance()->statusBar()->showMessage(tr("Loading File : %1").arg(filename));
lbajardsilogic@21 184 }
lbajardsilogic@21 185
lbajardsilogic@21 186 void EasaierSessionManager::fileLoaded(int index, bool error)
lbajardsilogic@21 187 {
lbajardsilogic@21 188 QString errorString = m_httpClient->errorString();
lbajardsilogic@21 189 std::map<int , LoadedFile*>::iterator iter = m_loadFile.find(index);
lbajardsilogic@21 190 if (iter == m_loadFile.end())
lbajardsilogic@21 191 {
lbajardsilogic@64 192 std::cerr << "fileLoaded() : file " << index << " not found. " << std::endl;
lbajardsilogic@21 193 return;
lbajardsilogic@21 194 }
lbajardsilogic@21 195 if (error)
lbajardsilogic@21 196 {
benoitrigolleau@88 197 QApplication::restoreOverrideCursor();
lbajardsilogic@21 198 QMessageBox::critical(MainWindow::instance(), tr("Download Failed"), m_httpClient->errorString());
lbajardsilogic@21 199 return;
lbajardsilogic@21 200 }
lbajardsilogic@21 201 bool read = false;
lbajardsilogic@21 202
lbajardsilogic@21 203 //retreive loaded file
lbajardsilogic@21 204 LoadedFile* loadedFile = iter->second;
lbajardsilogic@21 205 loadedFile->close();
lbajardsilogic@21 206
lbajardsilogic@21 207 //save type and filename for reading
lbajardsilogic@21 208 LoadedFile::FileType type = loadedFile->getFileType();
lbajardsilogic@21 209 QString filename = loadedFile->fileName();
lbajardsilogic@21 210 QString uri = loadedFile->getUri();
lbajardsilogic@21 211
lbajardsilogic@21 212 //delete de file and erase from the loaded file queue
lbajardsilogic@21 213 delete loadedFile;
lbajardsilogic@21 214 m_loadFile.erase(iter);
lbajardsilogic@180 215 loadedFile = 0;
lbajardsilogic@21 216
lbajardsilogic@64 217 std::cerr << "fileLoaded() : file loaded, start to read file " << index << std::endl;
lbajardsilogic@64 218
lbajardsilogic@29 219 if ((type == LoadedFile::QUERY_RESULTS) || (type == LoadedFile::QUERY_CONFIG))
lbajardsilogic@21 220 {
lbajardsilogic@21 221 MainWindow::instance()->statusBar()->clearMessage();
lbajardsilogic@21 222 }
lbajardsilogic@21 223 else
lbajardsilogic@21 224 {
lbajardsilogic@21 225 QString name = filename.right(filename.length() - filename.lastIndexOf("/"));
lbajardsilogic@21 226 MainWindow::instance()->statusBar()->showMessage(tr("File Loaded : %1").arg(name), 3000);
lbajardsilogic@29 227 }
lbajardsilogic@21 228
lbajardsilogic@21 229 //read and load (in m_document) the file according to its type
lbajardsilogic@191 230 switch (type) {
lbajardsilogic@191 231
lbajardsilogic@191 232 case LoadedFile::AUDIO_SOURCE_INFO :
lbajardsilogic@191 233 {
lbajardsilogic@191 234 m_audioSourceInfoModel = new AudioSourceInfoModel();
lbajardsilogic@191 235 AudioSourceInfoReader audioSourceInfoReader(m_audioSourceInfoModel);
lbajardsilogic@191 236 read = audioSourceInfoReader.parse(filename);
lbajardsilogic@191 237 if (read)
lbajardsilogic@191 238 {
lbajardsilogic@191 239 m_document->setAudioSourceInfoModel(m_audioSourceInfoModel);
lbajardsilogic@191 240 loadRelatedModel();
lbajardsilogic@191 241 }
lbajardsilogic@191 242 break;
lbajardsilogic@21 243 }
lbajardsilogic@191 244 case LoadedFile::MODEL :
lbajardsilogic@191 245 {
lbajardsilogic@191 246 QString modelName = m_audioSourceInfoModel->getKey(uri);
lbajardsilogic@191 247
lbajardsilogic@191 248 read = addModelToLayers(modelName, filename);
lbajardsilogic@191 249
lbajardsilogic@191 250 break;
lbajardsilogic@21 251 }
lbajardsilogic@191 252 case LoadedFile::METADATA :
lbajardsilogic@191 253 {
lbajardsilogic@191 254 ModelReader modelReader(m_document,0, m_currentPane);
lbajardsilogic@191 255 read = modelReader.parse(filename);
lbajardsilogic@191 256
lbajardsilogic@191 257 break;
lbajardsilogic@21 258 }
lbajardsilogic@191 259 case LoadedFile::QUERY_CONFIG :
lbajardsilogic@191 260 {
lbajardsilogic@191 261 QueryConfigReader reader(m_queryModel);
lbajardsilogic@191 262 bool ok = reader.parse(filename);
lbajardsilogic@191 263
lbajardsilogic@191 264 if (ok)
lbajardsilogic@191 265 emit queryModelLoaded(m_queryModel);
lbajardsilogic@191 266
lbajardsilogic@191 267 read = ok;
lbajardsilogic@191 268 break;
lbajardsilogic@191 269 }
lbajardsilogic@191 270 case LoadedFile::QUERY_RESULTS :
lbajardsilogic@191 271 {
lbajardsilogic@21 272 QueryResultsWidget* resultsWidget = MainWindow::instance()->getQueryResultsWidget();
lbajardsilogic@21 273 resultsWidget->reset();
lbajardsilogic@21 274
lbajardsilogic@21 275 if (resultsWidget)
lbajardsilogic@21 276 {
lbajardsilogic@21 277 SparqlResultsReader reader(resultsWidget);
lbajardsilogic@21 278 read = reader.parse(filename);
lbajardsilogic@191 279 }
lbajardsilogic@191 280 break;
lbajardsilogic@21 281 }
lbajardsilogic@143 282 case LoadedFile::RELATED_MEDIA_LIST :
lbajardsilogic@143 283 {
lbajardsilogic@143 284 std::list<QString> relMediaList;
lbajardsilogic@143 285 SparqlRelatedMediaReader reader(&relMediaList);
lbajardsilogic@143 286 read = reader.parse(filename);
lbajardsilogic@143 287 importRelatedMedia(&relMediaList);
lbajardsilogic@143 288 break;
lbajardsilogic@143 289 }
lbajardsilogic@143 290 case LoadedFile::RELATED_MEDIA :
lbajardsilogic@143 291 {
lbajardsilogic@143 292 read = true;
lbajardsilogic@143 293 RelatedMediaWidget* relMediaWidget = MainWindow::instance()->getRelatedMediaWidget();
lbajardsilogic@143 294 relMediaWidget->addRelatedMedia(filename);
lbajardsilogic@143 295 break;
lbajardsilogic@143 296 }
lbajardsilogic@21 297 default: break;
lbajardsilogic@21 298 }
lbajardsilogic@21 299
lbajardsilogic@21 300 //if the file could not be read by any reader
lbajardsilogic@21 301 if (!read)
lbajardsilogic@21 302 {
lbajardsilogic@21 303 QFile file(filename);
lbajardsilogic@21 304 if (file.open(QFile::ReadOnly)) {
benoitrigolleau@88 305 QApplication::restoreOverrideCursor();
lbajardsilogic@21 306 QMessageBox::critical(MainWindow::instance(), tr("Download Error"), file.readAll());
lbajardsilogic@21 307 }
lbajardsilogic@21 308 }
lbajardsilogic@64 309 else {
lbajardsilogic@64 310 std::cerr << "fileLoaded() : " << index << " all successful. " << std::endl;
lbajardsilogic@64 311 }
benoitrigolleau@88 312 QApplication::restoreOverrideCursor();
lbajardsilogic@21 313 }
lbajardsilogic@21 314
lbajardsilogic@21 315 void EasaierSessionManager::loadRelatedModel()
lbajardsilogic@21 316 {
lbajardsilogic@21 317 std::set<Layer *> layers = m_document->getLayers();
lbajardsilogic@21 318 std::set<Layer *>::iterator iter;
lbajardsilogic@21 319
lbajardsilogic@21 320 std::set<QString> loadedModel;
lbajardsilogic@21 321
lbajardsilogic@21 322 for (iter=layers.begin(); iter != layers.end(); iter++)
lbajardsilogic@21 323 {
lbajardsilogic@21 324 Layer * layer = *iter;
lbajardsilogic@21 325
lbajardsilogic@21 326 QString modelName = layer->getModelName();
lbajardsilogic@21 327 if (modelName != "")
lbajardsilogic@21 328 {
lbajardsilogic@21 329 QString modelId = QString::number(layer->getModelId());
lbajardsilogic@90 330 //modelName.append(modelId);
lbajardsilogic@21 331
lbajardsilogic@21 332 } else if (layer->getLayerPresentationName() == "Waveform")
lbajardsilogic@21 333 {
lbajardsilogic@90 334 modelName = "http://purl.org/dc/elements/1.1/source";
lbajardsilogic@21 335 int modelId = 1;
lbajardsilogic@21 336 layer->setModelName(modelName);
lbajardsilogic@21 337 layer->setModelId(modelId);
lbajardsilogic@90 338 //modelName.append(QString::number(modelId));
lbajardsilogic@21 339 }
lbajardsilogic@21 340
lbajardsilogic@21 341 if (modelName != "")
lbajardsilogic@21 342 {
lbajardsilogic@21 343 QString uri = m_audioSourceInfoModel->getInfo(modelName);
lbajardsilogic@90 344
benoitrigolleau@97 345 QString query = m_httpClient->getServletName() + "?theme=getFile&fileName="+uri;
lbajardsilogic@95 346
lbajardsilogic@21 347 std::set<QString>::iterator iterModel = m_modelLoaded.find(uri);
lbajardsilogic@21 348
lbajardsilogic@21 349 if (iterModel == m_modelLoaded.end())
lbajardsilogic@21 350 {
lbajardsilogic@21 351 m_modelLoaded.insert(uri);
lbajardsilogic@95 352 loadFile(query, uri, LoadedFile::MODEL);
lbajardsilogic@21 353 }
lbajardsilogic@21 354 }
lbajardsilogic@21 355 }
lbajardsilogic@21 356 }
lbajardsilogic@21 357
lbajardsilogic@21 358 bool EasaierSessionManager::addModelToLayers(const QString& name, const QString& filename)
lbajardsilogic@21 359 {
lbajardsilogic@21 360 std::set<Layer *> layers = m_document->getLayers();
lbajardsilogic@21 361 std::set<Layer *>::iterator iter;
lbajardsilogic@21 362
lbajardsilogic@21 363 std::map<QString, Model *> addedModel;
lbajardsilogic@21 364
lbajardsilogic@21 365 bool ok = false;
lbajardsilogic@21 366
lbajardsilogic@21 367 for (iter=layers.begin(); iter != layers.end(); iter++)
lbajardsilogic@21 368 {
lbajardsilogic@21 369 Layer * layer = *iter;
lbajardsilogic@21 370
lbajardsilogic@21 371 QString modelName = layer->getModelName();
lbajardsilogic@21 372 QString modelId = QString::number(layer->getModelId());
lbajardsilogic@21 373
lbajardsilogic@90 374 //modelName.append(modelId);
lbajardsilogic@21 375 modelName = modelName.toLower();
lbajardsilogic@21 376
lbajardsilogic@21 377 if (modelName == name)
lbajardsilogic@21 378 {
lbajardsilogic@21 379 std::map<QString, Model *>::iterator iterModel;
lbajardsilogic@21 380 iterModel = addedModel.find(modelName);
lbajardsilogic@21 381
lbajardsilogic@21 382 if (iterModel == addedModel.end())
lbajardsilogic@21 383 {
lbajardsilogic@191 384 QString extension = filename.right(filename.length()-filename.lastIndexOf(".")-1);
lbajardsilogic@191 385 if (AudioFileReaderFactory::isKnownExtensions(extension))
lbajardsilogic@191 386 {
lbajardsilogic@191 387 WaveFileModel *model = new WaveFileModel(filename);
lbajardsilogic@191 388 m_document->setMainModel(model);
lbajardsilogic@191 389 addedModel[modelName] = (Model* ) model;
lbajardsilogic@191 390 ok = true;
benoitrigolleau@217 391 emit audioFileLoaded();
lbajardsilogic@191 392 }
lbajardsilogic@192 393 #ifdef HAVE_VIDEO
lbajardsilogic@191 394 else if (VideoFileReaderFactory::isKnownExtensions(extension))
lbajardsilogic@146 395 {
lbajardsilogic@185 396 ok = !(MainWindow::instance()->openVideoFile(filename, MainWindow::ReplaceMainModel));
benoitrigolleau@217 397 emit audioFileLoaded();
lbajardsilogic@191 398 }
lbajardsilogic@191 399 #endif
lbajardsilogic@191 400 else
lbajardsilogic@21 401 {
lbajardsilogic@191 402 ModelReader modelReader(m_document, layer);
lbajardsilogic@21 403 ok = modelReader.parse(filename);
lbajardsilogic@21 404 }
lbajardsilogic@21 405 }
lbajardsilogic@21 406 else
lbajardsilogic@21 407 {
lbajardsilogic@21 408 Model* model = iterModel->second;
lbajardsilogic@21 409 m_document->addImportedModel(model);
lbajardsilogic@21 410 m_document->setModel(layer, model);
lbajardsilogic@21 411 }
lbajardsilogic@21 412 }
lbajardsilogic@21 413 }
lbajardsilogic@21 414
lbajardsilogic@21 415 return ok;
lbajardsilogic@21 416 }
lbajardsilogic@21 417
lbajardsilogic@21 418 void EasaierSessionManager::importMetadata(const QString& filename, Pane* pane)
lbajardsilogic@21 419 {
benoitrigolleau@97 420 QString query = m_httpClient->getServletName() + "?theme=getFile&fileName="+filename;
lbajardsilogic@92 421
lbajardsilogic@95 422 loadFile( query, filename, LoadedFile::METADATA);
lbajardsilogic@90 423
lbajardsilogic@21 424 m_currentPane = pane;
lbajardsilogic@21 425 }
lbajardsilogic@21 426
lbajardsilogic@143 427 void EasaierSessionManager::importRelatedMedia(std::list<QString> *relMediaList)
lbajardsilogic@143 428 {
lbajardsilogic@143 429 QString filename;
lbajardsilogic@143 430 QString query;
lbajardsilogic@143 431
lbajardsilogic@143 432 std::list<QString>::iterator iter;
lbajardsilogic@143 433 for (iter = relMediaList->begin(); iter != relMediaList->end(); iter++)
lbajardsilogic@143 434 {
lbajardsilogic@143 435 filename = *iter;
lbajardsilogic@143 436
lbajardsilogic@143 437 query = m_httpClient->getServletName() + "?theme=getFile&fileName=" + filename;
lbajardsilogic@143 438
lbajardsilogic@143 439 loadFile( query, filename, LoadedFile::RELATED_MEDIA);
lbajardsilogic@143 440 }
lbajardsilogic@143 441 }
lbajardsilogic@143 442
lbajardsilogic@21 443 void EasaierSessionManager::queryDatabase(const QString& themeName)
lbajardsilogic@21 444 {
lbajardsilogic@21 445
benoitrigolleau@81 446 QueryThemeModel *themeModel = (m_queryModel->getThemes()).find(themeName)->second;
benoitrigolleau@81 447 QString params = "";
benoitrigolleau@81 448 if(themeModel!=0){
benoitrigolleau@81 449 PropertyContainer::PropertyList propertyList = themeModel->getProperties();
lbajardsilogic@185 450 for(int i=0; i< ((int) propertyList.size());i++){
benoitrigolleau@81 451 params+= "&"+propertyList[i] + "="+themeModel->getPropertyValue(propertyList[i]);
benoitrigolleau@81 452 }
benoitrigolleau@81 453 }
lbajardsilogic@95 454 QString query = m_httpClient->getServletName() + "?theme="+themeName+""+params;
lbajardsilogic@95 455 QString filename = "/easaier/servlet/"+themeName;
benoitrigolleau@104 456
lbajardsilogic@92 457
benoitrigolleau@88 458 QApplication::setOverrideCursor( Qt::WaitCursor );
lbajardsilogic@90 459 loadFile(query, filename, LoadedFile::QUERY_RESULTS);
lbajardsilogic@90 460
lbajardsilogic@21 461 }