示例#1
0
void AddressBook::createActions()
{
    exitAction = new QAction(tr("E&xit"), this);
    exitAction->setShortcut(tr("Ctrl+Q"));
    exitAction->setStatusTip(tr("Exit the application"));
    connect(exitAction, SIGNAL(triggered()), this, SLOT(close()));

    addEntryAction = new QAction(tr("&Add Entry..."), this);
    addEntryAction->setShortcut(tr("Ins"));
    addEntryAction->setStatusTip(tr("Add a new entry to the address "
                                    "book"));
    connect(addEntryAction, SIGNAL(triggered()),
            this, SLOT(addEntry()));

    editEntryAction = new QAction(tr("&Edit Entry..."), this);
    editEntryAction->setShortcut(tr("F2"));
    editEntryAction->setStatusTip(tr("Edit the current address book "
                                     "entry"));
    connect(editEntryAction, SIGNAL(triggered()),
            this, SLOT(editEntry()));

    deleteEntryAction = new QAction(tr("&Delete Entry"), this);
    deleteEntryAction->setShortcut(QKeySequence::Delete);
    deleteEntryAction->setStatusTip(tr("Delete the current address "
                                       "book entry"));
    connect(deleteEntryAction, SIGNAL(triggered()),
            this, SLOT(deleteEntry()));
}
示例#2
0
void
handleEdit(Gui_t gui, Entries entries, Entry entry)
{
   char validatedString[40], totalString[40];

/* edit it as an entry if it is a real one, or an automatic if it is fake */
   if (entry -> fake)
      editAutomatic(gui, entry -> generatedBy);
   else
      editEntry(gui, entry);
}
示例#3
0
AddressOverviewWindow::AddressOverviewWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::AddressOverviewWindow)
{
    ui->setupUi(this);

    ui->filterComboBox->addItem(QString("First Name"));
    ui->filterComboBox->addItem(QString("Last Name"));
    ui->filterComboBox->addItem(QString("Address"));
    ui->filterComboBox->addItem(QString("City"));
    ui->filterComboBox->addItem(QString("Zip Code"));

    ui->loadPushButton->setToolTip(tr("Load contacts from a file"));
    ui->savePushButton->setToolTip(tr("Save contacts to a file"));

    model = new TableModel(this);
    proxyModel = new QSortFilterProxyModel(model);
    proxyModel->setSourceModel(model);
    proxyModel->setFilterRegExp(QRegExp(QString(), Qt::CaseInsensitive, QRegExp::FixedString));
    proxyModel->setFilterKeyColumn(1);
    ui->AddressesTableView->setModel(proxyModel);

    connect(ui->addAdressPushButton,SIGNAL(clicked()),this,SLOT(addEntry()));
    connect(ui->filterComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(filterColumnSelected()));
    connect(ui->filterLineEdit,SIGNAL(textChanged(QString)),this,SLOT(filterAdresses()));
    connect(ui->removePushButton,SIGNAL(clicked()),this,SLOT(removeEntry()));
    connect(ui->removeAllPushButton,SIGNAL(clicked()),this,SLOT(removeAllEntries()));
    connect(ui->editPushButton,SIGNAL(clicked()),this,SLOT(editEntry()));
    connect(ui->savePushButton,SIGNAL(clicked()),this,SLOT(saveFile()));
    connect(ui->loadPushButton,SIGNAL(clicked()),this,SLOT(openFile()));
    connect(ui->actionQuit,SIGNAL(triggered()),this,SLOT(quitApp()));
    connect(ui->actionLoad,SIGNAL(triggered()),this,SLOT(openFile()));
    connect(ui->actionSave_As,SIGNAL(triggered()),this,SLOT(saveFile()));
    connect(ui->actionAdd,SIGNAL(triggered()),this,SLOT(addEntry()));
    connect(ui->actionEdit,SIGNAL(triggered()),this,SLOT(editEntry()));
    connect(ui->actionRemove,SIGNAL(triggered()),this,SLOT(removeEntry()));
    connect(ui->actionRemoveAll,SIGNAL(triggered()),this,SLOT(removeAllEntries()));



}
示例#4
0
RepoEditor::RepoEditor( QWidget *parent )
    : QDialog( parent )
    , ui( new Ui::RepoEditor )
{
    ui->setupUi( this );

    repoConf = new RepoConf();
    addRepoDialog = new AddRepo( this );

    ui->tableView->setModel( repoConf );
    ui->tableView->setItemDelegateForColumn( 0, new CheckBoxDelegate( this) );
    ui->tableView->setItemDelegateForColumn( 2, new OptionsDelegate( this) );

    ui->tableView->setColumnWidth( 1, 133 );

    ui->backupFile->setText( repoConf->getConfPath() + ".bak" );

    connect( ui->moveUp, SIGNAL( clicked() ),
                         SLOT( moveUp() ) );

    connect( ui->moveDown, SIGNAL( clicked() ),
                           SLOT( moveDown() ) );

    QItemSelectionModel *selModel = ui->tableView->selectionModel();
    connect( selModel, SIGNAL( selectionChanged( QItemSelection,QItemSelection ) ),
                       SLOT( updateMovers( QItemSelection,QItemSelection ) ) );

    connect( ui->buttonBox->button( QDialogButtonBox::Reset ), SIGNAL( clicked() ),
             repoConf, SLOT( reload() ) );

    connect( ui->buttonBox->button( QDialogButtonBox::Save ), SIGNAL( clicked() ),
                                                              SLOT( apply() ) );

    connect( ui->buttonBox->button( QDialogButtonBox::Discard ), SIGNAL( clicked() ),
                                                                 SLOT( discard() ) );

    connect( ui->remove, SIGNAL( clicked() ),
                         SLOT( removeEntry() ) );

    connect( ui->add, SIGNAL( clicked() ),
                      SLOT( addEntry() ) );

    connect( ui->edit, SIGNAL( clicked() ),
                      SLOT( editEntry() ) );

    connect( ui->loadBackup, SIGNAL( clicked() ),
                             SLOT( loadBackup() ) );

    ui->tableView->selectRow(0);
}
示例#5
0
//! [1a]
void MainWindow::createMenus()
{
    fileMenu = menuBar()->addMenu(tr("&File"));
    
    openAct = new QAction(tr("&Open..."), this);
    fileMenu->addAction(openAct);
    connect(openAct, SIGNAL(triggered()),
        this, SLOT(openFile()));
//! [1a]

    saveAct = new QAction(tr("&Save As..."), this);
    fileMenu->addAction(saveAct);
    connect(saveAct, SIGNAL(triggered()),
        this, SLOT(saveFile()));

    fileMenu->addSeparator();

    exitAct = new QAction(tr("E&xit"), this);
    fileMenu->addAction(exitAct);
    connect(exitAct, SIGNAL(triggered()),
        this, SLOT(close()));

    toolMenu = menuBar()->addMenu(tr("&Tools"));

    addAct = new QAction(tr("&Add Entry..."), this);
    toolMenu->addAction(addAct);
    connect(addAct, SIGNAL(triggered()),
        addressWidget, SLOT(addEntry()));
    
//! [1b]
    editAct = new QAction(tr("&Edit Entry..."), this);
    editAct->setEnabled(false);
    toolMenu->addAction(editAct);
    connect(editAct, SIGNAL(triggered()),
        addressWidget, SLOT(editEntry()));

    toolMenu->addSeparator();

    removeAct = new QAction(tr("&Remove Entry"), this);
    removeAct->setEnabled(false);
    toolMenu->addAction(removeAct);
    connect(removeAct, SIGNAL(triggered()),
        addressWidget, SLOT(removeEntry()));

    connect(addressWidget, SIGNAL(selectionChanged(QItemSelection)),
        this, SLOT(updateActions(QItemSelection)));
}
示例#6
0
void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
{
    PlacesItem* item = m_model->placesItem(index);
    if (!item) {
        return;
    }

    QMenu menu(this);

    QAction* emptyTrashAction = nullptr;
    QAction* editAction = nullptr;
    QAction* teardownAction = nullptr;
    QAction* ejectAction = nullptr;

    const QString label = item->text();

    const bool isDevice = !item->udi().isEmpty();
    const bool isTrash = (item->url().scheme() == QLatin1String("trash"));
    if (isDevice) {
        ejectAction = m_model->ejectAction(index);
        if (ejectAction) {
            ejectAction->setParent(&menu);
            menu.addAction(ejectAction);
        }

        teardownAction = m_model->teardownAction(index);
        if (teardownAction) {
            teardownAction->setParent(&menu);
            menu.addAction(teardownAction);
        }

        if (teardownAction || ejectAction) {
            menu.addSeparator();
        }
    } else {
        if (isTrash) {
            emptyTrashAction = menu.addAction(QIcon::fromTheme(QStringLiteral("trash-empty")), i18nc("@action:inmenu", "Empty Trash"));
            emptyTrashAction->setEnabled(item->icon() == QLatin1String("user-trash-full"));
            menu.addSeparator();
        }
    }

    QAction* openInNewWindowAction = menu.addAction(QIcon::fromTheme("window-new"), i18nc("@item:inmenu", "Open in New Window"));
    QAction* openInNewTabAction = menu.addAction(QIcon::fromTheme("tab-new"), i18nc("@item:inmenu", "Open in New Tab"));
    if (!isDevice && !isTrash) {
        menu.addSeparator();
    }

    if (!isDevice) {
        editAction = menu.addAction(QIcon::fromTheme("document-properties"), i18nc("@item:inmenu", "Edit..."));
    }

    QAction* removeAction = nullptr;
    if (!isDevice && !item->isSystemItem()) {
        removeAction = menu.addAction(QIcon::fromTheme(QStringLiteral("edit-delete")), i18nc("@item:inmenu", "Remove"));
    }

    QAction* hideAction = menu.addAction(i18nc("@item:inmenu", "Hide"));
    hideAction->setCheckable(true);
    hideAction->setChecked(item->isHidden());

    buildGroupContextMenu(&menu, index);

    QAction* action = menu.exec(pos.toPoint());
    if (action) {
        if (action == emptyTrashAction) {
            emptyTrash();
        } else {
            // The index might have changed if devices were added/removed while
            // the context menu was open.
            index = m_model->index(item);
            if (index < 0) {
                // The item is not in the model any more, probably because it was an
                // external device that has been removed while the context menu was open.
                return;
            }

            if (action == editAction) {
                editEntry(index);
            } else if (action == removeAction) {
                m_model->deleteItem(index);
            } else if (action == hideAction) {
                item->setHidden(hideAction->isChecked());
            } else if (action == openInNewWindowAction) {
                Dolphin::openNewWindow({KFilePlacesModel::convertedUrl(m_model->data(index).value("url").toUrl())}, this);
            } else if (action == openInNewTabAction) {
                // TriggerItem does set up the storage first and then it will
                // emit the slotItemMiddleClicked signal, because of Qt::MiddleButton.
                triggerItem(index, Qt::MiddleButton);
            } else if (action == teardownAction) {
                m_model->requestTearDown(index);
            } else if (action == ejectAction) {
                m_model->requestEject(index);
            }
        }
    }

    selectClosestItem();
}
示例#7
0
void Sup::input(const QString &gid, const QString &uid, const QString &str, bool inpm, bool isAdmin)
{
    qint64 gidnum = gid.mid(5).toLongLong();

    if (nameDatabase->groups().keys().contains(gidnum))
        ++lastSup[gidnum];

    if (nameDatabase->groups().keys().contains(gidnum) && str.startsWith("!sup"))
    {
        QStringList args = str.split(' ', QString::SkipEmptyParts);

        QString message;
        int perm = 0;

        if (args.size() > 2 && (args[1].toLower().startsWith("del") || args[1].toLower().startsWith("rem")))
        {
            perm = permission->getPermission(gidnum, "sup", "delete", isAdmin, inpm);
            if (perm == 1)
            {
                int start, end;
                int idx = args[2].indexOf('-');
                bool ok1, ok2;

                if (idx == -1)
                {
                    start = end = args[2].toInt(&ok1);
                    ok2 = true;
                }
                else
                {
                    start = args[2].mid(0, idx).toInt(&ok1);
                    end = args[2].mid(idx + 1).toInt(&ok2);
                }

                if (ok1 && ok2 && start > 0 && end > 0 && end >= start && end <= data[gidnum].size())
                {
                    qDebug() << "Deleting: " << start << ' ' << end;
                    for (int i = start; i <= end; ++i)
                        delEntry(gidnum, start);
                    message = "Deleted 'sup entry(ies)!";
                }
            }
        }
        else if (args.size() > 2 && args[1].toLower().startsWith("add"))
        {
            perm = permission->getPermission(gidnum, "sup", "add", isAdmin, inpm);
            if (perm == 1)
            {
                int idx = str.indexOf("add", 0, Qt::CaseInsensitive);
                int seenSpace = 0;
                while (idx < str.length())
                {
                    if (str[idx] == ' ')
                        seenSpace = 1;
                    else if (seenSpace == 1)
                    {
                        seenSpace = 2;
                        break;
                    }

                    ++idx;
                }

                if (seenSpace == 2)
                {
                    if (addEntry(gidnum, str.mid(idx)))
                    {
                        qDebug() << "Here adding sup...!";
                        message = "Added 'sup entry!";
                        freshSup();

                        QString subscribeMessage = QString("New 'Sup Entry: %1").arg(str.mid(idx));
                        subscribe->postToSubscribed(gidnum, subscribeMessage);
                    }
                    else
                        message = "Couldn't add new 'sup entry; Maybe delete some entries first.";
                }
            }
        }
        else if (args.size() > 3 && args[1].toLower().startsWith("edit"))
        {
            perm = permission->getPermission(gidnum, "sup", "edit", isAdmin, inpm);
            if (perm == 1)
            {
                bool ok;
                int id = args[2].toInt(&ok);

                if (ok && id > 0 && id <= data[gidnum].size())
                {
                    int idx = str.indexOf("edit", 0, Qt::CaseInsensitive);
                    while (str[idx] != ' ')
                        ++idx;
                    while (str[idx] == ' ')
                        ++idx;
                    while (str[idx] != ' ')
                        ++idx;
                    while (str[idx] == ' ')
                        ++idx;

                    editEntry(gidnum, id, str.mid(idx));

                    message = "Edited 'sup entry!";
                }
            }
        }
        else
        {
            inpm = inpm || (args.size() > 1 && args[1].toLower().startsWith("pm"));

            perm = permission->getPermission(gidnum, "sup", "view", isAdmin, inpm);
            if (perm == 1)
            {
                if (data[gidnum].isEmpty())
                    message = "Nothing important!";
                else
                {
                    if (!inpm && lastSup[gidnum] < DistanceBetweenSup)
                        message = "Public 'sup have been already shown recently. Please scroll up or use \"!sup pm\".";
                    else
                    {
                        for (int i = 0; i < data[gidnum].size(); ++i)
                        {
                            message += QString("%1- %2").arg(i + 1).arg(data[gidnum][i].text());
                            if (i != data[gidnum].size() - 1)
                                message += "\n";
                        }

                        if (!inpm)
                        {
                            lastSup[gidnum] = 0;
                            message += QString("\n\n") + Smiley::pokerFace;
                        }
                    }
                }
            }
        }

        qDebug() << "sup module send message: " << (inpm ? uid : gid) << message;
        messageProcessor->sendMessage(inpm ? uid : gid, message);

        if (perm == 2)
            permission->sendRequest(gid, uid, str, inpm);
    }
}