void PluginManagerWindow::on_toolButtonUnload_clicked(){
    qDebug("----PluginManagerWindow::on_toolButtonunload_clicked()");

    QModelIndex index = ui->tableView->currentIndex();
    if(!index.isValid()){
        return;
    }

    HEHUI::AbstractPluginInterface *plugin = PluginManager::instance()->getPluginsHash().values().at(index.row());
    if(!plugin){
        QMessageBox::critical(this, tr("Error"), tr("Invalid plug-in instance or plug-in has already been unloaded!"));
        qCritical("ERROR! Invalid plug-in instance or plug-in has already been unloaded!");
        return;
    }

    if(!PluginManager::instance()->unloadPlugin(plugin)){
        QMessageBox::critical(this, tr("Error"), tr("Can not unload the plug-in '%1'!").arg(plugin->name()));
        qCritical("ERROR! Can not unload the plug-in '%s'!", qPrintable(plugin->name()));
        return;
    }

    pluginInfoModel->removePluginInfo(plugin);
    //    pluginInfoModel->setPluginsHash(PluginManager::instance()->getPluginsHash());

    slotUpdateUI(ui->tableView->currentIndex());

}
void PluginManagerWindow::on_toolButtonDetails_clicked(bool checked) {
    if (checked) {
        ui->groupBoxDetails->show();
        slotUpdateUI(ui->tableView->currentIndex());
    } else {
        ui->groupBoxDetails->hide();
    }

}
ColumnPhotoConfigurationWidget::ColumnPhotoConfigurationWidget(TableViewShared* const sharedObject,
                                                               const TableViewColumnConfiguration& columnConfiguration,
                                                               QWidget* const parentWidget)
    : TableViewColumnConfigurationWidget(sharedObject, columnConfiguration, parentWidget),
      subColumn(ColumnPhotoProperties::SubColumnExposure),
      selectorExposureTimeFormat(0),
      selectorExposureTimeUnit(0)
{
    ColumnPhotoProperties::getSubColumnIndex<ColumnPhotoProperties>(configuration.columnId, &subColumn);

    switch (subColumn)
    {
        case ColumnPhotoProperties::SubColumnExposure:
        {
            QFormLayout* const box1    = new QFormLayout();
            selectorExposureTimeFormat = new QComboBox(this);
            selectorExposureTimeFormat->addItem(i18n("Fraction"), QLatin1String("fraction"));
            selectorExposureTimeFormat->addItem(i18n("Rational"), QLatin1String("rational"));
            box1->addRow(i18n("Format"), selectorExposureTimeFormat);

            selectorExposureTimeUnit = new QComboBox(this);
            selectorExposureTimeUnit->addItem(i18n("Seconds"),      QLatin1String("seconds"));
            selectorExposureTimeUnit->addItem(i18n("Milliseconds"), QLatin1String("milliseconds"));
            selectorExposureTimeUnit->addItem(i18n("Microseconds"), QLatin1String("microseconds"));
            box1->addRow(i18n("Unit"), selectorExposureTimeUnit);

            setLayout(box1);

            const int indexF = selectorExposureTimeFormat->findData(configuration.getSetting(QLatin1String("format"), QLatin1String("fraction")));
            selectorExposureTimeFormat->setCurrentIndex(indexF >= 0 ? indexF : 0);
            const int indexU = selectorExposureTimeUnit->findData(configuration.getSetting(QLatin1String("unit"), QLatin1String("seconds")));
            selectorExposureTimeUnit->setCurrentIndex(indexU >= 0 ? indexU : 0);

            slotUpdateUI();

            connect(selectorExposureTimeFormat, SIGNAL(currentIndexChanged(int)),
                    this, SLOT(slotUpdateUI()));
            break;
        }

        default:
            break;
    }
}