~ubuntu-branches/ubuntu/trusty/gwenview/trusty

« back to all changes in this revision

Viewing changes to app/viewmainpage.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2012-11-19 15:42:29 UTC
  • mto: This revision was merged to the branch mainline in revision 27.
  • Revision ID: package-import@ubuntu.com-20121119154229-selaegu8d5rzxtln
Tags: upstream-4.9.80
ImportĀ upstreamĀ versionĀ 4.9.80

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
#include <KMenu>
37
37
#include <KMessageBox>
38
38
#include <KToggleAction>
 
39
#include <KActivities/ResourceInstance>
39
40
 
40
41
// Local
41
42
#include "fileoperations.h"
 
43
#include <gvcore.h>
42
44
#include "splitter.h"
43
45
#include <lib/document/document.h>
44
46
#include <lib/documentview/abstractdocumentviewadapter.h>
133
135
    ViewMainPage* q;
134
136
    SlideShow* mSlideShow;
135
137
    KActionCollection* mActionCollection;
 
138
    GvCore* mGvCore;
136
139
    QSplitter *mThumbnailSplitter;
137
140
    QWidget* mAdapterContainer;
138
141
    DocumentViewController* mDocumentViewController;
149
152
    KToggleAction* mSynchronizeAction;
150
153
    QCheckBox* mSynchronizeCheckBox;
151
154
 
 
155
    // Activity Resource events reporting needs to be above KPart,
 
156
    // in the shell itself, to avoid problems with other MDI applications
 
157
    // that use this KPart
 
158
    QHash<DocumentView*, KActivities::ResourceInstance*> mActivityResources;
 
159
 
152
160
    bool mFullScreenMode;
153
161
    QPalette mNormalPalette;
154
162
    bool mCompareMode;
270
278
    {
271
279
        mDocumentViewContainer->deleteView(view);
272
280
        mDocumentViews.removeOne(view);
 
281
        mActivityResources.remove(view);
273
282
    }
274
283
 
275
284
    void setupToolContainer()
302
311
        Qt::Orientation orientation = GwenviewConfig::thumbnailBarOrientation();
303
312
        mThumbnailSplitter = new Splitter(orientation == Qt::Horizontal ? Qt::Vertical : Qt::Horizontal, q);
304
313
        mThumbnailBar->setOrientation(orientation);
 
314
        mThumbnailBar->setThumbnailAspectRatio(GwenviewConfig::thumbnailAspectRatio());
305
315
        mThumbnailBar->setRowCount(GwenviewConfig::thumbnailBarRowCount());
306
316
        mThumbnailSplitter->addWidget(mAdapterContainer);
307
317
        mThumbnailSplitter->addWidget(mThumbnailBar);
343
353
            return;
344
354
        }
345
355
        mThumbnailBar->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Current);
 
356
 
 
357
        if (mActivityResources.contains(oldView)) {
 
358
            mActivityResources[oldView]->notifyFocusedOut();
 
359
        }
 
360
 
 
361
        if (mActivityResources.contains(view)) {
 
362
            mActivityResources[view]->notifyFocusedIn();
 
363
        }
346
364
    }
347
365
 
348
366
    QModelIndex indexForView(DocumentView* view) const
357
375
        SortedDirModel* model = static_cast<SortedDirModel*>(mThumbnailBar->model());
358
376
        return model->indexForUrl(url);
359
377
    }
 
378
 
 
379
    void applyPalette(bool fullScreenMode)
 
380
    {
 
381
        mDocumentViewContainer->setPalette(mGvCore->palette(fullScreenMode ? GvCore::FullScreenViewPalette : GvCore::NormalViewPalette));
 
382
        setupThumbnailBarStyleSheet();
 
383
    }
360
384
};
361
385
 
362
 
ViewMainPage::ViewMainPage(QWidget* parent, SlideShow* slideShow, KActionCollection* actionCollection)
 
386
ViewMainPage::ViewMainPage(QWidget* parent, SlideShow* slideShow, KActionCollection* actionCollection, GvCore* gvCore)
363
387
: QWidget(parent)
364
388
, d(new ViewMainPagePrivate)
365
389
{
366
390
    d->q = this;
367
391
    d->mSlideShow = slideShow;
368
392
    d->mActionCollection = actionCollection;
 
393
    d->mGvCore = gvCore;
369
394
    d->mFullScreenMode = false;
370
395
    d->mCompareMode = false;
371
396
    d->mThumbnailBarVisibleBeforeFullScreen = false;
415
440
 
416
441
void ViewMainPage::loadConfig()
417
442
{
 
443
    d->applyPalette(false /* fullScreenMode */);
 
444
 
418
445
    // FIXME: Not symetric with saveConfig(). Check if it matters.
419
446
    Q_FOREACH(DocumentView * view, d->mDocumentViews) {
420
447
        view->loadAdapterConfig();
481
508
        if (d->mThumbnailBarVisibleBeforeFullScreen) {
482
509
            d->mToggleThumbnailBarAction->trigger();
483
510
        }
484
 
        QPalette pal = QApplication::palette();
485
 
        pal.setColor(QPalette::Base, Qt::black);
486
 
        d->mDocumentViewContainer->setPalette(pal);
487
511
    } else {
488
512
        if (d->mThumbnailBarVisibleBeforeFullScreen) {
489
513
            d->mToggleThumbnailBarAction->trigger();
490
514
        }
491
 
        d->mDocumentViewContainer->setPalette(d->mNormalPalette);
492
515
    }
 
516
    d->applyPalette(fullScreenMode);
493
517
    d->mToggleThumbnailBarAction->setEnabled(!fullScreenMode);
494
518
}
495
519
 
582
606
    return d->currentView();
583
607
}
584
608
 
585
 
void ViewMainPage::setNormalPalette(const QPalette& palette)
586
 
{
587
 
    d->mNormalPalette = palette;
588
 
    d->mDocumentViewContainer->setPalette(palette);
589
 
    d->setupThumbnailBarStyleSheet();
590
 
}
591
 
 
592
609
void ViewMainPage::openUrl(const KUrl& url)
593
610
{
594
611
    openUrls(KUrl::List() << url, url);
661
678
        } else {
662
679
            view->setCurrent(false);
663
680
        }
 
681
 
 
682
        if (!d->mActivityResources.contains(view)) {
 
683
            d->mActivityResources[view] = new KActivities::ResourceInstance(window()->winId(), view);
 
684
        }
 
685
 
 
686
        d->mActivityResources[view]->setUri(view->url());
 
687
 
 
688
        if (view->url() == currentUrl) {
 
689
            d->mActivityResources[view]->notifyFocusedIn();
 
690
        } else {
 
691
            d->mActivityResources[view]->notifyFocusedOut();
 
692
        }
664
693
    }
665
694
 
666
695
    d->mSynchronizeCheckBox->setVisible(d->mCompareMode);