todoList::todoList(QWidget* parent, const char*, Qt::WFlags fl) : display(parent, "todoList", fl) { setupUi(optionsWidget()); setWindowTitle(tr("To-Do Items")); setReportName("TodoList"); setMetaSQLOptions("todolist", "detail"); setUseAltId(true); setParameterWidgetVisible(true); setNewVisible(true); setQueryOnStartEnabled(true); parameterWidget()->append(tr("Assigned"), "assigned_username", ParameterWidget::User, omfgThis->username()); parameterWidget()->append(tr("Assigned Pattern"), "assigned_usr_pattern", ParameterWidget::Text); parameterWidget()->append(tr("Owner"), "owner_username", ParameterWidget::User); parameterWidget()->append(tr("Owner Pattern"), "owner_usr_pattern", ParameterWidget::Text); parameterWidget()->append(tr("CRM Account"), "crmacct_id", ParameterWidget::Crmacct); parameterWidget()->append(tr("Start Date Before"), "startStartDate", ParameterWidget::Date); parameterWidget()->append(tr("Start Date After"), "startEndDate", ParameterWidget::Date); parameterWidget()->append(tr("Due Date Before"), "dueStartDate", ParameterWidget::Date); parameterWidget()->append(tr("Due Date After"), "dueEndDate", ParameterWidget::Date); parameterWidget()->applyDefaultFilterSet(); connect(_completed, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_todolist, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_incidents, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_projects, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(list(), SIGNAL(itemSelected(int)), this, SLOT(sEdit())); list()->addColumn(tr("Type"), _userColumn, Qt::AlignCenter, true, "type"); list()->addColumn(tr("Seq"), _seqColumn, Qt::AlignRight, false, "seq"); list()->addColumn(tr("Priority"), _userColumn, Qt::AlignLeft, true, "priority"); list()->addColumn(tr("Assigned To"),_userColumn, Qt::AlignLeft, true, "usr"); list()->addColumn(tr("Name"), 100, Qt::AlignLeft, true, "name"); list()->addColumn(tr("Description"), -1, Qt::AlignLeft, true, "descrip"); list()->addColumn(tr("Status"), _statusColumn, Qt::AlignLeft, true, "status"); list()->addColumn(tr("Start Date"),_dateColumn, Qt::AlignLeft, false, "start"); list()->addColumn(tr("Due Date"), _dateColumn, Qt::AlignLeft, true, "due"); list()->addColumn(tr("Parent#"), _orderColumn, Qt::AlignLeft, true, "number"); list()->addColumn(tr("Customer#"),_orderColumn, Qt::AlignLeft, false, "cust"); list()->addColumn(tr("Account#"), _orderColumn, Qt::AlignLeft, false, "crmacct_number"); list()->addColumn(tr("Account Name"), 100, Qt::AlignLeft, true, "crmacct_name"); list()->addColumn(tr("Owner"), _userColumn, Qt::AlignLeft, false,"owner"); QToolButton * newBtn = (QToolButton*)toolBar()->widgetForAction(newAction()); newBtn->setPopupMode(QToolButton::MenuButtonPopup); QAction *menuItem; QMenu * todoMenu = new QMenu; menuItem = todoMenu->addAction(tr("Incident"), this, SLOT(sNewIncdt())); menuItem->setEnabled(_privileges->check("MaintainIncidents")); menuItem = todoMenu->addAction(tr("To-Do Item"), this, SLOT(sNew())); menuItem->setShortcut(QKeySequence::New); menuItem->setEnabled(_privileges->check("MaintainPersonalTodoList") || _privileges->check("MaintainOtherTodoLists")); newBtn->setMenu(todoMenu); }
Documents::Documents(QWidget *pParent) : QWidget(pParent) { setupUi(this); _source = Uninitialized; _sourceid = -1; _doc->addColumn(tr("Type"), _itemColumn, Qt::AlignLeft, true, "target_type" ); _doc->addColumn(tr("Number"), _itemColumn, Qt::AlignLeft, true, "target_number" ); _doc->addColumn(tr("Name"), -1, Qt::AlignLeft, true, "name" ); _doc->addColumn(tr("Description"), -1, Qt::AlignLeft, true, "description"); _doc->addColumn(tr("Relationship"), _itemColumn, Qt::AlignLeft,true, "purpose"); connect(_attachDoc, SIGNAL(clicked()), this, SLOT(sAttachDoc())); connect(_editDoc, SIGNAL(clicked()), this, SLOT(sEditDoc())); connect(_viewDoc, SIGNAL(clicked()), this, SLOT(sViewDoc())); connect(_detachDoc, SIGNAL(clicked()), this, SLOT(sDetachDoc())); connect(_doc, SIGNAL(valid(bool)), _editDoc, SLOT(setEnabled(bool))); connect(_doc, SIGNAL(valid(bool)), _viewDoc, SLOT(setEnabled(bool))); connect(_doc, SIGNAL(valid(bool)), this, SLOT(handleSelection())); handleSelection(); if (_x_privileges) { QMenu * newDocMenu = new QMenu; QAction* imgAct = new QAction(tr("Image"), this); imgAct->setEnabled(_x_privileges->check("MaintainImages")); connect(imgAct, SIGNAL(triggered()), this, SLOT(sNewImage())); newDocMenu->addAction(imgAct); QAction* incdtAct = new QAction(tr("Incident"), this); incdtAct->setEnabled(_x_privileges->check("AddIncidents")); connect(incdtAct, SIGNAL(triggered()), this, SLOT(sNewIncdt())); newDocMenu->addAction(incdtAct); QAction* todoAct = new QAction(tr("To Do"), this); todoAct->setEnabled(_x_privileges->check("MaintainPersonalTodoList") || _x_privileges->check("MaintainOtherTodoLists")); connect(todoAct, SIGNAL(triggered()), this, SLOT(sNewToDo())); newDocMenu->addAction(todoAct); QAction* oppAct = new QAction(tr("Opportunity"), this); oppAct->setEnabled(_x_privileges->check("MaintainOpportunities")); connect(oppAct, SIGNAL(triggered()), this, SLOT(sNewOpp())); newDocMenu->addAction(oppAct); QAction* projAct = new QAction(tr("Project"), this); projAct->setEnabled(_x_privileges->check("MaintainProjects")); connect(projAct, SIGNAL(triggered()), this, SLOT(sNewProj())); newDocMenu->addAction(projAct); _newDoc->setMenu(newDocMenu); } }
todoList::todoList(QWidget* parent, const char* name, Qt::WFlags fl) : XWidget(parent, name, fl) { setupUi(this); QSqlDatabase db = QSqlDatabase::database(); _parameterWidget->setType(tr("CRM Account"), "crmAccountId", ParameterWidget::Crmacct); _parameterWidget->setType(tr("Assigned"), "assigned_username", ParameterWidget::User, db.userName()); _parameterWidget->setType(tr("Owner"), "owner_username", ParameterWidget::User); _parameterWidget->setType(tr("Assigned Pattern"), "assigned_usr_pattern", ParameterWidget::Text); _parameterWidget->setType(tr("Owner Pattern"), "owner_usr_pattern", ParameterWidget::Text); _parameterWidget->setType(tr("Start Date Before"), "startStartDate", ParameterWidget::Date); _parameterWidget->setType(tr("Start Date After"), "startEndDate", ParameterWidget::Date); _parameterWidget->setType(tr("Due Date Before"), "dueStartDate", ParameterWidget::Date); _parameterWidget->setType(tr("Due Date After"), "dueEndDate", ParameterWidget::Date); _parameterWidget->applyDefaultFilterSet(); _crmAccount->hide(); q.exec("SELECT current_user;"); if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); close(); } connect(_parameterWidget, SIGNAL(updated()), this, SLOT(sFillList())); connect(_query, SIGNAL(clicked()), this, SLOT(sFillList())); connect(_autoUpdate, SIGNAL(toggled(bool)), this, SLOT(sHandleAutoUpdate(bool))); connect(_close, SIGNAL(clicked()), this, SLOT(sClose())); connect(_completed, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_delete, SIGNAL(clicked()), this, SLOT(sDelete())); connect(_todolist, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_incidents, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_projects, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_new, SIGNAL(clicked()), this, SLOT(sNew())); connect(_print, SIGNAL(clicked()), this, SLOT(sPrint())); connect(_todoList, SIGNAL(itemSelected(int)), _edit, SLOT(animateClick())); connect(_todoList, SIGNAL(populateMenu(QMenu*, QTreeWidgetItem*, int)), this, SLOT(sPopulateMenu(QMenu*))); connect(_todoList, SIGNAL(itemSelectionChanged()), this, SLOT(handlePrivs())); connect(_edit, SIGNAL(clicked()), this, SLOT(sEdit())); connect(_view, SIGNAL(clicked()), this, SLOT(sView())); _todoList->addColumn(tr("Type"), _userColumn, Qt::AlignCenter, true, "type"); _todoList->addColumn(tr("Seq"), _seqColumn, Qt::AlignRight, false, "seq"); _todoList->addColumn(tr("Priority"), _userColumn, Qt::AlignLeft, true, "priority"); _todoList->addColumn(tr("Assigned To"),_userColumn, Qt::AlignLeft, true, "usr"); _todoList->addColumn(tr("Name"), 100, Qt::AlignLeft, true, "name"); _todoList->addColumn(tr("Description"), -1, Qt::AlignLeft, true, "descrip"); _todoList->addColumn(tr("Status"), _statusColumn, Qt::AlignLeft, true, "status"); _todoList->addColumn(tr("Start Date"),_dateColumn, Qt::AlignLeft, false, "start"); _todoList->addColumn(tr("Due Date"), _dateColumn, Qt::AlignLeft, true, "due"); _todoList->addColumn(tr("Parent#"), _orderColumn, Qt::AlignLeft, true, "number"); _todoList->addColumn(tr("Customer#"),_orderColumn, Qt::AlignLeft, false, "cust"); _todoList->addColumn(tr("Account#"), _orderColumn, Qt::AlignLeft, false, "crmacct_number"); _todoList->addColumn(tr("Account Name"), 100, Qt::AlignLeft, true, "crmacct_name"); _todoList->addColumn(tr("Owner"), _userColumn, Qt::AlignLeft, false,"owner"); int menuItem; QMenu * todoMenu = new QMenu; menuItem = todoMenu->insertItem(tr("Incident"), this, SLOT(sNewIncdt())); if (!_privileges->check("MaintainIncidents")) todoMenu->setItemEnabled(menuItem, FALSE); menuItem = todoMenu->insertItem(tr("To-Do Item"), this, SLOT(sNew())); if (!_privileges->check("MaintainPersonalTodoList") && !_privileges->check("MaintainOtherTodoLists")) todoMenu->setItemEnabled(menuItem, FALSE); _new->setMenu(todoMenu); if (_preferences->boolean("XCheckBox/forgetful")) _incidents->setChecked(true); handlePrivs(); sHandleAutoUpdate(_autoUpdate->isChecked()); }
void todoList::sPopulateMenu(QMenu *pMenu) { int menuItem; bool editPriv = (omfgThis->username() == _todoList->currentItem()->text(3) && _privileges->check("MaintainPersonalTodoList")) || (omfgThis->username() != _todoList->currentItem()->text(3) && _privileges->check("MaintainOtherTodoLists")); bool viewPriv = (omfgThis->username() == _todoList->currentItem()->text(3) && _privileges->check("ViewPersonalTodoList")) || (omfgThis->username() != _todoList->currentItem()->text(3) && _privileges->check("ViewOtherTodoLists")); menuItem = pMenu->insertItem(tr("New To-Do..."), this, SLOT(sNew()), 0); pMenu->setItemEnabled(menuItem, editPriv); if (_todoList->currentItem()->altId() == 1) { menuItem = pMenu->insertItem(tr("Edit To-Do..."), this, SLOT(sEdit()), 0); pMenu->setItemEnabled(menuItem, editPriv); menuItem = pMenu->insertItem(tr("View To-Do..."), this, SLOT(sView()), 0); pMenu->setItemEnabled(menuItem, viewPriv); menuItem = pMenu->insertItem(tr("Delete To-Do"), this, SLOT(sDelete()), 0); pMenu->setItemEnabled(menuItem, editPriv); } pMenu->addSeparator(); menuItem = pMenu->insertItem(tr("New Incident..."), this, SLOT(sNewIncdt()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("MaintainIncidents")); if ((_todoList->altId() == 1 && !_todoList->currentItem()->text(9).isEmpty()) || _todoList->altId() == 2) { menuItem = pMenu->insertItem(tr("Edit Incident"), this, SLOT(sEditIncident()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("MaintainIncidents")); menuItem = pMenu->insertItem(tr("View Incident"), this, SLOT(sViewIncident()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("ViewIncidents") || _privileges->check("MaintainIncidents")); } pMenu->addSeparator(); if (_todoList->altId() == 3) { menuItem = pMenu->insertItem(tr("Edit Task"), this, SLOT(sEditTask()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("MaintainProjects")); menuItem = pMenu->insertItem(tr("View Task"), this, SLOT(sViewTask()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("ViewProjects") || _privileges->check("MaintainProjects")); pMenu->addSeparator(); } if (_todoList->altId() >= 3) { menuItem = pMenu->insertItem(tr("Edit Project"), this, SLOT(sEditProject()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("MaintainProjects")); menuItem = pMenu->insertItem(tr("View Project"), this, SLOT(sViewProject()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("ViewProjects") || _privileges->check("MaintainProjects")); } if (!_todoList->currentItem()->text(10).isEmpty()) { pMenu->addSeparator(); menuItem = pMenu->insertItem(tr("Edit Customer"), this, SLOT(sEditCustomer()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("MaintainCustomerMasters") || _privileges->check("ViewCustomerMasters")); menuItem = pMenu->insertItem(tr("View Customer"), this, SLOT(sViewCustomer()), 0); pMenu->setItemEnabled(menuItem, _privileges->check("ViewCustomerMasters")); } }
todoList::todoList(QWidget* parent, const char*, Qt::WindowFlags fl) : display(parent, "todoList", fl) { _shown = false; _run = false; setupUi(optionsWidget()); setWindowTitle(tr("To-Do Items")); setReportName("TodoList"); setMetaSQLOptions("todolist", "detail"); setUseAltId(true); setParameterWidgetVisible(true); setNewVisible(true); setQueryOnStartEnabled(true); parameterWidget()->append(tr("User"), "username", ParameterWidget::User, omfgThis->username()); parameterWidget()->append(tr("Owner"), "owner_username", ParameterWidget::User); parameterWidget()->append(tr("Assigned To"), "assigned_username", ParameterWidget::User); parameterWidget()->append(tr("Account"), "crmacct_id", ParameterWidget::Crmacct); parameterWidget()->append(tr("Start Date on or Before"), "startStartDate", ParameterWidget::Date); parameterWidget()->append(tr("Start Date on or After"), "startEndDate", ParameterWidget::Date); parameterWidget()->append(tr("Due Date on or Before"), "dueStartDate", ParameterWidget::Date); parameterWidget()->append(tr("Due Date on or After"), "dueEndDate", ParameterWidget::Date); parameterWidget()->append(tr("Show Completed"), "completed", ParameterWidget::Exists); parameterWidget()->append(tr("Show Completed Only"), "completedonly", ParameterWidget::Exists); parameterWidget()->applyDefaultFilterSet(); connect(_opportunities, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_todolist, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_incidents, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_projects, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(list(), SIGNAL(itemSelected(int)), this, SLOT(sOpen())); list()->addColumn(tr("Type"), _userColumn, Qt::AlignCenter, true, "type"); list()->addColumn(tr("Priority"), _userColumn, Qt::AlignLeft, true, "priority"); list()->addColumn(tr("Owner"), _userColumn, Qt::AlignLeft, false,"owner"); list()->addColumn(tr("Assigned To"),_userColumn, Qt::AlignLeft, true, "assigned"); list()->addColumn(tr("Name"), 100, Qt::AlignLeft, true, "name"); list()->addColumn(tr("Notes"), -1, Qt::AlignLeft, true, "notes"); list()->addColumn(tr("Stage"), _statusColumn, Qt::AlignLeft, true, "stage"); list()->addColumn(tr("Start Date"),_dateColumn, Qt::AlignLeft, false, "start"); list()->addColumn(tr("Due Date"), _dateColumn, Qt::AlignLeft, true, "due"); list()->addColumn(tr("Account#"), _orderColumn, Qt::AlignLeft, false, "crmacct_number"); list()->addColumn(tr("Account Name"), 100, Qt::AlignLeft, true, "crmacct_name"); list()->addColumn(tr("Parent"), 100, Qt::AlignLeft, false, "parent"); list()->addColumn(tr("Customer"), _ynColumn, Qt::AlignLeft, false, "cust"); QToolButton * newBtn = (QToolButton*)toolBar()->widgetForAction(newAction()); newBtn->setPopupMode(QToolButton::MenuButtonPopup); QAction *menuItem; QMenu * todoMenu = new QMenu; menuItem = todoMenu->addAction(tr("To-Do Item"), this, SLOT(sNew())); if(_privileges->check("MaintainAllToDoItems") || _privileges->check("MaintainPersonalToDoItems")) menuItem->setShortcut(QKeySequence::New); menuItem->setEnabled(_privileges->check("MaintainPersonalToDoItems") || _privileges->check("MaintainAllToDoItems")); menuItem = todoMenu->addAction(tr("Opportunity"), this, SLOT(sNewOpportunity())); menuItem->setEnabled(_privileges->check("MaintainPersonalOpportunities") || _privileges->check("MaintainAllOpportunities")); menuItem = todoMenu->addAction(tr("Incident"), this, SLOT(sNewIncdt())); menuItem->setEnabled(_privileges->check("MaintainPersonalIncidents") || _privileges->check("MaintainAllIncidents")); menuItem = todoMenu->addAction(tr("Project"), this, SLOT(sNewProject())); menuItem->setEnabled(_privileges->check("MaintainPersonalProjects") || _privileges->check("MaintainAllProjects")); newBtn->setMenu(todoMenu); }
todoList::todoList(QWidget* parent, const char* name, Qt::WFlags fl) : XWidget(parent, name, fl) { setupUi(this); _crmAccount->hide(); _dueDates->setStartNull(tr("Earliest"), omfgThis->startOfTime(), TRUE); _dueDates->setEndNull(tr("Latest"), omfgThis->endOfTime(), TRUE); _startDates->setStartNull(tr("Earliest"), omfgThis->startOfTime(), TRUE); _startDates->setEndNull(tr("Latest"), omfgThis->endOfTime(), TRUE); _usrGroup->setEnabled(_privileges->check("MaintainOtherTodoLists")); q.exec("SELECT current_user;"); if (q.first()) _usr->setUsername(q.value("current_user").toString()); else if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); close(); } connect(_autoUpdate, SIGNAL(toggled(bool)), this, SLOT(sHandleAutoUpdate(bool))); connect(_close, SIGNAL(clicked()), this, SLOT(sClose())); connect(_completed, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_delete, SIGNAL(clicked()), this, SLOT(sDelete())); connect(_dueDates, SIGNAL(updated()), this, SLOT(sFillList())); connect(_startDates, SIGNAL(updated()), this, SLOT(sFillList())); connect(_todolist, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_incidents, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_projects, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_new, SIGNAL(clicked()), this, SLOT(sNew())); connect(_print, SIGNAL(clicked()), this, SLOT(sPrint())); connect(_todoList, SIGNAL(itemSelected(int)), _edit, SLOT(animateClick())); connect(_todoList, SIGNAL(populateMenu(QMenu*, QTreeWidgetItem*, int)), this, SLOT(sPopulateMenu(QMenu*))); connect(_todoList, SIGNAL(itemSelectionChanged()), this, SLOT(handlePrivs())); connect(_all, SIGNAL(clicked()), this, SLOT(sFillList())); connect(_all, SIGNAL(clicked()), this, SLOT(handlePrivs())); connect(_selected, SIGNAL(clicked()), this, SLOT(sFillList())); connect(_selected, SIGNAL(clicked()), this, SLOT(handlePrivs())); connect(_usr, SIGNAL(newId(int)), this, SLOT(sFillList())); connect(_usr, SIGNAL(newId(int)), this, SLOT(handlePrivs())); connect(_pattern, SIGNAL(editingFinished()), this, SLOT(sFillList())); connect(_pattern, SIGNAL(editingFinished()), this, SLOT(handlePrivs())); connect(_edit, SIGNAL(clicked()), this, SLOT(sEdit())); connect(_view, SIGNAL(clicked()), this, SLOT(sView())); connect(_duedateGroup, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_startdateGroup, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_assignedTo, SIGNAL(toggled(bool)), this, SLOT(sFillList())); connect(_ownedBy, SIGNAL(toggled(bool)), this, SLOT(sFillList())); _todoList->addColumn(tr("Type"), _userColumn, Qt::AlignCenter, true, "type"); _todoList->addColumn(tr("Seq"), _seqColumn, Qt::AlignRight, false, "seq"); _todoList->addColumn(tr("Priority"), _userColumn, Qt::AlignLeft, true, "priority"); _todoList->addColumn(tr("Assigned To"),_userColumn, Qt::AlignLeft, true, "usr"); _todoList->addColumn(tr("Name"), 100, Qt::AlignLeft, true, "name"); _todoList->addColumn(tr("Description"), -1, Qt::AlignLeft, true, "descrip"); _todoList->addColumn(tr("Status"), _statusColumn, Qt::AlignLeft, true, "status"); _todoList->addColumn(tr("Start Date"),_dateColumn, Qt::AlignLeft, false, "start"); _todoList->addColumn(tr("Due Date"), _dateColumn, Qt::AlignLeft, true, "due"); _todoList->addColumn(tr("Parent#"), _orderColumn, Qt::AlignLeft, true, "number"); _todoList->addColumn(tr("Customer#"),_orderColumn, Qt::AlignLeft, false, "cust"); _todoList->addColumn(tr("Account#"), _orderColumn, Qt::AlignLeft, false, "crmacct_number"); _todoList->addColumn(tr("Account Name"), 100, Qt::AlignLeft, true, "crmacct_name"); _todoList->addColumn(tr("Owner"), _userColumn, Qt::AlignLeft, false,"owner"); int menuItem; QMenu * todoMenu = new QMenu; menuItem = todoMenu->insertItem(tr("Incident"), this, SLOT(sNewIncdt())); if (!_privileges->check("MaintainIncidents")) todoMenu->setItemEnabled(menuItem, FALSE); menuItem = todoMenu->insertItem(tr("To-Do Item"), this, SLOT(sNew())); if (!_privileges->check("MaintainPersonalTodoList") && !_privileges->check("MaintainOtherTodoLists")) todoMenu->setItemEnabled(menuItem, FALSE); _new->setMenu(todoMenu); if (_preferences->boolean("XCheckBox/forgetful")) _incidents->setChecked(true); handlePrivs(); sHandleAutoUpdate(_autoUpdate->isChecked()); }
void todoList::sPopulateMenu(QMenu *pMenu, QTreeWidgetItem *, int) { QAction *menuItem; bool editPriv = (omfgThis->username() == list()->currentItem()->text(3) && _privileges->check("MaintainPersonalTodoList")) || (omfgThis->username() != list()->currentItem()->text(3) && _privileges->check("MaintainOtherTodoLists")); bool viewPriv = (omfgThis->username() == list()->currentItem()->text(3) && _privileges->check("ViewPersonalTodoList")) || (omfgThis->username() != list()->currentItem()->text(3) && _privileges->check("ViewOtherTodoLists")); menuItem = pMenu->addAction(tr("New To-Do..."), this, SLOT(sNew())); menuItem->setEnabled(editPriv); if (list()->currentItem()->altId() == 1) { menuItem = pMenu->addAction(tr("Edit To-Do..."), this, SLOT(sEdit())); menuItem->setEnabled(editPriv); menuItem = pMenu->addAction(tr("View To-Do..."), this, SLOT(sView())); menuItem->setEnabled(viewPriv); menuItem = pMenu->addAction(tr("Delete To-Do"), this, SLOT(sDelete())); menuItem->setEnabled(editPriv); } pMenu->addSeparator(); menuItem = pMenu->addAction(tr("New Incident..."), this, SLOT(sNewIncdt())); menuItem->setEnabled( _privileges->check("MaintainIncidents")); if ((list()->altId() == 1 && !list()->currentItem()->text(9).isEmpty()) || list()->altId() == 2) { menuItem = pMenu->addAction(tr("Edit Incident"), this, SLOT(sEditIncident())); menuItem->setEnabled(_privileges->check("MaintainIncidents")); menuItem = pMenu->addAction(tr("View Incident"), this, SLOT(sViewIncident())); menuItem->setEnabled(_privileges->check("ViewIncidents") || _privileges->check("MaintainIncidents")); } pMenu->addSeparator(); if (list()->altId() == 3) { menuItem = pMenu->addAction(tr("Edit Task"), this, SLOT(sEditTask())); menuItem->setEnabled(_privileges->check("MaintainProjects")); menuItem = pMenu->addAction(tr("View Task"), this, SLOT(sViewTask())); menuItem->setEnabled(_privileges->check("ViewProjects") || _privileges->check("MaintainProjects")); pMenu->addSeparator(); } if (list()->altId() >= 3) { menuItem = pMenu->addAction(tr("Edit Project"), this, SLOT(sEditProject())); menuItem->setEnabled(_privileges->check("MaintainProjects")); menuItem = pMenu->addAction(tr("View Project"), this, SLOT(sViewProject())); menuItem->setEnabled(_privileges->check("ViewProjects") || _privileges->check("MaintainProjects")); } if (!list()->currentItem()->text(10).isEmpty()) { pMenu->addSeparator(); menuItem = pMenu->addAction(tr("Edit Customer"), this, SLOT(sEditCustomer())); menuItem->setEnabled(_privileges->check("MaintainCustomerMasters") || _privileges->check("ViewCustomerMasters")); menuItem = pMenu->addAction(tr("View Customer"), this, SLOT(sViewCustomer())); menuItem->setEnabled(_privileges->check("ViewCustomerMasters")); } }