LargePhotoView::LargePhotoView(QString path, QWidget *parent, ThumbnailView *listArea) : QWidget(parent) { layout = new QGridLayout(this); this->listArea = listArea; fullscreen = false; photoWidget = new LargePhotoWidget(path,this); layout->addWidget(photoWidget,1,0); toolbar = new QToolBar("",this); layout->addWidget(toolbar,2,0); setLayout(layout); QString shortCut("O"); QAction *action = toolbar->addAction(QIcon::fromTheme("folder"),getShortcutLabel("Open in file manager",shortCut), this,SLOT(openInFileManager())); action->setShortcut(QKeySequence(shortCut)); shortCut = QString("E"); action = toolbar->addAction(QIcon::fromTheme("image-x-generic"),getShortcutLabel("Edit photo in other application",shortCut), this,SLOT(editPhoto())); action->setShortcut(QKeySequence(shortCut)); toolbar->addSeparator(); shortCut = QString("Ctrl+Shift+R"); action = toolbar->addAction(QIcon::fromTheme("object-rotate-left"),getShortcutLabel("Rotate anti-clockwise",shortCut), this,SLOT(rotatePhotoAntiClockwise())); action->setShortcut(QKeySequence(shortCut)); shortCut = QString("Ctrl+R"); action = toolbar->addAction(QIcon::fromTheme("object-rotate-right"),getShortcutLabel("Rotate clockwise",shortCut), this,SLOT(rotatePhotoClockwise())); action->setShortcut(QKeySequence(shortCut)); toolbar->addSeparator(); shortCut = QString("Escape"); action = toolbar->addAction(QIcon::fromTheme("go-up"),getShortcutLabel("Back to event",shortCut), this,SLOT(backAction())); action->setShortcut(QKeySequence(shortCut)); shortCut = QString("Left"); action = toolbar->addAction(QIcon::fromTheme("go-previous"),getShortcutLabel("Previous photo",shortCut), this,SLOT(prevPhoto())); action->setShortcut(QKeySequence(shortCut)); shortCut = QString("Right"); action = toolbar->addAction(QIcon::fromTheme("go-next"),getShortcutLabel("Next photo",shortCut), this,SLOT(nextPhoto())); action->setShortcut(QKeySequence(shortCut)); toolbar->addSeparator(); shortCut = QString("F11"); action = toolbar->addAction(QIcon::fromTheme("view-fullscreen"),getShortcutLabel("Toggle Fullscreen",shortCut),this,SLOT(toggleFullscreen())); action->setShortcut(QKeySequence(shortCut)); connect(photoWidget,SIGNAL(doubleClicked()),this,SLOT(toggleFullscreen())); setFocus(); }
HomescreenSettings::HomescreenSettings(QWidget* parent, Qt::WFlags fl) : QDialog( parent, fl) { setWindowTitle(tr("Homescreen")); connect( qApp, SIGNAL(appMessage(QString,QByteArray)), this, SLOT(appMessage(QString,QByteArray)) ); QVBoxLayout *layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); QTabWidget *tabWidget = new QTabWidget(this); //appearance tab QWidget *appearance = new QWidget; QScrollArea *appearanceWrapper = new QScrollArea; appearanceWrapper->setFocusPolicy(Qt::NoFocus); appearanceWrapper->setFrameStyle(QFrame::NoFrame); appearanceWrapper->setWidget(appearance); appearanceWrapper->setWidgetResizable(true); appearanceWrapper->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); QFormLayout *appearanceLayout = new QFormLayout(appearance); QSettings config("Trolltech", "qpe"); config.beginGroup( "HomeScreen" ); QString hsImgName = config.value("HomeScreenPicture").toString(); int hsDisplayMode = config.value("HomeScreenPictureMode", 0).toInt(); image = new QPushButton(); image->setIconSize(QSize(50,75)); image->setMinimumHeight(80); imageMode = new QComboBox; imageMode->addItem(tr("Scale & Crop")); imageMode->addItem(tr("Stretch")); imageMode->addItem(tr("Tile")); imageMode->addItem(tr("Center")); imageMode->addItem(tr("Scale")); imageMode->setCurrentIndex(hsDisplayMode); hsImage = QContent(hsImgName); if (!hsImage.isValid()) { image->setText(tr("No image")); imageMode->setVisible(false); } else { image->setIcon(QIcon(hsImage.fileName())); } connect( image, SIGNAL(clicked()), this, SLOT(editPhoto()) ); QVBoxLayout *imageLayout = new QVBoxLayout; imageLayout->setContentsMargins(0, 0, 0, 0); imageLayout->setSpacing(0); imageLayout->addWidget(image); imageLayout->addWidget(imageMode); appearanceLayout->addRow(tr("Image"), imageLayout); time = new QCheckBox(tr("Time")); date = new QCheckBox(tr("Date")); op = new QCheckBox(tr("Operator")); profile = new QCheckBox(tr("Profile")); location = new QCheckBox(tr("Location")); time->setCheckState(config.value("ShowTime", "true").toBool() ? Qt::Checked : Qt::Unchecked); date->setCheckState(config.value("ShowDate", "true").toBool() ? Qt::Checked : Qt::Unchecked); op->setCheckState(config.value("ShowOperator", "true").toBool() ? Qt::Checked : Qt::Unchecked); profile->setCheckState(config.value("ShowProfile", "true").toBool() ? Qt::Checked : Qt::Unchecked); location->setCheckState(config.value("ShowLocation", "true").toBool() ? Qt::Checked : Qt::Unchecked); QVBoxLayout *checkLayout = new QVBoxLayout; checkLayout->setContentsMargins(0, 0, 0, 0); checkLayout->setSpacing(0); checkLayout->addWidget(time); checkLayout->addWidget(date); checkLayout->addWidget(op); checkLayout->addWidget(profile); checkLayout->addWidget(location); appearanceLayout->addRow(tr("Display"), checkLayout); //idle tab QWidget *idle = new QWidget; QVBoxLayout *idleLayout = new QVBoxLayout(idle); QLabel *label = new QLabel(tr("Return to homescreen:")); QHBoxLayout *h1 = new QHBoxLayout; QHBoxLayout *h2 = new QHBoxLayout; QHBoxLayout *h3 = new QHBoxLayout; homeScreen = new QComboBox; homeScreen->addItem(tr("On display off")); homeScreen->addItem(tr("On suspend")); homeScreen->addItem(tr("Never")); label->setBuddy(homeScreen); connect(homeScreen, SIGNAL(activated(int)), this, SLOT(homeScreenActivated(int))); QString showHomeScreen = config.value("ShowHomeScreen", "Never").toString(); if (showHomeScreen == "DisplayOff") homeScreen->setCurrentIndex(0); else if (showHomeScreen == "Suspend") homeScreen->setCurrentIndex(1); else homeScreen->setCurrentIndex(2); lock = new QCheckBox(tr("Lock keys")); lock->setCheckState(config.value("AutoKeyLock", false).toBool() ? Qt::Checked : Qt::Unchecked); lock->setEnabled(homeScreen->currentIndex() == homeScreen->count()-1 ? false : true); powerNote = new QLabel; powerNote->setWordWrap( true ); QFont font = QApplication::font(); font.setItalic( true ); powerNote->setFont( font ); homeScreenActivated( homeScreen->currentIndex() ); screenSaver_vsi = new QValueSpaceItem( "/Hardware/ScreenSaver/State", this ); connect( screenSaver_vsi, SIGNAL(contentsChanged()), this, SLOT(homeScreenActivated()) ); h1->addSpacing(20); h1->addWidget(homeScreen); h2->addSpacing(20); h2->addWidget(lock); h3->addSpacing(20); h3->addWidget(powerNote); idleLayout->addWidget(label); idleLayout->addLayout(h1); idleLayout->addLayout(h2); idleLayout->addLayout(h3); idleLayout->addStretch(1); //secondary screen tab //TODO: reduce amount of duplicated code between tabs if (QApplication::desktop()->numScreens() > 1) { QWidget *secondary = new QWidget; QScrollArea *secondaryWrapper = new QScrollArea; secondaryWrapper->setFocusPolicy(Qt::NoFocus); secondaryWrapper->setFrameStyle(QFrame::NoFrame); secondaryWrapper->setWidget(secondary); secondaryWrapper->setWidgetResizable(true); secondaryWrapper->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); QFormLayout *secondaryLayout = new QFormLayout(secondary); hsImgName = config.value("SecondaryHomeScreenPicture").toString(); hsDisplayMode = config.value("SecondaryHomeScreenPictureMode", 0).toInt(); secondaryImage = new QPushButton(); secondaryImage->setIconSize(QSize(50,75)); secondaryImage->setMinimumHeight(80); secondaryImageMode = new QComboBox; secondaryImageMode->addItem(tr("Scale & Crop")); secondaryImageMode->addItem(tr("Stretch")); secondaryImageMode->addItem(tr("Tile")); secondaryImageMode->addItem(tr("Center")); secondaryImageMode->addItem(tr("Scale")); secondaryImageMode->setCurrentIndex(hsDisplayMode); secondaryHsImage = QContent(hsImgName); if (!secondaryHsImage.isValid()) { secondaryImage->setText(tr("No image")); secondaryImageMode->setVisible(false); } else { secondaryImage->setIcon(QIcon(secondaryHsImage.fileName())); } connect( secondaryImage, SIGNAL(clicked()), this, SLOT(editSecondaryPhoto()) ); QVBoxLayout *secondaryImageLayout = new QVBoxLayout; secondaryImageLayout->setContentsMargins(0, 0, 0, 0); secondaryImageLayout->setSpacing(0); secondaryImageLayout->addWidget(secondaryImage); secondaryImageLayout->addWidget(secondaryImageMode); secondaryLayout->addRow(tr("Image"), secondaryImageLayout); tabWidget->addTab(secondaryWrapper, tr("Secondary","Secondary Display")); } tabWidget->insertTab(0, appearanceWrapper, tr("Appearance")); tabWidget->insertTab(1, idle, tr("Idle")); tabWidget->setCurrentIndex(0); layout->addWidget(tabWidget); QDrmContentPlugin::initialize(); }