00001
00012
00013 #include <iostream>
00014
00015
00016 #include "datasets_viewer.h"
00017 #include "dataset_item.h"
00018
00019 #include <QMenu>
00020 #include <QMainWindow>
00021 #include <QContextMenuEvent>
00022
00023 namespace imedgine
00024 {
00025
00026 DatasetsViewer::DatasetsViewer(QWidget* parent)
00027 : QListWidget(parent)
00028 {
00029
00030
00031 close_dataset_action_ = new QAction(QIcon(":icons/document-close.png"),
00032 tr("Close Dataset"),this);
00033 save_dataset_action_ = new QAction(QIcon(":icons/document-save.png"),
00034 tr("&Save Dataset"), this);
00035 save_as_dataset_action_ = new QAction(QIcon(":icons/document-save-as.png"),
00036 tr("S&ave Dataset as"), this);
00037
00038 connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
00039 this, SLOT(doubleClicked(QListWidgetItem*)));
00040 connect(close_dataset_action_,SIGNAL(triggered()),
00041 this, SLOT(closeDataset()));
00042 connect(save_dataset_action_, SIGNAL(triggered()),
00043 this, SLOT(saveDataset()));
00044 connect(save_as_dataset_action_, SIGNAL(triggered()),
00045 this, SLOT(saveAsDataset()));
00046 }
00047
00048 DatasetsViewer::~DatasetsViewer()
00049 {
00050 }
00051
00052 void DatasetsViewer::addDataset(dataset_key_type const& dataset)
00053 {
00054
00055
00056 loaded_datasets_.push_back(dataset);
00057
00058 DatasetItem* dataset_item = new DatasetItem(QString(dataset.c_str()));
00059
00060 addItem(dataset_item);
00061 }
00062
00063 void DatasetsViewer::doubleClicked(QListWidgetItem* dataset)
00064 {
00065 emit datasetDoubleClicked(dataset->text().toStdString());
00066 }
00067
00068 void DatasetsViewer::contextMenuEvent( QContextMenuEvent* context_menu_event )
00069 {
00070 std::cout << "context menu requested" << std::endl;
00071 if(loaded_datasets_.size() > 0 && selectedItems().size() != 0)
00072 {
00073 QMenu menu(this);
00074 menu.addAction(close_dataset_action_);
00075 menu.addAction(save_dataset_action_);
00076 menu.addAction(save_as_dataset_action_);
00077 menu.exec(context_menu_event->globalPos());
00078
00079 }
00080
00081 }
00082
00083 void DatasetsViewer::closeDataset()
00084 {
00085
00086 QListWidgetItem* temp_item = takeItem(row(selectedItems().at(0)));
00087 emit closeDatasetSignal(temp_item->text().toStdString());
00088 delete temp_item;
00089 }
00090
00091 void DatasetsViewer::saveDataset()
00092 {
00093
00094 QListWidgetItem* temp_item = item(row(selectedItems().at(0)));
00095 emit saveDatasetSignal(temp_item->text().toStdString());
00096
00097 }
00098
00099 void DatasetsViewer::saveAsDataset()
00100 {
00101
00102 QListWidgetItem* temp_item = item(row(selectedItems().at(0)));
00103 emit saveAsDatasetSignal(temp_item->text().toStdString());
00104
00105 }
00106 }