DictTypeSelectDialog::DictTypeSelectDialog(QList<CommonDictInterface *> plugins, QWidget *parent) :
QDialog(parent) {
+ setWindowTitle(tr("Select dictionary type"));
+
this->plugins = plugins;
- CommonDictInterface* i;
- foreach(i, plugins) {
- QListWidgetItem* item = new QListWidgetItem(i->type());
+ verticalLayout = new QVBoxLayout(this);
+ setLayout(verticalLayout);
+
+ pluginsListWidget = new QListWidget(this);
+
+ verticalLayout->addWidget(pluginsListWidget);
+
+ for(int i=0; i<plugins.count(); i++) {
+ QListWidgetItem* item = new QListWidgetItem(plugins[i]->type());
+ item->setData(PLUGIN_ROW_ROLE, i);
pluginsListWidget->addItem(item);
}
+ _selectedPlugin = NULL;
+ connect(pluginsListWidget, SIGNAL(itemClicked(QListWidgetItem*)),
+ this, SLOT(pluginSelected(QListWidgetItem*)));
+}
+
+void DictTypeSelectDialog::pluginSelected(QListWidgetItem *item) {
+ _selectedPlugin = plugins[item->data(PLUGIN_ROW_ROLE).toInt()];
+ accept();
+}
+
+CommonDictInterface* DictTypeSelectDialog::selectedPlugin() {
+ return _selectedPlugin;
+}
+
+CommonDictInterface* DictTypeSelectDialog::addNewDict(
+ QList<CommonDictInterface *> plugins,
+ QWidget *parent) {
+ DictTypeSelectDialog dictSelect(plugins, parent);
+
+ if(dictSelect.exec() == QDialog::Accepted) {
+ return dictSelect.selectedPlugin();
+ }
+ else {
+ return NULL;
+ }
}