1172
1299
if (!firstItem())
1179
IconItem* tmp = d->currItem;
1180
d->currItem = firstItem();
1181
d->anchorItem = d->currItem;
1185
firstItem()->setSelected(true, true);
1186
ensureItemVisible(firstItem());
1193
IconItem* tmp = d->currItem;
1194
d->currItem = lastItem();
1195
d->anchorItem = d->currItem;
1199
lastItem()->setSelected(true, true);
1200
ensureItemVisible(lastItem());
1210
emit signalReturnPressed(d->currItem);
1222
if (d->currItem->nextItem())
1224
if (e->state() & Qt::ControlButton)
1226
IconItem* tmp = d->currItem;
1227
d->currItem = d->currItem->nextItem();
1228
d->anchorItem = d->currItem;
1230
d->currItem->repaint();
1234
else if (e->state() & Qt::ShiftButton)
1236
IconItem* tmp = d->currItem;
1237
d->currItem = d->currItem->nextItem();
1240
// if the anchor is behind us, move forward preserving
1241
// the previously selected item. otherwise unselect the
1242
// previously selected item
1243
if (!anchorIsBehind())
1244
tmp->setSelected(false, false);
1246
d->currItem->setSelected(true, false);
1252
IconItem* tmp = d->currItem;
1253
d->currItem = d->currItem->nextItem();
1254
d->anchorItem = d->currItem;
1255
d->currItem->setSelected(true, true);
1264
d->currItem = firstItem();
1265
d->anchorItem = d->currItem;
1266
d->currItem->setSelected(true, true);
1270
ensureItemVisible(item);
1281
if (d->currItem->prevItem())
1283
if (e->state() & Qt::ControlButton)
1285
IconItem* tmp = d->currItem;
1286
d->currItem = d->currItem->prevItem();
1287
d->anchorItem = d->currItem;
1289
d->currItem->repaint();
1293
else if (e->state() & Qt::ShiftButton)
1295
IconItem* tmp = d->currItem;
1296
d->currItem = d->currItem->prevItem();
1299
// if the anchor is ahead of us, move forward preserving
1300
// the previously selected item. otherwise unselect the
1301
// previously selected item
1302
if (anchorIsBehind())
1303
tmp->setSelected(false, false);
1305
d->currItem->setSelected(true, false);
1311
IconItem* tmp = d->currItem;
1312
d->currItem = d->currItem->prevItem();
1313
d->anchorItem = d->currItem;
1314
d->currItem->setSelected(true, true);
1323
d->currItem = firstItem();
1324
d->anchorItem = d->currItem;
1325
d->currItem->setSelected(true, true);
1329
ensureItemVisible(item);
1340
int x = d->currItem->x() + itemRect().width()/2;
1341
int y = d->currItem->y() - d->spacing*2;
1345
while (!it && y > 0)
1347
it = findItem(QPoint(x,y));
1348
y -= d->spacing * 2;
1353
if (e->state() & Qt::ControlButton)
1355
IconItem* tmp = d->currItem;
1359
d->currItem->repaint();
1363
else if (e->state() & Qt::ShiftButton)
1365
IconItem* tmp = d->currItem;
1370
if (anchorIsBehind())
1372
for (IconItem* i = d->currItem; i; i = i->prevItem())
1374
i->setSelected(true, false);
1375
if (i == d->anchorItem)
1381
for (IconItem* i = d->currItem; i; i = i->nextItem())
1383
i->setSelected(true, false);
1384
if (i == d->anchorItem)
1393
IconItem* tmp = d->currItem;
1396
d->currItem->setSelected(true, true);
1405
d->currItem = firstItem();
1406
d->anchorItem = d->currItem;
1407
d->currItem->setSelected(true, true);
1411
ensureItemVisible(item);
1422
int x = d->currItem->x() + itemRect().width()/2;
1423
int y = d->currItem->y() + itemRect().height() + d->spacing*2;
1427
while (!it && y < contentsHeight())
1429
it = findItem(QPoint(x,y));
1430
y += d->spacing * 2;
1435
if (e->state() & Qt::ControlButton)
1437
IconItem* tmp = d->currItem;
1441
d->currItem->repaint();
1445
else if (e->state() & Qt::ShiftButton)
1447
IconItem* tmp = d->currItem;
1452
if (anchorIsBehind())
1454
for (IconItem* i = d->currItem; i; i = i->prevItem())
1456
i->setSelected(true, false);
1457
if (i == d->anchorItem)
1463
for (IconItem* i = d->currItem; i; i = i->nextItem())
1465
i->setSelected(true, false);
1466
if (i == d->anchorItem)
1475
IconItem* tmp = d->currItem;
1478
d->currItem->setSelected(true, true);
1487
d->currItem = firstItem();
1488
d->anchorItem = d->currItem;
1489
d->currItem->setSelected(true, true);
1493
ensureItemVisible(item);
1504
QRect r( 0, d->currItem->y() + visibleHeight(),
1505
contentsWidth(), visibleHeight() );
1506
IconItem *ni = findFirstVisibleItem(r);
1510
r = QRect( 0, d->currItem->y() + itemRect().height(),
1511
contentsWidth(), contentsHeight() );
1512
ni = findLastVisibleItem( r );
1517
IconItem* tmp = d->currItem;
1522
d->currItem->setSelected(true, true);
1527
d->currItem = firstItem();
1528
d->anchorItem = d->currItem;
1529
d->currItem->setSelected(true, true);
1533
ensureItemVisible(item);
1544
QRect r(0, d->currItem->y() - visibleHeight(),
1545
contentsWidth(), visibleHeight() );
1547
IconItem *ni = findFirstVisibleItem(r);
1551
r = QRect( 0, 0, contentsWidth(), d->currItem->y() );
1552
ni = findFirstVisibleItem( r );
1557
IconItem* tmp = d->currItem;
1562
d->currItem->setSelected(true, true);
1567
d->currItem = firstItem();
1568
d->anchorItem = d->currItem;
1569
d->currItem->setSelected(true, true);
1573
ensureItemVisible(item);
1306
IconItem* tmp = d->currItem;
1307
d->currItem = firstItem();
1308
d->anchorItem = d->currItem;
1312
firstItem()->setSelected(true, true);
1313
ensureItemVisible(firstItem());
1320
IconItem* tmp = d->currItem;
1321
d->currItem = lastItem();
1322
d->anchorItem = d->currItem;
1326
lastItem()->setSelected(true, true);
1327
ensureItemVisible(lastItem());
1337
emit signalReturnPressed(d->currItem);
1349
if (d->currItem->nextItem())
1351
if (e->state() & Qt::ControlButton)
1353
IconItem* tmp = d->currItem;
1354
d->currItem = d->currItem->nextItem();
1355
d->anchorItem = d->currItem;
1357
d->currItem->repaint();
1361
else if (e->state() & Qt::ShiftButton)
1363
IconItem* tmp = d->currItem;
1364
d->currItem = d->currItem->nextItem();
1367
// if the anchor is behind us, move forward preserving
1368
// the previously selected item. otherwise unselect the
1369
// previously selected item
1370
if (!anchorIsBehind())
1371
tmp->setSelected(false, false);
1373
d->currItem->setSelected(true, false);
1379
IconItem* tmp = d->currItem;
1380
d->currItem = d->currItem->nextItem();
1381
d->anchorItem = d->currItem;
1382
d->currItem->setSelected(true, true);
1391
d->currItem = firstItem();
1392
d->anchorItem = d->currItem;
1393
d->currItem->setSelected(true, true);
1397
ensureItemVisible(item);
1408
if (d->currItem->prevItem())
1410
if (e->state() & Qt::ControlButton)
1412
IconItem* tmp = d->currItem;
1413
d->currItem = d->currItem->prevItem();
1414
d->anchorItem = d->currItem;
1416
d->currItem->repaint();
1420
else if (e->state() & Qt::ShiftButton)
1422
IconItem* tmp = d->currItem;
1423
d->currItem = d->currItem->prevItem();
1426
// if the anchor is ahead of us, move forward preserving
1427
// the previously selected item. otherwise unselect the
1428
// previously selected item
1429
if (anchorIsBehind())
1430
tmp->setSelected(false, false);
1432
d->currItem->setSelected(true, false);
1438
IconItem* tmp = d->currItem;
1439
d->currItem = d->currItem->prevItem();
1440
d->anchorItem = d->currItem;
1441
d->currItem->setSelected(true, true);
1450
d->currItem = firstItem();
1451
d->anchorItem = d->currItem;
1452
d->currItem->setSelected(true, true);
1456
ensureItemVisible(item);
1467
int x = d->currItem->x() + itemRect().width()/2;
1468
int y = d->currItem->y() - d->spacing*2;
1472
while (!it && y > 0)
1474
it = findItem(QPoint(x,y));
1475
y -= d->spacing * 2;
1480
if (e->state() & Qt::ControlButton)
1482
IconItem* tmp = d->currItem;
1486
d->currItem->repaint();
1490
else if (e->state() & Qt::ShiftButton)
1492
IconItem* tmp = d->currItem;
1497
if (anchorIsBehind())
1499
for (IconItem* i = d->currItem; i; i = i->prevItem())
1501
i->setSelected(true, false);
1502
if (i == d->anchorItem)
1508
for (IconItem* i = d->currItem; i; i = i->nextItem())
1510
i->setSelected(true, false);
1511
if (i == d->anchorItem)
1520
IconItem* tmp = d->currItem;
1523
d->currItem->setSelected(true, true);
1532
d->currItem = firstItem();
1533
d->anchorItem = d->currItem;
1534
d->currItem->setSelected(true, true);
1538
ensureItemVisible(item);
1549
int x = d->currItem->x() + itemRect().width()/2;
1550
int y = d->currItem->y() + itemRect().height() + d->spacing*2;
1554
while (!it && y < contentsHeight())
1556
it = findItem(QPoint(x,y));
1557
y += d->spacing * 2;
1562
if (e->state() & Qt::ControlButton)
1564
IconItem* tmp = d->currItem;
1568
d->currItem->repaint();
1572
else if (e->state() & Qt::ShiftButton)
1574
IconItem* tmp = d->currItem;
1579
if (anchorIsBehind())
1581
for (IconItem* i = d->currItem; i; i = i->prevItem())
1583
i->setSelected(true, false);
1584
if (i == d->anchorItem)
1590
for (IconItem* i = d->currItem; i; i = i->nextItem())
1592
i->setSelected(true, false);
1593
if (i == d->anchorItem)
1602
IconItem* tmp = d->currItem;
1605
d->currItem->setSelected(true, true);
1614
d->currItem = firstItem();
1615
d->anchorItem = d->currItem;
1616
d->currItem->setSelected(true, true);
1620
ensureItemVisible(item);
1631
QRect r( 0, d->currItem->y() + visibleHeight(),
1632
contentsWidth(), visibleHeight() );
1633
IconItem *ni = findFirstVisibleItem(r, false);
1637
r = QRect( 0, d->currItem->y() + itemRect().height(),
1638
contentsWidth(), contentsHeight() );
1639
ni = findLastVisibleItem(r, false);
1644
IconItem* tmp = d->currItem;
1649
d->currItem->setSelected(true, true);
1654
d->currItem = firstItem();
1655
d->anchorItem = d->currItem;
1656
d->currItem->setSelected(true, true);
1660
ensureItemVisible(item);
1671
QRect r(0, d->currItem->y() - visibleHeight(),
1672
contentsWidth(), visibleHeight() );
1674
IconItem *ni = findFirstVisibleItem(r, false);
1678
r = QRect( 0, 0, contentsWidth(), d->currItem->y() );
1679
ni = findFirstVisibleItem(r, false);
1684
IconItem* tmp = d->currItem;
1689
d->currItem->setSelected(true, true);
1694
d->currItem = firstItem();
1695
d->anchorItem = d->currItem;
1696
d->currItem->setSelected(true, true);
1700
ensureItemVisible(item);
1705
// Key_Space is used as a global shortcut in DigikamApp.
1706
// Ctrl+Space comes through, Shift+Space is filtered out.
1711
if ( (e->state() & Qt::ControlButton) || (e->state() & Qt::ShiftButton) )
1713
d->currItem->setSelected(!d->currItem->isSelected(), false);
1717
if (!d->currItem->isSelected())
1718
d->currItem->setSelected(true, true);
1729
if (!d->currItem->isSelected())
1730
d->currItem->setSelected(true, false);
1732
ensureItemVisible(d->currItem);
1734
QRect r(itemRect());
1737
QPoint p(d->currItem->x() + w / 2, d->currItem->y() + h / 2);
1739
emit signalRightButtonClicked(d->currItem, mapToGlobal(contentsToViewport(p)));