Пример #1
0
void ChatDataWindow::createGui()
{
	QVBoxLayout *layout = new QVBoxLayout(this);

	TabWidget = new QTabWidget(this);

	GeneralTab = new QWidget(TabWidget);
	QVBoxLayout *generalLayout = new QVBoxLayout(GeneralTab);

	QWidget *nameWidget = new QWidget(this);

	QHBoxLayout *nameLayout = new QHBoxLayout(nameWidget);

	QLabel *numberLabel = new QLabel(tr("Visible Name") + ':', nameWidget);

	DisplayEdit = new QLineEdit(nameWidget);
	DisplayEdit->setText(MyChat.display());

	nameLayout->addWidget(numberLabel);
	nameLayout->addWidget(DisplayEdit);

	generalLayout->addWidget(nameWidget);

	TabWidget->addTab(GeneralTab, tr("General"));

	ChatType *chatType = ChatTypeManager::instance()->chatType(MyChat.type());
	if (chatType)
	{
		EditWidget = chatType->createEditWidget(MyChat, TabWidget);
		if (EditWidget)
		{
			auto groupBox = new QGroupBox{GeneralTab};
			groupBox->setFlat(true);
			groupBox->setTitle(tr("Chat"));

			auto groupBoxLayout = new QVBoxLayout{groupBox};
			groupBoxLayout->setMargin(0);
			groupBoxLayout->setSpacing(4);
			groupBoxLayout->addWidget(EditWidget);

			generalLayout->addWidget(groupBox);
			if (EditWidget->stateNotifier())
				ValueStateNotifier->addConfigurationValueStateNotifier(EditWidget->stateNotifier());
		}
	}

	generalLayout->addStretch(100);

	GroupsTab = new ChatGroupsConfigurationWidget(MyChat, this);
	TabWidget->addTab(GroupsTab, tr("Groups"));

	auto optionsTab = new QWidget{this};
	(new QVBoxLayout{optionsTab})->addStretch(100);
	new ChatConfigurationWidgetGroupBoxesAdapter(this, optionsTab);
	TabWidget->addTab(optionsTab, tr("Options"));

	layout->addWidget(TabWidget);

	createButtons(layout);

	connect(DisplayEdit, SIGNAL(textChanged(QString)), this, SLOT(displayEditChanged()));
}