LOCAL MACRO* readMacro(REQ_FILE* rf) { char macName[9]; int i; req_skipSpace(rf); if(current(rf)!='$') return NULL; req_readChar(rf); if(current(rf)!='(') return NULL; req_readChar(rf); i= 0; while(!eos(rf) && (current(rf)!=')') && (i<8)) { macName[i++]= current(rf); req_readChar(rf); } macName[i]= '\0'; if(current(rf)!=')') return NULL; req_readChar(rf); return searchMacro(rf, macName); }
//----------------------------------------------------------------------- // Class WndMacros //----------------------------------------------------------------------- WndMacros::WndMacros(QWidget *parent) : QWidget(parent), modelFilters(new ViewFilter()), modelViews(new ViewFormat()) { this->setObjectName("WndMacros"); // setup layout of window QLabel* lblSearch = new QLabel(tr("Search:")); QLabel* lblFilter = new QLabel(tr("Filter:")); QLabel* lblView = new QLabel(tr("View:")); btnSearchReset = new QPushButton(QIcon(":/icons/resources/reset.png"),""); btnFilter = new QPushButton(QIcon(":/icons/resources/dbfilter.png"),""); btnView = new QPushButton(QIcon(":/icons/resources/dbview.png"),""); edtSearch = new MacroSearch(); cbFilter = new QComboBox(); cbView = new QComboBox(); vwMacros = new MacroTreeView(); // three column layout for controls QGridLayout* layout = new QGridLayout(); layout->addWidget(lblView,0,0); layout->addWidget(cbView,0,1); layout->addWidget(btnView,0,2); layout->addWidget(lblFilter,1,0); layout->addWidget(cbFilter,1,1); layout->addWidget(btnFilter,1,2); layout->addWidget(lblSearch,2,0); layout->addWidget(edtSearch,2,1); layout->addWidget(btnSearchReset,2,2); layout->setColumnStretch(1,1); layout->setRowStretch(0,0); layout->setRowStretch(1,0); layout->setRowStretch(2,0); layout->setContentsMargins(5,0,5,0); QVBoxLayout* mainLayout = new QVBoxLayout(); mainLayout->setContentsMargins(0,0,0,0); mainLayout->addLayout(layout,0); mainLayout->addWidget(vwMacros,1); this->setLayout(mainLayout); // configure controls cbView->setModel(&modelViews); cbView->setModelColumn(1); cbFilter->setModel(&modelFilters); cbFilter->setModelColumn(1); btnSearchReset->setToolTip(tr("Reset search")); btnSearchReset->setEnabled(false); btnFilter->setToolTip(tr("Manage filter")); btnView->setToolTip(tr("Manage views")); sortModel.setSortCaseSensitivity(Qt::CaseInsensitive); sortModel.setFilterCaseSensitivity(Qt::CaseInsensitive); sortModel.setDynamicSortFilter(true); sortModel.setSourceModel(&modelMacros); vwMacros->setModel(&sortModel); vwMacros->sortByColumn(0,Qt::AscendingOrder); edtSearch->setBuddy(vwMacros); // connect signals connect(&app::Impresario::instance(),SIGNAL(initNonCriticalSuccessful()),this,SLOT(initDBView())); connect(btnSearchReset,SIGNAL(clicked()),this,SLOT(resetSearch())); connect(btnView,SIGNAL(clicked()),this,SLOT(manageViews())); connect(btnFilter,SIGNAL(clicked()),this,SLOT(manageFilters())); connect(cbView,SIGNAL(currentIndexChanged(const QString&)),this,SLOT(changeView(const QString&))); connect(cbFilter,SIGNAL(currentIndexChanged(const QString&)),this,SLOT(changeFilter(const QString&))); connect(edtSearch,SIGNAL(textEdited(QString)),this,SLOT(searchMacro(QString))); connect(edtSearch,SIGNAL(returnPressed()),this,SLOT(resetSearchAndAddMacro())); connect(&modelMacros,SIGNAL(modelUpdateDone(int)),this,SLOT(updateView(int))); connect(&modelViews,SIGNAL(activeViewConfigItemChanged()),this,SLOT(rebuildViewModel())); connect(&modelFilters,SIGNAL(activeViewConfigItemChanged()),this,SLOT(rebuildViewModel())); connect(vwMacros,SIGNAL(activated(QModelIndex)),this,SLOT(resetSearchAndAddMacro())); connect(vwMacros->selectionModel(),SIGNAL(currentChanged(QModelIndex,QModelIndex)),this,SLOT(macroSelectionChanged(QModelIndex,QModelIndex))); connect(vwMacros,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(macroContextMenu(QPoint))); }