int WaveFile::open(const char *path) { int status = RiffFile::open(path); if(status != 0) return status; char s[5]; FOURCC2STR(formatCode(), s); printf("type = %s\n", s); if(formatCode() != STR2FOURCC("WAVE")) { return 1; // error } // Jump into the "fmt " chunk if(push(STR2FOURCC("fmt "))) { memset(&mHeader, 0, sizeof(mHeader)); UInt32 fmtSize = chunkSize(); if(RiffFile::readData(&mHeader, fmtSize) != fmtSize) { return 1; // error } assert(mHeader.formatTag == 1); // only uncompressed files are supported // Some writers put a bad block align and/or avgBytesPerSecond value. // Let's recalculate it. mHeader.bytesPerFrame = mHeader.bitsPerSample / 8 * mHeader.numChannels; mHeader.averageBytesPerSecond = mHeader.bytesPerFrame * mHeader.samplesPerSecond; } // Jump out of the "fmt " chunk pop(); // Jump into the "data" chunk if(!push(STR2FOURCC("data"))) { return 1; // error, couldn't find the data chunk } return 0; // success }
JsonEditorMain::JsonEditorMain(QWidget *parent) : QMainWindow(parent), ui(new Ui::JsonEditorMain), newInsertText(tr("Insert new data")), treeViewColumnKey(tr("Node")), treeViewColumnValue(tr("Value")), treeViewColumnType(tr("Type")) { ui->setupUi(this); connect(ui->menuCodeTools, SIGNAL(toggled(bool)), this, SLOT(toggleCodeToolbar(bool))); connect(ui->menuFindTools, SIGNAL(toggled(bool)), this, SLOT(toggleFindToolbar(bool))); connect(ui->menuFileTools, SIGNAL(toggled(bool)), this, SLOT(toggleFileToolbar(bool))); connect(ui->menuEditTools, SIGNAL(toggled(bool)), this, SLOT(toggleEditToolbar(bool))); connect(ui->menuRefresh, SIGNAL(triggered()), this, SLOT(refreshJsonTree())); connect(ui->menuInsertNode, SIGNAL(triggered()), this, SLOT(insertTreeNode())); connect(ui->menuInsertChild, SIGNAL(triggered()), this, SLOT(insertTreeChild())); connect(ui->menuDeleteNode, SIGNAL(triggered()), this, SLOT(deleteTreeNode())); connect(ui->jsonTree, SIGNAL(clicked(QModelIndex)), this, SLOT(updateActions())); connect(ui->menuFormat, SIGNAL(triggered()), this, SLOT(formatCode())); connect(ui->menuHelp, SIGNAL(triggered()), this, SLOT(showHelp())); connect(ui->jsonTree, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(dataEdit(QModelIndex))); // connect(ui->menuNewFile, SIGNAL(triggered()), this, SLOT(newFile())); connect(ui->menuOpenFile, SIGNAL(triggered()), this, SLOT(open())); connect(ui->menuSaveFile, SIGNAL(triggered()), this, SLOT(save())); connect(ui->menuSaveAs, SIGNAL(triggered()), this, SLOT(saveAs())); JSHighlighter * highlight = new JSHighlighter(ui->jsonCode->document()); setCurrentFile(""); textEdit = ui->jsonCode; connect(textEdit->document(), SIGNAL(contentsChanged()), this, SLOT(documentWasModified())); setUnifiedTitleAndToolBarOnMac(true); m_findDialog = new FindDialog(this); m_findDialog->setModal(false); m_findDialog->setTextEdit(textEdit); m_findReplaceDialog = new FindReplaceDialog(this); m_findReplaceDialog->setModal(false); m_findReplaceDialog->setTextEdit(textEdit); connect(ui->menuFind, SIGNAL(triggered()), m_findDialog, SLOT(show())); connect(ui->menuReplace, SIGNAL(triggered()), m_findReplaceDialog, SLOT(show())); // connect(ui->actionFindNext, SIGNAL(triggered()), m_findDialog, SLOT(findNext())); // connect(ui->actionFindPrevious, SIGNAL(triggered()), m_findDialog, SLOT(findPrev())); readSettings(); }
void AppEditMenu::createEditAdvancedMenu(QToolBar *toolbar) { editAdvancedMenu = new QMenu(tr("Advanced")); editCommentAction=editAdvancedMenu->addAction(IconUtil::getIcon("comment"), tr("Co&mment/Uncomment"), this, SLOT(comment()), QKeySequence("Ctrl+/")); editCommentAction->setStatusTip(tr("Comment/Uncomment line(s)")); toolbar->addAction(editCommentAction); editMoveUpAction=editAdvancedMenu->addAction(IconUtil::getIcon("move_up"), tr("Move &up"), this, SLOT(moveUp()), QKeySequence("Ctrl+Up")); editMoveUpAction->setStatusTip(tr("Move lines(s) up")); toolbar->addAction(editMoveUpAction); editMoveDownAction=editAdvancedMenu->addAction(IconUtil::getIcon("move_down"), tr("Move &down"), this, SLOT(moveDown()), QKeySequence("Ctrl+Down")); editMoveDownAction->setStatusTip(tr("Move lines(s) down")); toolbar->addAction(editMoveDownAction); editSelectBlockAction=editAdvancedMenu->addAction(tr("Select current block"), this, SLOT(selectBlock()), QKeySequence("Ctrl+B")); editSelectBlockAction->setStatusTip(tr("Select current block")); editToUpperCaseAction=editAdvancedMenu->addAction(tr("To upper case"), this, SLOT(toUpperCase()), QKeySequence("Ctrl+U")); editToUpperCaseAction->setStatusTip(tr("Change selection or current word text to upper case")); editToLowerCaseAction=editAdvancedMenu->addAction(tr("To lower case"), this, SLOT(toLowerCase()), QKeySequence("Ctrl+L")); editToLowerCaseAction->setStatusTip(tr("Change selection or current word text to lower case")); editCreateDuplicateAction=editAdvancedMenu->addAction(tr("Make duplicate"), this, SLOT(makeDuplicate()), QKeySequence("Ctrl+D")); editCreateDuplicateAction->setStatusTip(tr("Create duplicate of current line or selection")); editRemoveEmptyLinesAction=editAdvancedMenu->addAction(tr("Remove empty lines"), this, SLOT(removeEmptyLines()), QKeySequence("Ctrl+R")); editRemoveEmptyLinesAction->setStatusTip(tr("Remove empty lines")); editApplyCaseFoldingAction=editAdvancedMenu->addAction(tr("Apply case folding"), this, SLOT(applyCaseFolding()), QKeySequence("Ctrl+Shift+U")); editApplyCaseFoldingAction->setStatusTip(tr("Apply automatic case folding rules to selection")); editFormatCodeAction=editAdvancedMenu->addAction(tr("Format"), this, SLOT(formatCode()), QKeySequence("Ctrl+Shift+F")); editFormatCodeAction->setStatusTip(tr("Auto format code to make it more readable")); }
// isFormatCode: returns true if code matches the Format Code field bool Record::isFormatCode(const int code) const { return formatCode() == code; }