Gui_Admin::Gui_Admin(QWidget* parent): QWidget(parent), db(new LinkedDB){ this->setWindowTitle("Welcome to LinQedIn Admin"); this->resize(QDesktopWidget().availableGeometry(this).size() * 0.5); this->setFixedSize(this->size()); QHBoxLayout* adminLayout = new QHBoxLayout(); QVBoxLayout* firstCol = new QVBoxLayout(); usersList = new QListWidget(this); for(std::list<SmartUser>::const_iterator it = db->begin(); it != db->end(); ++it) { QListWidgetItem* user = new QListWidgetItem(QString::fromStdString((*it)->account()->username().getLogin())); usersList->insertItem(usersList->count(),user); } usersList->setCurrentRow(0); usersList->setFixedHeight(this->height()/1.75); usersList->setFixedWidth(200); filterSearch = new QLineEdit(); filterSearch->setPlaceholderText("filter users by username"); filterSearch->setFixedWidth(200); connect(filterSearch, SIGNAL(textEdited(QString)), this, SLOT(filterUsers(QString))); firstCol->addSpacing(50); firstCol->addWidget(filterSearch, 0, Qt::AlignCenter); firstCol->addWidget(usersList,0, Qt::AlignCenter); firstCol->addSpacing(50); QVBoxLayout* secCol = new QVBoxLayout(); QPushButton* adduserB = new QPushButton("add new user"); adduserB->setFixedSize(160,30); connect(adduserB, SIGNAL(clicked()), this, SLOT(openAddUser())); QPushButton* removeuserB = new QPushButton("remove user"); removeuserB->setFixedSize(160,30); connect(removeuserB, SIGNAL(clicked()), this, SLOT(removeUser())); QPushButton* changesubuserB = new QPushButton("change Subscription"); changesubuserB->setFixedSize(160,30); connect(changesubuserB, SIGNAL(clicked()), this, SLOT(openChangeSubType())); QPushButton* logoutB = new QPushButton("Logout"); logoutB->setFixedSize(160,30); connect(logoutB, SIGNAL(clicked()), this, SLOT(logout())); secCol->setSpacing(10); secCol->addSpacing(50); secCol->addWidget(adduserB,0, Qt::AlignLeft); secCol->addWidget(removeuserB,0, Qt::AlignLeft); secCol->addWidget(changesubuserB,0, Qt::AlignLeft); secCol->addWidget(logoutB, 0, Qt::AlignLeft); secCol->addSpacing(50); adminLayout->addLayout(firstCol); adminLayout->addLayout(secCol); setLayout(adminLayout); }
//------------------------------------------------------------------------------ // Find the last user of input instruction in its parent block. // Return nullptr if no use is found. Instruction *findLastUser(Instruction *inst) { InstVector users = findUsers(inst); users = filterUsers(inst, users); Instruction *lastUser = nullptr; int maxDistance = 0; BasicBlock::iterator begin(inst); for (auto inst : users) { BasicBlock::iterator blockIter(inst); int currentDist = std::distance(begin, blockIter); if (currentDist > maxDistance) { maxDistance = currentDist; lastUser = inst; } } return lastUser; }