NewProjectDialog::NewProjectDialog(QWidget* parent,QString windowTitle,QString defName,QString defPath, bool showTemplate) : QDialog(parent), ui(new Ui::NewProjectDialog) { ui->setupUi(this); ui->name->setText(defName); ui->path->setText(defPath); on_path_textChanged(defPath); setWindowTitle(windowTitle); ui->templateGroup->setVisible(showTemplate); ui->name->setFocus(); QDir templatesDir(":/templates/NES"); QStringList templates = templatesDir.entryList(); ui->templateProject->addItem("Empty Project"); ui->templateProject->addItems(templates); }
void DocumentsDir::generateTemplateDir() { QFileInfoList fil( QDir(":/templates/").entryInfoList() ); QDir templatesDir( getTemplatesDirName() ); if( !templatesDir.mkpath( "." ) ) { return; } foreach( const QFileInfo &fi, fil ) { QString srcFile( fi.absoluteFilePath() ); QString destFile( templatesDir.absoluteFilePath( fi.fileName() ) ); if( QFile::copy( srcFile, destFile ) ) { QFile::setPermissions( destFile, QFile::permissions( destFile ) | QFile::WriteUser ); } }
bool TemplatesMenu::BuildMenu(bool addItems) { // Clear everything... fOpenItem = NULL; int32 count = CountItems(); while (count--) delete RemoveItem((int32)0); // Add the Folder IconMenuItem* menuItem = new IconMenuItem(B_TRANSLATE("New folder"), new BMessage(kNewFolder), B_DIR_MIMETYPE, B_MINI_ICON); AddItem(menuItem); menuItem->SetShortcut('N', 0); // The Templates folder BPath path; find_directory (B_USER_SETTINGS_DIRECTORY, &path, true); path.Append(kTemplatesDirectory); mkdir(path.Path(), 0777); count = 0; BEntry entry; BDirectory templatesDir(path.Path()); while (templatesDir.GetNextEntry(&entry) == B_OK) { BNode node(&entry); BNodeInfo nodeInfo(&node); char fileName[B_FILE_NAME_LENGTH]; entry.GetName(fileName); if (nodeInfo.InitCheck() == B_OK) { char mimeType[B_MIME_TYPE_LENGTH]; nodeInfo.GetType(mimeType); BMimeType mime(mimeType); if (mime.IsValid()) { if (count == 0) AddSeparatorItem(); count++; // If not adding items, we are just seeing if there // are any to list. So if we find one, immediately // bail and return the result. if (!addItems) break; entry_ref ref; entry.GetRef(&ref); BMessage* message = new BMessage(kNewEntryFromTemplate); message->AddRef("refs_template", &ref); message->AddString("name", fileName); AddItem(new IconMenuItem(fileName, message, &nodeInfo, B_MINI_ICON)); } } } AddSeparatorItem(); // This is the message sent to open the templates folder. BMessage* message = new BMessage(B_REFS_RECEIVED); entry_ref dirRef; if (templatesDir.GetEntry(&entry) == B_OK) entry.GetRef(&dirRef); message->AddRef("refs", &dirRef); // Add item to show templates folder. fOpenItem = new BMenuItem(B_TRANSLATE("Edit templates" B_UTF8_ELLIPSIS), message); AddItem(fOpenItem); if (dirRef == entry_ref()) fOpenItem->SetEnabled(false); return count > 0; }