EntitiesTreeWidget::EntitiesTreeWidget(QWidget *parent) : QTreeWidget(parent) { applicationNode = new QTreeWidgetItem(this,QStringList() << "Application"); modulesNode = new QTreeWidgetItem(this,QStringList() << "Modules"); resourcesNode = new QTreeWidgetItem(this,QStringList() << "Resources"); templatesNode = new QTreeWidgetItem(this,QStringList() << "Templates"); applicationNode->setIcon(0,QIcon(":/images/folderapp_ico.png")); modulesNode->setIcon(0,QIcon(":/images/foldermod_ico.png")); resourcesNode->setIcon(0,QIcon(":/images/folderres_ico.png")); templatesNode->setIcon(0,QIcon(":/images/folder_ico.png")); addTopLevelItem(applicationNode); addTopLevelItem(modulesNode); addTopLevelItem(resourcesNode); addTopLevelItem(templatesNode); setExpandsOnDoubleClick(false); setContextMenuPolicy(Qt::CustomContextMenu); resizeColumnToContents(0); connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(onItemDoubleClicked(QTreeWidgetItem*,int))); connect(this,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(onContext(QPoint))); openFile = new QAction("Open File",this); importFile = new QAction("Import Files...",this); topLevelMenu.addAction(openFile); topLevelMenu.addAction(importFile); loadFiles = new QAction("Load",this); QAction *separator = new QAction(this); separator->setSeparator(true); reopen = new QAction("Reopen",this); remove = new QAction("Remove",this); secondLevelMenu.addAction(loadFiles); secondLevelMenu.addAction(separator); secondLevelMenu.addAction(reopen); secondLevelMenu.addAction(remove); edit = new QAction("Edit",this); leafLevelMenu.addAction(edit); connect(loadFiles,SIGNAL(triggered()),this,SLOT(onLoadFile())); connect(openFile,SIGNAL(triggered()),this,SIGNAL(openFiles())); connect(importFile,SIGNAL(triggered()),this,SIGNAL(importFiles())); connect(edit,SIGNAL(triggered()),this,SLOT(onEdit())); connect(remove,SIGNAL(triggered()),this,SLOT(onRemove())); }
void MainWindow::on_actionImport_triggered() { QSettings settings; QString lastDir = QDir::homePath(); settings.beginGroup("FileDialog"); if (settings.contains("LastDir")) if (QDir::setCurrent(settings.value("LastDir").toString())) lastDir = settings.value("LastDir").toString(); settings.endGroup(); QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Import Files"), lastDir, filter()); if (!fileNames.size()) return; // no selection // Keep last open dir QFileInfo fileInfo(fileNames.at(0)); settings.beginGroup("FileDialog"); settings.setValue("LastDir", fileInfo.dir().path()); settings.endGroup(); importFiles(fileNames); }
void ImageImporter::slotImport() { //first save all slotSaveSettings(); //then init the regular expression QRegExp re(m_txtSourceFilename->text(), !m_chkIgnoreCase->isChecked()); //first find all possible files //listdir is used as a stack containing the directories to parse QStringList lstDirs = m_cmbSourceFolder->currentText(); //the list of files found in the directories QFileInfoList lstFiles; lstFiles.setAutoDelete(true); DlgImageImporterStatus* dlgStatus = new DlgImageImporterStatus(this, "StatusDialog"); dlgStatus->enableImageArchive(m_groupArchive->isChecked()); dlgStatus->show(); dlgStatus->appendStatusMessage(i18n("Starting...")); dlgStatus->setCurrentMode( DlgImageImporterStatus::ModeImport, i18n("Scanning for available Images...")); //now go thru all folders and collect all files that match the file regexp... while (!lstDirs.isEmpty()) { QDir d( lstDirs.front() ); lstDirs.pop_front(); dlgStatus->addFolder(); d.setMatchAllDirs(true); const QFileInfoList* list = d.entryInfoList(); if (list) { QFileInfoListIterator it( *list ); QFileInfo* fi; for ( ; ( fi = it.current() ) != 0; ++it ) { if ( fi->fileName() == "." || fi->fileName() == ".." ) { continue; } else if ( fi->isDir() && m_chkSrcIncludeSubfolders->isChecked()) { lstDirs.append(fi->absFilePath()); } else if( fi->isFile() ) { dlgStatus->addFile(); if (re.exactMatch(fi->fileName())) { dlgStatus->addMatch(); //save a copy of all FileInfos lstFiles.append(new QFileInfo(*fi)); } } // we return here and break all importing! if (dlgStatus->wasCanceled()) { return; } } } // we return here and break all importing! if (dlgStatus->wasCanceled()) { return; } } //archive the images, if requested ... if (m_groupArchive->isChecked()) { dlgStatus->setCurrentMode(DlgImageImporterStatus::ModeArchive, i18n("Archiving found images...")); importFiles(&lstFiles, m_txtArchiveBaseFolder->text(), m_txtArchiveSubfolders->text(), m_txtArchiveFilename->text(), m_chkArchiveLowercase->isChecked(), false, dlgStatus); if (dlgStatus->wasCanceled()) { //either canceled by user or error return; } } else { dlgStatus->appendStatusMessage(i18n("Archiving found images... skipped")); } QString msg = i18n("Moving found images..."); if (!m_chkSrcRemoveFilesFromSrc->isChecked()) { msg = i18n("Copying found images..."); } dlgStatus->setCurrentMode(DlgImageImporterStatus::ModeDestination, msg); // ... then copy/ move the images to their destinaion importFiles(&lstFiles, m_cmbDestBasefolder->currentText(), m_txtDestSubfolders->text(), m_txtDestFilename->text(), m_chkDestLowercase->isChecked(), m_chkSrcRemoveFilesFromSrc->isChecked(), dlgStatus); if (dlgStatus->wasCanceled()) { //either canceled by user or error return; } //yes, we are done :) dlgStatus->setCurrentMode( DlgImageImporterStatus::ModeFinished, i18n("Done.")); //now tell, that new images have arrived emit newImagesImported(m_cmbDestBasefolder->currentText()); }
EntitiesTreeWidget::EntitiesTreeWidget(QWidget *parent) : QTreeWidget(parent) { applicationNode = new QTreeWidgetItem(this,QStringList() << "Application"); modulesNode = new QTreeWidgetItem(this,QStringList() << "Modules"); resourcesNode = new QTreeWidgetItem(this,QStringList() << "Resources"); templatesNode = new QTreeWidgetItem(this,QStringList() << "Templates"); applicationNode->setIcon(0,QIcon(":/folder-app.svg")); modulesNode->setIcon(0,QIcon(":/folder-mod.svg")); resourcesNode->setIcon(0,QIcon(":/folder-res.svg")); templatesNode->setIcon(0,QIcon(":/folder.svg")); addTopLevelItem(applicationNode); addTopLevelItem(modulesNode); addTopLevelItem(resourcesNode); addTopLevelItem(templatesNode); setExpandsOnDoubleClick(false); setContextMenuPolicy(Qt::CustomContextMenu); resizeColumnToContents(0); connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(onItemDoubleClicked(QTreeWidgetItem*,int))); connect(this,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(onContext(QPoint))); openFile = new QAction("Open File",this); importFile = new QAction("Import Files...",this); topLevelMenu.addAction(openFile); topLevelMenu.addAction(importFile); loadFiles = new QAction("Load",this); QAction *separator = new QAction(this); separator->setSeparator(true); reopen = new QAction("Refresh",this); remove = new QAction("Remove",this); editApplication = new QAction("Edit",this); secondLevelMenu.addAction(loadFiles); secondLevelMenu.addAction(editApplication); secondLevelMenu.addAction(separator); secondLevelMenu.addAction(reopen); secondLevelMenu.addAction(remove); edit = new QAction("Edit",this); leafLevelMenu.addAction(edit); connect(loadFiles,SIGNAL(triggered()),this,SLOT(onLoadFile())); connect(editApplication,SIGNAL(triggered()),this,SLOT(onEditApplication())); connect(openFile,SIGNAL(triggered()),this,SIGNAL(openFiles())); connect(importFile,SIGNAL(triggered()),this,SIGNAL(importFiles())); connect(edit,SIGNAL(triggered()),this,SLOT(onEdit())); connect(remove,SIGNAL(triggered()),this,SLOT(onRemove())); connect(reopen,SIGNAL(triggered()),this,SLOT(onReopen())); #if defined(WIN32) ext_editor = "notepad.exe"; #else ext_editor = "xdg-open"; #endif setDragEnabled(true); setDragDropMode(DragOnly); }