void LibraryTreeWidget::importToLibrary() { QTreeWidgetItem* root = invisibleRootItem(); if (selectedItems().empty() == false) root = selectedItems().front(); QString path = QFileInfo(projectFileName_).path(); QDir dir(path); QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Import to Library"), path, tr("All Files (*.*)")); QStringList::Iterator it = fileNames.begin(); while(it != fileNames.end()) { QString fileName = dir.relativeFilePath(*it); if (isFileAlreadyImported(fileName)) { QMessageBox::information(this, tr("Gideros"), tr("The file '%1' cannot be added to the library because it is already a member of the library.").arg(fileName)); } else { QTreeWidgetItem *item = createFileItem(fileName); if (root == invisibleRootItem()) root->addChild(item); else root->insertChild(0, item); root->setExpanded(true); } ++it; } checkModification(); }
void LibraryTreeWidget::rename() { if (selectedItems().empty() == true) return; QTreeWidgetItem* item = selectedItems()[0]; editItem(item, 0); checkModification(); }
void LibraryTreeWidget::newFolder() { QTreeWidgetItem* root = invisibleRootItem(); if (selectedItems().empty() == false) root = selectedItems().front(); QTreeWidgetItem *item = createFolderItem("New Folder"); root->setExpanded(true); if (root == invisibleRootItem()) root->addChild(item); else root->insertChild(0, item); editItem(item, 0); checkModification(); }
void LibraryTreeWidget::remove() { QList<QTreeWidgetItem*> selectedItems = this->selectedItems(); for (int i = 0; i < selectedItems.size(); ++i) { QTreeWidgetItem* item = selectedItems[i]; if (item->parent()) item->parent()->removeChild(item); } std::stack<QTreeWidgetItem*> stack; for (int i = 0; i < selectedItems.size(); ++i) stack.push(selectedItems[i]); while (!stack.empty()) { QTreeWidgetItem* item = stack.top(); stack.pop(); QString fileName = item->data(0, Qt::UserRole).toMap()["filename"].toString(); QFileInfo fileInfo(fileName); if (fileInfo.suffix().toLower() == "lua") dependencyGraph_.removeCode(fileName); for (int i = 0; i < item->childCount(); ++i) stack.push(item->child(i)); } for (int i = 0; i < selectedItems.size(); ++i) { QTreeWidgetItem* item = selectedItems[i]; delete item; } checkModification(); }
void siteDialog::onSelectSite(QListWidgetItem* current, QListWidgetItem* previous) { int currentRow = ui_.siteList->row(current); int previousRow = ui_.siteList->row(previous); if (currentRow < 0) { ui_.editGroup->setDisabled(true); } else { ui_.editGroup->setEnabled(true); } if (previousRow >= 0){ if (checkModification(previousRow) == QMessageBox::Cancel) { forcedSetCurrentSite(previousRow); return; } saveAddress(config_, previousRow, param_); } if (currentRow >= 0){ loadAddress(config_, currentRow, param_); setUIFromParam(); } }
LibraryTreeWidget::LibraryTreeWidget(QWidget *parent) : QTreeWidget(parent) { setSelectionMode(QAbstractItemView::ExtendedSelection); setDragEnabled(true); viewport()->setAcceptDrops(true); setDropIndicatorShown(true); setDragDropMode(QAbstractItemView::InternalMove); invisibleRootItem()->setFlags(invisibleRootItem()->flags() & ~Qt::ItemIsDropEnabled); setHeaderHidden(true); setEditTriggers(QAbstractItemView::EditKeyPressed | QAbstractItemView::SelectedClicked); addNewFileAction_ = new QAction(tr("Add New File..."), this); connect(addNewFileAction_, SIGNAL(triggered()), this, SLOT(addNewFile())); importToLibraryAction_ = new QAction(tr("Add Existing Files..."), this); connect(importToLibraryAction_, SIGNAL(triggered()), this, SLOT(importToLibrary())); // newFontAction_ = new QAction(tr("New Font..."), this); // connect(newFontAction_, SIGNAL(triggered()), this, SLOT(newFont())); newFolderAction_ = new QAction(tr("New Folder"), this); connect(newFolderAction_, SIGNAL(triggered()), this, SLOT(newFolder())); removeAction_ = new QAction(tr("Remove"), this); connect(removeAction_, SIGNAL(triggered()), this, SLOT(remove())); renameAction_ = new QAction(tr("Rename"), this); //renameAction_->setShortcut(Qt::Key_F2); connect(renameAction_, SIGNAL(triggered()), this, SLOT(rename())); sortAction_ = new QAction(tr("Sort"), this); connect(sortAction_, SIGNAL(triggered()), this, SLOT(sort())); codeDependenciesAction_ = new QAction(tr("Code Dependencies..."), this); connect(codeDependenciesAction_, SIGNAL(triggered()), this, SLOT(codeDependencies())); insertIntoDocumentAction_ = new QAction(tr("Insert Into Document"), this); connect(insertIntoDocumentAction_, SIGNAL(triggered()), this, SLOT(insertIntoDocument())); projectPropertiesAction_ = new QAction(tr("Properties..."), this); connect(projectPropertiesAction_, SIGNAL(triggered()), this, SLOT(projectProperties())); automaticDownsizingAction_ = new QAction(tr("Automatic Downsizing"), this); automaticDownsizingAction_->setCheckable(true); connect(automaticDownsizingAction_, SIGNAL(triggered(bool)), this, SLOT(automaticDownsizing(bool))); excludeFromExecutionAction_ = new QAction(tr("Exclude from Execution"), this); excludeFromExecutionAction_->setCheckable(true); connect(excludeFromExecutionAction_, SIGNAL(triggered(bool)), this, SLOT(excludeFromExecution(bool))); setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(customContextMenuRequested (const QPoint&)), this, SLOT (onCustomContextMenuRequested(const QPoint&))); connect(this, SIGNAL(itemDoubleClicked (QTreeWidgetItem*, int)), this, SLOT (onItemDoubleClicked(QTreeWidgetItem*, int))); connect(this, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)), this, SLOT (onCurrentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*))); isModifed_ = false; xmlString_ = toXml().toString(); QTimer* timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(checkModification())); timer->start(500); }