コード例 #1
0
ファイル: mapview.cpp プロジェクト: mueslo/TEA
MapView::MapView(QWidget *parent) : QGraphicsView(parent)
{
    outlinePen.setBrush(Qt::white);
    setInteractable(true);

    //NYI: limit maximum number of current downloads to 2 as specified in the CycleMap tileserver terms,
    // this would severely degrade download performance, though. Maybe keep limit at ~5?
    requestLimit = 5;
    maxReqStackSize = 30;
    networkManager = new QNetworkAccessManager(this);

    setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    setScene(new QGraphicsScene(this)); //no delete necessary, parent set
    setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);

    lastTileUpdate = QTime(0,0);
    currentTime = new QTime(QTime::currentTime());

    //tile size: 256px x 256px, in coordinates: 2*PI x 2*PI
    scale(128/PI,128/PI); //default zoom == 0
    setSceneRect(-PI, -PI, 2*PI, 2*PI);

    mapSources.insert(OCM,{OCM,"OpenCycleMap", "http://tile.opencyclemap.org/cycle/", 0, 17});
    mapSources.insert(Mapnik,{Mapnik,"OpenStreetMap Mapnik", "http://tile.openstreetmap.org/", 0,18});
    mapSources.insert(None,{None,"None","",0,20});

    MapSource = {None, "None", "", 0 , 20};
    currentZoom = 0; zoomTo(MapSource.minzoom);

    connectSignalsAndSlots();
}
コード例 #2
0
ファイル: scene.cpp プロジェクト: serg-gusev/tasks-handler
void Scene::setNodesInteractable(bool interactable)
{
    _nodesInteractable = interactable;
    for (auto item : items()) {
        auto nodeItem = dynamic_cast<Node *>(item);
        if (nodeItem) {
            nodeItem->setInteractable(interactable);
        }
    }
}
コード例 #3
0
void UpdateDialog::setState(UpdaterState newState)
{
    ui->progressBar->setValue(0);
    state = newState;

    switch (state)
    {
    case CanCheck:
        resetUpdateData();
        ui->updateButton->setText( tr("Check for updates") );
        setInteractable(true);

        break;

    case Checking:
        setInteractable(false);
        doCheck();
        break;

    case CanUpdate:
        ui->updateButton->setText( tr("Update client") );
        setInteractable(true);
        break;

    case Updating:
        setInteractable(false);
        doUpdate();
        break;

    case CanClose:
        ui->updateButton->setText( tr("Close updater") );
        setInteractable(true);
        break;

    default:
        log( tr("Error! Updater tool swithed to unknown state!") );
        break;
    }
}
コード例 #4
0
ファイル: scene.cpp プロジェクト: serg-gusev/tasks-handler
void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *e)
{
    auto hoverItem = itemAt(e->scenePos(), QTransform());
    if (!hoverItem && _nodesInteractable) {
        auto node = new Node;
        node->setInteractable(_nodesInteractable);
        node->setSelected(true);
        node->setPos(e->scenePos());
        addItem(node);
    } else if (!_nodesInteractable && _currentEdge) {
        auto nodeItem = dynamic_cast<Node *>(hoverItem);
        if (nodeItem) {
            _currentEdge->setEndNode(nodeItem);
        } else {
            removeItem(_currentEdge);
            delete _currentEdge;
        }
        _currentEdge = nullptr;
    }

    QGraphicsScene::mouseReleaseEvent(e);
}