2 #include "folderview.h"
4 #include "ui_anyview.h"
9 AnyView::AnyView(QWidget *parent) :
16 ui->folderPanel->setVisible(false);
17 ui->graphicsView->setVisible(false);
18 ui->textView->setVisible(false);
26 void AnyView::changeView(int viewType)
28 qDebug() << "AnyView::changeView();" << viewType;
31 ui->folderPanel->setVisible(false);
32 ui->graphicsView->setVisible(false);
33 ui->textView->setVisible(false);
37 case AnyView::ViewFolder: w = ui->folderPanel; break;
38 case AnyView::ViewImage: w = ui->graphicsView; break;
39 case AnyView::ViewText: w = ui->textView; break;
40 default: Q_ASSERT(false); w = NULL; break;
43 this->setVisible(true);
47 bool AnyView::setViewItem(const QFileInfo &info)
51 changeView(ViewFolder);
52 ui->folderPanel->folderView()->setPath(info.absoluteFilePath(), true);
57 changeView(ViewImage);
58 if (ui->graphicsView->setSource(info.absoluteFilePath())) {
63 bool isBinary = false;
64 if (!settings.value(IniKey_ViewerForceOpen).toBool()) {
65 QStringList list = settings.value(IniKey_ViewerIgnoreExt).toString().split(",");
66 foreach (const QString &ext, list) {
67 if (ext.toLower() == info.suffix().toLower()) {
76 QFile file(info.absoluteFilePath());
77 if (file.open(QIODevice::ReadOnly)) {
78 ui->textView->setSource(file.readAll());
85 ui->textView->setSource("");
89 FolderPanel *AnyView::folderPanel() const
91 return ui->folderPanel;
94 SimpleImageView *AnyView::imageView() const
96 return ui->graphicsView;
99 SimpleTextView *AnyView::textView() const
104 QWidget *AnyView::visibleView() const
106 if (ui->folderPanel->isVisible()) {
107 return ui->folderPanel->folderView();
109 if (ui->graphicsView->isVisible()) {
110 return ui->graphicsView;
112 if (ui->textView->isVisible()) {
118 void AnyView::focusInEvent(QFocusEvent *)
120 qDebug() << "AnyView::focusInEvent();";
122 if (ui->folderPanel->isVisible()) {
123 ui->folderPanel->folderView()->setFocus();
125 else if (ui->graphicsView->isVisible()) {
126 ui->graphicsView->setFocus();
129 Q_ASSERT(ui->textView->isVisible());
130 ui->textView->setFocus();