예제 #1
0
파일: NamePanel.cpp 프로젝트: DonCN/haiku
void NamePanel::MessageReceived(BMessage* message)
{
	switch (message->what) {
		case MSG_PANEL_CANCEL:
			Quit();
			break;
		case MSG_PANEL_OK: {
			if (!fTarget)
				fTarget = fWindow;
			BLooper* looper = fTarget ? fTarget->Looper() : NULL;
			if (fMessage && looper) {
				BMessage cloneMessage(*fMessage);
				cloneMessage.AddString("name", fNameTC->Text());
				cloneMessage.AddRect("frame", Frame());
				looper->PostMessage(&cloneMessage, fTarget);
			}
			Quit();
			break;
		}
		default:
			Panel::MessageReceived(message);
	}
}
예제 #2
0
QTreeWidgetItem* LOCACC :: cloneElement(QTreeWidgetItem *itemToClone,QTreeWidgetItem *parent)
{
    QStringList stringData = getElementTreeData(itemToClone);
    QStringList newStringData(stringData);
    QTreeWidgetItem *clonedElement;
    int counter = 0;
    do
    {
        clonedElement = addElement(newStringData,parent);
        counter++;
        newStringData[0] = stringData[0] + "-copy (" + QString::number(counter) + ")";
        newStringData[1] = stringData[1] + "-copy (" + QString::number(counter) + ")";
    }
    while(clonedElement == NULL);

    int msgCount = itemToClone->childCount();
    for(int i = 0 ; i < msgCount ; i++)
    {
        QTreeWidgetItem *currentMsg = itemToClone->child(i);
        cloneMessage(currentMsg,clonedElement);
    }
    return clonedElement;
}