Beispiel #1
0
void ItemHttpMsg::keyPressEvent(QKeyEvent *e)
{
	if (e->key() == Qt::Key_C && (e->modifiers() & Qt::ControlModifier))
	{
		onCopyText();
	}
	ItemMsgBase::keyPressEvent(e);
}
SharedLinkDialog::SharedLinkDialog(const QString &text, QWidget *parent)
  : text_(text)
{
    setWindowTitle(tr("Share Link"));
    setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
    setWindowIcon(QIcon(":/images/seafile.png"));
    QVBoxLayout *layout = new QVBoxLayout;

    QLabel *label = new QLabel(tr("Share link:"));
    layout->addWidget(label);
    layout->setSpacing(5);
    layout->setContentsMargins(9, 9, 9, 9);

    editor_ = new QLineEdit;
    editor_->setText(text_);
    editor_->selectAll();
    editor_->setReadOnly(true);
    layout->addWidget(editor_);

    QHBoxLayout *hlayout = new QHBoxLayout;

    QCheckBox *is_download_checked = new QCheckBox(tr("Direct Download"));
    connect(is_download_checked, SIGNAL(stateChanged(int)),
            this, SLOT(onDownloadStateChanged(int)));
    hlayout->addWidget(is_download_checked);

    QWidget *spacer = new QWidget;
    spacer->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding);
    hlayout->addWidget(spacer);

    QWidget *spacer2 = new QWidget;
    spacer2->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding);
    hlayout->addWidget(spacer2);

    QPushButton *copy_to = new QPushButton(tr("Copy to clipboard"));
    hlayout->addWidget(copy_to);
    connect(copy_to, SIGNAL(clicked()), this, SLOT(onCopyText()));

    QPushButton *ok = new QPushButton(tr("OK"));
    hlayout->addWidget(ok);
    connect(ok, SIGNAL(clicked()), this, SLOT(accept()));

    layout->addLayout(hlayout);

    setLayout(layout);

    setMinimumWidth(300);
    setMaximumWidth(400);
}
Beispiel #3
0
void ItemHttpMsg::mouseReleaseEvent(QMouseEvent *e)
{
	_ptSelectEnd = e->pos();
	if (e->button() == Qt::LeftButton)
	{
		if (_ptSelectEnd == _ptSelectStart)
		{
			_rcSel = _rcText;
			update();
		}
	}
	else if (e->button() == Qt::RightButton)
	{
		if (_rcSel.height() > 4)
		{
			onCopyText();
			_rcSel = QRect(0, 0, 0, 0);
			update();
		}
	}
	ItemMsgBase::mouseReleaseEvent(e);
}
LogicPasteApp::LogicPasteApp(Application *app)
    : QObject(app), loginSheet_(NULL), ignoreSettingsEvent_(false) {
    qDebug() << "LogicPasteApp::LogicPasteApp()";
    QCoreApplication::setOrganizationName("LogicProbe");
    QCoreApplication::setApplicationName("LogicPaste");

    qRegisterMetaType<PasteListing>("PasteListing");

    pasteModel_ = new PasteModel(this);

    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
    qml->setContextProperty("cs", this);
    qml->setContextProperty("model", pasteModel_);

    AppSettings *appSettings = AppSettings::instance();

    if(!qml->hasErrors()) {
        tabbedPane_ = qml->createRootObject<TabbedPane>();
        if(tabbedPane_) {
            // Paste page
            pastePage_ = tabbedPane_->findChild<Page*>("pastePage");
            connect(pastePage_, SIGNAL(submitPaste()), this, SLOT(onSubmitPaste()));
            replaceDropDown(pastePage_, "formatDropDown");

            // History page
            historyNav_ = tabbedPane_->findChild<NavigationPane*>("historyPage");
            connect(historyNav_, SIGNAL(popTransitionEnded(bb::cascades::Page*)),
                this, SLOT(onPopFinished(bb::cascades::Page*)));
            historyPage_ = historyNav_->findChild<Page*>("pasteListPage");
            connect(historyPage_, SIGNAL(refreshPage()), pasteModel_, SLOT(refreshHistory()));

            ListView *historyList = historyPage_->findChild<ListView*>("pasteList");
            historyList->setDataModel(pasteModel_->historyModel());
            connect(historyList, SIGNAL(openPaste(QString)), this, SLOT(onOpenHistoryPaste(QString)));
            connect(historyList, SIGNAL(copyUrl(QString)), this, SLOT(onCopyText(QString)));
            connect(historyList, SIGNAL(deletePaste(QString)), this, SLOT(onDeleteHistoryPaste(QString)));

            connect(pasteModel_, SIGNAL(historyUpdating()), historyPage_, SLOT(onRefreshStarted()));
            connect(pasteModel_, SIGNAL(historyUpdated(bool)), this, SLOT(onHistoryRefreshComplete(bool)));

            // Trending page
            trendingNav_ = tabbedPane_->findChild<NavigationPane*>("trendingPage");
            connect(trendingNav_, SIGNAL(popTransitionEnded(bb::cascades::Page*)),
                this, SLOT(onPopFinished(bb::cascades::Page*)));
            trendingPage_ = trendingNav_->findChild<Page*>("pasteListPage");
            trendingPage_->findChild<ActionItem*>("refreshAction")->setEnabled(true);
            connect(trendingPage_, SIGNAL(refreshPage()), pasteModel_, SLOT(refreshTrending()));

            ListView *trendingList = trendingPage_->findChild<ListView*>("pasteList");
            trendingList->setDataModel(pasteModel_->trendingModel());
            connect(trendingList, SIGNAL(openPaste(QString)), this, SLOT(onOpenTrendingPaste(QString)));
            connect(trendingList, SIGNAL(copyUrl(QString)), this, SLOT(onCopyText(QString)));

            connect(pasteModel_, SIGNAL(trendingUpdating()), trendingPage_, SLOT(onRefreshStarted()));
            connect(pasteModel_, SIGNAL(trendingUpdated(bool)), this, SLOT(onTrendingRefreshComplete(bool)));

            // Settings page
            settingsPage_ = tabbedPane_->findChild<Page*>("settingsPage");
            CheckBox *sslCheckBox = settingsPage_->findChild<CheckBox *>("sslCheckBox");
            sslCheckBox->setChecked(appSettings->useSsl());

            CheckBox *formatterEnable = settingsPage_->findChild<CheckBox*>("formatterEnable");
            formatterEnable->setChecked(appSettings->formatterEnabled());

            CheckBox *formatterLineNumbering = settingsPage_->findChild<CheckBox*>("formatterLineNumbering");
            formatterLineNumbering->setChecked(appSettings->formatterLineNumbering());

            DropDown *formatterStyle = settingsPage_->findChild<DropDown*>("formatterStyle");
            for(int i = formatterStyle->count() - 1; i >= 0; --i) {
                if(formatterStyle->at(i)->value() == appSettings->formatterStyle()) {
                    formatterStyle->setSelectedIndex(i);
                    break;
                }
            }

            connect(settingsPage_, SIGNAL(requestLogin()), this, SLOT(onRequestLogin()));
            connect(settingsPage_, SIGNAL(requestLogout()), this, SLOT(onRequestLogout()));
            connect(settingsPage_, SIGNAL(refreshUserDetails()), pasteModel_, SLOT(refreshUserDetails()));
            connect(settingsPage_, SIGNAL(connectionSettingsChanged()), this, SLOT(onConnectionSettingsChanged()));
            connect(settingsPage_, SIGNAL(pasteSettingsChanged()), this, SLOT(onPasteSettingsChanged()));
            connect(settingsPage_, SIGNAL(formatterSettingsChanged()), this, SLOT(onFormatterSettingsChanged()));
            connect(pasteModel_, SIGNAL(userDetailsUpdated()), this, SLOT(onUserDetailsUpdated()));
            connect(pasteModel_, SIGNAL(userDetailsError(QString)), this, SLOT(onUserDetailsError(QString)));
            connect(pasteModel_, SIGNAL(userAvatarUpdated()), this, SLOT(onUserAvatarUpdated()));
            connect(pasteModel_, SIGNAL(deletePasteError(PasteListing,QString)), this, SLOT(onDeletePasteError(PasteListing,QString)));

            FormatDropDown *formatDropDown = replaceDropDown(settingsPage_, "formatDropDown");
            connect(formatDropDown, SIGNAL(selectedIndexChanged(int)), this, SLOT(onPasteSettingsChanged()));

            // Tabbed pane
            connect(tabbedPane_, SIGNAL(activePaneChanged(bb::cascades::AbstractPane*)),
                this, SLOT(onActivePaneChanged(bb::cascades::AbstractPane*)));

            app->setScene(tabbedPane_);

            // Create the pull-down menu
            ActionItem *aboutItem = ActionItem::create()
            .title(tr("About"))
            .image(QUrl("asset:///images/action-about.png"));
            connect(aboutItem, SIGNAL(triggered()), this, SLOT(onAboutActionTriggered()));

            Menu *menu = Menu::create()
            .addAction(aboutItem);
            app->setMenu(menu);

            if(pasteModel_->isAuthenticated()) {
                onUserDetailsUpdated();
                onUserAvatarUpdated();
            }

            refreshPastePageDefaults();
            refreshMainActions();
        }
    }