qdesigner_internal::ResourceEditor Class Reference

#include <resourceeditor_p.h>

Inheritance diagram for qdesigner_internal::ResourceEditor:

Inheritance graph
[legend]
Collaboration diagram for qdesigner_internal::ResourceEditor:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 57 of file resourceeditor_p.h.

Public Slots

void saveCurrentView ()
void removeCurrentView ()
void reloadCurrentView ()
void newView ()
void openView ()
void setActiveForm (QDesignerFormWindowInterface *form)

Signals

void fileActivated (const QString &qrc_path, const QString &file_path)
void currentFileChanged (const QString &qrc_path, const QString &file_path)

Public Member Functions

 ResourceEditor (QDesignerFormEditorInterface *core, QWidget *parent=0)
QDesignerFormWindowInterfaceform () const
int qrcCount () const
void setCurrentFile (const QString &qrc_path, const QString &file_path)

Private Slots

void updateQrcPaths ()
void updateQrcStack ()
void updateUi ()
void addPrefix ()
void addFiles ()
void deleteItem ()
void setCurrentIndex (int i)
void addView (const QString &file_name)
void itemActivated (const QModelIndex &index)
void itemChanged (const QModelIndex &index)

Private Member Functions

void getCurrentItem (QString &prefix, QString &file)
QTreeViewcurrentView () const
ResourceModelcurrentModel () const
QTreeViewview (int i) const
ResourceModelmodel (int i) const
int indexOfView (QTreeView *view)
QString qrcName (const QString &path) const
int currentIndex () const
void insertEmptyComboItem ()
void removeEmptyComboItem ()

Private Attributes

QDesignerFormWindowInterfacem_form
QComboBoxm_qrc_combo
QStackedWidgetm_qrc_stack
QToolButtonm_add_button
QToolButtonm_remove_button
QPushButtonm_add_files_button
QToolButtonm_remove_qrc_button
bool m_ignore_update


Constructor & Destructor Documentation

qdesigner_internal::ResourceEditor::ResourceEditor ( QDesignerFormEditorInterface core,
QWidget parent = 0 
)

Definition at line 408 of file resourceeditor.cpp.

References addFiles(), addPrefix(), QObject::connect(), qdesigner_internal::createIconSet(), deleteItem(), QDesignerFormEditorInterface::formWindowManager(), m_add_button, m_add_files_button, m_form, m_ignore_update, m_qrc_combo, m_qrc_stack, m_remove_button, m_remove_qrc_button, removeCurrentView(), setActiveForm(), setCurrentIndex(), QWidget::setEnabled(), QAbstractButton::setIcon(), SIGNAL, SLOT, and updateQrcStack().

00409     : QWidget(parent)
00410 {
00411     m_ignore_update = false;
00412     Ui::ResourceEditor ui;
00413     ui.setupUi(this);
00414 
00415     m_qrc_combo = ui.m_qrc_combo;
00416     m_qrc_stack = ui.m_qrc_stack;
00417     m_add_button = ui.m_add_button;
00418     m_remove_button = ui.m_remove_button;
00419     m_add_files_button = ui.m_add_files_button;
00420     m_remove_qrc_button = ui.m_remove_qrc_button;
00421 
00422     m_form = 0;
00423     setEnabled(false);
00424 
00425     connect(core->formWindowManager(),
00426             SIGNAL(activeFormWindowChanged(QDesignerFormWindowInterface*)),
00427             this, SLOT(setActiveForm(QDesignerFormWindowInterface*)));
00428     connect(m_qrc_combo, SIGNAL(activated(int)),
00429             this, SLOT(setCurrentIndex(int)));
00430 
00431     m_remove_qrc_button->setIcon(createIconSet(QLatin1String("editdelete.png")));
00432     connect(m_remove_qrc_button, SIGNAL(clicked()), this, SLOT(removeCurrentView()));
00433 
00434     m_add_button->setIcon(createIconSet(QLatin1String("plus.png")));
00435     connect(m_add_button, SIGNAL(clicked()), this, SLOT(addPrefix()));
00436     m_remove_button->setIcon(createIconSet(QLatin1String("minus.png")));
00437     connect(m_remove_button, SIGNAL(clicked()), this, SLOT(deleteItem()));
00438     m_add_files_button->setIcon(createIconSet(QLatin1String("fileopen.png")));
00439     connect(m_add_files_button, SIGNAL(clicked()), this, SLOT(addFiles()));
00440 
00441     updateQrcStack();
00442 }

Here is the call graph for this function:


Member Function Documentation

QDesignerFormWindowInterface* qdesigner_internal::ResourceEditor::form (  )  const [inline]

Definition at line 64 of file resourceeditor_p.h.

Referenced by setActiveForm().

00064 { return m_form; }

int qdesigner_internal::ResourceEditor::qrcCount (  )  const

Definition at line 465 of file resourceeditor.cpp.

References QStackedWidget::count(), and m_qrc_stack.

Referenced by addView(), model(), removeCurrentView(), and view().

00466 {
00467     return m_qrc_stack->count();
00468 }

Here is the call graph for this function:

void qdesigner_internal::ResourceEditor::setCurrentFile ( const QString qrc_path,
const QString file_path 
)

Definition at line 735 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), QStackedWidget::count(), qdesigner_internal::ResourceModel::fileName(), qdesigner_internal::ResourceModel::getIndex(), i, index, m_form, m_qrc_stack, model(), QDir::relativeFilePath(), QAbstractItemView::setCurrentIndex(), setCurrentIndex(), updateUi(), and view().

Referenced by qdesigner_internal::FindIconDialog::setQrc().

00736 {
00737     QDir form_dir = m_form->absoluteDir();
00738     QString qrc_path = form_dir.relativeFilePath(_qrc_path);
00739 
00740     for (int i = 0; i < m_qrc_stack->count(); ++i) {
00741         ResourceModel *model = this->model(i);
00742         if (qrc_path == form_dir.relativeFilePath(model->fileName())) {
00743             setCurrentIndex(i);
00744             QModelIndex index = model->getIndex(file_path);
00745             view(i)->setCurrentIndex(index);
00746             break;
00747         }
00748     }
00749 
00750     updateUi();
00751 }

Here is the call graph for this function:

void qdesigner_internal::ResourceEditor::fileActivated ( const QString qrc_path,
const QString file_path 
) [signal]

Referenced by itemActivated().

void qdesigner_internal::ResourceEditor::currentFileChanged ( const QString qrc_path,
const QString file_path 
) [signal]

Referenced by itemChanged().

void qdesigner_internal::ResourceEditor::saveCurrentView (  )  [slot]

Definition at line 794 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), QDir::absolutePath(), QDesignerFormWindowInterface::addResourceFile(), QString::append(), QObject::blockSignals(), currentIndex(), currentModel(), qdesigner_internal::ResourceModel::fileName(), QFileDialog::getSaveFileName(), QString::isEmpty(), m_form, m_ignore_update, m_qrc_combo, model(), s, qdesigner_internal::ResourceModel::save(), QComboBox::setCurrentIndex(), qdesigner_internal::ResourceModel::setFileName(), QComboBox::setItemText(), and updateUi().

00795 {
00796     ResourceModel *model = currentModel();
00797     if (model == 0)
00798         return;
00799 
00800     if (model->fileName().isEmpty()) {
00801         QString file_name = QFileDialog::getSaveFileName(this, tr("Save resource file"),
00802                                                             m_form->absoluteDir().absolutePath(),
00803                                                             tr("Resource files (*.qrc)"));
00804         if (file_name.isEmpty())
00805             return;
00806 
00807         if (QFileInfo(file_name).suffix() != QLatin1String("qrc"))
00808             file_name.append(QLatin1String(".qrc"));
00809 
00810         model->setFileName(file_name);
00811         m_ignore_update = true;
00812         m_form->addResourceFile(file_name);
00813         m_ignore_update = false;
00814         QString s = QFileInfo(file_name).fileName();
00815         bool blocked = m_qrc_combo->blockSignals(true);
00816         m_qrc_combo->setItemText(currentIndex(), model->fileName());
00817         m_qrc_combo->setCurrentIndex(-1);
00818         m_qrc_combo->setCurrentIndex(currentIndex());
00819         m_qrc_combo->blockSignals(blocked);
00820     }
00821 
00822     model->save();
00823     updateUi();
00824 }

void qdesigner_internal::ResourceEditor::removeCurrentView (  )  [slot]

Definition at line 835 of file resourceeditor.cpp.

References currentModel(), currentView(), QObject::disconnect(), qdesigner_internal::ResourceModel::fileName(), indexOfView(), insertEmptyComboItem(), QString::isEmpty(), m_form, m_ignore_update, m_qrc_combo, m_qrc_stack, model(), qrcCount(), QComboBox::removeItem(), QDesignerFormWindowInterface::removeResourceFile(), QStackedWidget::removeWidget(), setCurrentIndex(), SIGNAL, SLOT, updateUi(), and view().

Referenced by ResourceEditor().

00836 {
00837     QTreeView *view = currentView();
00838     if (view == 0)
00839         return;
00840 
00841     ResourceModel *model = currentModel();
00842     if (model == 0)
00843         return;
00844 
00845     QString file_name = model->fileName();
00846 
00847     int idx = indexOfView(view);
00848     if (idx == -1)
00849         return;
00850 
00851     m_qrc_combo->removeItem(idx);
00852     m_qrc_stack->removeWidget(view);
00853     delete view;
00854 
00855     disconnect(model, SIGNAL(dirtyChanged(bool)), this, SLOT(updateUi()));
00856 
00857     m_ignore_update = true;
00858     if (m_form != 0 && !file_name.isEmpty())
00859         m_form->removeResourceFile(file_name);
00860     m_ignore_update = false;
00861 
00862     if (qrcCount() == 0) {
00863         insertEmptyComboItem();
00864     } else {
00865         if (idx < qrcCount())
00866             setCurrentIndex(idx);
00867         else if (idx > 0)
00868             setCurrentIndex(idx - 1);
00869     }
00870     updateUi();
00871 }

void qdesigner_internal::ResourceEditor::reloadCurrentView (  )  [slot]

Definition at line 873 of file resourceeditor.cpp.

References currentModel(), model(), qdesigner_internal::ResourceModel::reload(), and updateUi().

00874 {
00875     ResourceModel *model = currentModel();
00876     if (model == 0)
00877         return;
00878 
00879     model->reload();
00880     updateUi();
00881 }

void qdesigner_internal::ResourceEditor::newView (  )  [slot]

Definition at line 883 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), QDir::absolutePath(), addView(), QString::append(), QStackedWidget::count(), QStackedWidget::currentIndex(), QFileDialog::getSaveFileName(), QString::isEmpty(), m_form, m_qrc_stack, qdesigner_internal::ResourceFile::save(), and setCurrentIndex().

Referenced by setCurrentIndex().

00884 {
00885     QString file_name = QFileDialog::getSaveFileName(this, tr("New resource file"),
00886                                                         m_form->absoluteDir().absolutePath(),
00887                                                         tr("Resource files (*.qrc)"));
00888     if (file_name.isEmpty()) {
00889         setCurrentIndex(m_qrc_stack->count() == 0 ? 0 : m_qrc_stack->currentIndex());
00890         return;
00891     }
00892         
00893     if (QFileInfo(file_name).suffix() != QLatin1String("qrc"))
00894     file_name.append(QLatin1String(".qrc"));
00895 
00896     ResourceFile rf(file_name);
00897     rf.save();
00898 
00899     addView(file_name);
00900 }

void qdesigner_internal::ResourceEditor::openView (  )  [slot]

Definition at line 902 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), QDir::absolutePath(), addView(), QStackedWidget::count(), QStackedWidget::currentIndex(), QFileDialog::getOpenFileName(), QString::isEmpty(), m_form, m_qrc_stack, and setCurrentIndex().

Referenced by setCurrentIndex().

00903 {
00904     QString file_name = QFileDialog::getOpenFileName(this, tr("Open resource file"),
00905                                                         m_form->absoluteDir().absolutePath(),
00906                                                         tr("Resource files (*.qrc)"));
00907     if (file_name.isEmpty()) {
00908         setCurrentIndex(m_qrc_stack->count() == 0 ? 0 : m_qrc_stack->currentIndex());
00909         return;
00910     }
00911 
00912     addView(file_name);
00913 }

void qdesigner_internal::ResourceEditor::setActiveForm ( QDesignerFormWindowInterface form  )  [slot]

Definition at line 915 of file resourceeditor.cpp.

References QObject::connect(), QObject::disconnect(), form(), m_form, QWidget::setEnabled(), SIGNAL, SLOT, updateQrcPaths(), and updateQrcStack().

Referenced by qdesigner_internal::FindIconDialog::FindIconDialog(), and ResourceEditor().

00916 {
00917     if (form == m_form)
00918         return;
00919 
00920     if (m_form != 0) {
00921         disconnect(m_form, SIGNAL(fileNameChanged(QString)),
00922                     this, SLOT(updateQrcPaths()));
00923         disconnect(m_form, SIGNAL(resourceFilesChanged()),
00924                     this, SLOT(updateQrcStack()));
00925     }
00926 
00927     m_form = form;
00928     updateQrcStack();
00929     
00930     if (m_form != 0) {
00931         connect(m_form, SIGNAL(fileNameChanged(QString)),
00932                     this, SLOT(updateQrcPaths()));
00933         connect(m_form, SIGNAL(resourceFilesChanged()),
00934                     this, SLOT(updateQrcStack()));
00935     }
00936 
00937     setEnabled(m_form != 0);
00938 }

void qdesigner_internal::ResourceEditor::updateQrcPaths (  )  [private, slot]

Definition at line 695 of file resourceeditor.cpp.

References QStackedWidget::count(), qdesigner_internal::ResourceModel::fileName(), i, m_qrc_combo, m_qrc_stack, model(), QComboBox::setItemText(), and updateUi().

Referenced by setActiveForm().

00696 {
00697     for (int i = 0; i < m_qrc_stack->count(); ++i) {
00698         ResourceModel *model = this->model(i);
00699         m_qrc_combo->setItemText(i, model->fileName());
00700     }
00701 
00702     updateUi();
00703 }

void qdesigner_internal::ResourceEditor::updateQrcStack (  )  [private, slot]

Definition at line 656 of file resourceeditor.cpp.

References QComboBox::addItem(), addView(), QComboBox::clear(), COMBO_NEW_DATA, COMBO_OPEN_DATA, QStackedWidget::count(), QFile::exists(), insertEmptyComboItem(), m_form, m_ignore_update, m_qrc_combo, m_qrc_stack, QStackedWidget::removeWidget(), QDesignerFormWindowInterface::resourceFiles(), updateUi(), w, and QStackedWidget::widget().

Referenced by ResourceEditor(), and setActiveForm().

00657 {
00658     if (m_ignore_update)
00659         return;
00660 
00661     m_qrc_combo->clear();
00662     while (m_qrc_stack->count() > 0) {
00663         QWidget *w = m_qrc_stack->widget(0);
00664         m_qrc_stack->removeWidget(w);
00665         delete w;
00666     }
00667 
00668     bool empty_list = true;
00669     QStringList qrc_file_list;
00670     if (m_form != 0) {
00671         qrc_file_list = m_form->resourceFiles();
00672         foreach (QString qrc_file, qrc_file_list) {
00673             if (QFile::exists(qrc_file)) {
00674                 addView(qrc_file);
00675                 empty_list = false;
00676             }
00677         }
00678     }
00679 
00680     m_qrc_combo->addItem(QIcon(), tr("New..."), QVariant(COMBO_NEW_DATA));
00681     m_qrc_combo->addItem(QIcon(), tr("Open..."), QVariant(COMBO_OPEN_DATA));
00682     if (empty_list)
00683         insertEmptyComboItem();
00684 
00685     updateUi();
00686 }

void qdesigner_internal::ResourceEditor::updateUi (  )  [private, slot]

Definition at line 585 of file resourceeditor.cpp.

References QString::arg(), QDesignerFormWindowInterface::core(), currentModel(), QDesignerFormWindowInterface::fileName(), getCurrentItem(), QString::isEmpty(), QWidget::isWindow(), m_add_button, m_add_files_button, m_form, m_remove_button, m_remove_qrc_button, name, QObject::objectName(), QWidget::parentWidget(), QWidget::setEnabled(), QWidget::setWindowTitle(), and QDesignerFormEditorInterface::topLevel().

Referenced by addFiles(), addPrefix(), addView(), deleteItem(), reloadCurrentView(), removeCurrentView(), saveCurrentView(), setCurrentFile(), setCurrentIndex(), updateQrcPaths(), and updateQrcStack().

00586 {
00587     QString prefix, file;
00588     getCurrentItem(prefix, file);
00589 
00590     m_add_button->setEnabled(currentModel() != 0);
00591     m_remove_button->setEnabled(!prefix.isEmpty());
00592     m_add_files_button->setEnabled(!prefix.isEmpty());
00593     m_remove_qrc_button->setEnabled(currentModel() != 0);
00594 
00595     QString name;
00596     if (m_form != 0)
00597         name = QFileInfo(m_form->fileName()).fileName();
00598 
00599     QString suffix;
00600     name.isEmpty() ? suffix = tr("Resource Editor") : suffix = tr("Resource Editor: %1").arg(name);
00601 
00602     QWidget* widget = 0;
00603     if (m_form != 0)
00604         widget = m_form->core()->topLevel();
00605 
00606     if (widget && (widget->objectName() == QLatin1String("MDIWindow"))) {
00607         QDockWidget* dockWidget = qFindChild<QDockWidget*>(widget, (parentWidget()->objectName() + QLatin1String("_dock")));
00608         if(dockWidget)
00609             dockWidget->setWindowTitle(suffix);
00610     }
00611     else if ((widget = parentWidget()) != 0 && widget->isWindow())
00612         widget->setWindowTitle(suffix);
00613     else
00614         setWindowTitle(suffix);
00615 }

void qdesigner_internal::ResourceEditor::addPrefix (  )  [private, slot]

Definition at line 516 of file resourceeditor.cpp.

References qdesigner_internal::ResourceModel::addNewPrefix(), QItemSelectionModel::ClearAndSelect, currentModel(), currentView(), model(), qdesigner_internal::ResourceModel::save(), QAbstractItemView::selectionModel(), QItemSelectionModel::setCurrentIndex(), updateUi(), and view().

Referenced by ResourceEditor().

00517 {
00518     QTreeView *view = currentView();
00519     if (view == 0)
00520         return;
00521 
00522     ResourceModel *model = currentModel();
00523     if (model == 0)
00524         return;
00525 
00526     QModelIndex idx = model->addNewPrefix();
00527     view->selectionModel()->setCurrentIndex(idx, QItemSelectionModel::ClearAndSelect);
00528     model->save();
00529     updateUi();
00530 }

void qdesigner_internal::ResourceEditor::addFiles (  )  [private, slot]

Definition at line 532 of file resourceeditor.cpp.

References qdesigner_internal::ResourceModel::addFiles(), QItemSelectionModel::ClearAndSelect, QAbstractItemView::currentIndex(), currentModel(), currentView(), QFileDialog::getOpenFileNames(), QList< T >::isEmpty(), QModelIndex::isValid(), qdesigner_internal::ResourceModel::lastResourceOpenDirectory(), model(), qdesigner_internal::ResourceModel::prefixIndex(), qdesigner_internal::ResourceModel::save(), QAbstractItemView::selectionModel(), QItemSelectionModel::setCurrentIndex(), QTreeView::setExpanded(), updateUi(), and view().

Referenced by ResourceEditor().

00533 {
00534     QTreeView *view = currentView();
00535     if (view == 0)
00536         return;
00537 
00538     ResourceModel *model = currentModel();
00539     if (model == 0)
00540         return;
00541 
00542     QStringList file_list = QFileDialog::getOpenFileNames(this, tr("Open file"),
00543                                                             model->lastResourceOpenDirectory(),
00544                                                             tr("All files (*)"));
00545     if (file_list.isEmpty())
00546         return;
00547     
00548     QModelIndex idx = model->addFiles(view->currentIndex(), file_list);
00549     if (idx.isValid()) {
00550         view->setExpanded(model->prefixIndex(view->currentIndex()), true);
00551         view->selectionModel()->setCurrentIndex(idx, QItemSelectionModel::ClearAndSelect);
00552     }
00553 
00554     model->save();
00555     updateUi();
00556 }

void qdesigner_internal::ResourceEditor::deleteItem (  )  [private, slot]

Definition at line 558 of file resourceeditor.cpp.

References QItemSelectionModel::ClearAndSelect, QAbstractItemView::currentIndex(), currentModel(), currentView(), qdesigner_internal::ResourceModel::deleteItem(), QModelIndex::isValid(), model(), qdesigner_internal::ResourceModel::prefixIndex(), qdesigner_internal::ResourceModel::save(), QAbstractItemView::selectionModel(), QItemSelectionModel::setCurrentIndex(), QTreeView::setExpanded(), updateUi(), and view().

Referenced by ResourceEditor().

00559 {
00560     QTreeView *view = currentView();
00561     if (view == 0)
00562         return;
00563 
00564     ResourceModel *model = currentModel();
00565     if (model == 0)
00566         return;
00567 
00568     QModelIndex cur_idx = view->currentIndex();
00569     if (!cur_idx.isValid())
00570         return;
00571 
00572     QModelIndex idx = model->deleteItem(cur_idx);
00573 
00574     if (idx.isValid()) {
00575         QModelIndex pref_idx = model->prefixIndex(idx);
00576         if (pref_idx != idx)
00577             view->setExpanded(pref_idx, true);
00578         view->selectionModel()->setCurrentIndex(idx, QItemSelectionModel::ClearAndSelect);
00579     }
00580 
00581     model->save();
00582     updateUi();
00583 }

void qdesigner_internal::ResourceEditor::setCurrentIndex ( int  i  )  [private, slot]

Definition at line 622 of file resourceeditor.cpp.

References QObject::blockSignals(), COMBO_EMPTY_DATA, COMBO_NEW_DATA, COMBO_OPEN_DATA, QAbstractItemView::currentIndex(), currentView(), QVariant::Int, itemChanged(), QComboBox::itemData(), m_qrc_combo, m_qrc_stack, newView(), openView(), QStackedWidget::setCurrentIndex(), QComboBox::setCurrentIndex(), QVariant::toInt(), QVariant::type(), updateUi(), and view().

Referenced by addView(), newView(), openView(), removeCurrentView(), ResourceEditor(), and setCurrentFile().

00623 {
00624     QVariant v = m_qrc_combo->itemData(i);
00625     if (v.type() == QVariant::Int) {
00626         switch (v.toInt()) {
00627             case COMBO_EMPTY_DATA: {
00628                     bool blocked = m_qrc_combo->blockSignals(true);
00629                     m_qrc_combo->setCurrentIndex(i);
00630                     m_qrc_combo->blockSignals(blocked);
00631                 }
00632                 break;
00633             case COMBO_OPEN_DATA:
00634                 openView();
00635                 break;
00636             case COMBO_NEW_DATA:
00637                 newView();
00638                 break;
00639             default:
00640                 break;
00641         }
00642     } else {
00643         bool blocked = m_qrc_combo->blockSignals(true);
00644         m_qrc_combo->setCurrentIndex(i);
00645         m_qrc_combo->blockSignals(blocked);
00646         m_qrc_stack->setCurrentIndex(i);
00647     }
00648 
00649     QAbstractItemView *view = currentView();
00650     if (view != 0)
00651         itemChanged(view->currentIndex());
00652 
00653     updateUi();
00654 }

void qdesigner_internal::ResourceEditor::addView ( const QString file_name  )  [private, slot]

Definition at line 705 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::addResourceFile(), QStackedWidget::addWidget(), QObject::connect(), qdesigner_internal::ResourceModel::fileName(), QComboBox::insertItem(), QString::isEmpty(), itemActivated(), itemChanged(), m_form, m_ignore_update, m_qrc_combo, m_qrc_stack, model(), qrcCount(), removeEmptyComboItem(), QAbstractItemView::selectionModel(), setCurrentIndex(), QTreeView::setModel(), SIGNAL, SLOT, updateUi(), and view().

Referenced by newView(), openView(), and updateQrcStack().

00706 {
00707     int idx = qrcCount();
00708 
00709     QTreeView *view = new QrcView;
00710     ResourceModel *model = g_model_cache()->model(qrc_file);
00711     if (model == 0)
00712         return;
00713     removeEmptyComboItem();
00714 
00715     view->setModel(model);
00716     m_qrc_combo->insertItem(idx, model->fileName());
00717     m_qrc_stack->addWidget(view);
00718     connect(view->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
00719             this, SLOT(updateUi()));
00720     connect(view, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
00721     connect(view->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)),
00722             this, SLOT(itemChanged(QModelIndex)));
00723 //    connect(model, SIGNAL(dirtyChanged(bool)), this, SLOT(updateUi()));
00724 
00725     setCurrentIndex(idx);
00726 
00727     m_ignore_update = true;
00728     if (m_form && !qrc_file.isEmpty())
00729         m_form->addResourceFile(qrc_file);
00730     m_ignore_update = false;
00731 
00732     updateUi();
00733 }

void qdesigner_internal::ResourceEditor::itemActivated ( const QModelIndex index  )  [private, slot]

Definition at line 773 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), QDir::absoluteFilePath(), QDir::cleanPath(), currentModel(), emit, fileActivated(), qdesigner_internal::ResourceModel::fileName(), qdesigner_internal::ResourceModel::getItem(), index, QString::isEmpty(), m_form, and model().

Referenced by addView().

00774 {
00775     ResourceModel *model = currentModel();
00776     if (!model)
00777         return;
00778 
00779     QString prefix, file;
00780     model->getItem(index, prefix, file);
00781     if (file.isEmpty())
00782         return;
00783 
00784     QString file_name = QLatin1Char(':')
00785                         + prefix
00786                         + QLatin1Char('/')
00787                         + file;
00788     file_name = QDir::cleanPath(file_name);
00789     QString qrc_path = m_form->absoluteDir().absoluteFilePath(model->fileName());
00790 
00791     emit fileActivated(qrc_path, file_name);
00792 }

void qdesigner_internal::ResourceEditor::itemChanged ( const QModelIndex index  )  [private, slot]

Definition at line 753 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), QDir::absoluteFilePath(), QDir::cleanPath(), currentFileChanged(), currentModel(), emit, qdesigner_internal::ResourceModel::fileName(), qdesigner_internal::ResourceModel::getItem(), index, QString::isEmpty(), m_form, and model().

Referenced by addView(), and setCurrentIndex().

00754 {
00755     QString file_name, qrc_path;
00756 
00757     if (ResourceModel *model = currentModel()) {
00758         QString prefix, file;
00759         model->getItem(index, prefix, file);
00760         if (!file.isEmpty()) {
00761             file_name = QLatin1Char(':')
00762                         + prefix
00763                         + QLatin1Char('/')
00764                         + file;
00765             file_name = QDir::cleanPath(file_name);
00766             qrc_path = m_form->absoluteDir().absoluteFilePath(model->fileName());
00767         }
00768     }
00769 
00770     emit currentFileChanged(qrc_path, file_name);
00771 }

void qdesigner_internal::ResourceEditor::getCurrentItem ( QString prefix,
QString file 
) [private]

Definition at line 500 of file resourceeditor.cpp.

References QString::clear(), QAbstractItemView::currentIndex(), currentModel(), currentView(), qdesigner_internal::ResourceModel::getItem(), model(), and view().

Referenced by updateUi().

00501 {
00502     prefix.clear();
00503     file.clear();
00504 
00505     QTreeView *view = currentView();
00506     if (view == 0)
00507         return;
00508 
00509     ResourceModel *model = currentModel();
00510     if (model == 0)
00511         return;
00512 
00513     model->getItem(view->currentIndex(), prefix, file);
00514 }

Here is the call graph for this function:

QTreeView * qdesigner_internal::ResourceEditor::currentView (  )  const [private]

Definition at line 484 of file resourceeditor.cpp.

References currentIndex(), and view().

Referenced by addFiles(), addPrefix(), deleteItem(), getCurrentItem(), removeCurrentView(), and setCurrentIndex().

00485 {
00486     int idx = currentIndex();
00487     if (idx == -1)
00488         return 0;
00489     return view(idx);
00490 }

Here is the call graph for this function:

ResourceModel * qdesigner_internal::ResourceEditor::currentModel (  )  const [private]

Definition at line 492 of file resourceeditor.cpp.

References currentIndex(), and model().

Referenced by addFiles(), addPrefix(), deleteItem(), getCurrentItem(), itemActivated(), itemChanged(), reloadCurrentView(), removeCurrentView(), saveCurrentView(), and updateUi().

00493 {
00494     int idx = currentIndex();
00495     if (idx == -1)
00496         return 0;
00497     return model(idx);
00498 }

Here is the call graph for this function:

QTreeView * qdesigner_internal::ResourceEditor::view ( int  i  )  const [private]

Definition at line 470 of file resourceeditor.cpp.

References m_qrc_stack, qrcCount(), and QStackedWidget::widget().

Referenced by addFiles(), addPrefix(), addView(), currentView(), deleteItem(), getCurrentItem(), indexOfView(), model(), removeCurrentView(), setCurrentFile(), and setCurrentIndex().

00471 {
00472     if (i >= qrcCount() || i < 0)
00473         return 0;
00474     return qobject_cast<QTreeView*>(m_qrc_stack->widget(i));
00475 }

Here is the call graph for this function:

ResourceModel * qdesigner_internal::ResourceEditor::model ( int  i  )  const [private]

Definition at line 477 of file resourceeditor.cpp.

References QAbstractItemView::model(), qrcCount(), and view().

Referenced by addFiles(), addPrefix(), addView(), currentModel(), deleteItem(), getCurrentItem(), itemActivated(), itemChanged(), reloadCurrentView(), removeCurrentView(), saveCurrentView(), setCurrentFile(), and updateQrcPaths().

00478 {
00479     if (i >= qrcCount() || i < 0)
00480         return 0;
00481     return qobject_cast<ResourceModel*>(view(i)->model());
00482 }

Here is the call graph for this function:

int qdesigner_internal::ResourceEditor::indexOfView ( QTreeView view  )  [private]

Definition at line 826 of file resourceeditor.cpp.

References QStackedWidget::count(), i, m_qrc_stack, view(), and QStackedWidget::widget().

Referenced by removeCurrentView().

00827 {
00828     for (int i = 0; i < m_qrc_stack->count(); ++i) {
00829         if (view == m_qrc_stack->widget(i))
00830             return i;
00831     }
00832     return -1;
00833 }

Here is the call graph for this function:

QString qdesigner_internal::ResourceEditor::qrcName ( const QString path  )  const [private]

Definition at line 688 of file resourceeditor.cpp.

References QDesignerFormWindowInterface::absoluteDir(), m_form, path, and QDir::relativeFilePath().

00689 {
00690     if (m_form == 0 || path.isEmpty())
00691         return tr("Untitled");
00692     return m_form->absoluteDir().relativeFilePath(path);
00693 }

Here is the call graph for this function:

int qdesigner_internal::ResourceEditor::currentIndex (  )  const [private]

Definition at line 617 of file resourceeditor.cpp.

References QStackedWidget::currentIndex(), and m_qrc_stack.

Referenced by currentModel(), currentView(), and saveCurrentView().

00618 {
00619     return m_qrc_stack->currentIndex();
00620 }

Here is the call graph for this function:

void qdesigner_internal::ResourceEditor::insertEmptyComboItem (  )  [private]

Definition at line 444 of file resourceeditor.cpp.

References COMBO_EMPTY_DATA, QComboBox::count(), QComboBox::insertItem(), QVariant::Int, QComboBox::itemData(), m_qrc_combo, QComboBox::setCurrentIndex(), QVariant::toInt(), and QVariant::type().

Referenced by removeCurrentView(), and updateQrcStack().

00445 {
00446     if (m_qrc_combo->count() == 0)
00447         return;
00448     QVariant v = m_qrc_combo->itemData(0);
00449     if (v.type() == QVariant::Int && v.toInt() == COMBO_EMPTY_DATA)
00450         return;
00451     m_qrc_combo->insertItem(0, QIcon(), tr("<no resource files>"), QVariant(COMBO_EMPTY_DATA));
00452     m_qrc_combo->setCurrentIndex(0);
00453 }

Here is the call graph for this function:

void qdesigner_internal::ResourceEditor::removeEmptyComboItem (  )  [private]

Definition at line 455 of file resourceeditor.cpp.

References COMBO_EMPTY_DATA, QComboBox::count(), QVariant::Int, QComboBox::itemData(), m_qrc_combo, QComboBox::removeItem(), QVariant::toInt(), and QVariant::type().

Referenced by addView().

00456 {
00457     if (m_qrc_combo->count() == 0)
00458         return;
00459     QVariant v = m_qrc_combo->itemData(0);
00460     if (v.type() != QVariant::Int || v.toInt() != COMBO_EMPTY_DATA)
00461         return;
00462     m_qrc_combo->removeItem(0);
00463 }

Here is the call graph for this function:


Member Data Documentation

QDesignerFormWindowInterface* qdesigner_internal::ResourceEditor::m_form [private]

Definition at line 94 of file resourceeditor_p.h.

Referenced by addView(), itemActivated(), itemChanged(), newView(), openView(), qrcName(), removeCurrentView(), ResourceEditor(), saveCurrentView(), setActiveForm(), setCurrentFile(), updateQrcStack(), and updateUi().

QComboBox* qdesigner_internal::ResourceEditor::m_qrc_combo [private]

Definition at line 108 of file resourceeditor_p.h.

Referenced by addView(), insertEmptyComboItem(), removeCurrentView(), removeEmptyComboItem(), ResourceEditor(), saveCurrentView(), setCurrentIndex(), updateQrcPaths(), and updateQrcStack().

QStackedWidget* qdesigner_internal::ResourceEditor::m_qrc_stack [private]

Definition at line 109 of file resourceeditor_p.h.

Referenced by addView(), currentIndex(), indexOfView(), newView(), openView(), qrcCount(), removeCurrentView(), ResourceEditor(), setCurrentFile(), setCurrentIndex(), updateQrcPaths(), updateQrcStack(), and view().

QToolButton* qdesigner_internal::ResourceEditor::m_add_button [private]

Definition at line 110 of file resourceeditor_p.h.

Referenced by ResourceEditor(), and updateUi().

QToolButton* qdesigner_internal::ResourceEditor::m_remove_button [private]

Definition at line 111 of file resourceeditor_p.h.

Referenced by ResourceEditor(), and updateUi().

QPushButton* qdesigner_internal::ResourceEditor::m_add_files_button [private]

Definition at line 112 of file resourceeditor_p.h.

Referenced by ResourceEditor(), and updateUi().

QToolButton* qdesigner_internal::ResourceEditor::m_remove_qrc_button [private]

Definition at line 113 of file resourceeditor_p.h.

Referenced by ResourceEditor(), and updateUi().

bool qdesigner_internal::ResourceEditor::m_ignore_update [private]

Definition at line 114 of file resourceeditor_p.h.

Referenced by addView(), removeCurrentView(), ResourceEditor(), saveCurrentView(), and updateQrcStack().


The documentation for this class was generated from the following files:
Generated on Thu Mar 15 20:48:38 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1