1 #include "foldermodel.h"
2 #include "folderview.h"
3 #include "mainwindow.h"
4 #include "preferences.h"
10 ///////////////////////////////////////////////////////////////////////////////
11 /// \brief Panel::Panel
12 /// \param parent 親ウィジェット
16 Panel::Panel(QWidget *parent) :
21 ui->imageView->setVisible(false);
22 ui->textView->setVisible(false);
25 ///////////////////////////////////////////////////////////////////////////////
26 /// \brief Panel::~Panel
35 ///////////////////////////////////////////////////////////////////////////////
36 /// \brief Panel::folderPanel
37 /// \return フォルダパネルを返します。
39 FolderPanel *Panel::folderPanel() const
41 return ui->folderPanel;
44 ///////////////////////////////////////////////////////////////////////////////
45 /// \brief Panel::initialize
46 /// \param w メインウィンドウオブジェクト
50 void Panel::initialize(MainWindow *w)
52 qDebug() << "Panel::initialize()";
54 ui->imageView->initialize(w);
55 ui->folderPanel->initialize(w);
56 ui->textView->initialize(w);
59 ///////////////////////////////////////////////////////////////////////////////
60 /// \brief Panel::model
61 /// \return フォルダモデルを返します。
63 FolderModel *Panel::model() const
65 return ui->folderPanel->model();
68 ///////////////////////////////////////////////////////////////////////////////
69 /// \brief Panel::setModel
74 void Panel::setModel(FolderModel *m)
76 qDebug() << "Panel::setModel()";
78 ui->folderPanel->setModel(m);
81 ///////////////////////////////////////////////////////////////////////////////
82 /// \brief Panel::setViewItem
83 /// \param index 設定するアイテムのインデックス
85 /// ビューにアイテムを設定し、表示します。
87 void Panel::setViewItem(const QModelIndex &index)
89 qDebug() << "Panel::setViewItem()" << index;
91 if (!index.isValid()) {
92 ui->imageView->setVisible(false);
93 ui->textView->setVisible(false);
94 ui->folderPanel->setVisible(true);
98 const FolderModel *m = static_cast<const FolderModel*>(index.model());
99 QString path = m->filePath(index);
100 if (m->isDir(index)) {
101 model()->setRootPath(path);
102 ui->imageView->setVisible(false);
103 ui->textView->setVisible(false);
104 ui->folderPanel->setVisible(true);
108 QPixmap pixmap(path);
109 if (!pixmap.isNull()) {
110 ui->imageView->setSource(pixmap);
111 ui->folderPanel->setVisible(false);
112 ui->textView->setVisible(false);
113 ui->imageView->setVisible(true);
119 if (file.open(QIODevice::ReadOnly)) {
120 data = file.readAll();
124 ui->textView->setSource(data);
125 ui->folderPanel->setVisible(false);
126 ui->imageView->setVisible(false);
127 ui->textView->setVisible(true);
130 ///////////////////////////////////////////////////////////////////////////////
131 /// \brief Panel::updateAppearance
135 void Panel::updateAppearance(const Preferences &prefs)
137 qDebug() << "Panel::updateAppearance()";
141 pal = ui->imageView->palette();
142 pal.setColor(QPalette::Base, prefs.getImageViewBgColor());
143 ui->imageView->setPalette(pal);
145 pal = ui->textView->palette();
146 pal.setColor(QPalette::Base, prefs.getTextViewBgColor());
147 pal.setColor(QPalette::Text, prefs.getTextViewFgColor());
148 ui->textView->setPalette(pal);
149 ui->textView->setFont(prefs.getTextViewFont());
151 ui->folderPanel->updateAppearance(prefs);
154 ///////////////////////////////////////////////////////////////////////////////
155 /// \brief Panel::visibleView
156 /// \return 可視状態のビューを返します。
158 QWidget *Panel::visibleView() const
160 if (ui->textView->isVisible()) {
163 if (ui->imageView->isVisible()) {
164 return ui->imageView;
166 if (ui->folderPanel->isVisible()) {
167 return ui->folderPanel->itemView();
170 qDebug() << ">>>>>>>>>> visibleView() Logic error <<<<<<<<<<";