Beispiel #1
0
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);
}
Beispiel #2
0
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;
}