示例#1
0
文件: Observer.cpp 项目: a-price/dart
//==============================================================================
void Observer::removeAllSubjects()
{
  std::set<const Subject*>::iterator it = mSubjects.begin(),
                                          end = mSubjects.end();

  while(it != end)
    removeSubject(*(it++));
}
示例#2
0
void
AnGenericRowProvider::clearRows(void)
{
	for (unsigned int i=0; i<allrows_.size(); ++i)
		removeSubject(allrows_[i]);
	allrows_.clear();
	visiblerows_.clear();
	sizeChangeEvent(0);
}
示例#3
0
bool
AnGenericRowProvider::removeRawRow(unsigned int idx)
{
	if (idx >= allrows_.size())
		return false;
	removeSubject(allrows_[idx]);
	allrows_.erase(allrows_.begin()+idx);
	updateVisible();
	return true;
}
示例#4
0
void
AnGenericRowProvider::setSortProperty(AnListProperty *sortprop)
{
	if (sortProperty_)
		removeSubject(sortProperty_);
	sortProperty_ = sortprop;
	if (sortProperty_)
		addSubject(sortProperty_);
	updateVisible();
}
示例#5
0
AnGenericRowProvider::~AnGenericRowProvider(void)
{
	for (unsigned int i=0; i<allrows_.size(); ++i) {
		removeSubject(allrows_[i]);
	}
	allrows_.clear();
	visiblerows_.clear();
	/* Using the setter methods ensures that removeSubject is called: */
	setSortProperty(NULL);
	setFilterProperty(NULL);
}
示例#6
0
void
AnGenericRowProvider::setFilterProperty(AnListProperty *filter)
{
	if (filterProperty_)
		removeSubject(filterProperty_);
	filterProperty_ = filter;
	if (filterProperty_)
		addSubject(filterProperty_);
	filterString_ = wxEmptyString;
	updateVisible();
}
示例#7
0
SubjectsForm::SubjectsForm(QWidget* parent): QDialog(parent)
{
	setupUi(this);
	
	currentSubjectTextEdit->setReadOnly(true);
	
	renameSubjectPushButton->setDefault(true);

	subjectsListWidget->setSelectionMode(QAbstractItemView::SingleSelection);

	connect(closePushButton, SIGNAL(clicked()), this, SLOT(close()));
	connect(addSubjectPushButton, SIGNAL(clicked()), this, SLOT(addSubject()));
	connect(removeSubjectPushButton, SIGNAL(clicked()), this, SLOT(removeSubject()));
	connect(renameSubjectPushButton, SIGNAL(clicked()), this, SLOT(renameSubject()));

	connect(moveSubjectUpPushButton, SIGNAL(clicked()), this, SLOT(moveSubjectUp()));
	connect(moveSubjectDownPushButton, SIGNAL(clicked()), this, SLOT(moveSubjectDown()));

	connect(sortSubjectsPushButton, SIGNAL(clicked()), this, SLOT(sortSubjects()));
	connect(subjectsListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(subjectChanged(int)));
	connect(activateSubjectPushButton, SIGNAL(clicked()), this, SLOT(activateSubject()));
	connect(deactivateSubjectPushButton, SIGNAL(clicked()), this, SLOT(deactivateSubject()));
	connect(subjectsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(renameSubject()));

	connect(commentsPushButton, SIGNAL(clicked()), this, SLOT(comments()));

	centerWidgetOnScreen(this);
	restoreFETDialogGeometry(this);
	//restore splitter state
	QSettings settings(COMPANY, PROGRAM);
	if(settings.contains(this->metaObject()->className()+QString("/splitter-state")))
		splitter->restoreState(settings.value(this->metaObject()->className()+QString("/splitter-state")).toByteArray());
	
	subjectsListWidget->clear();
	for(int i=0; i<gt.rules.subjectsList.size(); i++){
		Subject* sbj=gt.rules.subjectsList[i];
		subjectsListWidget->addItem(sbj->name);
	}
	
	if(subjectsListWidget->count()>0)
		subjectsListWidget->setCurrentRow(0);
}
示例#8
0
Observer::~Observer(void)
{
	SubjectList::iterator	it;

	if (subjects_ == NULL) {
		return;
	}

	/*
	 * The wxList Iterator is not stable accross removes of the
	 * current object from the list. Thus we always use the
	 * first element from the list and rely on the fact that
	 * removeSubject will remove the current object from the
	 * list.
	 */
	while ((it = subjects_->begin()) != subjects_->end()) {
		removeSubject(*it);
	}

	delete subjects_;
}
示例#9
0
Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form), dialog(new Dialog)
{
    setFixedSize(680, 600);
    ui->setupUi(this);

    enableExams();
    populateComboBoxes();
    populateSpinBoxes();
    QIntValidator *validator = new QIntValidator;
    ui->lineExamNumber->setValidator(validator);
    ui->lineExamNumber2->setValidator(validator);
    ui->lineAppNumber->setFocus();

    QObject::connect(ui->pushButtonAddSubject, SIGNAL(clicked()), this, SLOT(viewDialog()));
    QObject::connect(ui->pushButtonAddSubject2, SIGNAL(clicked()), this, SLOT(viewDialog2()));
    QObject::connect(ui->pushButtonCancel, SIGNAL(clicked()), this, SLOT(close()));
    QObject::connect(ui->pushButtonSave, SIGNAL(clicked()), this, SLOT(acceptForm()));
    QObject::connect(ui->checkBoxTwoSittings, SIGNAL(toggled(bool)), this, SLOT(enableExams()));
    QObject::connect(ui->pushButtonRemove, SIGNAL(clicked()), this, SLOT(removeSubject()));
    QObject::connect(ui->pushButtonRemove2, SIGNAL(clicked()), this, SLOT(removeSubject2()));
}
示例#10
0
void
Observer::deleteHandler(Subject *subject)
{
	removeSubject(subject);
	updateDelete(subject);
}
示例#11
0
 /**
  * Implementation of Observer::updateDelete().
  */
 void updateDelete(Subject *subject) {
     removeSubject(subject);
     perspective_ = NULL;
     rowChangeEvent(0, -1);
 }
示例#12
0
文件: Observer.cpp 项目: a-price/dart
//==============================================================================
void Observer::receiveDestructionNotification(const Subject* _subject)
{
  removeSubject(_subject);
  handleDestructionNotification(_subject);
}