FormEditorWidget::FormEditorWidget(FormEditorView *view) : QWidget(), m_formEditorView(view) { setStyleSheet(QLatin1String(Utils::FileReader::fetchQrc(":/qmldesigner/formeditorstylesheet.css"))); QVBoxLayout *fillLayout = new QVBoxLayout(this); fillLayout->setMargin(0); fillLayout->setSpacing(0); setLayout(fillLayout); QList<QAction*> upperActions; m_toolActionGroup = new QActionGroup(this); m_transformToolAction = m_toolActionGroup->addAction("Transform Tool (Press Key Q)"); m_transformToolAction->setShortcut(Qt::Key_Q); m_transformToolAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_transformToolAction->setCheckable(true); m_transformToolAction->setChecked(true); m_transformToolAction->setIcon(QPixmap(":/icon/tool/transform.png")); connect(m_transformToolAction.data(), SIGNAL(triggered(bool)), SLOT(changeTransformTool(bool))); m_anchorToolAction = m_toolActionGroup->addAction("Anchor Tool (Press Key W)"); m_anchorToolAction->setShortcut(Qt::Key_W); m_anchorToolAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_anchorToolAction->setCheckable(true); m_anchorToolAction->setIcon(QPixmap(":/icon/tool/anchor.png")); connect(m_anchorToolAction.data(), SIGNAL(triggered(bool)), SLOT(changeAnchorTool(bool))); // addActions(m_toolActionGroup->actions()); // upperActions.append(m_toolActionGroup->actions()); QActionGroup *layoutActionGroup = new QActionGroup(this); layoutActionGroup->setExclusive(false); m_snappingAction = layoutActionGroup->addAction(tr("Snap to guides (E)")); m_snappingAction->setShortcut(Qt::Key_E); m_snappingAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_snappingAction->setCheckable(true); m_snappingAction->setChecked(true); m_snappingAction->setIcon(QPixmap(":/icon/layout/snapping.png")); m_snappingAndAnchoringAction = layoutActionGroup->addAction("Toogle Snapping And Anchoring (Press Key R)"); m_snappingAndAnchoringAction->setShortcut(Qt::Key_R); m_snappingAndAnchoringAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_snappingAndAnchoringAction->setCheckable(true); m_snappingAndAnchoringAction->setChecked(false); m_snappingAndAnchoringAction->setEnabled(false); m_snappingAndAnchoringAction->setVisible(false); m_snappingAndAnchoringAction->setIcon(QPixmap(":/icon/layout/snapping_and_anchoring.png")); addActions(layoutActionGroup->actions()); upperActions.append(layoutActionGroup->actions()); QAction *separatorAction = new QAction(this); separatorAction->setSeparator(true); addAction(separatorAction); upperActions.append(separatorAction); m_showBoundingRectAction = new QAction(tr("Show bounding rectangles and stripes for empty items (Press Key A)"), this); m_showBoundingRectAction->setShortcut(Qt::Key_A); m_showBoundingRectAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_showBoundingRectAction->setCheckable(true); m_showBoundingRectAction->setChecked(true); m_showBoundingRectAction->setIcon(QPixmap(":/icon/layout/boundingrect.png")); addAction(m_showBoundingRectAction.data()); upperActions.append(m_showBoundingRectAction.data()); m_selectOnlyContentItemsAction = new QAction(tr("Only select items with content (S)"), this); m_selectOnlyContentItemsAction->setShortcut(Qt::Key_S); m_selectOnlyContentItemsAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_selectOnlyContentItemsAction->setCheckable(true); m_selectOnlyContentItemsAction->setChecked(false); m_selectOnlyContentItemsAction->setIcon(QPixmap(":/icon/selection/selectonlycontentitems.png")); addAction(m_selectOnlyContentItemsAction.data()); upperActions.append(m_selectOnlyContentItemsAction.data()); m_rootWidthAction = new LineEditAction(tr("width"), this); connect(m_rootWidthAction.data(), SIGNAL(textChanged(QString)), this, SLOT(changeRootItemWidth(QString))); addAction(m_rootWidthAction.data()); upperActions.append(m_rootWidthAction.data()); m_rootHeightAction = new LineEditAction(tr("height"), this); connect(m_rootHeightAction.data(), SIGNAL(textChanged(QString)), this, SLOT(changeRootItemHeight(QString))); addAction(m_rootHeightAction.data()); upperActions.append(m_rootHeightAction.data()); m_snappingAndAnchoringAction = layoutActionGroup->addAction("Toogle Snapping And Anchoring (Press Key R)"); m_toolBox = new ToolBox(this); fillLayout->addWidget(m_toolBox.data()); m_toolBox->setLeftSideActions(upperActions); m_graphicsView = new FormEditorGraphicsView(this); fillLayout->addWidget(m_graphicsView.data()); m_graphicsView.data()->setStyleSheet( QLatin1String(Utils::FileReader::fetchQrc(":/qmldesigner/scrollbar.css"))); QList<QAction*> lowerActions; m_zoomAction = new ZoomAction(m_toolActionGroup.data()); connect(m_zoomAction.data(), SIGNAL(zoomLevelChanged(double)), SLOT(setZoomLevel(double))); addAction(m_zoomAction.data()); upperActions.append(m_zoomAction.data()); m_toolBox->addRightSideAction(m_zoomAction.data()); m_resetAction = new QAction(tr("Reset view (R)"), this); m_resetAction->setShortcut(Qt::Key_R); m_resetAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); m_resetAction->setIcon(QPixmap(":/icon/reset.png")); connect(m_resetAction.data(), SIGNAL(triggered(bool)), this, SLOT(resetNodeInstanceView())); addAction(m_resetAction.data()); upperActions.append(m_resetAction.data()); m_toolBox->addRightSideAction(m_resetAction.data()); }
WorkoutWindow::WorkoutWindow(Context *context) : GcWindow(context), draw(true), context(context), active(false), recording(false) { setContentsMargins(0,0,0,0); setProperty("color", GColor(CTRAINPLOTBACKGROUND)); setControls(NULL); ergFile = NULL; QVBoxLayout *main = new QVBoxLayout(this); QHBoxLayout *layout = new QHBoxLayout; QVBoxLayout *editor = new QVBoxLayout; connect(context, SIGNAL(configChanged(qint32)), this, SLOT(configChanged(qint32))); // the workout scene workout = new WorkoutWidget(this, context); // paint the TTE curve mmp = new WWMMPCurve(workout); // add a line between the dots line = new WWLine(workout); // block cursos bcursor = new WWBlockCursor(workout); // block selection brect = new WWBlockSelection(workout); // paint the W'bal curve wbline = new WWWBLine(workout, context); // telemetry telemetry = new WWTelemetry(workout, context); // add the power, W'bal scale powerscale = new WWPowerScale(workout, context); wbalscale = new WWWBalScale(workout, context); // lap markers lap = new WWLap(workout); // tte warning bar at bottom tte = new WWTTE(workout); // selection tool rect = new WWRect(workout); // guides always on top! guide = new WWSmartGuide(workout); // recording ... now = new WWNow(workout, context); // scroller, hidden until needed scroll = new QScrollBar(Qt::Horizontal, this); scroll->hide(); // setup the toolbar toolbar = new QToolBar(this); toolbar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); toolbar->setFloatable(true); toolbar->setIconSize(QSize(18,18)); QIcon newIcon(":images/toolbar/new doc.png"); newAct = new QAction(newIcon, tr("New"), this); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); toolbar->addAction(newAct); QIcon saveIcon(":images/toolbar/save.png"); saveAct = new QAction(saveIcon, tr("Save"), this); connect(saveAct, SIGNAL(triggered()), this, SLOT(saveFile())); toolbar->addAction(saveAct); QIcon saveAsIcon(":images/toolbar/saveas.png"); saveAsAct = new QAction(saveAsIcon, tr("Save As"), this); connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); toolbar->addAction(saveAsAct); toolbar->addSeparator(); //XXX TODO //XXXHelpWhatsThis *helpToolbar = new HelpWhatsThis(toolbar); //XXXtoolbar->setWhatsThis(helpToolbar->getWhatsThisText(HelpWhatsThis::ChartRides_Editor)); // undo and redo deliberately at a distance from the // save icon, since accidentally hitting the wrong // icon in that instance would be horrible QIcon undoIcon(":images/toolbar/undo.png"); undoAct = new QAction(undoIcon, tr("Undo"), this); connect(undoAct, SIGNAL(triggered()), workout, SLOT(undo())); toolbar->addAction(undoAct); QIcon redoIcon(":images/toolbar/redo.png"); redoAct = new QAction(redoIcon, tr("Redo"), this); connect(redoAct, SIGNAL(triggered()), workout, SLOT(redo())); toolbar->addAction(redoAct); toolbar->addSeparator(); QIcon drawIcon(":images/toolbar/edit.png"); drawAct = new QAction(drawIcon, tr("Draw"), this); connect(drawAct, SIGNAL(triggered()), this, SLOT(drawMode())); toolbar->addAction(drawAct); QIcon selectIcon(":images/toolbar/select.png"); selectAct = new QAction(selectIcon, tr("Select"), this); connect(selectAct, SIGNAL(triggered()), this, SLOT(selectMode())); toolbar->addAction(selectAct); selectAct->setEnabled(true); drawAct->setEnabled(false); toolbar->addSeparator(); QIcon cutIcon(":images/toolbar/cut.png"); cutAct = new QAction(cutIcon, tr("Cut"), this); cutAct->setEnabled(true); toolbar->addAction(cutAct); connect(cutAct, SIGNAL(triggered()), workout, SLOT(cut())); QIcon copyIcon(":images/toolbar/copy.png"); copyAct = new QAction(copyIcon, tr("Copy"), this); copyAct->setEnabled(true); toolbar->addAction(copyAct); connect(copyAct, SIGNAL(triggered()), workout, SLOT(copy())); QIcon pasteIcon(":images/toolbar/paste.png"); pasteAct = new QAction(pasteIcon, tr("Paste"), this); pasteAct->setEnabled(false); toolbar->addAction(pasteAct); connect(pasteAct, SIGNAL(triggered()), workout, SLOT(paste())); toolbar->addSeparator(); QIcon propertiesIcon(":images/toolbar/properties.png"); propertiesAct = new QAction(propertiesIcon, tr("Properties"), this); connect(propertiesAct, SIGNAL(triggered()), this, SLOT(properties())); toolbar->addAction(propertiesAct); QIcon zoomInIcon(":images/toolbar/zoom in.png"); zoomInAct = new QAction(zoomInIcon, tr("Zoom In"), this); connect(zoomInAct, SIGNAL(triggered()), this, SLOT(zoomIn())); toolbar->addAction(zoomInAct); QIcon zoomOutIcon(":images/toolbar/zoom out.png"); zoomOutAct = new QAction(zoomOutIcon, tr("Zoom Out"), this); connect(zoomOutAct, SIGNAL(triggered()), this, SLOT(zoomOut())); toolbar->addAction(zoomOutAct); // stretch the labels to the right hand side QWidget *empty = new QWidget(this); empty->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); toolbar->addWidget(empty); xlabel = new QLabel("00:00"); toolbar->addWidget(xlabel); ylabel = new QLabel("150w"); toolbar->addWidget(ylabel); IFlabel = new QLabel("0 IF"); toolbar->addWidget(IFlabel); TSSlabel = new QLabel("0 TSS"); toolbar->addWidget(TSSlabel); #if 0 // not yet! // get updates.. connect(context, SIGNAL(telemetryUpdate(RealtimeData)), this, SLOT(telemetryUpdate(RealtimeData))); telemetryUpdate(RealtimeData()); #endif // editing the code... code = new CodeEditor(this); code->setContextMenuPolicy(Qt::NoContextMenu); // no context menu code->installEventFilter(this); // filter the undo/redo stuff code->hide(); // WATTS and Duration for the cursor main->addWidget(toolbar); editor->addWidget(workout); editor->addWidget(scroll); layout->addLayout(editor); layout->addWidget(code); main->addLayout(layout); // make it look right saveAct->setEnabled(false); undoAct->setEnabled(false); redoAct->setEnabled(false); // watch for erg file selection connect(context, SIGNAL(ergFileSelected(ErgFile*)), this, SLOT(ergFileSelected(ErgFile*))); // watch for erg run/stop connect(context, SIGNAL(start()), this, SLOT(start())); connect(context, SIGNAL(stop()), this, SLOT(stop())); // text changed connect(code, SIGNAL(textChanged()), this, SLOT(qwkcodeChanged())); connect(code, SIGNAL(cursorPositionChanged()), workout, SLOT(hoverQwkcode())); // scrollbar connect(scroll, SIGNAL(sliderMoved(int)), this, SLOT(scrollMoved())); // set the widgets etc configChanged(CONFIG_APPEARANCE); }
AskPassphraseDialog::AskPassphraseDialog(Mode mode, QWidget *parent) : QDialog(parent), ui(new Ui::AskPassphraseDialog), mode(mode), model(0), fCapsLock(false) { ui->setupUi(this); ui->passEdit1->setMaxLength(MAX_PASSPHRASE_SIZE); ui->passEdit2->setMaxLength(MAX_PASSPHRASE_SIZE); ui->passEdit3->setMaxLength(MAX_PASSPHRASE_SIZE); // Setup Caps Lock detection. ui->passEdit1->installEventFilter(this); ui->passEdit2->installEventFilter(this); ui->passEdit3->installEventFilter(this); bool addUnlockButton = false; bool addUnlockStakingOnlyButton = false; bool addCancelButton = true; bool addOkButton = false; buttonOk = NULL; buttonCancel = NULL; buttonUnlock = NULL; buttonUnlockStakingOnly = NULL; switch(mode) { case Encrypt: // Ask passphrase x2 addOkButton = true; ui->passLabel1->hide(); ui->passEdit1->hide(); ui->warningLabel->setText(tr("Enter the new passphrase to the vault.<br/>Please use a passphrase of <b>10 or more random characters</b>, or <b>eight or more words</b>.")); setWindowTitle(tr("Encrypt Vault")); break; case UnlockFullOnly: addUnlockButton = true; addUnlockStakingOnlyButton = false; ui->warningLabel->setText(tr("This operation needs your vault passphrase to unlock the vault.")); ui->passLabel2->hide(); ui->passEdit2->hide(); ui->passLabel3->hide(); ui->passEdit3->hide(); setWindowTitle(tr("Unlock vault")); break; case Unlock: // Ask passphrase addUnlockButton = true; addUnlockStakingOnlyButton = true; ui->warningLabel->setText(tr("This operation needs your vault passphrase to unlock the vault.")); ui->passLabel2->hide(); ui->passEdit2->hide(); ui->passLabel3->hide(); ui->passEdit3->hide(); setWindowTitle(tr("Unlock vault")); break; case Decrypt: // Ask passphrase ui->warningLabel->setText(tr("This operation needs your vault passphrase to decrypt the vault.")); ui->passLabel2->hide(); ui->passEdit2->hide(); ui->passLabel3->hide(); ui->passEdit3->hide(); setWindowTitle(tr("Decrypt Vault")); break; case ChangePass: // Ask old passphrase + new passphrase x2 addOkButton = true; setWindowTitle(tr("Change passphrase")); ui->warningLabel->setText(tr("Enter the old and new passphrase to the vault.")); break; } if (addUnlockButton){ buttonUnlock = new QPushButton(tr("&Unlock")); buttonUnlock->setDefault(true); ui->buttonBox->addButton(buttonUnlock, QDialogButtonBox::ActionRole); connect(buttonUnlock, SIGNAL(clicked()), this, SLOT(unlockWallet())); GUIUtil::SetupPushButton(buttonUnlock); } if (addUnlockStakingOnlyButton && !fWalletUnlockMintOnly){ buttonUnlockStakingOnly = new QPushButton(tr("U&nlock for Staking only")); buttonUnlockStakingOnly->setDefault(true); ui->buttonBox->addButton(buttonUnlockStakingOnly, QDialogButtonBox::ActionRole); connect(buttonUnlockStakingOnly, SIGNAL(clicked()), this, SLOT(unlockWalletForStakingOnly())); GUIUtil::SetupPushButton(buttonUnlockStakingOnly); } if (addOkButton){ buttonOk = new QPushButton(tr("&Ok")); buttonOk->setDefault(false); ui->buttonBox->addButton(buttonOk, QDialogButtonBox::ActionRole); connect(buttonOk, SIGNAL(clicked()), this, SLOT(encryptWallet())); GUIUtil::SetupPushButton(buttonOk); } if (addCancelButton){ buttonCancel = new QPushButton(tr("&Cancel")); buttonCancel->setDefault(true); ui->buttonBox->addButton(buttonCancel, QDialogButtonBox::ActionRole); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(closeForm())); GUIUtil::SetupPushButton(buttonCancel); } textChanged(); connect(ui->passEdit1, SIGNAL(textChanged(QString)), this, SLOT(textChanged())); connect(ui->passEdit2, SIGNAL(textChanged(QString)), this, SLOT(textChanged())); connect(ui->passEdit3, SIGNAL(textChanged(QString)), this, SLOT(textChanged())); }
GeneralSettingsPage::GeneralSettingsPage() { QString setLanguage = settingsCache->getLang(); QStringList qmFiles = findQmFiles(); for (int i = 0; i < qmFiles.size(); i++) { QString langName = languageName(qmFiles[i]); languageBox.addItem(langName, qmFiles[i]); if ((qmFiles[i] == setLanguage) || (setLanguage.isEmpty() && langName == tr("English"))) languageBox.setCurrentIndex(i); } picDownloadCheckBox.setChecked(settingsCache->getPicDownload()); updateNotificationCheckBox.setChecked(settingsCache->getNotifyAboutUpdates()); pixmapCacheEdit.setMinimum(PIXMAPCACHE_SIZE_MIN); // 2047 is the max value to avoid overflowing of QPixmapCache::setCacheLimit(int size) pixmapCacheEdit.setMaximum(PIXMAPCACHE_SIZE_MAX); pixmapCacheEdit.setSingleStep(64); pixmapCacheEdit.setValue(settingsCache->getPixmapCacheSize()); pixmapCacheEdit.setSuffix(" MB"); defaultUrlEdit = new QLineEdit(settingsCache->getPicUrl()); fallbackUrlEdit = new QLineEdit(settingsCache->getPicUrlFallback()); connect(&clearDownloadedPicsButton, SIGNAL(clicked()), this, SLOT(clearDownloadedPicsButtonClicked())); connect(&languageBox, SIGNAL(currentIndexChanged(int)), this, SLOT(languageBoxChanged(int))); connect(&picDownloadCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setPicDownload(int))); connect(&pixmapCacheEdit, SIGNAL(valueChanged(int)), settingsCache, SLOT(setPixmapCacheSize(int))); connect(&updateNotificationCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setNotifyAboutUpdate(int))); connect(&picDownloadCheckBox, SIGNAL(clicked(bool)), this, SLOT(setEnabledStatus(bool))); connect(defaultUrlEdit, SIGNAL(textChanged(QString)), settingsCache, SLOT(setPicUrl(QString))); connect(fallbackUrlEdit, SIGNAL(textChanged(QString)), settingsCache, SLOT(setPicUrlFallback(QString))); connect(&defaultUrlRestoreButton, SIGNAL(clicked()), this, SLOT(defaultUrlRestoreButtonClicked())); connect(&fallbackUrlRestoreButton, SIGNAL(clicked()), this, SLOT(fallbackUrlRestoreButtonClicked())); setEnabledStatus(settingsCache->getPicDownload()); QGridLayout *personalGrid = new QGridLayout; personalGrid->addWidget(&languageLabel, 0, 0); personalGrid->addWidget(&languageBox, 0, 1); personalGrid->addWidget(&pixmapCacheLabel, 1, 0); personalGrid->addWidget(&pixmapCacheEdit, 1, 1); personalGrid->addWidget(&updateNotificationCheckBox, 2, 0); personalGrid->addWidget(&picDownloadCheckBox, 3, 0, 1, 3); personalGrid->addWidget(&defaultUrlLabel, 4, 0, 1, 1); personalGrid->addWidget(defaultUrlEdit, 4, 1, 1, 1); personalGrid->addWidget(&defaultUrlRestoreButton, 4, 2, 1, 1); personalGrid->addWidget(&fallbackUrlLabel, 5, 0, 1, 1); personalGrid->addWidget(fallbackUrlEdit, 5, 1, 1, 1); personalGrid->addWidget(&fallbackUrlRestoreButton, 5, 2, 1, 1); personalGrid->addWidget(&urlLinkLabel, 6, 1, 1, 1); personalGrid->addWidget(&clearDownloadedPicsButton, 7, 0, 1, 3); urlLinkLabel.setTextInteractionFlags(Qt::LinksAccessibleByMouse); urlLinkLabel.setOpenExternalLinks(true); personalGroupBox = new QGroupBox; personalGroupBox->setLayout(personalGrid); deckPathEdit = new QLineEdit(settingsCache->getDeckPath()); deckPathEdit->setReadOnly(true); QPushButton *deckPathButton = new QPushButton("..."); connect(deckPathButton, SIGNAL(clicked()), this, SLOT(deckPathButtonClicked())); replaysPathEdit = new QLineEdit(settingsCache->getReplaysPath()); replaysPathEdit->setReadOnly(true); QPushButton *replaysPathButton = new QPushButton("..."); connect(replaysPathButton, SIGNAL(clicked()), this, SLOT(replaysPathButtonClicked())); picsPathEdit = new QLineEdit(settingsCache->getPicsPath()); picsPathEdit->setReadOnly(true); QPushButton *picsPathButton = new QPushButton("..."); connect(picsPathButton, SIGNAL(clicked()), this, SLOT(picsPathButtonClicked())); cardDatabasePathEdit = new QLineEdit(settingsCache->getCardDatabasePath()); cardDatabasePathEdit->setReadOnly(true); QPushButton *cardDatabasePathButton = new QPushButton("..."); connect(cardDatabasePathButton, SIGNAL(clicked()), this, SLOT(cardDatabasePathButtonClicked())); tokenDatabasePathEdit = new QLineEdit(settingsCache->getTokenDatabasePath()); tokenDatabasePathEdit->setReadOnly(true); QPushButton *tokenDatabasePathButton = new QPushButton("..."); connect(tokenDatabasePathButton, SIGNAL(clicked()), this, SLOT(tokenDatabasePathButtonClicked())); QGridLayout *pathsGrid = new QGridLayout; pathsGrid->addWidget(&deckPathLabel, 0, 0); pathsGrid->addWidget(deckPathEdit, 0, 1); pathsGrid->addWidget(deckPathButton, 0, 2); pathsGrid->addWidget(&replaysPathLabel, 1, 0); pathsGrid->addWidget(replaysPathEdit, 1, 1); pathsGrid->addWidget(replaysPathButton, 1, 2); pathsGrid->addWidget(&picsPathLabel, 2, 0); pathsGrid->addWidget(picsPathEdit, 2, 1); pathsGrid->addWidget(picsPathButton, 2, 2); pathsGrid->addWidget(&cardDatabasePathLabel, 3, 0); pathsGrid->addWidget(cardDatabasePathEdit, 3, 1); pathsGrid->addWidget(cardDatabasePathButton, 3, 2); pathsGrid->addWidget(&tokenDatabasePathLabel, 4, 0); pathsGrid->addWidget(tokenDatabasePathEdit, 4, 1); pathsGrid->addWidget(tokenDatabasePathButton, 4, 2); pathsGroupBox = new QGroupBox; pathsGroupBox->setLayout(pathsGrid); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(personalGroupBox); mainLayout->addWidget(pathsGroupBox); setLayout(mainLayout); }
MsgGen::MsgGen(CToolCustom *parent, Message *msg) : QObject(parent) { m_client = msg->client(); m_edit = NULL; for (QWidget *p = parent->parentWidget(); p; p = p->parentWidget()){ if (p->inherits("MsgEdit")){ m_edit = static_cast<MsgEdit*>(p); break; } } connect(m_edit->m_userWnd, SIGNAL(multiplyChanged()), this, SLOT(textChanged())); parent->setText(i18n(" ")); m_edit->m_edit->setTextFormat(RichText); QString text = msg->getRichText(); if (!text.isEmpty()){ m_edit->m_edit->setText(text); m_edit->m_edit->moveCursor(QTextEdit::MoveEnd, false); if ((msg->getBackground() != msg->getForeground()) && !CorePlugin::m_plugin->getOwnColors()){ m_edit->m_edit->setBackground(msg->getBackground()); m_edit->m_edit->setForeground(msg->getForeground()); } } Command cmd; cmd->id = CmdSend; cmd->param = m_edit; Event e(EventCommandWidget, cmd); btnSend = (QToolButton*)(e.process()); QToolButton *btn = new ColorToolButton(parent, QColor(CorePlugin::m_plugin->getEditBackground())); set_button(btn, "bgcolor", I18N_NOOP("Bac&kground color")); connect(btn, SIGNAL(colorChanged(QColor)), this, SLOT(bgColorChanged(QColor))); parent->addWidget(btn); btn->show(); btn = new ColorToolButton(parent, QColor(CorePlugin::m_plugin->getEditForeground())); set_button(btn, "fgcolor", I18N_NOOP("&Text color")); connect(btn, SIGNAL(colorChanged(QColor)), this, SLOT(fgColorChanged(QColor))); parent->addWidget(btn); btn->show(); btnBold = new QToolButton(parent); set_button(btnBold, "text_bold", I18N_NOOP("&Bold")); btnBold->setToggleButton(true); connect(btnBold, SIGNAL(toggled(bool)), this, SLOT(toggleBold(bool))); parent->addWidget(btnBold); btnBold->show(); btnItalic = new QToolButton(parent); set_button(btnItalic, "text_italic", I18N_NOOP("&Italic")); btnItalic->setToggleButton(true); connect(btnItalic, SIGNAL(toggled(bool)), this, SLOT(toggleItalic(bool))); parent->addWidget(btnItalic); btnItalic->show(); btnUnderline = new QToolButton(parent); set_button(btnUnderline, "text_under", I18N_NOOP("&Underline")); btnUnderline->setToggleButton(true); connect(btnUnderline, SIGNAL(toggled(bool)), this, SLOT(toggleUnderline(bool))); parent->addWidget(btnUnderline); btnUnderline->show(); btn = new QToolButton(parent); set_button(btn, "text", I18N_NOOP("Text &font")); connect(btn, SIGNAL(clicked()), this, SLOT(selectFont())); parent->addWidget(btn); btn->show(); connect(m_edit->m_edit, SIGNAL(currentFontChanged(const QFont&)), this, SLOT(fontChanged(const QFont&))); connect(m_edit->m_edit, SIGNAL(textChanged()), this, SLOT(textChanged())); fontChanged(m_edit->m_edit->font()); textChanged(); }
CameraSelection::CameraSelection(QWidget* const parent) : QDialog(parent), d(new Private) { qApp->setOverrideCursor(Qt::WaitCursor); setWindowTitle(i18n("Camera Configuration")); setModal(true); const int spacing = QApplication::style()->pixelMetric(QStyle::PM_DefaultLayoutSpacing); d->buttons = new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); d->buttons->button(QDialogButtonBox::Ok)->setDefault(true); d->UMSCameraNameActual = QLatin1String("Directory Browse"); // Don't be i18n! d->UMSCameraNameShown = i18n("Mounted Camera"); d->PTPCameraNameShown = QLatin1String("USB PTP Class Camera"); d->PTPIPCameraNameShown = QLatin1String("PTP/IP Camera"); QWidget* const page = new QWidget(this); QGridLayout* mainBoxLayout = new QGridLayout(page); // -------------------------------------------------------------- d->listView = new QTreeWidget(page); d->listView->setRootIsDecorated(false); d->listView->setSelectionMode(QAbstractItemView::SingleSelection); d->listView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); d->listView->setMinimumWidth(350); d->listView->setAllColumnsShowFocus(true); d->listView->setColumnCount(1); d->listView->setHeaderLabels(QStringList() << i18n("Camera List")); d->listView->setWhatsThis(i18n("<p>Select the camera name that you want to use here. All " "default settings on the right panel " "will be set automatically.</p><p>This list has been generated " "using the gphoto2 library installed on your computer.</p>")); d->searchBar = new SearchTextBar(page, QLatin1String("CameraSelectionSearchBar")); // -------------------------------------------------------------- QGroupBox* const titleBox = new QGroupBox(i18n("Camera Title"), page); QVBoxLayout* const gLayout1 = new QVBoxLayout(titleBox); d->titleEdit = new QLineEdit(titleBox); d->titleEdit->setWhatsThis(i18n("<p>Set here the name used in digiKam interface to " "identify this camera.</p>")); gLayout1->addWidget(d->titleEdit); gLayout1->setContentsMargins(spacing, spacing, spacing, spacing); gLayout1->setSpacing(spacing); // -------------------------------------------------------------- QGroupBox* const portPathBox = new QGroupBox(i18n("Camera Port Type"), page); QGridLayout* const gLayout2 = new QGridLayout(portPathBox); d->portButtonGroup = new QButtonGroup(portPathBox); d->portButtonGroup->setExclusive(true); d->usbButton = new QRadioButton(i18n("USB"), portPathBox); d->usbButton->setWhatsThis(i18n("<p>Select this option if your camera is connected to your " "computer using a USB cable.</p>")); d->serialButton = new QRadioButton(i18n("Serial"), portPathBox); d->serialButton->setWhatsThis(i18n("<p>Select this option if your camera is connected to your " "computer using a serial cable.</p>")); d->networkButton = new QRadioButton(i18n("Network"), portPathBox); d->networkButton->setWhatsThis(i18n("<p>Select this option if your camera is connected to your " "computer network.</p>")); d->portPathComboBox = new QComboBox(portPathBox); d->portPathComboBox->setDuplicatesEnabled(false); d->portPathComboBox->setWhatsThis(i18n("<p>Select the serial port to use on your computer here. " "This option is only required if you use a serial camera.</p>")); d->networkEdit = new QLineEdit(portPathBox); d->networkEdit->setWhatsThis(i18n("<p>Enter here the network address of your camera.</p>")); d->networkEdit->setInputMask(QLatin1String("000.000.000.000")); d->networkEdit->setText(QLatin1String("192.168.001.001")); d->portButtonGroup->addButton(d->usbButton); d->portButtonGroup->addButton(d->serialButton); d->portButtonGroup->addButton(d->networkButton); gLayout2->addWidget(d->usbButton, 0, 0, 1, 2); gLayout2->addWidget(d->serialButton, 1, 0, 1, 2); gLayout2->addWidget(d->portPathComboBox, 1, 1, 1, 2); gLayout2->addWidget(d->networkButton, 2, 0, 1, 2); gLayout2->addWidget(d->networkEdit, 2, 1, 1, 2); gLayout2->setContentsMargins(spacing, spacing, spacing, spacing); gLayout2->setSpacing(spacing); // -------------------------------------------------------------- QGroupBox* const umsMountBox = new QGroupBox(i18n("Camera Mount Path"), page); QVBoxLayout* const gLayout3 = new QVBoxLayout(umsMountBox); QLabel* const umsMountLabel = new QLabel(umsMountBox); umsMountLabel->setText(i18n("Note: only for USB/IEEE mass storage cameras.")); d->umsMountURL = new DFileSelector(umsMountBox); d->umsMountURL->setFileDlgPath(QLatin1String("/mnt/camera")); d->umsMountURL->setFileDlgMode(QFileDialog::Directory); d->umsMountURL->setWhatsThis(i18n("<p>Set here the mount path to use on your computer. This " "option is only required if you use a <b>USB Mass Storage</b> " "camera.</p>")); gLayout3->addWidget(umsMountLabel); gLayout3->addWidget(d->umsMountURL); gLayout3->setContentsMargins(spacing, spacing, spacing, spacing); gLayout3->setSpacing(spacing); // -------------------------------------------------------------- QWidget* const box2 = new QWidget(page); QGridLayout* const gLayout4 = new QGridLayout(box2); QLabel* const logo = new QLabel(box2); logo->setPixmap(QIcon::fromTheme(QLatin1String("digikam")).pixmap(QSize(48,48))); QLabel* const link = new QLabel(box2); link->setText(i18n("<p>To set a <b>USB Mass Storage</b> camera<br/>" "(which looks like a removable drive when mounted<br/>" "on your desktop), please use<br/>" "<a href=\"umscamera\">%1</a> from the camera list.</p>", d->UMSCameraNameShown)); QLabel* const link2 = new QLabel(box2); link2->setText(i18n("<p>To set a <b>Generic PTP USB Device</b><br/>" "(which uses Picture Transfer Protocol), please<br/>" "use <a href=\"ptpcamera\">%1</a> from the camera list.</p>", d->PTPCameraNameShown)); QLabel* const link3 = new QLabel(box2); link3->setText(i18n("<p>To set a <b>Generic PTP/IP Network Device</b><br/>" "(which uses Picture Transfer Protocol), please<br/>" "use <a href=\"ptpipcamera\">%1</a> from the camera list.</p>", d->PTPIPCameraNameShown)); QLabel* const explanation = new QLabel(box2); explanation->setOpenExternalLinks(true); explanation->setText(i18n("<p>A complete list of camera settings to use is<br/>" "available at <a href='http://www.teaser.fr/~hfiguiere/linux/digicam.html'>" "this URL</a>.</p>")); gLayout4->setContentsMargins(spacing, spacing, spacing, spacing); gLayout4->setSpacing(spacing); gLayout4->addWidget(logo, 0, 0, 1, 1); gLayout4->addWidget(link, 0, 1, 2, 1); gLayout4->addWidget(link2, 2, 1, 2, 1); gLayout4->addWidget(link3, 4, 1, 2, 1); gLayout4->addWidget(explanation, 6, 1, 2, 1); // -------------------------------------------------------------- mainBoxLayout->addWidget(d->listView, 0, 0, 6, 1); mainBoxLayout->addWidget(d->searchBar, 7, 0, 1, 1); mainBoxLayout->addWidget(titleBox, 0, 1, 1, 1); mainBoxLayout->addWidget(portPathBox, 1, 1, 1, 1); mainBoxLayout->addWidget(umsMountBox, 2, 1, 1, 1); mainBoxLayout->addWidget(box2, 3, 1, 2, 1); mainBoxLayout->setColumnStretch(0, 10); mainBoxLayout->setRowStretch(6, 10); mainBoxLayout->setContentsMargins(QMargins()); mainBoxLayout->setSpacing(spacing); QVBoxLayout* const vbx = new QVBoxLayout(this); vbx->addWidget(page); vbx->addWidget(d->buttons); setLayout(vbx); // Connections -------------------------------------------------- connect(link, SIGNAL(linkActivated(QString)), this, SLOT(slotUMSCameraLinkUsed())); connect(link2, SIGNAL(linkActivated(QString)), this, SLOT(slotPTPCameraLinkUsed())); connect(link3, SIGNAL(linkActivated(QString)), this, SLOT(slotPTPIPCameraLinkUsed())); connect(d->networkEdit, SIGNAL(textChanged(QString)), this, SLOT(slotNetworkEditChanged(QString))); connect(d->listView, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(slotSelectionChanged(QTreeWidgetItem*,int))); connect(d->portButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(slotPortChanged())); connect(d->searchBar, SIGNAL(signalSearchTextSettings(SearchTextSettings)), this, SLOT(slotSearchTextChanged(SearchTextSettings))); connect(d->buttons->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(slotOkClicked())); connect(d->buttons->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(reject())); connect(d->buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()), this, SLOT(slotHelp())); // Initialize -------------------------------------------------- #ifndef HAVE_GPHOTO2 // If digiKam is compiled without Gphoto2 support, we hide widgets relevant. d->listView->hide(); d->searchBar->hide(); box2->hide(); slotUMSCameraLinkUsed(); #else getCameraList(); getSerialPortList(); #endif /* HAVE_GPHOTO2 */ qApp->restoreOverrideCursor(); }
EmailDialog::EmailDialog(QWidget *parent) : QDialog(parent) { setWindowIcon(global.getIconResource(":emailIcon")); sendPressed = false; cancelPressed = true; setWindowTitle(tr("Send Email")); sendButton = new QPushButton(tr("Send")); cancelButton = new QPushButton(tr("Cancel")); QGridLayout *grid = new QGridLayout(this); setLayout(grid); QGridLayout *addressGrid = new QGridLayout(); QGridLayout *noteGrid = new QGridLayout(); QGridLayout *buttonGrid = new QGridLayout(); grid->addLayout(addressGrid, 0,0); grid->addLayout(noteGrid, 1,0); grid->addLayout(buttonGrid,2,0); toLabel = new QLabel(this); toLabel->setText(tr("To:")); bccLabel = new QLabel(this); bccLabel->setText(tr("BCC:")); ccLabel = new QLabel(this); ccLabel->setText(tr("CC:")); subjectLabel = new QLabel(this); subjectLabel->setText(tr("Subject:")); noteLabel = new QLabel(this); noteLabel->setText(tr("Note:")); ccSelf = new QCheckBox(this); toAddress = new QLineEdit(this); ccAddress = new QLineEdit(this); bccAddress = new QLineEdit(this); subject = new QLineEdit(this); note = new QPlainTextEdit(this); int row = 0; addressGrid->addWidget(toLabel, row, 0); addressGrid->addWidget(toAddress, row++, 1); addressGrid->addWidget(ccLabel, row, 0); addressGrid->addWidget(ccAddress, row++, 1); addressGrid->addWidget(bccLabel, row, 0); addressGrid->addWidget(bccAddress, row++, 1); ccSelf->setText(tr("CC me on this email")); noteGrid->addWidget(ccSelf, 0,0); addressGrid->addWidget(subjectLabel, row, 0); addressGrid->addWidget(subject, row++,1); noteGrid->addWidget(noteLabel, 1, 0); noteGrid->addWidget(note, 2,0); buttonGrid->addWidget(cancelButton, 0,0); buttonGrid->addWidget(sendButton, 0,1); connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancelButtonPressed())); connect(sendButton, SIGNAL(clicked()), this, SLOT(sendButtonPressed())); connect(toAddress, SIGNAL(textChanged(QString)), this, SLOT(toAddressChanged())); connect(ccAddress, SIGNAL(textChanged(QString)), this, SLOT(toAddressChanged())); connect(bccAddress, SIGNAL(textChanged(QString)), this, SLOT(toAddressChanged())); connect(ccSelf, SIGNAL(toggled(bool)), this, SLOT(toAddressChanged())); cancelButton->setAutoDefault(false); sendButton->setEnabled(false); sendButton->setAutoDefault(true); sendButton->setAutoExclusive(true); toAddress->setFocus(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), mPeriodSizeValidator(NULL), mPeriodCountValidator(NULL), mSourceCountValidator(NULL), mEffectSlotValidator(NULL), mSourceSendValidator(NULL), mSampleRateValidator(NULL), mJackBufferValidator(NULL), mNeedsSave(false) { ui->setupUi(this); for(int i = 0;speakerModeList[i].name[0];i++) ui->channelConfigCombo->addItem(speakerModeList[i].name); ui->channelConfigCombo->adjustSize(); for(int i = 0;sampleTypeList[i].name[0];i++) ui->sampleFormatCombo->addItem(sampleTypeList[i].name); ui->sampleFormatCombo->adjustSize(); for(int i = 0;stereoModeList[i].name[0];i++) ui->stereoModeCombo->addItem(stereoModeList[i].name); ui->stereoModeCombo->adjustSize(); for(int i = 0;stereoPanList[i].name[0];i++) ui->stereoPanningComboBox->addItem(stereoPanList[i].name); ui->stereoPanningComboBox->adjustSize(); int count; for(count = 0;resamplerList[count].name[0];count++) { } ui->resamplerSlider->setRange(0, count-1); ui->hrtfStateComboBox->adjustSize(); #if !defined(HAVE_NEON) && !defined(HAVE_SSE) ui->cpuExtDisabledLabel->move(ui->cpuExtDisabledLabel->x(), ui->cpuExtDisabledLabel->y() - 60); #else ui->cpuExtDisabledLabel->setVisible(false); #endif #ifndef HAVE_NEON #ifndef HAVE_SSE4_1 #ifndef HAVE_SSE3 #ifndef HAVE_SSE2 #ifndef HAVE_SSE ui->enableSSECheckBox->setVisible(false); #endif /* !SSE */ ui->enableSSE2CheckBox->setVisible(false); #endif /* !SSE2 */ ui->enableSSE3CheckBox->setVisible(false); #endif /* !SSE3 */ ui->enableSSE41CheckBox->setVisible(false); #endif /* !SSE4.1 */ ui->enableNeonCheckBox->setVisible(false); #else /* !Neon */ #ifndef HAVE_SSE4_1 #ifndef HAVE_SSE3 #ifndef HAVE_SSE2 #ifndef HAVE_SSE ui->enableNeonCheckBox->move(ui->enableNeonCheckBox->x(), ui->enableNeonCheckBox->y() - 30); ui->enableSSECheckBox->setVisible(false); #endif /* !SSE */ ui->enableSSE2CheckBox->setVisible(false); #endif /* !SSE2 */ ui->enableSSE3CheckBox->setVisible(false); #endif /* !SSE3 */ ui->enableSSE41CheckBox->setVisible(false); #endif /* !SSE4.1 */ #endif mPeriodSizeValidator = new QIntValidator(64, 8192, this); ui->periodSizeEdit->setValidator(mPeriodSizeValidator); mPeriodCountValidator = new QIntValidator(2, 16, this); ui->periodCountEdit->setValidator(mPeriodCountValidator); mSourceCountValidator = new QIntValidator(0, 256, this); ui->srcCountLineEdit->setValidator(mSourceCountValidator); mEffectSlotValidator = new QIntValidator(0, 16, this); ui->effectSlotLineEdit->setValidator(mEffectSlotValidator); mSourceSendValidator = new QIntValidator(0, 4, this); ui->srcSendLineEdit->setValidator(mSourceSendValidator); mSampleRateValidator = new QIntValidator(8000, 192000, this); ui->sampleRateCombo->lineEdit()->setValidator(mSampleRateValidator); mJackBufferValidator = new QIntValidator(0, 8192, this); ui->jackBufferSizeLine->setValidator(mJackBufferValidator); connect(ui->actionLoad, SIGNAL(triggered()), this, SLOT(loadConfigFromFile())); connect(ui->actionSave_As, SIGNAL(triggered()), this, SLOT(saveConfigAsFile())); connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(showAboutPage())); connect(ui->closeCancelButton, SIGNAL(clicked()), this, SLOT(cancelCloseAction())); connect(ui->applyButton, SIGNAL(clicked()), this, SLOT(saveCurrentConfig())); connect(ui->channelConfigCombo, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->sampleFormatCombo, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->stereoModeCombo, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->sampleRateCombo, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->sampleRateCombo, SIGNAL(editTextChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->resamplerSlider, SIGNAL(valueChanged(int)), this, SLOT(updateResamplerLabel(int))); connect(ui->periodSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updatePeriodSizeEdit(int))); connect(ui->periodSizeEdit, SIGNAL(editingFinished()), this, SLOT(updatePeriodSizeSlider())); connect(ui->periodCountSlider, SIGNAL(valueChanged(int)), this, SLOT(updatePeriodCountEdit(int))); connect(ui->periodCountEdit, SIGNAL(editingFinished()), this, SLOT(updatePeriodCountSlider())); connect(ui->stereoPanningComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->decoderHQModeCheckBox, SIGNAL(stateChanged(int)), this, SLOT(toggleHqState(int))); connect(ui->decoderDistCompCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->decoderQuadLineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->decoderQuadButton, SIGNAL(clicked()), this, SLOT(selectQuadDecoderFile())); connect(ui->decoder51LineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->decoder51Button, SIGNAL(clicked()), this, SLOT(select51DecoderFile())); connect(ui->decoder51RearLineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->decoder51RearButton, SIGNAL(clicked()), this, SLOT(select51RearDecoderFile())); connect(ui->decoder61LineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->decoder61Button, SIGNAL(clicked()), this, SLOT(select61DecoderFile())); connect(ui->decoder71LineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->decoder71Button, SIGNAL(clicked()), this, SLOT(select71DecoderFile())); connect(ui->preferredHrtfComboBox, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->hrtfStateComboBox, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->hrtfAddButton, SIGNAL(clicked()), this, SLOT(addHrtfFile())); connect(ui->hrtfRemoveButton, SIGNAL(clicked()), this, SLOT(removeHrtfFile())); connect(ui->hrtfFileList, SIGNAL(itemSelectionChanged()), this, SLOT(updateHrtfRemoveButton())); connect(ui->defaultHrtfPathsCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->srcCountLineEdit, SIGNAL(editingFinished()), this, SLOT(enableApplyButton())); connect(ui->srcSendLineEdit, SIGNAL(editingFinished()), this, SLOT(enableApplyButton())); connect(ui->effectSlotLineEdit, SIGNAL(editingFinished()), this, SLOT(enableApplyButton())); connect(ui->enableSSECheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableSSE2CheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableSSE3CheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableSSE41CheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableNeonCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); ui->enabledBackendList->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->enabledBackendList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showEnabledBackendMenu(QPoint))); ui->disabledBackendList->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->disabledBackendList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showDisabledBackendMenu(QPoint))); connect(ui->backendCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->defaultReverbComboBox, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->emulateEaxCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableEaxReverbCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableStdReverbCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableChorusCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableCompressorCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableDistortionCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableEchoCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableEqualizerCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableFlangerCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableModulatorCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->enableDedicatedCheck, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->pulseAutospawnCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->pulseAllowMovesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->pulseFixRateCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->jackAutospawnCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->jackBufferSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateJackBufferSizeEdit(int))); connect(ui->jackBufferSizeLine, SIGNAL(editingFinished()), this, SLOT(updateJackBufferSizeSlider())); connect(ui->alsaDefaultDeviceLine, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->alsaDefaultCaptureLine, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->alsaResamplerCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->alsaMmapCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); connect(ui->ossDefaultDeviceLine, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->ossPlaybackPushButton, SIGNAL(clicked(bool)), this, SLOT(selectOSSPlayback())); connect(ui->ossDefaultCaptureLine, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->ossCapturePushButton, SIGNAL(clicked(bool)), this, SLOT(selectOSSCapture())); connect(ui->solarisDefaultDeviceLine, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->solarisPlaybackPushButton, SIGNAL(clicked(bool)), this, SLOT(selectSolarisPlayback())); connect(ui->waveOutputLine, SIGNAL(textChanged(QString)), this, SLOT(enableApplyButton())); connect(ui->waveOutputButton, SIGNAL(clicked(bool)), this, SLOT(selectWaveOutput())); connect(ui->waveBFormatCheckBox, SIGNAL(stateChanged(int)), this, SLOT(enableApplyButton())); ui->backendListWidget->setCurrentRow(0); ui->tabWidget->setCurrentIndex(0); for(int i = 1;i < ui->backendListWidget->count();i++) ui->backendListWidget->setRowHidden(i, true); for(int i = 0;backendList[i].backend_name[0];i++) { QList<QListWidgetItem*> items = ui->backendListWidget->findItems( backendList[i].full_string, Qt::MatchFixedString ); foreach(const QListWidgetItem *item, items) ui->backendListWidget->setItemHidden(item, false); } loadConfig(getDefaultConfigName()); }
QGridLayout* WidgetParameters::buildLayoutFromParameters() { //Adding Layout QGridLayout *mainLayout = new QGridLayout(this); // get groups QMultiMap<QString,MOParameter*> groupmap = _localParameters->groupmap(); QStringList groups = groupmap.uniqueKeys(); QStringList paramNames; for(int i=0;i<_localParameters->size();i++) paramNames.push_back(_localParameters->at(i)->name()); QPushButton *newPush; MOParameter* parameter; MOParameterListed *paramList; QList<MOParameter*> groupParameters; QGridLayout *curLayout; QGroupBox *curBox; // create group box for(int iG=0;iG<groups.size();iG++) { int iRow=0; if(groups.size()>1) { curBox = new QGroupBox(groups.at(iG),this); curLayout = new QGridLayout(curBox); } else curLayout = mainLayout; groupParameters = groupmap.values(groups.at(iG)); // to reproduce parameters order, start from the end // it seems MultiMap behaves like a pile for(int iP=groupParameters.size()-1;iP>=0;iP--) { parameter = groupParameters.at(iP); // add setting QString dispName; if(parameter->name().contains("/")) dispName = parameter->name().section("/",1,-1); else dispName = parameter->name(); curLayout->addWidget(new QLabel(parameter->description()),iRow,0); //boxLayout->addWidget(new QLabel(dispName),iRow,0); int type = parameter->getFieldValue(MOParameter::TYPE).toInt(); QWidget *valueWidget; QVariant value = parameter->getFieldValue(MOParameter::VALUE); switch(type) { case MOParameter::STRING : valueWidget = new QLineEdit(this); ((QLineEdit*)valueWidget)->setText(value.toString()); connect(((QLineEdit*)valueWidget),SIGNAL(textChanged(QString)),this,SLOT(onValueChanged())); break; case MOParameter::FILEPATH : valueWidget = new QLineEdit(this); ((QLineEdit*)valueWidget)->setText(value.toString()); connect(((QLineEdit*)valueWidget),SIGNAL(textChanged(QString)),this,SLOT(onValueChanged())); // add button newPush = new QPushButton("...",this); newPush->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Preferred); _pathsMap.insert(newPush,((QLineEdit*)valueWidget)); curLayout->addWidget(newPush,iRow,2); connect(newPush,SIGNAL(clicked()),this,SLOT(onSelectFileClicked())); break; case MOParameter::FOLDERPATH : valueWidget = new QLineEdit(this); ((QLineEdit*)valueWidget)->setText(value.toString()); connect(((QLineEdit*)valueWidget),SIGNAL(textChanged(QString)),this,SLOT(onValueChanged())); //add button newPush = new QPushButton("...",this); newPush->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Preferred); _pathsMap.insert(newPush,((QLineEdit*)valueWidget)); curLayout->addWidget(newPush,iRow,2); connect(newPush,SIGNAL(clicked()),this,SLOT(onSelectFolderClicked())); break; case MOParameter::DOUBLE : valueWidget = new QScienceSpinBox(this); ((QScienceSpinBox*)valueWidget)->setMinimum(parameter->getFieldValue(MOParameter::MIN).toDouble()); ((QScienceSpinBox*)valueWidget)->setMaximum(parameter->getFieldValue(MOParameter::MAX).toDouble()); ((QScienceSpinBox*)valueWidget)->setDecimals(10); ((QScienceSpinBox*)valueWidget)->setValue(value.toDouble()); connect(((QScienceSpinBox*)valueWidget),SIGNAL(valueChanged(double)),this,SLOT(onValueChanged())); break; case MOParameter::INT : valueWidget = new QSpinBox(this); ((QSpinBox*)valueWidget)->setMinimum(parameter->getFieldValue(MOParameter::MIN).toInt()); ((QSpinBox*)valueWidget)->setMaximum(parameter->getFieldValue(MOParameter::MAX).toInt()); ((QSpinBox*)valueWidget)->setValue(value.toInt()); connect(((QSpinBox*)valueWidget),SIGNAL(valueChanged(int)),this,SLOT(onValueChanged())); break; case MOParameter::BOOL : valueWidget = new QCheckBox(this); Qt::CheckState state; if(value.toBool()) state = Qt::Checked; else state = Qt::Unchecked; connect(((QCheckBox*)valueWidget),SIGNAL(stateChanged(int)),this,SLOT(onValueChanged())); ((QCheckBox*)valueWidget)->setCheckState(state); break; case MOParameter::LIST : //if is a list, param should be a MOParameterListed valueWidget = new QComboBox(this); paramList = dynamic_cast<MOParameterListed*>(parameter); if(paramList) { //adding list items in qcombobox for(int iValue = 0 ; iValue<paramList->mapList().keys().size();iValue++) { ((QComboBox*)valueWidget)->addItem( paramList->mapList().values().at(iValue), paramList->mapList().keys().at(iValue)); } // set current index ((QComboBox*)valueWidget)->setCurrentIndex(((QComboBox*)valueWidget)->findData(value)); connect(((QComboBox*)valueWidget),SIGNAL(currentIndexChanged(int)),this,SLOT(onValueChanged())); } break; default : valueWidget = new QLineEdit(this); ((QLineEdit*)valueWidget)->setText(value.toString()); connect(((QLineEdit*)valueWidget),SIGNAL(textChanged(QString)),this,SLOT(onValueChanged())); break; } curLayout->addWidget(valueWidget,iRow,1); valueWidget->setEnabled(_editable); // store (to save data when click ok) _mapValueWidgets.insert(parameter,valueWidget); _paramNames.push_back(parameter->name()); _paramTypes.push_back(type); iRow++; } if(groups.size()>1) { curBox->setLayout(curLayout); mainLayout->addWidget(curBox); } } if(_editable) updateEnabled(); //update return mainLayout; }
QT_BEGIN_NAMESPACE FindWidget::FindWidget(QWidget *parent) : QWidget(parent) , appPalette(qApp->palette()) { TRACE_OBJ installEventFilter(this); QHBoxLayout *hboxLayout = new QHBoxLayout(this); QString resourcePath = QLatin1String(":/trolltech/assistant/images/"); #ifndef Q_OS_MAC hboxLayout->setMargin(0); hboxLayout->setSpacing(6); resourcePath.append(QLatin1String("win")); #else resourcePath.append(QLatin1String("mac")); #endif toolClose = setupToolButton(QLatin1String(""), resourcePath + QLatin1String("/closetab.png")); hboxLayout->addWidget(toolClose); connect(toolClose, SIGNAL(clicked()), SLOT(hide())); editFind = new QLineEdit(this); hboxLayout->addWidget(editFind); editFind->setMinimumSize(QSize(150, 0)); connect(editFind, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString))); connect(editFind, SIGNAL(returnPressed()), this, SIGNAL(findNext())); connect(editFind, SIGNAL(textChanged(QString)), this, SLOT(updateButtons())); toolPrevious = setupToolButton(tr("Previous"), resourcePath + QLatin1String("/previous.png")); connect(toolPrevious, SIGNAL(clicked()), this, SIGNAL(findPrevious())); hboxLayout->addWidget(toolPrevious); toolNext = setupToolButton(tr("Next"), resourcePath + QLatin1String("/next.png")); hboxLayout->addWidget(toolNext); connect(toolNext, SIGNAL(clicked()), this, SIGNAL(findNext())); checkCase = new QCheckBox(tr("Case Sensitive"), this); hboxLayout->addWidget(checkCase); labelWrapped = new QLabel(this); labelWrapped->setScaledContents(true); labelWrapped->setTextFormat(Qt::RichText); labelWrapped->setMinimumSize(QSize(0, 20)); labelWrapped->setMaximumSize(QSize(105, 20)); labelWrapped->setAlignment(Qt::AlignLeading | Qt::AlignLeft | Qt::AlignVCenter); labelWrapped->setText(tr("<img src=\":/trolltech/assistant/images/wrap.png\"" "> Search wrapped")); hboxLayout->addWidget(labelWrapped); QSpacerItem *spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); hboxLayout->addItem(spacerItem); setMinimumWidth(minimumSizeHint().width()); labelWrapped->hide(); updateButtons(); }
EditTagDialog::EditTagDialog(Application* app, QWidget* parent) : QDialog(parent), ui_(new Ui_EditTagDialog), app_(app), album_cover_choice_controller_(new AlbumCoverChoiceController(this)), loading_(false), ignore_edits_(false), tag_fetcher_(new TagFetcher(this)), cover_art_id_(0), cover_art_is_set_(false), results_dialog_(new TrackSelectionDialog(this)) { cover_options_.default_output_image_ = AlbumCoverLoader::ScaleAndPad(cover_options_, QImage(":nocover.png")); connect(app_->album_cover_loader(), SIGNAL(ImageLoaded(quint64, QImage, QImage)), SLOT(ArtLoaded(quint64, QImage, QImage))); connect(tag_fetcher_, SIGNAL(ResultAvailable(Song, SongList)), results_dialog_, SLOT(FetchTagFinished(Song, SongList)), Qt::QueuedConnection); connect(tag_fetcher_, SIGNAL(Progress(Song, QString)), results_dialog_, SLOT(FetchTagProgress(Song, QString))); connect(results_dialog_, SIGNAL(SongChosen(Song, Song)), SLOT(FetchTagSongChosen(Song, Song))); connect(results_dialog_, SIGNAL(finished(int)), tag_fetcher_, SLOT(Cancel())); album_cover_choice_controller_->SetApplication(app_); ui_->setupUi(this); ui_->splitter->setSizes(QList<int>() << 200 << width() - 200); ui_->loading_label->hide(); // An editable field is one that has a label as a buddy. The label is // important because it gets turned bold when the field is changed. for (QLabel* label : findChildren<QLabel*>()) { QWidget* widget = label->buddy(); if (widget) { // Store information about the field fields_ << FieldData(label, widget, widget->objectName()); // Connect the Reset signal if (dynamic_cast<ExtendedEditor*>(widget)) { connect(widget, SIGNAL(Reset()), SLOT(ResetField())); } // Connect the edited signal if (qobject_cast<QLineEdit*>(widget)) { connect(widget, SIGNAL(textChanged(QString)), SLOT(FieldValueEdited())); } else if (qobject_cast<QPlainTextEdit*>(widget)) { connect(widget, SIGNAL(textChanged()), SLOT(FieldValueEdited())); } else if (qobject_cast<QSpinBox*>(widget)) { connect(widget, SIGNAL(valueChanged(int)), SLOT(FieldValueEdited())); } } } // Set the colour of all the labels on the summary page const bool light = palette().color(QPalette::Base).value() > 128; const QColor color = palette().color(QPalette::WindowText); QPalette summary_label_palette(palette()); summary_label_palette.setColor( QPalette::WindowText, light ? color.lighter(150) : color.darker(150)); for (QLabel* label : ui_->summary_tab->findChildren<QLabel*>()) { if (label->property("field_label").toBool()) { label->setPalette(summary_label_palette); } } // Pretend the summary text is just a label ui_->summary->setMaximumHeight(ui_->art->height() - ui_->summary_art_button->height() - 4); connect(ui_->song_list->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), SLOT(SelectionChanged())); connect(ui_->button_box, SIGNAL(clicked(QAbstractButton*)), SLOT(ButtonClicked(QAbstractButton*))); connect(ui_->rating, SIGNAL(RatingChanged(float)), SLOT(SongRated(float))); connect(ui_->playcount_reset, SIGNAL(clicked()), SLOT(ResetPlayCounts())); connect(ui_->fetch_tag, SIGNAL(clicked()), SLOT(FetchTag())); // Set up the album cover menu cover_menu_ = new QMenu(this); QList<QAction*> actions = album_cover_choice_controller_->GetAllActions(); connect(album_cover_choice_controller_->cover_from_file_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromFile())); connect(album_cover_choice_controller_->cover_to_file_action(), SIGNAL(triggered()), this, SLOT(SaveCoverToFile())); connect(album_cover_choice_controller_->cover_from_url_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromURL())); connect(album_cover_choice_controller_->search_for_cover_action(), SIGNAL(triggered()), this, SLOT(SearchForCover())); connect(album_cover_choice_controller_->unset_cover_action(), SIGNAL(triggered()), this, SLOT(UnsetCover())); connect(album_cover_choice_controller_->show_cover_action(), SIGNAL(triggered()), this, SLOT(ShowCover())); cover_menu_->addActions(actions); ui_->summary_art_button->setMenu(cover_menu_); ui_->art->installEventFilter(this); ui_->art->setAcceptDrops(true); // Add the next/previous buttons previous_button_ = new QPushButton(IconLoader::Load("go-previous"), tr("Previous"), this); next_button_ = new QPushButton(IconLoader::Load("go-next"), tr("Next"), this); ui_->button_box->addButton(previous_button_, QDialogButtonBox::ResetRole); ui_->button_box->addButton(next_button_, QDialogButtonBox::ResetRole); connect(previous_button_, SIGNAL(clicked()), SLOT(PreviousSong())); connect(next_button_, SIGNAL(clicked()), SLOT(NextSong())); // Set some shortcuts for the buttons new QShortcut(QKeySequence::Back, previous_button_, SLOT(click())); new QShortcut(QKeySequence::Forward, next_button_, SLOT(click())); new QShortcut(QKeySequence::MoveToPreviousPage, previous_button_, SLOT(click())); new QShortcut(QKeySequence::MoveToNextPage, next_button_, SLOT(click())); // Show the shortcuts as tooltips previous_button_->setToolTip(QString("%1 (%2 / %3)").arg( previous_button_->text(), QKeySequence(QKeySequence::Back).toString(QKeySequence::NativeText), QKeySequence(QKeySequence::MoveToPreviousPage) .toString(QKeySequence::NativeText))); next_button_->setToolTip(QString("%1 (%2 / %3)").arg( next_button_->text(), QKeySequence(QKeySequence::Forward).toString(QKeySequence::NativeText), QKeySequence(QKeySequence::MoveToNextPage) .toString(QKeySequence::NativeText))); new TagCompleter(app_->library_backend(), Playlist::Column_Artist, ui_->artist); new TagCompleter(app_->library_backend(), Playlist::Column_Album, ui_->album); new TagCompleter(app_->library_backend(), Playlist::Column_AlbumArtist, ui_->albumartist); new TagCompleter(app_->library_backend(), Playlist::Column_Genre, ui_->genre); new TagCompleter(app_->library_backend(), Playlist::Column_Composer, ui_->composer); new TagCompleter(app_->library_backend(), Playlist::Column_Performer, ui_->performer); new TagCompleter(app_->library_backend(), Playlist::Column_Grouping, ui_->grouping); }
connect(ui->profileComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(j2kCinemaProfileUpdate())); // set signal mapper to handle file dialogs signalMapper.setMapping(ui->inImageLeftButton, ui->inImageLeftEdit); signalMapper.setMapping(ui->inImageRightButton, ui->inImageRightEdit); signalMapper.setMapping(ui->outJ2kLeftButton, ui->outJ2kLeftEdit); signalMapper.setMapping(ui->outJ2kRightButton, ui->outJ2kRightEdit); // connect j2k signals connect(ui->inImageLeftButton, SIGNAL(clicked()),&signalMapper, SLOT(map())); connect(ui->inImageRightButton, SIGNAL(clicked()), &signalMapper, SLOT(map())); connect(ui->outJ2kLeftButton, SIGNAL(clicked()), &signalMapper, SLOT(map())); connect(ui->outJ2kRightButton, SIGNAL(clicked()), &signalMapper, SLOT(map())); // update file connect(ui->inImageLeftEdit, SIGNAL(textChanged(QString)),this,SLOT(j2kCheckLeftInputFiles())); connect(ui->inImageRightEdit, SIGNAL(textChanged(QString)),this,SLOT(j2kCheckRightInputFiles())); connect(ui->endSpinBox, SIGNAL(valueChanged(int)),this,SLOT(j2kUpdateEndSpinBox())); } void MainWindow::j2kSetStereoscopicState() { int value = ui->stereoscopicCheckBox->checkState(); if (value) { ui->inImageLeft->setText(tr("Left:")); ui->outJ2kLeft->setText(tr("Left:")); ui->inImageRight->show(); ui->inImageRightEdit->show(); ui->inImageRightButton->show(); ui->outJ2kRight->show(); ui->outJ2kRightEdit->show();
void FileTab::ConnectSignals(QWidget *parent) { connect(editor, SIGNAL(textChanged()), parent, SLOT(tabCurrentModified())); }
InitialSettingsWizard::InitialSettingsWizard(QWidget *p) : QWizard(p) { setupUi(this); connect(this, SIGNAL(currentIdChanged(int)), SLOT(pageChanged(int))); connect(this, SIGNAL(setDetails(const MPDConnectionDetails &)), MPDConnection::self(), SLOT(setDetails(const MPDConnectionDetails &))); connect(MPDConnection::self(), SIGNAL(stateChanged(bool)), SLOT(mpdConnectionStateChanged(bool))); connect(MPDConnection::self(), SIGNAL(error(const QString &, bool)), SLOT(showError(const QString &, bool))); connect(connectButton, SIGNAL(clicked(bool)), SLOT(connectToMpd())); connect(basicDir, SIGNAL(textChanged(QString)), SLOT(controlNextButton())); MPDConnection::self()->start(); statusLabel->setText(i18n("Not Connected")); MPDConnectionDetails det=Settings::self()->connectionDetails(); host->setText(det.hostname); port->setValue(det.port); password->setText(det.password); dir->setText(det.dir); #if defined Q_OS_WIN || defined Q_OS_MAC bool showGroupWarning=false; #else bool showGroupWarning=0==Utils::getGroupId(); #endif groupWarningLabel->setVisible(showGroupWarning); groupWarningIcon->setVisible(showGroupWarning); int iconSize=Icon::dlgIconSize(); groupWarningIcon->setPixmap(Icon("dialog-warning").pixmap(iconSize, iconSize)); storeCoversInMpdDir->setChecked(Settings::self()->storeCoversInMpdDir()); storeLyricsInMpdDir->setChecked(Settings::self()->storeLyricsInMpdDir()); storeBackdropsInMpdDir->setChecked(Settings::self()->storeBackdropsInMpdDir()); #ifdef ENABLE_KDE_SUPPORT introPage->setBackground(Icon("cantata")); #else introPage->setBackground(Icons::self()->appIcon); #endif connectionPage->setBackground(Icons::self()->audioFileIcon); filesPage->setBackground(Icons::self()->filesIcon); finishedPage->setBackground(Icon("dialog-ok")); #ifdef ENABLE_SIMPLE_MPD_SUPPORT introStack->setCurrentIndex(MPDUser::self()->isSupported() ? 1 : 0); basic->setChecked(false); advanced->setChecked(true); #else introStack->setCurrentIndex(0); basic->setChecked(true); advanced->setChecked(false); #endif #ifndef Q_OS_WIN QSize sz=size(); // Adjust size for high-DPI setups... bool highDpi=fontMetrics().height()>20; if (highDpi) { foreach (int id, pageIds()) { QWizardPage *p=QWizard::page(id); p->adjustSize(); QSize ps=p->size(); if (ps.width()>sz.width()) { sz.setWidth(ps.width()); } if (ps.height()>sz.height()) { sz.setHeight(ps.height()); } } }
EditorView::EditorView(QWidget *parent) : QWidget(parent) { p = new EditorViewPrivate; p->save_timer = 0; p->paperId = 0; p->signal_blocker = false; p->synced = true; p->has_files = false; if( !back_image ) back_image = new QImage(":/qml/Kaqaz/files/background.jpg"); if( !papers_image ) papers_image = new QImage(":/qml/Kaqaz/files/paper.png"); if( !paper_clip ) paper_clip = new QImage(":/qml/Kaqaz/files/paper-clip.png"); if( !paper_clip_off ) paper_clip_off = new QImage(":/qml/Kaqaz/files/paper-clip-off.png"); p->attach_img = *paper_clip; p->title_font = Kaqaz::instance()->titleFont(); p->body_font = Kaqaz::instance()->bodyFont(); p->group_font.setFamily("Droid Kaqaz Sans"); p->group_font.setPointSize(9); p->date_font.setFamily("Droid Kaqaz Sans"); p->date_font.setPointSize(8); p->group = new GroupButton(this); p->group->move(25,PAPER_BRD-1); p->group->setFixedSize(110,30); p->group->setFont(p->group_font); p->title = new QLineEdit(); p->title->setPlaceholderText( tr("Title") ); p->title->setAlignment(Qt::AlignHCenter); p->title->setFont(p->title_font); p->title->setStyleSheet("QLineEdit{background: transparent; border: 0px solid translarent}"); p->body = new PaperTextArea(); p->body->setPlaceholderText( tr("Text...") ); p->body->setViewFont(p->body_font); p->body->setStyleSheet("QTextEdit{background: transparent; border: 0px solid translarent}"); p->date = new QLabel(this); p->date->setFixedWidth(200); p->date->setFont(p->date_font); p->top_layout = new QHBoxLayout(); p->top_layout->addSpacing(p->group->width()); p->top_layout->addWidget(p->title); p->top_layout->addSpacing(p->group->width()); p->top_layout->setContentsMargins(0,0,0,0); p->top_layout->setSpacing(0); p->main_layout = new QVBoxLayout(this); p->main_layout->addLayout(p->top_layout); p->main_layout->addWidget(p->body); p->main_layout->setContentsMargins(30,20,30,45); p->main_layout->setSpacing(0); p->attach_btn = new QPushButton(this); p->attach_btn->setFixedSize( PAPER_CLP, PAPER_CLP ); p->attach_btn->move( width()-PAPER_CLP, height()-PAPER_CLP ); p->attach_btn->setStyleSheet("QPushButton{ border: 0px solid transparent; background: transparent }"); p->attach_btn->setCursor(Qt::PointingHandCursor); p->files = new PaperFilesView(this); p->files->setFixedSize( width(), FILES_HEIGHT ); p->files->move( 0, height()-FILES_HEIGHT ); p->files->hide(); setStyleSheet("QScrollBar:vertical { border: 0px solid transparent; background: transparent; max-width: 5px; min-width: 5px; }" "QScrollBar::handle:vertical { border: 0px solid transparent; background: #aaaaaa; width: 5px; min-width: 5px; min-height: 30px }" "QScrollBar::handle:hover { background: palette(highlight); }" "QScrollBar::add-line:vertical { border: 0px solid transparent; background: transparent; height: 0px; subcontrol-position: bottom; subcontrol-origin: margin; }" "QScrollBar::sub-line:vertical { border: 0px solid transparent; background: transparent; height: 0px; subcontrol-position: top; subcontrol-origin: margin; }" ); connect( p->title, SIGNAL(textChanged(QString)), SLOT(delayedSave()) ); connect( p->body , SIGNAL(textChanged()) , SLOT(delayedSave()) ); connect( p->group, SIGNAL(groupSelected(int)) , SLOT(delayedSave()) ); connect( p->attach_btn, SIGNAL(clicked()), p->files, SLOT(show()) ); connect( Kaqaz::instance(), SIGNAL(titleFontChanged()) , SLOT(titleFontChanged()) ); connect( Kaqaz::instance(), SIGNAL(bodyFontChanged()) , SLOT(bodyFontChanged()) ); connect( Kaqaz::database(), SIGNAL(revisionChanged(QString,int)), SLOT(revisionChanged(QString,int)) ); connect( Kaqaz::database(), SIGNAL(paperChanged(int)) , SLOT(paperChanged(int)) ); }
BlockingClient::BlockingClient(QWidget *parent) : QDialog(parent) { hostLabel = new QLabel(tr("&Server name:")); portLabel = new QLabel(tr("S&erver port:")); // find out which IP to connect to QString ipAddress; QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses(); // use the first non-localhost IPv4 address for (int i = 0; i < ipAddressesList.size(); ++i) { if (ipAddressesList.at(i) != QHostAddress::LocalHost && ipAddressesList.at(i).toIPv4Address()) { ipAddress = ipAddressesList.at(i).toString(); break; } } // if we did not find one, use IPv4 localhost if (ipAddress.isEmpty()) ipAddress = QHostAddress(QHostAddress::LocalHost).toString(); hostLineEdit = new QLineEdit(ipAddress); portLineEdit = new QLineEdit; portLineEdit->setValidator(new QIntValidator(1, 65535, this)); hostLabel->setBuddy(hostLineEdit); portLabel->setBuddy(portLineEdit); statusLabel = new QLabel(tr("This examples requires that you run the " "Fortune Server example as well.")); getFortuneButton = new QPushButton(tr("Get Fortune")); getFortuneButton->setDefault(true); getFortuneButton->setEnabled(false); quitButton = new QPushButton(tr("Quit")); buttonBox = new QDialogButtonBox; buttonBox->addButton(getFortuneButton, QDialogButtonBox::ActionRole); buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole); connect(hostLineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableGetFortuneButton())); connect(portLineEdit, SIGNAL(textChanged(QString)), this, SLOT(enableGetFortuneButton())); connect(getFortuneButton, SIGNAL(clicked()), this, SLOT(requestNewFortune())); connect(quitButton, SIGNAL(clicked()), this, SLOT(close())); //! [0] connect(&thread, SIGNAL(newFortune(QString)), this, SLOT(showFortune(QString))); //! [0] //! [1] connect(&thread, SIGNAL(error(int,QString)), this, SLOT(displayError(int,QString))); //! [1] QGridLayout *mainLayout = new QGridLayout; mainLayout->addWidget(hostLabel, 0, 0); mainLayout->addWidget(hostLineEdit, 0, 1); mainLayout->addWidget(portLabel, 1, 0); mainLayout->addWidget(portLineEdit, 1, 1); mainLayout->addWidget(statusLabel, 2, 0, 1, 2); mainLayout->addWidget(buttonBox, 3, 0, 1, 2); setLayout(mainLayout); setWindowTitle(tr("Blocking Fortune Client")); portLineEdit->setFocus(); }
DialogSettings::DialogSettings(QWidget* parent, SettingsPage::settingsPage page) : QDialog(parent), ui(new Ui::DialogSettings) { ui->setupUi(this); ui->comboBoxG2Mode->setView(new QListView()); ui->comboBoxOnClose->setView(new QListView()); ui->comboBoxQueueLength->setView(new QListView()); switchSettingsPage(page); newSkinSelected = false; // Load Basic Settings ui->checkBoxStartWithSystem->setChecked(quazaaSettings.System.StartWithSystem); ui->checkBoxConnectOnStart->setChecked(quazaaSettings.System.ConnectOnStartup); ui->comboBoxOnClose->setCurrentIndex(quazaaSettings.System.CloseMode); ui->checkBoxOnMinimize->setChecked(quazaaSettings.System.MinimizeToTray); ui->spinBoxDiskWarn->setValue(quazaaSettings.System.DiskSpaceWarning); ui->spinBoxDiskStop->setValue(quazaaSettings.System.DiskSpaceStop); // Load Parental Settings ui->checkBoxParentalChatFilter->setChecked(quazaaSettings.Parental.ChatAdultCensor); ui->checkBoxParentalSearchFilter->setChecked(quazaaSettings.Parental.FilterAdultSearchResults); ui->listWidgetParentalFilter->addItems(quazaaSettings.Parental.AdultFilter); // Load Library Settings ui->checkBoxLibraryRememberViews->setChecked(quazaaSettings.Library.RememberViews); ui->checkBoxQuickHashing->setChecked(quazaaSettings.Library.HighPriorityHashing); ui->checkBoxDisplayHashingProgress->setChecked(quazaaSettings.Library.HashWindow); ui->checkBoxLibraryGhostFiles->setChecked(quazaaSettings.Library.GhostFiles); ui->checkBoxVideoSeriesDetection->setChecked(quazaaSettings.Library.SmartSeriesDetection); ui->spinBoxFileHistoryRemember->setValue(quazaaSettings.Library.HistoryTotal); ui->spinBoxFileHistoryDays->setValue(quazaaSettings.Library.HistoryDays); ui->listWidgetFileTypesSafeOpen->addItems(quazaaSettings.Library.SafeExecuteTypes); ui->listWidgetFileTypesNeverShare->addItems(quazaaSettings.Library.NeverShareTypes); // File Types Settings // Load Media Player Settings // Load Search Settings ui->checkBoxSearchExpandMultiSorce->setChecked(quazaaSettings.Search.ExpandSearchMatches); ui->checkBoxSearchSwitchOnDownload->setChecked(quazaaSettings.Search.SwitchOnDownload); ui->checkBoxSearchHighlightNewMatches->setChecked(quazaaSettings.Search.HighlightNew); // Load Private Messages Settings ui->checkBoxPrivateMessagesAres->setChecked(quazaaSettings.PrivateMessages.AresEnable); ui->checkBoxPrivateMessagesGnutella->setChecked(quazaaSettings.PrivateMessages.Gnutella2Enable); ui->checkBoxPrivateMessagesEDonkey->setChecked(quazaaSettings.PrivateMessages.eDonkeyEnable); ui->spinBoxPrivateMessagesIdleMessage->setValue(quazaaSettings.PrivateMessages.AwayMessageIdleTime); ui->plainTextEditPrivateMessagesIdleMessage->setPlainText(quazaaSettings.PrivateMessages.AwayMessage); // Load Chat Settings ui->checkBoxIrcConnectOnStart->setChecked(quazaaSettings.Chat.ConnectOnStartup); ui->checkBoxIrcEnableFileTransfers->setChecked(quazaaSettings.Chat.EnableFileTransfers); ui->checkBoxIrcShowTimestamp->setChecked(quazaaSettings.Chat.ShowTimestamp); ui->checkBoxIrcSSL->setChecked(quazaaSettings.Chat.IrcUseSSL); ui->lineEditIrcServer->setText(quazaaSettings.Chat.IrcServerName); ui->spinBoxIrcPort->setValue(quazaaSettings.Chat.IrcServerPort); // Load Connection Settings ui->doubleSpinBoxInSpeed->setValue((quazaaSettings.Connection.InSpeed / 1024) * 8); ui->doubleSpinBoxOutSpeed->setValue((quazaaSettings.Connection.OutSpeed / 1024) * 8); ui->spinBoxNetworkPort->setValue(quazaaSettings.Connection.Port); ui->checkBoxRandomPort->setChecked(quazaaSettings.Connection.RandomPort); ui->spinBoxConnectionTimeout->setValue(quazaaSettings.Connection.TimeoutConnect); // Load Web Settings ui->checkBoxIntegrationMagnetLinks->setChecked(quazaaSettings.Web.Magnet); ui->checkBoxIntegrationAresLinks->setChecked(quazaaSettings.Web.Ares); ui->checkBoxIntegrationBitTorrentLinks->setChecked(quazaaSettings.Web.Torrent); ui->checkBoxIntegrationPioletLinks->setChecked(quazaaSettings.Web.Piolet); ui->checkBoxIntegrationEDonkeyLinks->setChecked(quazaaSettings.Web.ED2K); ui->checkBoxManageWebDownloads->setChecked(quazaaSettings.Web.BrowserIntegration); ui->listWidgetManageDownloadTypes->addItems(quazaaSettings.Web.ManageDownloadTypes); // Load Transfer Settings ui->checkBoxOnlyDownloadConnectedNetworks->setChecked(quazaaSettings.Transfers.RequireConnectedNetwork); ui->checkBoxSimpleProgress->setChecked(quazaaSettings.Transfers.SimpleProgressBar); // Load Download Settings ui->checkBoxExpandDownloads->setChecked(quazaaSettings.Downloads.ExpandDownloads); ui->lineEditSaveFolder->setText(quazaaSettings.Downloads.CompletePath); ui->lineEditTempFolder->setText(quazaaSettings.Downloads.IncompletePath); ui->comboBoxQueueLength->setCurrentIndex(quazaaSettings.Downloads.QueueLimit); ui->spinBoxMaxFiles->setValue(quazaaSettings.Downloads.MaxFiles); ui->spinBoxMaxTransfers->setValue(quazaaSettings.Downloads.MaxTransfers); ui->spinBoxTransfersPerFile->setValue(quazaaSettings.Downloads.MaxTransfersPerFile); // Load Upload Settings ui->checkBoxSharePartials->setChecked(quazaaSettings.Uploads.SharePartials); ui->checkBoxSharingLimitHub->setChecked(quazaaSettings.Uploads.HubShareLimiting); ui->checkBoxSharePreviews->setChecked(quazaaSettings.Uploads.SharePreviews); ui->spinBoxUniqueHostLimit->setValue(quazaaSettings.Uploads.MaxPerHost); // Load Security Settings ui->checkBoxChatFilterSpam->setChecked(quazaaSettings.Security.ChatFilter); ui->checkBoxAllowBrowseProfile->setChecked(quazaaSettings.Security.AllowProfileBrowse); ui->checkBoxIrcFloodProtection->setChecked(quazaaSettings.Security.IrcFloodProtection); ui->spinBoxChatFloodLimit->setValue(quazaaSettings.Security.IrcFloodLimit); ui->checkBoxRemoteEnable->setChecked(quazaaSettings.Security.RemoteEnable); ui->lineEditRemoteUserName->setText(quazaaSettings.Security.RemoteUsername); ui->lineEditRemotePassword->setText(quazaaSettings.Security.RemotePassword); ui->checkBoxIgnoreLocalIP->setChecked(quazaaSettings.Security.SearchIgnoreLocalIP); ui->checkBoxEnableUPnP->setChecked(quazaaSettings.Security.EnableUPnP); ui->checkBoxAllowBrowseShares->setChecked(quazaaSettings.Security.AllowSharesBrowse); ui->listWidgetUserAgents->addItems(quazaaSettings.Security.BlockedAgentUploadFilter); // Load Gnutella 2 Settings ui->checkBoxConnectG2->setChecked(quazaaSettings.Gnutella2.Enable); ui->comboBoxG2Mode->setCurrentIndex(quazaaSettings.Gnutella2.ClientMode); ui->spinBoxG2LeafToHub->setValue(quazaaSettings.Gnutella2.NumHubs); ui->spinBoxG2HubToLeaf->setValue(quazaaSettings.Gnutella2.NumLeafs); ui->spinBoxG2HubToHub->setValue(quazaaSettings.Gnutella2.NumPeers); // Load Ares Settings ui->checkBoxConnectAres->setChecked(quazaaSettings.Ares.Enable); // Load eDonkey 2k Settings ui->checkBoxConnectEDonkey->setChecked(quazaaSettings.EDonkey.Enable); ui->checkBoxConnectKAD->setChecked(quazaaSettings.EDonkey.EnableKad); ui->checkBoxED2kSearchCahedServers->setChecked(quazaaSettings.EDonkey.SearchCachedServers); ui->spinBoxED2kMaxResults->setValue(quazaaSettings.EDonkey.MaxResults); ui->checkBoxED2kUpdateServerList->setChecked(quazaaSettings.EDonkey.LearnNewServers); ui->spinBoxED2kMaxClients->setValue(quazaaSettings.EDonkey.MaxClients); ui->checkBoxAutoQueryServerList->setChecked(quazaaSettings.EDonkey.MetAutoQuery); ui->lineEditEDonkeyServerListUrl->setText(quazaaSettings.EDonkey.ServerListURL); // Load BitTorrent Settings ui->checkBoxTorrentSaveDialog->setChecked(quazaaSettings.BitTorrent.UseSaveDialog); ui->checkBoxTorrentsStartPaused->setChecked(quazaaSettings.BitTorrent.StartPaused); ui->checkBoxTorrentsUseTemp->setChecked(quazaaSettings.BitTorrent.UseTemp); ui->checkBoxManagedTorrent->setChecked(quazaaSettings.BitTorrent.Managed); ui->checkBoxTorrentsEndgame->setChecked(quazaaSettings.BitTorrent.Endgame); ui->spinBoxTorrentsSimultaneous->setValue(quazaaSettings.BitTorrent.DownloadTorrents); ui->spinBoxTorrentsClientConnections->setValue(quazaaSettings.BitTorrent.DownloadConnections); ui->checkBoxTorrentsClearDownloaded->setChecked(quazaaSettings.BitTorrent.AutoClear); ui->spinBoxTorrentsRatioClear->setValue(quazaaSettings.BitTorrent.ClearRatio); ui->checkBoxTorrentsPreferTorrent->setChecked(quazaaSettings.BitTorrent.PreferBTSources); ui->checkBoxTorrentsUseKademlia->setChecked(quazaaSettings.BitTorrent.UseKademlia); ui->lineEditTorrentFolder->setText(quazaaSettings.BitTorrent.TorrentPath); // Set Generic Control States ui->groupBoxParentalFilter->setVisible(false); ui->pushButtonApply->setEnabled(false); // System Settings connect(ui->checkBoxStartWithSystem, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxConnectOnStart, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->comboBoxOnClose, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxOnMinimize, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxDiskWarn, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxDiskStop, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); // Parental Settings connect(ui->checkBoxParentalChatFilter, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxParentalSearchFilter, SIGNAL(clicked()), this, SLOT(enableApply())); // Library Settings connect(ui->checkBoxLibraryRememberViews, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxQuickHashing, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxDisplayHashingProgress, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxLibraryGhostFiles, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxVideoSeriesDetection, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxFileHistoryRemember, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxFileHistoryDays, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); // File Types Settings // Media Player Settings // Search Settings connect(ui->checkBoxSearchExpandMultiSorce, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxSearchSwitchOnDownload, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxSearchHighlightNewMatches, SIGNAL(clicked()), this, SLOT(enableApply())); // Private Messages Settings connect(ui->checkBoxPrivateMessagesAres, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->plainTextEditPrivateMessagesIdleMessage, SIGNAL(textChanged()), this, SLOT(enableApply())); connect(ui->spinBoxPrivateMessagesIdleMessage, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxPrivateMessagesEDonkey, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxPrivateMessagesGnutella, SIGNAL(clicked()), this, SLOT(enableApply())); // Chat Settings connect(ui->checkBoxPrivateMessagesGnutella, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIrcConnectOnStart, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIrcEnableFileTransfers, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIrcShowTimestamp, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxPrivateMessagesIdleMessage, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->lineEditIrcServer, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); connect(ui->spinBoxIrcPort, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxIrcSSL, SIGNAL(clicked()), this, SLOT(enableApply())); // Connection Settings connect(ui->doubleSpinBoxInSpeed, SIGNAL(valueChanged(double)), this, SLOT(enableApply())); connect(ui->doubleSpinBoxOutSpeed, SIGNAL(valueChanged(double)), this, SLOT(enableApply())); connect(ui->spinBoxNetworkPort, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxRandomPort, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxConnectionTimeout, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); // Web Settings connect(ui->checkBoxIntegrationMagnetLinks, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIntegrationAresLinks, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIntegrationBitTorrentLinks, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIntegrationPioletLinks, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIntegrationEDonkeyLinks, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxManageWebDownloads, SIGNAL(clicked()), this, SLOT(enableApply())); // Transfer Settings connect(ui->checkBoxOnlyDownloadConnectedNetworks, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxSimpleProgress, SIGNAL(clicked()), this, SLOT(enableApply())); // Download Settings connect(ui->checkBoxExpandDownloads, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->lineEditSaveFolder, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); connect(ui->lineEditTempFolder, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); connect(ui->comboBoxQueueLength, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxMaxFiles, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxMaxTransfers, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxTransfersPerFile, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); // Upload Settings connect(ui->checkBoxSharePartials, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxSharingLimitHub, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxSharePreviews, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxUniqueHostLimit, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); // Security Settings connect(ui->checkBoxChatFilterSpam, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxAllowBrowseProfile, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxIrcFloodProtection, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxChatFloodLimit, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxRemoteEnable, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->lineEditRemoteUserName, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); connect(ui->lineEditRemotePassword, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); connect(ui->checkBoxIgnoreLocalIP, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxEnableUPnP, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxAllowBrowseShares, SIGNAL(clicked()), this, SLOT(enableApply())); // Gnutella 2 Settings connect(ui->checkBoxConnectG2, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->comboBoxG2Mode, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxG2LeafToHub, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxG2HubToLeaf, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxG2HubToHub, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); // Ares Settings connect(ui->checkBoxConnectAres, SIGNAL(clicked()), this, SLOT(enableApply())); // eDonkey 2k Settings connect(ui->checkBoxConnectEDonkey, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxConnectKAD, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxED2kSearchCahedServers, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxED2kMaxResults, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxED2kUpdateServerList, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxED2kMaxClients, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxAutoQueryServerList, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->lineEditEDonkeyServerListUrl, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); // BitTorrent Settings connect(ui->checkBoxTorrentSaveDialog, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxTorrentsStartPaused, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxTorrentsUseTemp, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxManagedTorrent, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxTorrentsEndgame, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxTorrentsSimultaneous, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->spinBoxTorrentsClientConnections, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxTorrentsClearDownloaded, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->spinBoxTorrentsRatioClear, SIGNAL(valueChanged(int)), this, SLOT(enableApply())); connect(ui->checkBoxTorrentsPreferTorrent, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->checkBoxTorrentsUseKademlia, SIGNAL(clicked()), this, SLOT(enableApply())); connect(ui->lineEditTorrentFolder, SIGNAL(textEdited(QString)), this, SLOT(enableApply())); }
LabelTab::LabelTab(PlotItem* plotItem, QWidget *parent) : DialogTab(parent), _plotItem(plotItem), _activeLineEdit(0), _fontDirty(false) { setupUi(this); _globalLabelBold->setIcon(QPixmap(":kst_bold.png")); _globalLabelBold->setFixedWidth(32); _globalLabelItalic->setIcon(QPixmap(":kst_italic.png")); _globalLabelItalic->setFixedWidth(32); _globalLabelColor->setFixedWidth(32); _globalLabelColor->setFixedHeight(32); setTabTitle(tr("Labels")); setGlobalFont(_plotItem->globalFont()); _globalLabelColor->setColor(_plotItem->globalFontColor()); _globalLabelFontSize->setValue(_plotItem->globalFontScale()); _topLabelText->setObjectStore(kstApp->mainWindow()->document()->objectStore()); _bottomLabelText->setObjectStore(kstApp->mainWindow()->document()->objectStore()); _leftLabelText->setObjectStore(kstApp->mainWindow()->document()->objectStore()); _rightLabelText->setObjectStore(kstApp->mainWindow()->document()->objectStore()); connect(_topLabelText, SIGNAL(textChanged()), this, SIGNAL(modified())); connect(_leftLabelText, SIGNAL(textChanged()), this, SIGNAL(modified())); connect(_bottomLabelText, SIGNAL(textChanged()), this, SIGNAL(modified())); connect(_rightLabelText, SIGNAL(textChanged()), this, SIGNAL(modified())); connect(_topLabelText, SIGNAL(textChanged()), this, SLOT(_enableLabelLabels())); connect(_bottomLabelText, SIGNAL(textChanged()), this, SLOT(_enableLabelLabels())); connect(_leftLabelText, SIGNAL(textChanged()), this, SLOT(_enableLabelLabels())); connect(_rightLabelText, SIGNAL(textChanged()), this, SLOT(_enableLabelLabels())); connect(_autoScaleNumberAxis, SIGNAL(stateChanged(int)), this, SIGNAL(modified())); connect(_showLegend, SIGNAL(stateChanged(int)), this, SIGNAL(modified())); connect(_editLegendContents, SIGNAL(pressed()), _plotItem->legend(), SLOT(edit())); connect(_globalLabelFontSize, SIGNAL(valueChanged(double)), this, SIGNAL(globalFontUpdate())); connect(_globalLabelBold, SIGNAL(toggled(bool)), this, SIGNAL(globalFontUpdate())); connect(_globalLabelItalic, SIGNAL(toggled(bool)), this, SIGNAL(globalFontUpdate())); connect(_globalLabelFontFamily, SIGNAL(currentFontChanged(const QFont &)), this, SIGNAL(globalFontUpdate())); connect(_globalLabelColor, SIGNAL(changed(const QColor &)), this, SIGNAL(globalFontUpdate())); connect(_globalLabelBold, SIGNAL(toggled(bool)), this, SLOT(buttonUpdate())); connect(_globalLabelItalic, SIGNAL(toggled(bool)), this, SLOT(buttonUpdate())); connect(_topLabelAuto, SIGNAL(toggled(bool)), this, SIGNAL(modified())); connect(_leftLabelAuto, SIGNAL(toggled(bool)), this, SIGNAL(modified())); connect(_bottomLabelAuto, SIGNAL(toggled(bool)), this, SIGNAL(modified())); connect(_rightLabelAuto, SIGNAL(toggled(bool)), this, SIGNAL(modified())); connect(_topLabelAuto, SIGNAL(toggled(bool)), this, SLOT(activateFields())); connect(_leftLabelAuto, SIGNAL(toggled(bool)), this, SLOT(activateFields())); connect(_bottomLabelAuto, SIGNAL(toggled(bool)), this, SLOT(activateFields())); connect(_rightLabelAuto, SIGNAL(toggled(bool)), this, SLOT(activateFields())); _Label_4->setProperty("si","Default plot font &size:"); _autoScaleNumberAxis->setProperty("si","Automatically scale number axis labels"); _topLabelLabel->setProperty("si","&Top label:"); _topLabelAuto->setProperty("si","Auto"); _bottomLabelLabel->setProperty("si","Botto&m label:"); _bottomLabelAuto->setProperty("si","Auto"); _leftLabelLabel->setProperty("si","&Left label:"); _leftLabelAuto->setProperty("si","Auto"); _rightLabelLabel->setProperty("si","&Right label:"); _rightLabelAuto->setProperty("si","Auto"); _showLegend->setProperty("si","Show le&gend"); _editLegendContents->setProperty("si","E&dit"); }
transferOrderItem::transferOrderItem(QWidget* parent, const char* name, bool modal, Qt::WFlags fl) : XDialog(parent, name, modal, fl) { setupUi(this); connect(_cancel, SIGNAL(clicked()), this, SLOT(sCancel())); connect(_freight, SIGNAL(valueChanged()), this, SLOT(sCalculateTax())); connect(_freight, SIGNAL(valueChanged()), this, SLOT(sChanged())); connect(_item, SIGNAL(newId(int)), this, SLOT(sChanged())); connect(_item, SIGNAL(newId(int)), this, SLOT(sPopulateItemInfo(int))); connect(_next, SIGNAL(clicked()), this, SLOT(sNext())); connect(_notes, SIGNAL(textChanged()), this, SLOT(sChanged())); connect(_prev, SIGNAL(clicked()), this, SLOT(sPrev())); connect(_promisedDate,SIGNAL(newDate(const QDate&)), this, SLOT(sChanged())); connect(_qtyOrdered, SIGNAL(lostFocus()), this, SLOT(sDetermineAvailability())); connect(_qtyOrdered, SIGNAL(textChanged(const QString&)), this, SLOT(sChanged())); connect(_save, SIGNAL(clicked()), this, SLOT(sSave())); connect(_scheduledDate, SIGNAL(newDate(const QDate&)), this, SLOT(sChanged())); connect(_scheduledDate, SIGNAL(newDate(const QDate&)), this, SLOT(sDetermineAvailability())); connect(_showAvailability, SIGNAL(toggled(bool)), this, SLOT(sDetermineAvailability())); connect(_showAvailability, SIGNAL(toggled(bool)), this, SLOT(sDetermineAvailability())); connect(_showIndented,SIGNAL(toggled(bool)), this, SLOT(sDetermineAvailability())); connect(_taxLit, SIGNAL(leftClickedURL(QString)), this, SLOT(sTaxDetail())); connect(_warehouse, SIGNAL(newID(int)), this, SLOT(sChanged())); connect(_warehouse, SIGNAL(newID(int)), this, SLOT(sDetermineAvailability())); connect(_inventoryButton, SIGNAL(toggled(bool)), this, SLOT(sHandleButton())); _modified = false; _canceling = false; _error = false; _originalQtyOrd = 0.0; _saved = false; _availabilityLastItemid = -1; _availabilityLastWarehousid = -1; _availabilityLastSchedDate = QDate(); _availabilityLastShow = false; _availabilityLastShowIndent = false; _availabilityQtyOrdered = 0.0; _item->setType(ItemLineEdit::cActive | (ItemLineEdit::cAllItemTypes_Mask ^ ItemLineEdit::cKit)); _item->addExtraClause( QString("(itemsite_active)") ); // ItemLineEdit::cActive doesn't compare against the itemsite record _availability->addColumn(tr("#"), _seqColumn, Qt::AlignCenter,true, "bomitem_seqnumber"); _availability->addColumn(tr("Item Number"),_itemColumn, Qt::AlignLeft, true, "item_number"); _availability->addColumn(tr("Description"), -1, Qt::AlignLeft, true, "item_descrip"); _availability->addColumn(tr("UOM"), _uomColumn, Qt::AlignCenter,true, "uom_name"); _availability->addColumn(tr("Pend. Alloc."),_qtyColumn, Qt::AlignRight, true, "pendalloc"); _availability->addColumn(tr("Total Alloc."),_qtyColumn, Qt::AlignRight, true, "totalalloc"); _availability->addColumn(tr("On Order"), _qtyColumn, Qt::AlignRight, true, "ordered"); _availability->addColumn(tr("QOH"), _qtyColumn, Qt::AlignRight, true, "qoh"); _availability->addColumn(tr("Availability"),_qtyColumn, Qt::AlignRight, true, "totalavail"); _itemchar = new QStandardItemModel(0, 2, this); _itemchar->setHeaderData( 0, Qt::Horizontal, tr("Name"), Qt::DisplayRole); _itemchar->setHeaderData( 1, Qt::Horizontal, tr("Value"), Qt::DisplayRole); _itemcharView->setModel(_itemchar); ItemCharacteristicDelegate * delegate = new ItemCharacteristicDelegate(this); _itemcharView->setItemDelegate(delegate); _qtyOrdered->setValidator(omfgThis->qtyVal()); _shippedToDate->setPrecision(omfgThis->qtyVal()); _onHand->setPrecision(omfgThis->qtyVal()); _allocated->setPrecision(omfgThis->qtyVal()); _unallocated->setPrecision(omfgThis->qtyVal()); _onOrder->setPrecision(omfgThis->qtyVal()); _available->setPrecision(omfgThis->qtyVal()); if (!_metrics->boolean("UsePromiseDate")) { _promisedDateLit->hide(); _promisedDate->hide(); } _comments->setType(Comments::TransferOrderItem); _captive = FALSE; _dstwhsid = -1; _itemsiteid = -1; _transwhsid = -1; _toheadid = -1; _taxzoneid = -1; adjustSize(); _inventoryButton->setEnabled(_showAvailability->isChecked()); _dependencyButton->setEnabled(_showAvailability->isChecked()); _availability->setEnabled(_showAvailability->isChecked()); _showIndented->setEnabled(_showAvailability->isChecked()); }
/** * Update all the MetaData and art on an "item-changed" event **/ void MetaPanel::update( input_item_t *p_item ) { if( !p_item ) { clear(); return; } /* Don't update if you are in edit mode */ if( b_inEditMode ) return; p_input = p_item; char *psz_meta; #define UPDATE_META( meta, widget ) { \ psz_meta = input_item_Get##meta( p_item ); \ widget->setText( !EMPTY_STR( psz_meta ) ? qfu( psz_meta ) : "" ); \ free( psz_meta ); } #define UPDATE_META_INT( meta, widget ) { \ psz_meta = input_item_Get##meta( p_item ); \ if( !EMPTY_STR( psz_meta ) ) \ widget->setValue( atoi( psz_meta ) ); } \ free( psz_meta ); /* Name / Title */ psz_meta = input_item_GetTitleFbName( p_item ); if( psz_meta ) { title_text->setText( qfu( psz_meta ) ); free( psz_meta ); } else title_text->setText( "" ); /* URL / URI */ psz_meta = input_item_GetURI( p_item ); if( !EMPTY_STR( psz_meta ) ) emit uriSet( qfu( psz_meta ) ); fingerprintButton->setVisible( Chromaprint::isSupported( QString( psz_meta ) ) ); free( psz_meta ); /* Other classic though */ UPDATE_META( Artist, artist_text ); UPDATE_META( Genre, genre_text ); UPDATE_META( Copyright, copyright_text ); UPDATE_META( Album, collection_text ); disconnect( description_text, SIGNAL(textChanged()), this, SLOT(enterEditMode()) ); UPDATE_META( Description, description_text ); CONNECT( description_text, textChanged(), this, enterEditMode() ); UPDATE_META( Language, language_text ); UPDATE_META( NowPlaying, nowplaying_text ); UPDATE_META( Publisher, publisher_text ); UPDATE_META( EncodedBy, encodedby_text ); UPDATE_META( Date, date_text ); UPDATE_META( TrackNum, seqnum_text ); UPDATE_META( TrackTotal, seqtot_text ); // UPDATE_META( Setting, setting_text ); // UPDATE_META_INT( Rating, rating_text ); /* URL */ psz_meta = input_item_GetURL( p_item ); if( !EMPTY_STR( psz_meta ) ) { QString newURL = qfu(psz_meta); if( currentURL != newURL ) { currentURL = newURL; lblURL->setText( "<a href='" + currentURL + "'>" + currentURL.remove( QRegExp( ".*://") ) + "</a>" ); } } free( psz_meta ); #undef UPDATE_META_INT #undef UPDATE_META // If a artURL is available as a local file, directly display it ! QString file; char *psz_art = input_item_GetArtURL( p_item ); if( psz_art ) { char *psz = make_path( psz_art ); free( psz_art ); file = qfu( psz ); free( psz ); } art_cover->showArtUpdate( file ); art_cover->setItem( p_item ); }
QgsWFSSourceSelect::QgsWFSSourceSelect( QWidget* parent, Qt::WindowFlags fl, bool embeddedMode ) : QDialog( parent, fl ) , mCapabilities( nullptr ) , mSQLComposerDialog( nullptr ) { setupUi( this ); if ( embeddedMode ) { buttonBox->button( QDialogButtonBox::Close )->hide(); } mAddButton = new QPushButton( tr( "&Add" ) ); mAddButton->setEnabled( false ); mBuildQueryButton = new QPushButton( tr( "&Build query" ) ); mBuildQueryButton->setToolTip( tr( "Build query" ) ); mBuildQueryButton->setDisabled( true ); buttonBox->addButton( mAddButton, QDialogButtonBox::ActionRole ); connect( mAddButton, SIGNAL( clicked() ), this, SLOT( addLayer() ) ); buttonBox->addButton( mBuildQueryButton, QDialogButtonBox::ActionRole ); connect( mBuildQueryButton, SIGNAL( clicked() ), this, SLOT( buildQueryButtonClicked() ) ); connect( buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) ); connect( btnNew, SIGNAL( clicked() ), this, SLOT( addEntryToServerList() ) ); connect( btnEdit, SIGNAL( clicked() ), this, SLOT( modifyEntryOfServerList() ) ); connect( btnDelete, SIGNAL( clicked() ), this, SLOT( deleteEntryOfServerList() ) ); connect( btnConnect, SIGNAL( clicked() ), this, SLOT( connectToServer() ) ); connect( btnChangeSpatialRefSys, SIGNAL( clicked() ), this, SLOT( changeCRS() ) ); connect( lineFilter, SIGNAL( textChanged( QString ) ), this, SLOT( filterChanged( QString ) ) ); populateConnectionList(); mProjectionSelector = new QgsGenericProjectionSelector( this ); mProjectionSelector->setMessage(); mItemDelegate = new QgsWFSItemDelegate( treeView ); treeView->setItemDelegate( mItemDelegate ); QSettings settings; QgsDebugMsg( "restoring settings" ); restoreGeometry( settings.value( "/Windows/WFSSourceSelect/geometry" ).toByteArray() ); cbxUseTitleLayerName->setChecked( settings.value( "/Windows/WFSSourceSelect/UseTitleLayerName", false ).toBool() ); cbxFeatureCurrentViewExtent->setChecked( settings.value( "/Windows/WFSSourceSelect/FeatureCurrentViewExtent", true ).toBool() ); mHoldDialogOpen->setChecked( settings.value( "/Windows/WFSSourceSelect/HoldDialogOpen", false ).toBool() ); mModel = new QStandardItemModel(); mModel->setHorizontalHeaderItem( MODEL_IDX_TITLE, new QStandardItem( "Title" ) ); mModel->setHorizontalHeaderItem( MODEL_IDX_NAME, new QStandardItem( "Name" ) ); mModel->setHorizontalHeaderItem( MODEL_IDX_ABSTRACT, new QStandardItem( "Abstract" ) ); mModel->setHorizontalHeaderItem( MODEL_IDX_SQL, new QStandardItem( "Sql" ) ); mModelProxy = new QSortFilterProxyModel( this ); mModelProxy->setSourceModel( mModel ); mModelProxy->setSortCaseSensitivity( Qt::CaseInsensitive ); treeView->setModel( mModelProxy ); connect( treeView, SIGNAL( doubleClicked( const QModelIndex& ) ), this, SLOT( treeWidgetItemDoubleClicked( const QModelIndex& ) ) ); connect( treeView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), this, SLOT( treeWidgetCurrentRowChanged( const QModelIndex&, const QModelIndex& ) ) ); }
/** * First Panel - Meta Info * All the usual MetaData are displayed and can be changed. **/ MetaPanel::MetaPanel( QWidget *parent, intf_thread_t *_p_intf ) : QWidget( parent ), p_intf( _p_intf ) { QGridLayout *metaLayout = new QGridLayout( this ); metaLayout->setVerticalSpacing( 0 ); QFont smallFont = QApplication::font(); smallFont.setPointSize( smallFont.pointSize() - 1 ); smallFont.setBold( true ); int line = 0; /* Counter for GridLayout */ p_input = NULL; QLabel *label; #define ADD_META( string, widget, col, colspan ) { \ label = new QLabel( qtr( string ) ); label->setFont( smallFont ); \ label->setContentsMargins( 3, 2, 0, 0 ); \ metaLayout->addWidget( label, line++, col, 1, colspan ); \ widget = new QLineEdit; \ metaLayout->addWidget( widget, line, col, 1, colspan ); \ CONNECT( widget, textEdited( QString ), this, enterEditMode() ); \ } /* Title, artist and album*/ ADD_META( VLC_META_TITLE, title_text, 0, 10 ); line++; ADD_META( VLC_META_ARTIST, artist_text, 0, 10 ); line++; ADD_META( VLC_META_ALBUM, collection_text, 0, 7 ); /* Date */ label = new QLabel( qtr( VLC_META_DATE ) ); label->setFont( smallFont ); label->setContentsMargins( 3, 2, 0, 0 ); metaLayout->addWidget( label, line - 1, 7, 1, 2 ); /* Date (Should be in years) */ date_text = new QLineEdit; date_text->setAlignment( Qt::AlignRight ); date_text->setInputMask("0000"); date_text->setMaximumWidth( 140 ); metaLayout->addWidget( date_text, line, 7, 1, -1 ); line++; /* Genre Name */ /* TODO List id3genres.h is not includable yet ? */ ADD_META( VLC_META_GENRE, genre_text, 0, 7 ); /* Number - on the same line */ label = new QLabel( qtr( VLC_META_TRACK_NUMBER ) ); label->setFont( smallFont ); label->setContentsMargins( 3, 2, 0, 0 ); metaLayout->addWidget( label, line - 1, 7, 1, 3 ); seqnum_text = new QLineEdit; seqnum_text->setMaximumWidth( 64 ); seqnum_text->setAlignment( Qt::AlignRight ); metaLayout->addWidget( seqnum_text, line, 7, 1, 1 ); label = new QLabel( "/" ); label->setFont( smallFont ); metaLayout->addWidget( label, line, 8, 1, 1 ); seqtot_text = new QLineEdit; seqtot_text->setMaximumWidth( 64 ); seqtot_text->setAlignment( Qt::AlignRight ); metaLayout->addWidget( seqtot_text, line, 9, 1, 1 ); line++; /* Rating - on the same line */ /* metaLayout->addWidget( new QLabel( qtr( VLC_META_RATING ) ), line, 4, 1, 2 ); rating_text = new QSpinBox; setSpinBounds( rating_text ); metaLayout->addWidget( rating_text, line, 6, 1, 1 ); */ /* Now Playing - Useful for live feeds (HTTP, DVB, ETC...) */ ADD_META( VLC_META_NOW_PLAYING, nowplaying_text, 0, 7 ); nowplaying_text->setReadOnly( true ); line--; /* Language on the same line */ ADD_META( VLC_META_LANGUAGE, language_text, 7, -1 ); line++; ADD_META( VLC_META_PUBLISHER, publisher_text, 0, 7 ); fingerprintButton = new QPushButton( qtr("&Fingerprint") ); fingerprintButton->setToolTip( qtr( "Find meta data using audio fingerprinting" ) ); fingerprintButton->setVisible( false ); metaLayout->addWidget( fingerprintButton, line, 7 , 3, -1 ); CONNECT( fingerprintButton, clicked(), this, fingerprint() ); line++; lblURL = new QLabel; lblURL->setOpenExternalLinks( true ); lblURL->setTextFormat( Qt::RichText ); lblURL->setMaximumWidth( 128 ); metaLayout->addWidget( lblURL, line -1, 7, 1, -1 ); ADD_META( VLC_META_COPYRIGHT, copyright_text, 0, 7 ); line++; /* ART_URL */ art_cover = new CoverArtLabel( this, p_intf ); metaLayout->addWidget( art_cover, line, 7, 6, 3, Qt::AlignLeft ); ADD_META( VLC_META_ENCODED_BY, encodedby_text, 0, 7 ); line++; label = new QLabel( qtr( N_("Comments") ) ); label->setFont( smallFont ); label->setContentsMargins( 3, 2, 0, 0 ); metaLayout->addWidget( label, line++, 0, 1, 7 ); description_text = new QTextEdit; description_text->setAcceptRichText( false ); metaLayout->addWidget( description_text, line, 0, 1, 7 ); CONNECT( description_text, textChanged(), this, enterEditMode() ); line++; /* VLC_META_SETTING: Useless */ /* ADD_META( TRACKID ) Useless ? */ /* ADD_URI - Do not show it, done outside */ metaLayout->setColumnStretch( 1, 20 ); metaLayout->setColumnMinimumWidth ( 1, 80 ); metaLayout->setRowStretch( line, 10 ); #undef ADD_META CONNECT( seqnum_text, textEdited( QString ), this, enterEditMode() ); CONNECT( seqtot_text, textEdited( QString ), this, enterEditMode() ); CONNECT( date_text, textEdited( QString ), this, enterEditMode() ); // CONNECT( THEMIM->getIM(), artChanged( QString ), this, enterEditMode() ); /* CONNECT( rating_text, valueChanged( QString ), this, enterEditMode( QString ) );*/ /* We are not yet in Edit Mode */ b_inEditMode = false; }
MessagesSettingsPage::MessagesSettingsPage() { chatMentionCheckBox.setChecked(settingsCache->getChatMention()); connect(&chatMentionCheckBox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setChatMention(int))); chatMentionCompleterCheckbox.setChecked(settingsCache->getChatMentionCompleter()); connect(&chatMentionCompleterCheckbox, SIGNAL(stateChanged(int)), settingsCache, SLOT(setChatMentionCompleter(int))); ignoreUnregUsersMainChat.setChecked(settingsCache->getIgnoreUnregisteredUsers()); ignoreUnregUserMessages.setChecked(settingsCache->getIgnoreUnregisteredUserMessages()); connect(&ignoreUnregUsersMainChat, SIGNAL(stateChanged(int)), settingsCache, SLOT(setIgnoreUnregisteredUsers(int))); connect(&ignoreUnregUserMessages, SIGNAL(stateChanged(int)), settingsCache, SLOT(setIgnoreUnregisteredUserMessages(int))); invertMentionForeground.setChecked(settingsCache->getChatMentionForeground()); connect(&invertMentionForeground, SIGNAL(stateChanged(int)), this, SLOT(updateTextColor(int))); invertHighlightForeground.setChecked(settingsCache->getChatHighlightForeground()); connect(&invertHighlightForeground, SIGNAL(stateChanged(int)), this, SLOT(updateTextHighlightColor(int))); mentionColor = new QLineEdit(); mentionColor->setText(settingsCache->getChatMentionColor()); updateMentionPreview(); connect(mentionColor, SIGNAL(textChanged(QString)), this, SLOT(updateColor(QString))); messagePopups.setChecked(settingsCache->getShowMessagePopup()); connect(&messagePopups, SIGNAL(stateChanged(int)), settingsCache, SLOT(setShowMessagePopups(int))); mentionPopups.setChecked(settingsCache->getShowMentionPopup()); connect(&mentionPopups, SIGNAL(stateChanged(int)), settingsCache, SLOT(setShowMentionPopups(int))); roomHistory.setChecked(settingsCache->getRoomHistory()); connect(&roomHistory, SIGNAL(stateChanged(int)), settingsCache, SLOT(setRoomHistory(int))); customAlertString = new QLineEdit(); customAlertString->setPlaceholderText("Word1 Word2 Word3"); customAlertString->setText(settingsCache->getHighlightWords()); connect(customAlertString, SIGNAL(textChanged(QString)), settingsCache, SLOT(setHighlightWords(QString))); QGridLayout *chatGrid = new QGridLayout; chatGrid->addWidget(&chatMentionCheckBox, 0, 0); chatGrid->addWidget(&invertMentionForeground, 0, 1); chatGrid->addWidget(mentionColor, 0, 2); chatGrid->addWidget(&chatMentionCompleterCheckbox, 1, 0); chatGrid->addWidget(&ignoreUnregUsersMainChat, 2, 0); chatGrid->addWidget(&hexLabel, 1, 2); chatGrid->addWidget(&ignoreUnregUserMessages, 3, 0); chatGrid->addWidget(&messagePopups, 4, 0); chatGrid->addWidget(&mentionPopups, 5, 0); chatGrid->addWidget(&roomHistory, 6, 0); chatGroupBox = new QGroupBox; chatGroupBox->setLayout(chatGrid); highlightColor = new QLineEdit(); highlightColor->setText(settingsCache->getChatHighlightColor()); updateHighlightPreview(); connect(highlightColor, SIGNAL(textChanged(QString)), this, SLOT(updateHighlightColor(QString))); QGridLayout *highlightNotice = new QGridLayout; highlightNotice->addWidget(highlightColor, 0, 2); highlightNotice->addWidget(&invertHighlightForeground, 0, 1); highlightNotice->addWidget(&hexHighlightLabel, 1, 2); highlightNotice->addWidget(customAlertString, 0, 0); highlightNotice->addWidget(&customAlertStringLabel, 1, 0); highlightGroupBox = new QGroupBox; highlightGroupBox->setLayout(highlightNotice); messageList = new QListWidget; int count = settingsCache->messages().getCount(); for (int i = 0; i < count; i++) messageList->addItem(settingsCache->messages().getMessageAt(i)); aAdd = new QAction(this); aAdd->setIcon(QPixmap("theme:icons/increment")); connect(aAdd, SIGNAL(triggered()), this, SLOT(actAdd())); aRemove = new QAction(this); aRemove->setIcon(QPixmap("theme:icons/decrement")); connect(aRemove, SIGNAL(triggered()), this, SLOT(actRemove())); QToolBar *messageToolBar = new QToolBar; messageToolBar->setOrientation(Qt::Vertical); messageToolBar->addAction(aAdd); messageToolBar->addAction(aRemove); QHBoxLayout *messageListLayout = new QHBoxLayout; messageListLayout->addWidget(messageToolBar); messageListLayout->addWidget(messageList); messageShortcuts = new QGroupBox; messageShortcuts->setLayout(messageListLayout); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(messageShortcuts); mainLayout->addWidget(chatGroupBox); mainLayout->addWidget(highlightGroupBox); setLayout(mainLayout); retranslateUi(); }
AddFeedDialog::AddFeedDialog(RsFeedReader *feedReader, FeedReaderNotify *notify, QWidget *parent) : QDialog(parent, Qt::Window), mFeedReader(feedReader), mNotify(notify), ui(new Ui::AddFeedDialog) { ui->setupUi(this); connect(ui->buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(createFeed())); connect(ui->buttonBox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(reject())); connect(ui->useAuthenticationCheckBox, SIGNAL(toggled(bool)), this, SLOT(authenticationToggled())); connect(ui->useStandardStorageTimeCheckBox, SIGNAL(toggled(bool)), this, SLOT(useStandardStorageTimeToggled())); connect(ui->useStandardUpdateInterval, SIGNAL(toggled(bool)), this, SLOT(useStandardUpdateIntervalToggled())); connect(ui->useStandardProxyCheckBox, SIGNAL(toggled(bool)), this, SLOT(useStandardProxyToggled())); connect(ui->typeForumRadio, SIGNAL(toggled(bool)), this, SLOT(typeForumToggled())); connect(ui->previewButton, SIGNAL(clicked()), this, SLOT(preview())); /* currently only for loacl feeds */ connect(ui->saveCompletePageCheckBox, SIGNAL(toggled(bool)), this, SLOT(denyForumToggled())); connect(ui->embedImagesCheckBox, SIGNAL(toggled(bool)), this, SLOT(denyForumToggled())); connect(ui->urlLineEdit, SIGNAL(textChanged(QString)), this, SLOT(validate())); connect(ui->nameLineEdit, SIGNAL(textChanged(QString)), this, SLOT(validate())); connect(ui->useInfoFromFeedCheckBox, SIGNAL(toggled(bool)), this, SLOT(validate())); connect(ui->typeLocalRadio, SIGNAL(toggled(bool)), this, SLOT(validate())); connect(ui->typeForumRadio, SIGNAL(toggled(bool)), this, SLOT(validate())); ui->activatedCheckBox->setChecked(true); ui->forumComboBox->setEnabled(false); ui->useInfoFromFeedCheckBox->setChecked(true); ui->updateForumInfoCheckBox->setEnabled(false); ui->updateForumInfoCheckBox->setChecked(true); ui->forumNameLabel->hide(); ui->useAuthenticationCheckBox->setChecked(false); ui->useStandardStorageTimeCheckBox->setChecked(true); ui->useStandardUpdateInterval->setChecked(true); ui->useStandardProxyCheckBox->setChecked(true); /* not yet supported */ ui->authenticationGroupBox->setEnabled(false); /* fill own forums */ std::list<ForumInfo> forumList; if (rsForums->getForumList(forumList)) { forumList.sort(sortForumInfo); for (std::list<ForumInfo>::iterator it = forumList.begin(); it != forumList.end(); ++it) { ForumInfo &forumInfo = *it; /* show only own anonymous forums */ if ((forumInfo.subscribeFlags & RS_DISTRIB_ADMIN) && (forumInfo.forumFlags & RS_DISTRIB_AUTHEN_ANON)) { ui->forumComboBox->addItem(QString::fromStdWString(forumInfo.forumName), QString::fromStdString(forumInfo.forumId)); } } } /* insert item to create a new forum */ ui->forumComboBox->insertItem(0, tr("Create a new anonymous public forum"), ""); ui->forumComboBox->setCurrentIndex(0); validate(); ui->urlLineEdit->setFocus(); /* load settings */ processSettings(true); }
void TodoWinGeneral::initMisc() { int ypos = 70; completedButton = new QCheckBox(this, "CheckBox_10" ); completedButton->setGeometry( 10, ypos, 140, 20 ); completedButton->setText( i18n("Completed") ); connect(completedButton, SIGNAL(toggled(bool)), this, SLOT(setModified())); completedLabel = new QLabel( this, "Label_3" ); completedLabel->setGeometry( 130, ypos, 70, 20 ); completedLabel->setText( i18n("% Completed") ); completedLabel->setAlignment( 289 ); completedLabel->setMargin( -1 ); completedCombo = new QComboBox( FALSE, this, "ComboBox_10" ); completedCombo->setGeometry( 220, ypos, 100, 20 ); completedCombo->setSizeLimit( 10 ); completedCombo->insertItem( i18n("0 %") ); completedCombo->insertItem( i18n("25 %") ); completedCombo->insertItem( i18n("50 %") ); completedCombo->insertItem( i18n("75 %") ); completedCombo->insertItem( i18n("Completed") ); connect(completedCombo, SIGNAL(activated(int)), this, SLOT(setModified())); // ypos += ystep; priorityLabel = new QLabel( this, "Label_3" ); priorityLabel->setGeometry( 360, ypos, 70, 20 ); priorityLabel->setText( i18n("Priority") ); priorityLabel->setAlignment( 289 ); priorityLabel->setMargin( -1 ); priorityCombo = new QComboBox( FALSE, this, "ComboBox_10" ); priorityCombo->setGeometry( 430, ypos, 100, 20 ); priorityCombo->setSizeLimit( 10 ); priorityCombo->insertItem( i18n("1 (Highest)") ); priorityCombo->insertItem( i18n("2") ); priorityCombo->insertItem( i18n("3") ); priorityCombo->insertItem( i18n("4") ); priorityCombo->insertItem( i18n("5 (lowest)") ); connect(priorityCombo, SIGNAL(activated(int)), this, SLOT(setModified())); summaryLabel = new QLabel( this, "Label_1" ); summaryLabel->setGeometry( 10, 40, 70, 20 ); summaryLabel->setText( i18n("Summary:") ); summaryLabel->setAlignment( 289 ); summaryLabel->setMargin( -1 ); summaryEdit = new QLineEdit( this, "LineEdit_1" ); summaryEdit->setGeometry( 80, 40, 510, 20 ); connect(summaryEdit, SIGNAL(textChanged(const char*)), this, SLOT(setModified())); descriptionEdit = new QMultiLineEdit( this, "MultiLineEdit_1" ); descriptionEdit->setGeometry( 10, 100, 580, 250 ); descriptionEdit->insertLine( "" ); descriptionEdit->setReadOnly( FALSE ); descriptionEdit->setOverwriteMode( FALSE ); connect(descriptionEdit, SIGNAL(textChanged()), this, SLOT(setModified())); ownerLabel = new QLabel( this, "Label_7" ); ownerLabel->setGeometry( 10, 10, 200, 20 ); ownerLabel->setText( i18n("Owner:") ); ownerLabel->setAlignment( 289 ); ownerLabel->setMargin( -1 ); privateButton = new QCheckBox( this, "CheckBox_3" ); privateButton->setGeometry( 520, 360, 70, 20 ); privateButton->setText( i18n("Private") ); connect(privateButton, SIGNAL(toggled(bool)), this, SLOT(setModified())); categoriesButton = new QPushButton( this, "PushButton_6" ); categoriesButton->setGeometry( 10, 360, 100, 20 ); categoriesButton->setText( i18n("Categories...") ); categoriesLabel = new QLabel( this, "LineEdit_7" ); categoriesLabel->setFrameStyle(QFrame::Panel|QFrame::Sunken); categoriesLabel->setGeometry( 120, 360, 390, 20 ); }
TabDeckEditor::TabDeckEditor(TabSupervisor *_tabSupervisor, QWidget *parent) : Tab(_tabSupervisor, parent), modified(false) { aClearSearch = new QAction(QString(), this); aClearSearch->setIcon(QIcon(":/resources/icon_clearsearch.svg")); connect(aClearSearch, SIGNAL(triggered()), this, SLOT(actClearSearch())); searchLabel = new QLabel(); searchEdit = new SearchLineEdit; searchLabel->setBuddy(searchEdit); setFocusProxy(searchEdit); setFocusPolicy(Qt::ClickFocus); searchEdit->installEventFilter(&searchKeySignals); connect(searchEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateSearch(const QString &))); connect(&searchKeySignals, SIGNAL(onEnter()), this, SLOT(actAddCard())); connect(&searchKeySignals, SIGNAL(onCtrlAltEqual()), this, SLOT(actAddCard())); connect(&searchKeySignals, SIGNAL(onCtrlAltRBracket()), this, SLOT(actAddCardToSideboard())); connect(&searchKeySignals, SIGNAL(onCtrlAltMinus()), this, SLOT(actDecrementCard())); connect(&searchKeySignals, SIGNAL(onCtrlAltLBracket()), this, SLOT(actDecrementCardFromSideboard())); connect(&searchKeySignals, SIGNAL(onCtrlAltEnter()), this, SLOT(actAddCardToSideboard())); connect(&searchKeySignals, SIGNAL(onCtrlEnter()), this, SLOT(actAddCardToSideboard())); QToolBar *deckEditToolBar = new QToolBar; deckEditToolBar->setOrientation(Qt::Horizontal); deckEditToolBar->setIconSize(QSize(24, 24)); QHBoxLayout *searchLayout = new QHBoxLayout; searchLayout->addWidget(deckEditToolBar); searchLayout->addWidget(searchLabel); searchLayout->addWidget(searchEdit); databaseModel = new CardDatabaseModel(db, this); databaseDisplayModel = new CardDatabaseDisplayModel(this); databaseDisplayModel->setSourceModel(databaseModel); databaseDisplayModel->setFilterKeyColumn(0); databaseDisplayModel->sort(0, Qt::AscendingOrder); databaseView = new QTreeView(); databaseView->setFocusProxy(searchEdit); databaseView->setModel(databaseDisplayModel); databaseView->setUniformRowHeights(true); databaseView->setRootIsDecorated(false); databaseView->setAlternatingRowColors(true); databaseView->setSortingEnabled(true); databaseView->sortByColumn(0, Qt::AscendingOrder); databaseView->resizeColumnToContents(0); connect(databaseView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoLeft(const QModelIndex &, const QModelIndex &))); connect(databaseView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actAddCard())); searchEdit->setTreeView(databaseView); QVBoxLayout *leftFrame = new QVBoxLayout; leftFrame->addLayout(searchLayout); leftFrame->addWidget(databaseView); cardInfo = new CardFrame(250, 356); aCardTextOnly = new QAction(QString(), this); aCardTextOnly->setCheckable(true); connect(aCardTextOnly, SIGNAL(triggered()), cardInfo, SLOT(toggleCardTextOnly())); filterModel = new FilterTreeModel(); databaseDisplayModel->setFilterTree(filterModel->filterTree()); filterView = new QTreeView; filterView->setModel(filterModel); filterView->setMaximumWidth(250); filterView->setUniformRowHeights(true); filterView->setHeaderHidden(true); filterView->setContextMenuPolicy(Qt::CustomContextMenu); connect(filterModel, SIGNAL(layoutChanged()), filterView, SLOT(expandAll())); connect(filterView, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(filterViewCustomContextMenu(const QPoint &))); FilterBuilder *filterBuilder = new FilterBuilder; filterBuilder->setMaximumWidth(250); connect(filterBuilder, SIGNAL(add(const CardFilter *)), filterModel, SLOT(addFilter(const CardFilter *))); QVBoxLayout *filter = new QVBoxLayout; filter->addWidget(filterBuilder, 0, Qt::AlignTop); filter->addWidget(filterView, 10); QVBoxLayout *middleFrame = new QVBoxLayout; middleFrame->addWidget(cardInfo, 0, Qt::AlignTop); middleFrame->addLayout(filter, 10); deckModel = new DeckListModel(this); connect(deckModel, SIGNAL(deckHashChanged()), this, SLOT(updateHash())); deckView = new QTreeView(); deckView->setModel(deckModel); deckView->setUniformRowHeights(true); deckView->setSortingEnabled(true); deckView->sortByColumn(1, Qt::AscendingOrder); #if QT_VERSION < 0x050000 deckView->header()->setResizeMode(QHeaderView::ResizeToContents); #else deckView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); #endif deckView->installEventFilter(&deckViewKeySignals); connect(deckView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoRight(const QModelIndex &, const QModelIndex &))); connect(&deckViewKeySignals, SIGNAL(onEnter()), this, SLOT(actIncrement())); connect(&deckViewKeySignals, SIGNAL(onCtrlAltEqual()), this, SLOT(actIncrement())); connect(&deckViewKeySignals, SIGNAL(onCtrlAltMinus()), this, SLOT(actDecrement())); connect(&deckViewKeySignals, SIGNAL(onRight()), this, SLOT(actIncrement())); connect(&deckViewKeySignals, SIGNAL(onLeft()), this, SLOT(actDecrement())); connect(&deckViewKeySignals, SIGNAL(onDelete()), this, SLOT(actRemoveCard())); nameLabel = new QLabel(); nameEdit = new QLineEdit; nameLabel->setBuddy(nameEdit); connect(nameEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateName(const QString &))); commentsLabel = new QLabel(); commentsEdit = new QTextEdit; commentsEdit->setMaximumHeight(70); commentsLabel->setBuddy(commentsEdit); connect(commentsEdit, SIGNAL(textChanged()), this, SLOT(updateComments())); hashLabel1 = new QLabel(); hashLabel = new QLabel; QGridLayout *grid = new QGridLayout; grid->addWidget(nameLabel, 0, 0); grid->addWidget(nameEdit, 0, 1); grid->addWidget(commentsLabel, 1, 0); grid->addWidget(commentsEdit, 1, 1); grid->addWidget(hashLabel1, 2, 0); grid->addWidget(hashLabel, 2, 1); // Update price aUpdatePrices = new QAction(QString(), this); aUpdatePrices->setIcon(QIcon(":/resources/icon_update.png")); connect(aUpdatePrices, SIGNAL(triggered()), this, SLOT(actUpdatePrices())); if (!settingsCache->getPriceTagFeature()) aUpdatePrices->setVisible(false); connect(settingsCache, SIGNAL(priceTagFeatureChanged(int)), this, SLOT(setPriceTagFeatureEnabled(int))); QToolBar *deckToolBar = new QToolBar; deckToolBar->setOrientation(Qt::Vertical); deckToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); deckToolBar->setIconSize(QSize(24, 24)); deckToolBar->addAction(aUpdatePrices); QHBoxLayout *deckToolbarLayout = new QHBoxLayout; deckToolbarLayout->addStretch(); deckToolbarLayout->addWidget(deckToolBar); deckToolbarLayout->addStretch(); QVBoxLayout *rightFrame = new QVBoxLayout; rightFrame->addLayout(grid); rightFrame->addWidget(deckView, 10); rightFrame->addLayout(deckToolbarLayout); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addLayout(leftFrame, 10); mainLayout->addLayout(middleFrame); mainLayout->addLayout(rightFrame); setLayout(mainLayout); aNewDeck = new QAction(QString(), this); aNewDeck->setShortcuts(QKeySequence::New); connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck())); aLoadDeck = new QAction(QString(), this); aLoadDeck->setShortcuts(QKeySequence::Open); connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck())); aSaveDeck = new QAction(QString(), this); aSaveDeck->setShortcuts(QKeySequence::Save); connect(aSaveDeck, SIGNAL(triggered()), this, SLOT(actSaveDeck())); aSaveDeckAs = new QAction(QString(), this); // aSaveDeckAs->setShortcuts(QKeySequence::SaveAs); connect(aSaveDeckAs, SIGNAL(triggered()), this, SLOT(actSaveDeckAs())); aLoadDeckFromClipboard = new QAction(QString(), this); connect(aLoadDeckFromClipboard, SIGNAL(triggered()), this, SLOT(actLoadDeckFromClipboard())); aLoadDeckFromClipboard->setShortcuts(QKeySequence::Paste); aSaveDeckToClipboard = new QAction(QString(), this); connect(aSaveDeckToClipboard, SIGNAL(triggered()), this, SLOT(actSaveDeckToClipboard())); aSaveDeckToClipboard->setShortcuts(QKeySequence::Copy); aPrintDeck = new QAction(QString(), this); aPrintDeck->setShortcuts(QKeySequence::Print); connect(aPrintDeck, SIGNAL(triggered()), this, SLOT(actPrintDeck())); aAnalyzeDeck = new QAction(QString(), this); connect(aAnalyzeDeck, SIGNAL(triggered()), this, SLOT(actAnalyzeDeck())); aClose = new QAction(QString(), this); connect(aClose, SIGNAL(triggered()), this, SLOT(closeRequest())); aEditSets = new QAction(QString(), this); connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets())); aEditTokens = new QAction(QString(), this); connect(aEditTokens, SIGNAL(triggered()), this, SLOT(actEditTokens())); deckMenu = new QMenu(this); deckMenu->addAction(aNewDeck); deckMenu->addAction(aLoadDeck); deckMenu->addAction(aSaveDeck); deckMenu->addAction(aSaveDeckAs); deckMenu->addSeparator(); deckMenu->addAction(aLoadDeckFromClipboard); deckMenu->addAction(aSaveDeckToClipboard); deckMenu->addSeparator(); deckMenu->addAction(aPrintDeck); deckMenu->addSeparator(); deckMenu->addAction(aAnalyzeDeck); deckMenu->addSeparator(); deckMenu->addAction(aClose); addTabMenu(deckMenu); dbMenu = new QMenu(this); dbMenu->addAction(aEditSets); dbMenu->addAction(aEditTokens); dbMenu->addSeparator(); dbMenu->addAction(aClearSearch); dbMenu->addAction(aCardTextOnly); addTabMenu(dbMenu); aAddCard = new QAction(QString(), this); aAddCard->setIcon(QIcon(":/resources/arrow_right_green.svg")); connect(aAddCard, SIGNAL(triggered()), this, SLOT(actAddCard())); aAddCardToSideboard = new QAction(QString(), this); aAddCardToSideboard->setIcon(QIcon(":/resources/add_to_sideboard.svg")); connect(aAddCardToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard())); aRemoveCard = new QAction(QString(), this); aRemoveCard->setIcon(QIcon(":/resources/remove_row.svg")); connect(aRemoveCard, SIGNAL(triggered()), this, SLOT(actRemoveCard())); aIncrement = new QAction(QString(), this); aIncrement->setIcon(QIcon(":/resources/increment.svg")); connect(aIncrement, SIGNAL(triggered()), this, SLOT(actIncrement())); aDecrement = new QAction(QString(), this); aDecrement->setIcon(QIcon(":/resources/decrement.svg")); connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement())); deckEditToolBar->addAction(aAddCard); deckEditToolBar->addAction(aAddCardToSideboard); deckEditToolBar->addAction(aRemoveCard); deckEditToolBar->addAction(aIncrement); deckEditToolBar->addAction(aDecrement); deckEditToolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); retranslateUi(); resize(950, 700); }
PQTextEditor::PQTextEditor(QWidget* parent): QMainWindow(parent) { QWidget *centralWidget = new QWidget(this); mLayout = new QGridLayout(centralWidget); centralWidget->setLayout(mLayout); setCentralWidget(centralWidget); mEditor = new QTextEdit(this); mLayout->addWidget(mEditor, 0, 0); connect(mEditor, SIGNAL(textChanged()), SIGNAL(textChanged())); QAction *action; QToolBar *toolbar = addToolBar(tr("Edit Toolbar")); addAction(toolbar, QLatin1String("undo"), QLatin1String("edit-undo"), tr("Undo"), false, QKeySequence::Undo, mEditor, SLOT(undo())); addAction(toolbar, QLatin1String("redo"), QLatin1String("edit-redo"), tr("Redo"), false, QKeySequence::Redo, mEditor, SLOT(redo())); addAction(toolbar, QLatin1String("cut"), QLatin1String("edit-cut"), tr("Cut"), false,QKeySequence::Cut, mEditor, SLOT(cut())); addAction(toolbar, QLatin1String("copy"), QLatin1String("edit-copy"), tr("Copy"), false,QKeySequence::Copy, mEditor, SLOT(copy())); addAction(toolbar, QLatin1String("paste"), QLatin1String("edit-paste"), tr("Paste"), false,QKeySequence::Paste, mEditor, SLOT(paste())); toolbar = addToolBar(tr("Format Toolbar")); addAction(toolbar, QLatin1String("bold"), QLatin1String("format-text-bold"), tr("Bold"), true, QKeySequence::Bold, this, SLOT(slotToggleBold())); addAction(toolbar, QLatin1String("italic"), QLatin1String("format-text-italic"), tr("Italic"), true, QKeySequence::Italic, this, SLOT(slotToggleItalic())); addAction(toolbar, QLatin1String("strikethrough"), QLatin1String("format-text-strikethrough"), tr("Strikethrough"), true, QKeySequence(), this, SLOT(slotToggleStrikethrough())); addAction(toolbar, QLatin1String("underline"), QLatin1String("format-text-underline"), tr("Underline"), true, QKeySequence::Underline, this, SLOT(slotToggleUnderline())); toolbar->addSeparator(); QActionGroup *group = new QActionGroup(this); group->addAction(addAction(toolbar, QLatin1String("justify-left"), QLatin1String("format-justify-left"), tr("Justify Left"), true, QKeySequence(), this, SLOT(slotJustifyLeft()))); group->addAction(addAction(toolbar, QLatin1String("justify-center"), QLatin1String("format-justify-center"), tr("Justify Center"), true, QKeySequence(), this, SLOT(slotJustifyCenter()))); group->addAction(addAction(toolbar, QLatin1String("justify-fill"), QLatin1String("format-justify-fill"), tr("Justify Fill"), true, QKeySequence(), this, SLOT(slotJustifyFill()))); group->addAction(addAction(toolbar, QLatin1String("justify-right"), QLatin1String("format-justify-right"), tr("Justify Right"), true, QKeySequence(), this, SLOT(slotJustifyRight()))); toolbar->addSeparator(); addAction(toolbar, QLatin1String("unindent"), QLatin1String("format-indent-less"), tr("Unindent"), false, QKeySequence(), this, SLOT(slotUnindent())); addAction(toolbar, QLatin1String("indent"), QLatin1String("format-indent-more"), tr("Indent"), false, QKeySequence(), this, SLOT(slotIndent())); mStyleComboBox = new QComboBox(this); mStyleComboBox->addItem(tr("Standard")); mStyleComboBox->addItem(tr("Bullet List (Disc)")); mStyleComboBox->addItem(tr("Bullet List (Circle)")); mStyleComboBox->addItem(tr("Bullet List (Square)")); mStyleComboBox->addItem(tr("Ordered List (Decimal)")); mStyleComboBox->addItem(tr("Ordered List (Alpha lower)")); mStyleComboBox->addItem(tr("Ordered List (Alpha upper)")); mStyleComboBox->addItem(tr("Ordered List (Roman lower)")); mStyleComboBox->addItem(tr("Ordered List (Roman upper)")); connect(mStyleComboBox, SIGNAL(currentIndexChanged(int)), SLOT(slotChangeStyle(int))); mFontComboBox = new QFontComboBox(this); connect(mFontComboBox, SIGNAL(currentFontChanged(QFont)), SLOT(slotChangeFont(QFont))); mFontSizeComboBox = new QComboBox(this); QFontDatabase db; Q_FOREACH (int size, db.standardSizes()) { mFontSizeComboBox->addItem(QString::number(size)); } /* Initialize */ mFontSizeComboBox->setCurrentIndex(mFontSizeComboBox->findText(QString::number(QApplication::font().pointSize()))); connect(mFontSizeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(slotChangeFontSize(int))); QPixmap pixmap(16, 16); pixmap.fill(mEditor->textColor()); QAction *colorAction = new QAction(pixmap, tr("Color"), this); connect(colorAction, SIGNAL(triggered(bool)), SLOT(slotChangeColor())); addToolBarBreak(); toolbar = addToolBar(tr("Font Toolbar")); toolbar->addWidget(mStyleComboBox); toolbar->addWidget(mFontComboBox); toolbar->addWidget(mFontSizeComboBox); toolbar->addAction(colorAction); }
CentralWidget::CentralWidget(QWidget *parent) : QWidget(parent) { QHBoxLayout *layout5 = new QHBoxLayout; setLayout(layout5); ManScreen *screen = new ManScreen; layout5->addWidget(screen); QVBoxLayout *layout6 = new QVBoxLayout; layout5->addLayout(layout6); // QGroupBox *headBox = new QGroupBox(tr("head")); layout6->addWidget(headBox); QVBoxLayout *layout7 = new QVBoxLayout; headBox->setLayout(layout7); QLineEdit *headText = new QLineEdit(); headText->setPlaceholderText(tr("Enter formula...")); layout7->addWidget(headText); FormulaValidator *headValidator = new FormulaValidator(); connect(headText, SIGNAL(textChanged(QString)), headValidator, SLOT(reciveText(QString))); connect(headValidator, SIGNAL(newValidFormula(QString)), screen, SLOT(setHeadFormula(QString))); // QGroupBox *bodyBox = new QGroupBox(tr("body")); layout6->addWidget(bodyBox); QVBoxLayout *layout8 = new QVBoxLayout; bodyBox->setLayout(layout8); QLineEdit *bodyText = new QLineEdit(); bodyText->setPlaceholderText(tr("Enter formula...")); layout8->addWidget(bodyText); FormulaValidator *bodyValidator = new FormulaValidator(); connect(bodyText, SIGNAL(textChanged(QString)), bodyValidator, SLOT(reciveText(QString))); connect(bodyValidator, SIGNAL(newValidFormula(QString)), screen, SLOT(setBodyFormula(QString))); // QGroupBox *leftHandBox = new QGroupBox(tr("left hand")); layout6->addWidget(leftHandBox); QVBoxLayout *layout9 = new QVBoxLayout; leftHandBox->setLayout(layout9); QLineEdit *leftHandText = new QLineEdit(); leftHandText->setPlaceholderText(tr("Enter formula...")); layout9->addWidget(leftHandText); FormulaValidator *leftHandValidator = new FormulaValidator(); connect(leftHandText, SIGNAL(textChanged(QString)), leftHandValidator, SLOT(reciveText(QString))); connect(leftHandValidator, SIGNAL(newValidFormula(QString)), screen, SLOT(setLeftHandFormula(QString))); // QGroupBox *rightHandBox = new QGroupBox(tr("right hand")); layout6->addWidget(rightHandBox); QVBoxLayout *layout10 = new QVBoxLayout; rightHandBox->setLayout(layout10); QLineEdit *rightHandText = new QLineEdit(); rightHandText->setPlaceholderText(tr("Enter formula...")); layout10->addWidget(rightHandText); FormulaValidator *rightHandValidator = new FormulaValidator(); connect(rightHandText, SIGNAL(textChanged(QString)), rightHandValidator, SLOT(reciveText(QString))); connect(rightHandValidator, SIGNAL(newValidFormula(QString)), screen, SLOT(setRightHandFormula(QString))); // QGroupBox *leftLegBox = new QGroupBox(tr("left leg")); layout6->addWidget(leftLegBox); QVBoxLayout *layout11 = new QVBoxLayout; leftLegBox->setLayout(layout11); QLineEdit *leftLegText = new QLineEdit(); leftLegText->setPlaceholderText(tr("Enter formula...")); layout11->addWidget(leftLegText); FormulaValidator *leftLegValidator = new FormulaValidator(); connect(leftLegText, SIGNAL(textChanged(QString)), leftLegValidator, SLOT(reciveText(QString))); connect(leftLegValidator, SIGNAL(newValidFormula(QString)), screen, SLOT(setLeftLegFormula(QString))); // QGroupBox *rightLegBox = new QGroupBox(tr("right leg")); layout6->addWidget(rightLegBox); QVBoxLayout *layout12 = new QVBoxLayout; rightLegBox->setLayout(layout12); QLineEdit *rightLegText = new QLineEdit(); rightLegText->setPlaceholderText(tr("Enter formula...")); layout12->addWidget(rightLegText); FormulaValidator *rightLegValidator = new FormulaValidator(); connect(rightLegText, SIGNAL(textChanged(QString)), rightLegValidator, SLOT(reciveText(QString))); connect(rightLegValidator, SIGNAL(newValidFormula(QString)), screen, SLOT(setRightLegFormula(QString))); }
TransactionView::TransactionView(QWidget *parent) : QWidget(parent), model(0), transactionProxyModel(0), transactionView(0) { // Build filter row setContentsMargins(0,0,0,0); QHBoxLayout *hlayout = new QHBoxLayout(); hlayout->setContentsMargins(0,0,0,0); #ifdef Q_OS_MAC hlayout->setSpacing(5); hlayout->addSpacing(26); #else hlayout->setSpacing(0); hlayout->addSpacing(23); #endif dateWidget = new QComboBox(this); #ifdef Q_OS_MAC dateWidget->setFixedWidth(121); #else dateWidget->setFixedWidth(120); #endif dateWidget->addItem(tr("All"), All); dateWidget->addItem(tr("Today"), Today); dateWidget->addItem(tr("This week"), ThisWeek); dateWidget->addItem(tr("This month"), ThisMonth); dateWidget->addItem(tr("Last month"), LastMonth); dateWidget->addItem(tr("This year"), ThisYear); dateWidget->addItem(tr("Range..."), Range); hlayout->addWidget(dateWidget); typeWidget = new QComboBox(this); #ifdef Q_OS_MAC typeWidget->setFixedWidth(121); #else typeWidget->setFixedWidth(120); #endif typeWidget->addItem(tr("All"), TransactionFilterProxy::ALL_TYPES); typeWidget->addItem(tr("Received with"), TransactionFilterProxy::TYPE(TransactionRecord::RecvWithAddress) | TransactionFilterProxy::TYPE(TransactionRecord::RecvFromOther)); typeWidget->addItem(tr("Sent to"), TransactionFilterProxy::TYPE(TransactionRecord::SendToAddress) | TransactionFilterProxy::TYPE(TransactionRecord::SendToOther)); typeWidget->addItem(tr("To yourself"), TransactionFilterProxy::TYPE(TransactionRecord::SendToSelf)); typeWidget->addItem(tr("PoS Mined"), TransactionFilterProxy::TYPE(TransactionRecord::StakeMint)); typeWidget->addItem(tr("PoW Mined"), TransactionFilterProxy::TYPE(TransactionRecord::Generated)); typeWidget->addItem(tr("Other"), TransactionFilterProxy::TYPE(TransactionRecord::Other)); hlayout->addWidget(typeWidget); addressWidget = new QLineEdit(this); #if QT_VERSION >= 0x040700 /* Do not move this to the XML file, Qt before 4.7 will choke on it */ addressWidget->setPlaceholderText(tr("Enter address or label to search")); #endif hlayout->addWidget(addressWidget); amountWidget = new QLineEdit(this); #if QT_VERSION >= 0x040700 /* Do not move this to the XML file, Qt before 4.7 will choke on it */ amountWidget->setPlaceholderText(tr("Min amount")); #endif #ifdef Q_OS_MAC amountWidget->setFixedWidth(97); #else amountWidget->setFixedWidth(100); #endif amountWidget->setValidator(new QDoubleValidator(0, 1e20, 8, this)); hlayout->addWidget(amountWidget); QVBoxLayout *vlayout = new QVBoxLayout(this); vlayout->setContentsMargins(0,0,0,0); vlayout->setSpacing(0); QTableView *view = new QTableView(this); vlayout->addLayout(hlayout); vlayout->addWidget(createDateRangeWidget()); vlayout->addWidget(view); vlayout->setSpacing(0); int width = view->verticalScrollBar()->sizeHint().width(); // Cover scroll bar width with spacing #ifdef Q_OS_MAC hlayout->addSpacing(width+2); #else hlayout->addSpacing(width); #endif // Always show scroll bar view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); view->setTabKeyNavigation(false); view->setContextMenuPolicy(Qt::CustomContextMenu); transactionView = view; // Actions QAction *copyAddressAction = new QAction(tr("Copy address"), this); QAction *copyLabelAction = new QAction(tr("Copy label"), this); QAction *copyAmountAction = new QAction(tr("Copy amount"), this); QAction *copyTxIDAction = new QAction(tr("Copy transaction ID"), this); QAction *editLabelAction = new QAction(tr("Edit label"), this); QAction *showDetailsAction = new QAction(tr("Show transaction details"), this); contextMenu = new QMenu(); contextMenu->addAction(copyAddressAction); contextMenu->addAction(copyLabelAction); contextMenu->addAction(copyAmountAction); contextMenu->addAction(copyTxIDAction); contextMenu->addAction(editLabelAction); contextMenu->addAction(showDetailsAction); // Connect actions connect(dateWidget, SIGNAL(activated(int)), this, SLOT(chooseDate(int))); connect(typeWidget, SIGNAL(activated(int)), this, SLOT(chooseType(int))); connect(addressWidget, SIGNAL(textChanged(QString)), this, SLOT(changedPrefix(QString))); connect(amountWidget, SIGNAL(textChanged(QString)), this, SLOT(changedAmount(QString))); connect(view, SIGNAL(doubleClicked(QModelIndex)), this, SIGNAL(doubleClicked(QModelIndex))); connect(view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextualMenu(QPoint))); connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(copyAddress())); connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(copyLabel())); connect(copyAmountAction, SIGNAL(triggered()), this, SLOT(copyAmount())); connect(copyTxIDAction, SIGNAL(triggered()), this, SLOT(copyTxID())); connect(editLabelAction, SIGNAL(triggered()), this, SLOT(editLabel())); connect(showDetailsAction, SIGNAL(triggered()), this, SLOT(showDetails())); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), m_contactsModel(new CContactsModel(this)), m_messagingModel(new CMessagingModel(this)), m_chatContactsModel(new CContactsModel(this)), m_chatMessagingModel(new CMessagingModel(this)), m_chatInfoModel(new CChatInfoModel(this)), m_activeChatId(0), m_chatCreationMode(false), m_core(new CTelegramCore(this)), m_registered(false), m_appState(AppStateNone) { ui->setupUi(this); ui->contactListTable->setModel(m_contactsModel); ui->messagingView->setModel(m_messagingModel); ui->groupChatContacts->setModel(m_chatContactsModel); ui->groupChatChatsList->setModel(m_chatInfoModel); ui->groupChatMessagingView->setModel(m_chatMessagingModel); QCompleter *comp = new QCompleter(m_contactsModel, this); ui->messagingContactPhone->setCompleter(comp); ui->groupChatContactPhone->setCompleter(comp); connect(ui->secretOpenFile, SIGNAL(clicked()), SLOT(loadSecretFromBrowsedFile())); // Telepathy Morse app info CAppInformation appInfo; appInfo.setAppId(14617); appInfo.setAppHash(QLatin1String("e17ac360fd072f83d5d08db45ce9a121")); appInfo.setAppVersion(QLatin1String("0.1")); appInfo.setDeviceInfo(QLatin1String("pc")); appInfo.setOsInfo(QLatin1String("GNU/Linux")); appInfo.setLanguageCode(QLatin1String("en")); m_core->setAppInformation(&appInfo); m_core->setAutoReconnection(true); connect(m_core, SIGNAL(connectionStateChanged(TelegramNamespace::ConnectionState)), SLOT(whenConnectionStateChanged(TelegramNamespace::ConnectionState))); connect(m_core, SIGNAL(phoneStatusReceived(QString,bool,bool)), SLOT(whenPhoneStatusReceived(QString,bool,bool))); connect(m_core, SIGNAL(phoneCodeRequired()), SLOT(whenPhoneCodeRequested())); connect(m_core, SIGNAL(authSignErrorReceived(TelegramNamespace::AuthSignError,QString)), SLOT(whenAuthSignErrorReceived(TelegramNamespace::AuthSignError,QString))); connect(m_core, SIGNAL(contactListChanged()), SLOT(whenContactListChanged())); connect(m_core, SIGNAL(contactProfileChanged(QString)), SLOT(whenContactProfileChanged(QString))); connect(m_core, SIGNAL(avatarReceived(QString,QByteArray,QString,QString)), SLOT(whenAvatarReceived(QString,QByteArray,QString))); connect(m_core, SIGNAL(messageMediaDataReceived(QString,quint32,QByteArray,QString,TelegramNamespace::MessageType,quint32,quint32)), SLOT(whenMessageMediaDataReceived(QString,quint32,QByteArray,QString,TelegramNamespace::MessageType,quint32,quint32))); connect(m_core, SIGNAL(messageReceived(TelegramNamespace::Message)), SLOT(whenMessageReceived(TelegramNamespace::Message))); connect(m_core, SIGNAL(contactChatTypingStatusChanged(quint32,QString,bool)), SLOT(whenContactChatTypingStatusChanged(quint32,QString,bool))); connect(m_core, SIGNAL(contactTypingStatusChanged(QString,bool)), SLOT(whenContactTypingStatusChanged(QString,bool))); connect(m_core, SIGNAL(contactStatusChanged(QString,TelegramNamespace::ContactStatus)), SLOT(whenContactStatusChanged(QString))); connect(m_core, SIGNAL(sentMessageStatusChanged(QString,quint64,TelegramNamespace::MessageDeliveryStatus)), m_messagingModel, SLOT(setMessageDeliveryStatus(QString,quint64,TelegramNamespace::MessageDeliveryStatus))); connect(m_core, SIGNAL(uploadingStatusUpdated(quint32,quint32,quint32)), SLOT(whenUploadingStatusUpdated(quint32,quint32,quint32))); connect(m_core, SIGNAL(chatAdded(quint32)), SLOT(whenChatAdded(quint32))); connect(m_core, SIGNAL(chatChanged(quint32)), SLOT(whenChatChanged(quint32))); ui->groupChatContacts->hideColumn(CContactsModel::Blocked); ui->mainSplitter->setSizes(QList<int>() << 0 << 100); ui->groupChatSplitter->setSizes(QList<int>() << 550 << 450 << 300); ui->groupChatChatsList->setColumnWidth(CChatInfoModel::Id, 30); ui->blockContact->hide(); ui->unblockContact->hide(); ui->groupChatLeaveChat->hide(); QFile helpFile(QLatin1String(":/USAGE")); helpFile.open(QIODevice::ReadOnly); ui->helpView->setPlainText(helpFile.readAll()); setAppState(AppStateNone); updateGroupChatAddContactButtonText(); connect(ui->groupChatContactPhone, SIGNAL(textChanged(QString)), SLOT(updateGroupChatAddContactButtonText())); #if QT_VERSION > QT_VERSION_CHECK(5, 0, 0) connect(ui->messagingView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(whenCustomMenuRequested(QPoint))); #endif ui->groupChatAddContactForwardMessages->hide(); ui->messagingAttachButton->hide(); }