void EquipmentWriter::slotSave() { switch( ui.tabWidget->currentIndex() ) { case 0: { if( newScope ) slotAddScope(); else slotSaveScope(); ui.ScopeList->clear(); foreach( OAL::Scope *s, *( ks->data()->logObject()->scopeList() ) ) ui.ScopeList->addItem( s->name() ); break; } case 1: { if( newEyepiece ) slotAddEyepiece(); else slotSaveEyepiece(); ui.EyepieceList->clear(); foreach( OAL::Eyepiece *e, *( ks->data()->logObject()->eyepieceList() ) ) ui.EyepieceList->addItem( e->name() ); break; } case 2: { if( newLens ) slotAddLens(); else slotSaveLens(); ui.LensList->clear(); foreach( OAL::Lens *l, *( ks->data()->logObject()->lensList() ) ) ui.LensList->addItem( l->name() ); break; } case 3: { if( newFilter ) slotAddFilter(); else slotSaveFilter(); ui.FilterList->clear(); foreach( OAL::Filter *f, *( ks->data()->logObject()->filterList() ) ) ui.FilterList->addItem( f->name() ); break; } } }
SetupCamera::SetupCamera(QWidget* const parent) : QScrollArea(parent), d(new Private) { d->tab = new QTabWidget(viewport()); setWidget(d->tab); setWidgetResizable(true); const int spacing = QApplication::style()->pixelMetric(QStyle::PM_DefaultLayoutSpacing); QWidget* const panel = new QWidget(d->tab); QGridLayout* const grid = new QGridLayout(panel); d->listView = new QTreeWidget(panel); d->listView->sortItems(0, Qt::AscendingOrder); d->listView->setColumnCount(4); d->listView->setRootIsDecorated(false); d->listView->setSelectionMode(QAbstractItemView::SingleSelection); d->listView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); d->listView->setAllColumnsShowFocus(true); d->listView->setWhatsThis(i18n("Here you can see the digital camera list used by digiKam " "via the Gphoto interface.")); QStringList labels; labels.append(i18n("Title")); labels.append(i18n("Model")); labels.append(i18n("Port")); labels.append(i18n("Path")); d->listView->setHeaderLabels(labels); d->listView->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents); d->listView->header()->setSectionResizeMode(1, QHeaderView::Stretch); d->listView->header()->setSectionResizeMode(2, QHeaderView::Stretch); d->listView->header()->setSectionResizeMode(3, QHeaderView::Stretch); // ------------------------------------------------------------- d->addButton = new QPushButton(panel); d->removeButton = new QPushButton(panel); d->editButton = new QPushButton(panel); d->autoDetectButton = new QPushButton(panel); d->addButton->setText(i18n("&Add...")); d->addButton->setIcon(QIcon::fromTheme(QLatin1String("list-add"))); d->removeButton->setText(i18n("&Remove")); d->removeButton->setIcon(QIcon::fromTheme(QLatin1String("list-remove"))); d->editButton->setText(i18n("&Edit...")); d->editButton->setIcon(QIcon::fromTheme(QLatin1String("configure"))); d->autoDetectButton->setText(i18n("Auto-&Detect")); d->autoDetectButton->setIcon(QIcon::fromTheme(QLatin1String("system-search"))); d->removeButton->setEnabled(false); d->editButton->setEnabled(false); // ------------------------------------------------------------- QSpacerItem* const spacer = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); DActiveLabel* const gphotoLogoLabel = new DActiveLabel(QUrl(QLatin1String("http://www.gphoto.org")), QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("digikam/data/logo-gphoto.png")), panel); gphotoLogoLabel->setToolTip(i18n("Visit Gphoto project website")); #ifndef HAVE_GPHOTO2 // If digiKam is compiled without Gphoto2 support, we hide widgets relevant. d->autoDetectButton->hide(); gphotoLogoLabel->hide(); #endif /* HAVE_GPHOTO2 */ // ------------------------------------------------------------- grid->setContentsMargins(spacing, spacing, spacing, spacing); grid->setSpacing(spacing); grid->setAlignment(Qt::AlignTop); grid->addWidget(d->listView, 0, 0, 6, 1); grid->addWidget(d->addButton, 0, 1, 1, 1); grid->addWidget(d->removeButton, 1, 1, 1, 1); grid->addWidget(d->editButton, 2, 1, 1, 1); grid->addWidget(d->autoDetectButton, 3, 1, 1, 1); grid->addItem(spacer, 4, 1, 1, 1); grid->addWidget(gphotoLogoLabel, 5, 1, 1, 1); d->tab->insertTab(0, panel, i18n("Devices")); // ------------------------------------------------------------- QWidget* const panel2 = new QWidget(d->tab); QVBoxLayout* const layout = new QVBoxLayout(panel2); d->useFileMetadata = new QCheckBox(i18n("Use file metadata (makes connection slower)"), panel2); d->turnHighQualityThumbs = new QCheckBox(i18n("Turn on high quality thumbnail loading (slower loading)"), panel2); d->useDefaultTargetAlbum = new QCheckBox(i18n("Use a default target album to download from camera"), panel2); d->target1AlbumSelector = new AlbumSelectWidget(panel2); d->tab->insertTab(1, panel2, i18n("Behavior")); layout->setContentsMargins(spacing, spacing, spacing, spacing); layout->setSpacing(spacing); layout->addWidget(d->useFileMetadata); layout->addWidget(d->turnHighQualityThumbs); layout->addWidget(d->useDefaultTargetAlbum); layout->addWidget(d->target1AlbumSelector); layout->addStretch(); // ------------------------------------------------------------- QWidget* const panel3 = new QWidget(d->tab); QGridLayout* const importGrid = new QGridLayout(panel3); d->importListView = new QListWidget(panel3); d->importListView->setSelectionMode(QAbstractItemView::SingleSelection); d->importListView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); d->importListView->setWhatsThis(i18n("Here you can see filters that can be used to filter " "files in import dialog.")); d->importAddButton = new QPushButton(panel3); d->importRemoveButton = new QPushButton(panel3); d->importEditButton = new QPushButton(panel3); QSpacerItem* const spacer2 = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding); QGroupBox* const groupBox = new QGroupBox(panel3); QVBoxLayout* const verticalLayout = new QVBoxLayout(groupBox); QLabel* const label = new QLabel(groupBox); verticalLayout->addWidget(label); d->ignoreNamesEdit = new QLineEdit(groupBox); verticalLayout->addWidget(d->ignoreNamesEdit); QLabel* const label2 = new QLabel(groupBox); verticalLayout->addWidget(label2); d->ignoreExtensionsEdit = new QLineEdit(groupBox); verticalLayout->addWidget(d->ignoreExtensionsEdit); groupBox->setTitle(i18n("Always ignore")); label->setText(i18n("Ignored file names:")); label2->setText(i18n("Ignored file extensions:")); d->importAddButton->setText(i18n("&Add...")); d->importAddButton->setIcon(QIcon::fromTheme(QLatin1String("list-add"))); d->importRemoveButton->setText(i18n("&Remove")); d->importRemoveButton->setIcon(QIcon::fromTheme(QLatin1String("list-remove"))); d->importEditButton->setText(i18n("&Edit...")); d->importEditButton->setIcon(QIcon::fromTheme(QLatin1String("configure"))); d->importRemoveButton->setEnabled(false); d->importEditButton->setEnabled(false); importGrid->setContentsMargins(spacing, spacing, spacing, spacing); importGrid->setSpacing(spacing); importGrid->setAlignment(Qt::AlignTop); importGrid->addWidget(d->importListView, 0, 0, 4, 1); importGrid->addWidget(groupBox, 5, 0, 1, 1); importGrid->addWidget(d->importAddButton, 0, 1, 1, 1); importGrid->addWidget(d->importRemoveButton, 1, 1, 1, 1); importGrid->addWidget(d->importEditButton, 2, 1, 1, 1); importGrid->addItem(spacer2, 3, 1, 1, 1); d->tab->insertTab(2, panel3, i18n("Import Filters")); // -- Import Icon View ---------------------------------------------------------- QWidget* const panel4 = new QWidget(d->tab); QVBoxLayout* const layout2 = new QVBoxLayout(panel4); QGroupBox* const iconViewGroup = new QGroupBox(i18n("Icon-View Options"), panel4); QGridLayout* const grid2 = new QGridLayout(iconViewGroup); d->iconShowNameBox = new QCheckBox(i18n("Show file&name"), iconViewGroup); d->iconShowNameBox->setWhatsThis(i18n("Set this option to show the filename below the image thumbnail.")); d->iconShowSizeBox = new QCheckBox(i18n("Show file si&ze"), iconViewGroup); d->iconShowSizeBox->setWhatsThis(i18n("Set this option to show the file size below the image thumbnail.")); d->iconShowDateBox = new QCheckBox(i18n("Show camera creation &date"), iconViewGroup); d->iconShowDateBox->setWhatsThis(i18n("Set this option to show the camera creation date " "below the image thumbnail")); /* d->iconShowResolutionBox = new QCheckBox(i18n("Show ima&ge dimensions"), iconViewGroup); d->iconShowResolutionBox->setWhatsThis(i18n("Set this option to show the image size in pixels " "below the image thumbnail.")); */ d->iconShowFormatBox = new QCheckBox(i18n("Show image Format"), iconViewGroup); d->iconShowFormatBox->setWhatsThis(i18n("Set this option to show image format over image thumbnail.")); d->iconShowCoordinatesBox = new QCheckBox(i18n("Show Geolocation Indicator"), iconViewGroup); d->iconShowCoordinatesBox->setWhatsThis(i18n("Set this option to indicate if image has geolocation information.")); d->iconShowTagsBox = new QCheckBox(i18n("Show digiKam &tags"), iconViewGroup); d->iconShowTagsBox->setWhatsThis(i18n("Set this option to show the digiKam tags " "below the image thumbnail.")); d->iconShowRatingBox = new QCheckBox(i18n("Show item &rating"), iconViewGroup); d->iconShowRatingBox->setWhatsThis(i18n("Set this option to show the item rating " "below the image thumbnail.")); d->iconShowOverlaysBox = new QCheckBox(i18n("Show rotation overlay buttons"), iconViewGroup); d->iconShowOverlaysBox->setWhatsThis(i18n("Set this option to show overlay buttons on " "the image thumbnail for image rotation.")); QLabel* const leftClickLabel = new QLabel(i18n("Thumbnail click action:"), iconViewGroup); d->leftClickActionComboBox = new QComboBox(iconViewGroup); d->leftClickActionComboBox->addItem(i18n("Show embedded preview"), ImportSettings::ShowPreview); d->leftClickActionComboBox->addItem(i18n("Start image editor"), ImportSettings::StartEditor); d->leftClickActionComboBox->setToolTip(i18n("Choose what should happen when you click on a thumbnail.")); d->iconViewFontSelect = new DFontSelect(i18n("Icon View font:"), panel); d->iconViewFontSelect->setToolTip(i18n("Select here the font used to display text in Icon Views.")); grid2->addWidget(d->iconShowNameBox, 0, 0, 1, 1); grid2->addWidget(d->iconShowSizeBox, 1, 0, 1, 1); grid2->addWidget(d->iconShowDateBox, 2, 0, 1, 1); grid2->addWidget(d->iconShowFormatBox, 3, 0, 1, 1); // grid2->addWidget(d->iconShowResolutionBox, 4, 0, 1, 1); TODO grid2->addWidget(d->iconShowTagsBox, 0, 1, 1, 1); grid2->addWidget(d->iconShowRatingBox, 1, 1, 1, 1); grid2->addWidget(d->iconShowOverlaysBox, 2, 1, 1, 1); grid2->addWidget(d->iconShowCoordinatesBox, 3, 1, 1, 1); grid2->addWidget(leftClickLabel, 5, 0, 1, 1); grid2->addWidget(d->leftClickActionComboBox, 5, 1, 1, 1); grid2->addWidget(d->iconViewFontSelect, 6, 0, 1, 2); grid2->setContentsMargins(spacing, spacing, spacing, spacing); grid2->setSpacing(spacing); // -------------------------------------------------------- QGroupBox* const interfaceOptionsGroup = new QGroupBox(i18n("Preview Options"), panel4); QGridLayout* const grid3 = new QGridLayout(interfaceOptionsGroup); d->previewLoadFullImageSize = new QCheckBox(i18n("Embedded preview loads full-sized images"), interfaceOptionsGroup); d->previewLoadFullImageSize->setWhatsThis(i18n("<p>Set this option to load images at their full size " "for preview, rather than at a reduced size. As this option " "will make it take longer to load images, only use it if you have " "a fast computer.</p>" "<p><b>Note:</b> for Raw images, a half size version of the Raw data " "is used instead of the embedded JPEG preview.</p>")); d->previewItemsWhileDownload = new QCheckBox(i18n("Preview each item while downloading it"), interfaceOptionsGroup); d->previewItemsWhileDownload->setWhatsThis(i18n("<p>Set this option to preview each item while downloading.</p>")); d->previewShowIcons = new QCheckBox(i18n("Show icons and text over preview"), interfaceOptionsGroup); d->previewShowIcons->setWhatsThis(i18n("Uncheck this if you don't want to see icons and text in the image preview.")); grid3->setContentsMargins(spacing, spacing, spacing, spacing); grid3->setSpacing(spacing); grid3->addWidget(d->previewLoadFullImageSize, 0, 0, 1, 2); grid3->addWidget(d->previewItemsWhileDownload, 1, 0, 1, 2); grid3->addWidget(d->previewShowIcons, 2, 0, 1, 2); // -------------------------------------------------------- d->fullScreenSettings = new FullScreenSettings(FS_IMPORTUI, panel4); layout2->setContentsMargins(QMargins()); layout2->setSpacing(spacing); layout2->addWidget(iconViewGroup); layout2->addWidget(interfaceOptionsGroup); layout2->addWidget(d->fullScreenSettings); layout2->addStretch(); d->tab->insertTab(3, panel4, i18n("Import Window")); // ------------------------------------------------------------- adjustSize(); // ------------------------------------------------------------- connect(d->listView, SIGNAL(itemSelectionChanged()), this, SLOT(slotSelectionChanged())); connect(d->addButton, SIGNAL(clicked()), this, SLOT(slotAddCamera())); connect(d->removeButton, SIGNAL(clicked()), this, SLOT(slotRemoveCamera())); connect(d->editButton, SIGNAL(clicked()), this, SLOT(slotEditCamera())); connect(d->autoDetectButton, SIGNAL(clicked()), this, SLOT(slotAutoDetectCamera())); connect(d->useDefaultTargetAlbum, SIGNAL(toggled(bool)), d->target1AlbumSelector, SLOT(setEnabled(bool))); connect(d->previewItemsWhileDownload, SIGNAL(clicked()), this, SLOT(slotPreviewItemsClicked())); connect(d->previewLoadFullImageSize, SIGNAL(clicked()), this, SLOT(slotPreviewFullImageSizeClicked())); // ------------------------------------------------------------- connect(d->importListView, SIGNAL(itemSelectionChanged()), this, SLOT(slotImportSelectionChanged())); connect(d->importAddButton, SIGNAL(clicked()), this, SLOT(slotAddFilter())); connect(d->importRemoveButton, SIGNAL(clicked()), this, SLOT(slotRemoveFilter())); connect(d->importEditButton, SIGNAL(clicked()), this, SLOT(slotEditFilter())); // ------------------------------------------------------------- connect(d->useFileMetadata, SIGNAL(toggled(bool)), this, SIGNAL(signalUseFileMetadataChanged(bool))); // ------------------------------------------------------------- readSettings(); }