Task * pC() { Task * smpl = newTask(); clearLexList(pSt.list); if (cur_l->type != LEX_WORD) { setParserError(PE_EXPECTED_WORD); delTask(&smpl); return NULL; } addLex(pSt.list, pSt.l); for(;;) { if (gl()) { clearLexList(pSt.list); delTask(&smpl); return NULL; } if (cur_l->type == LEX_WORD) addLex(pSt.list, pSt.l); else break; } genArgVector(smpl, pSt.list); return smpl; }
Task * pT() { Task * task = NULL; if (cur_l->type == LEX_EOL) { waitLex(); return NULL; } else if (cur_l->type == LEX_EOF) return NULL; task = pC(); if (cur_l->type != LEX_EOL && cur_l->type != LEX_EOF) { setParserError(PE_UNEXPECTED_END_OF_COMMAND); delTask(&task); return NULL; } waitLex(); return task; }
Task * pT() { Task * task = NULL; tCmd * cmd; if (cur_l->type == LEX_EOL) { waitLex(); return NULL; } else if (cur_l->type == LEX_EOF) return NULL; cmd = pS(); if (cmd == NULL) return NULL; task = newTask(); if (cur_l->type == LEX_BG) { if (glhard()) { delTask(&task); delTCmd(&cmd); return NULL; } task->modeBG = 1; } if (cur_l->type != LEX_EOL && cur_l->type != LEX_EOF) { setParserError(PE_UNEXPECTED_END_OF_COMMAND); delTask(&task); delTCmd(&cmd); return NULL; } task->root = cmd; task->cur = cmd; waitLex(); return task; }
/* returns * 0 if not enough commands remain or * 1 if commands remain in buffer */ int checkClientBufOnCommand() { int len = (cli.cbuf)->count; char * buf = flushBuffer(cli.cbuf); char * c; Task * t; int stParse; if (len == 0) { debugl(9, "checkClientBufOnCommand: No string to analyze\n"); free(buf); return 0; } debugl(6, "checkClientBufOnCommand: Analyzing string with len=%d: ", len); for (c = buf; (c - buf) < len; c++) debugl(6, "%hhu ", *c); debugl(6, "\n"); debugl(9, "checkClientBufOnCommand: Attempting to get string: "); c = buf; while (*c != '\012' && (c - buf) < len) { debugl(9, "%c(%hhu) ", *c, *c); c++; } debugl(9, "end:%c(%hhu) ss=%d\n", *c, *c, c - buf); if (*c != '\012' || (c - buf) == len) { addnStr(cli.cbuf, buf, len); free(buf); return 0; } else if ((c - buf + 1) < len) { addnStr(cli.cbuf, c + 1, len - (c - buf + 1)); } debugl(9, "checkClientBufOnCommand: String got successfully!\n"); delTask(&t); initParserByString(buf); stParse = parse(&t); clearParser(); if (stParse == PS_OK) { defineTaskType(t); if (t->type != TASK_UNKNOWN) { if (t->type & TASKT_SERVER) { t->type &= ~TASKT_SERVER; sendCommand(t); } else if (t->type &TASKT_CLIENT) { t->type &= ~TASKT_CLIENT; execCommand(t); } } else error("Unknown command!\n"); } else if (stParse == PS_ERROR) echoParserError(); if ((c - buf + 1) == len) return 0; else return 1; }
void MainWindow::initial() { my_sync_widget->setWindowModality(Qt::WindowModal); my_sync_widget->hide(); connect(my_sync_widget, SIGNAL(getSaveFile(QString&)), this, SLOT(syncSaveFile(QString&))); connect(my_sync_widget, SIGNAL(enableServiceButton(QString&)), this, SLOT(serviceAdded(QString&))); connect(this, SIGNAL(syncClickEmit()), my_sync_widget, SLOT(syncFiles())); connect(my_sync_widget, SIGNAL(openXml(QString&)), this, SLOT(openXmlRecv(QString&))); connect(my_sync_widget, SIGNAL(dboxAuthResult(bool)), this, SLOT(dboxAuthStatus(bool))); connect(my_sync_widget, SIGNAL(dboxRecvResult(bool)), this, SLOT(dboxRecvStatus(bool))); connect(my_sync_widget, SIGNAL(dboxSendResult(bool)), this, SLOT(dboxSendStatus(bool))); connect(my_sync_widget, SIGNAL(googleAuthResult(bool)), this, SLOT(googleAuthStatus(bool))); connect(my_sync_widget, SIGNAL(googleRecvResult(bool)), this, SLOT(googleRecvStatus(bool))); connect(my_sync_widget, SIGNAL(googleSendResult(bool)), this, SLOT(googleSendStatus(bool))); fileMenu = menuBar()->addMenu(tr("&File")); newList = new QAction( tr("&New lists..."), this ); newList->setShortcuts(QKeySequence::New); fileMenu->addAction(newList); connect(newList, SIGNAL(triggered()), this->my_task_list,SLOT(new_list())); fileMenu->addSeparator(); loadAction = new QAction(tr("&Open XML..."), this); loadAction->setShortcuts(QKeySequence::Open); fileMenu->addAction(loadAction); connect(loadAction, SIGNAL(triggered()), this, SLOT(loadFile())); saveAction = new QAction( tr("&Save..."), this ); saveAction->setShortcuts(QKeySequence::Save); fileMenu->addAction(saveAction); connect(saveAction, SIGNAL(triggered()), this, SLOT(saveFile())); saveAsAction = new QAction( tr("&Save as..."), this ); //saveAsAction->setShortcuts(QKeySequence::SaveAs); fileMenu->addAction(saveAsAction); connect(saveAsAction, SIGNAL(triggered()), this, SLOT(saveasFile())); fileMenu->addSeparator(); printAction = new QAction(tr("&Print"),this); printAction->setShortcuts(QKeySequence::Print); fileMenu->addAction(printAction); connect(printAction, SIGNAL(triggered()), this,SLOT(print())); fileMenu->addSeparator(); exitAction = new QAction(tr("&Exit"), this); fileMenu->addAction(exitAction); connect(exitAction, SIGNAL(triggered()), this, SLOT(close())); OptMenu = menuBar()->addMenu(tr("&Options")); change_font = new QAction(tr("&Change Font"),this); OptMenu->addAction(change_font); display_note = new QAction(tr("&Display/Hide Note"), this); OptMenu->addAction(display_note); search_for= new QAction(tr("&Search"),this); search_for->setShortcut(QKeySequence::Find); OptMenu->addAction(search_for); connect(search_for,SIGNAL(triggered()),this,SLOT(search_start())); Template = menuBar()->addMenu(tr("&Template")); new_grocery = new QAction(tr("&Groceries"),this); Template->addAction(new_grocery); new_week_task = new QAction(tr("&Weekly Task"),this); Template->addAction(new_week_task); Sync = menuBar()->addMenu(tr("&Sync Menu")); new_service = new QAction(tr("&Add Service"), this); Sync->addAction(new_service); sync_service = new QAction(tr("&Sync Services (On)"), this); Sync->addAction(sync_service); sync_service_off = new QAction(tr("&Sync Services Off"), this); Sync->addAction(sync_service_off); send_service = new QAction(tr("&Send Current File"), this); Sync->addAction(send_service); get_service = new QAction(tr("&Get Dropbox Files"), this); Sync->addAction(get_service); send_service_gtask = new QAction(tr("&Send Current File (GTask)"), this); Sync->addAction(send_service_gtask); get_service_gtask = new QAction(tr("&Get GTask Files"), this); Sync->addAction(get_service_gtask); sync_service->setDisabled(true); send_service->setDisabled(true); sync_service_off->setDisabled(true); get_service->setDisabled(true); send_service_gtask->setDisabled(true); get_service_gtask->setDisabled(true); addTask = new QPushButton( tr("Add Task") ); delTask = new QPushButton( tr("Delete") ); editTask = new QPushButton( tr("Edit Task") ); pop_up = new QPushButton(tr("Pop Task Up")); move_down = new QPushButton(tr("Move Task Down")); search_button = new QPushButton(tr("Search")); QWidget *main_widget = new QWidget; QVBoxLayout *main_layout = new QVBoxLayout; QHBoxLayout *button_layout1 = new QHBoxLayout; QHBoxLayout *button_layout2 = new QHBoxLayout; //here is the list name area //main_layout->addWidget( new QLabel(tr("Lists name")),0,Qt::AlignCenter ); //main_layout->addWidget(my_task_list->lists_name); this->my_task_list->setColumnCount(5); QStringList tmp_l; tmp_l << "Name" << "Note" << "Tag" << "Due Date" << "Status"; this->my_task_list->setHeaderLabels(tmp_l ); this->my_task_list->setEditTriggers(QAbstractItemView::DoubleClicked); this->my_task_list->setSelectionMode(QAbstractItemView::SingleSelection); this->my_task_list->setSelectionBehavior(QAbstractItemView::SelectRows); //here is the table content /*QStandardItemModel *tmp_mod = my_task_list->mod; tmp_mod->setColumnCount(4); tmp_mod->setHeaderData(0, Qt::Horizontal, tr("Name")); tmp_mod->setHeaderData(1,Qt::Horizontal, tr("Note")); tmp_mod->setHeaderData(2,Qt::Horizontal, tr("Due date")); tmp_mod->setHeaderData(3,Qt::Horizontal, tr("Status")); my_task_list->table->setModel(tmp_mod); my_task_list->table->setEditTriggers(QAbstractItemView::DoubleClicked); my_task_list->table->setSelectionMode(QAbstractItemView::SingleSelection); my_task_list->table->setSelectionBehavior(QAbstractItemView::SelectRows);*/ /*QTreeWidgetItem* task_child = new QTreeWidgetItem(this->my_task_list,0); task_child->setText(0,"a"); this->my_task_list->addTopLevelItem(task_child); QTreeWidgetItem* task_child1 = new QTreeWidgetItem(task_child,1); task_child1->setText(0,"1"); QTreeWidgetItem* task_child2 = new QTreeWidgetItem(task_child,1); task_child2->setText(0,"2"); QTreeWidgetItem* task_child3 = new QTreeWidgetItem(task_child,1); task_child3->setText(0,"3"); task_child->addChild(task_child1); task_child->addChild(task_child2); task_child->addChild(task_child3); QTreeWidgetItem* task_child4 = new QTreeWidgetItem(task_child,1); task_child4->setText(0,"0"); task_child->insertChild(-2,task_child4); */ main_layout->addWidget( new QLabel(tr("Current Lists")),0,Qt::AlignCenter ); main_layout->addWidget(this->my_task_list); button_layout1->addWidget(addTask); button_layout1->addWidget(delTask); button_layout1->addWidget(editTask); button_layout2->addWidget(pop_up); button_layout2->addWidget(move_down); button_layout2->addWidget(search_button); main_layout->addLayout(button_layout1); main_layout->addLayout(button_layout2); main_widget->setLayout(main_layout); main_widget->setMinimumSize(520,500); this->setCentralWidget(main_widget); //connection connect(addTask, SIGNAL(clicked()), this->my_task_list,SLOT(addTask())); connect(delTask, SIGNAL(clicked()), this->my_task_list,SLOT(delTask())); connect(editTask, SIGNAL(clicked()), this->my_task_list, SLOT(editTask())); connect(display_note, SIGNAL(triggered()), this->my_task_list, SLOT(show_hide_Note()));//the action one in the menu connect(change_font, SIGNAL(triggered()), this->my_task_list, SLOT(changeFont())); connect(pop_up, SIGNAL(clicked()), this->my_task_list, SLOT(pop_up())); connect(move_down, SIGNAL(clicked()), this->my_task_list, SLOT(move_down())); connect(new_grocery, SIGNAL(triggered()), this->my_task_list, SLOT(grocery())); connect(new_week_task, SIGNAL(triggered()), this->my_task_list, SLOT(week_task())); connect(new_service, SIGNAL(triggered()), this, SLOT(newServiceClick())); connect(sync_service, SIGNAL(triggered()), this, SLOT(syncClick())); connect(sync_service_off, SIGNAL(triggered()), this, SLOT(syncClickOff())); connect(send_service, SIGNAL(triggered()), this->my_sync_widget, SLOT(sendFiles())); connect(get_service, SIGNAL(triggered()), this->my_sync_widget, SLOT(getFiles())); connect(send_service_gtask, SIGNAL(triggered()), this->my_sync_widget, SLOT(sendFilesGTask())); connect(get_service_gtask, SIGNAL(triggered()), this->my_sync_widget, SLOT(getFilesGTask())); connect(search_button, SIGNAL(clicked()), this, SLOT(search_start())); }