[QGIS Commit] r9580 - in branches/advanced_printing_branch2/src:
app/composer ui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Nov 7 15:57:40 EST 2008
Author: mhugent
Date: 2008-11-07 15:57:40 -0500 (Fri, 07 Nov 2008)
New Revision: 9580
Modified:
branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.cpp
branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.h
branches/advanced_printing_branch2/src/ui/qgscomposerpicturewidgetbase.ui
Log:
Show composer pictures as previews
Modified: branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.cpp
===================================================================
--- branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.cpp 2008-11-07 19:35:50 UTC (rev 9579)
+++ branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.cpp 2008-11-07 20:57:40 UTC (rev 9580)
@@ -16,6 +16,7 @@
***************************************************************************/
#include "qgscomposerpicturewidget.h"
+#include "qgsapplication.h"
#include "qgscomposerpicture.h"
#include "qgscomposeritemwidget.h"
#include <QDoubleValidator>
@@ -36,6 +37,9 @@
setGuiElementValues();
+ //add preview icons
+ addStandardDirectoriesToPreview();
+
connect( mPicture, SIGNAL( settingsChanged() ), this, SLOT( setGuiElementValues() ) );
}
@@ -143,6 +147,19 @@
}
}
+void QgsComposerPictureWidget::on_mPreviewListWidget_currentItemChanged( QListWidgetItem* current, QListWidgetItem* previous )
+{
+ if(!mPicture || !current)
+ {
+ return;
+ }
+
+ QString absoluteFilePath = current->data(Qt::UserRole).toString();
+ mPicture->setPictureFile(absoluteFilePath);
+ mPictureLineEdit->setText(absoluteFilePath);
+ mPicture->update();
+}
+
void QgsComposerPictureWidget::setGuiElementValues()
{
//set initial gui values
@@ -165,3 +182,49 @@
mPictureLineEdit->blockSignals( false );
}
}
+
+int QgsComposerPictureWidget::addDirectoryToPreview(const QString& path)
+{
+ //go through all files of a directory
+ QDir directory(path);
+ if(!directory.exists() || !directory.isReadable())
+ {
+ return 1; //error
+ }
+
+ QFileInfoList fileList = directory.entryInfoList(QDir::Files);
+ QFileInfoList::const_iterator fileIt = fileList.constBegin();
+ for(; fileIt != fileList.constEnd(); ++fileIt)
+ {
+ qWarning(fileIt->absoluteFilePath().toLocal8Bit().data());
+ QIcon icon(fileIt->absoluteFilePath()); //does this work with svg icons?
+ QListWidgetItem * listItem = new QListWidgetItem(mPreviewListWidget);
+ listItem->setIcon( icon );
+ listItem->setText( "" );
+ //store the absolute icon file as user data
+ listItem->setData( Qt::UserRole, fileIt->absoluteFilePath());
+ }
+
+ return 0;
+}
+
+void QgsComposerPictureWidget::addStandardDirectoriesToPreview()
+{
+ //list all directories in $prefix/share/qgis/svg
+ QDir svgDirectory(QgsApplication::svgPath());
+ if(!svgDirectory.exists() || !svgDirectory.isReadable())
+ {
+ return; //error
+ }
+
+ QFileInfoList directoryList = svgDirectory.entryInfoList(QDir::Dirs);
+ QFileInfoList::const_iterator dirIt = directoryList.constBegin();
+ for(; dirIt != directoryList.constEnd(); ++dirIt)
+ {
+ qWarning(dirIt->absoluteFilePath().toLocal8Bit().data());
+ if(addDirectoryToPreview(dirIt->absoluteFilePath()) == 0)
+ {
+ mSearchDirectoriesComboBox->addItem(dirIt->absoluteFilePath());
+ }
+ }
+}
Modified: branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.h
===================================================================
--- branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.h 2008-11-07 19:35:50 UTC (rev 9579)
+++ branches/advanced_printing_branch2/src/app/composer/qgscomposerpicturewidget.h 2008-11-07 20:57:40 UTC (rev 9580)
@@ -39,11 +39,16 @@
void on_mRotationSpinBox_valueChanged( double d );
void on_mWidthLineEdit_editingFinished();
void on_mHeightLineEdit_editingFinished();
+ void on_mPreviewListWidget_currentItemChanged( QListWidgetItem* current, QListWidgetItem* previous );
/**Sets the GUI elements to the values of mPicture*/
void setGuiElementValues();
private:
QgsComposerPicture* mPicture;
+ /**Add the icons of a directory to the preview. Returns 0 in case of success*/
+ int addDirectoryToPreview(const QString& path);
+ /**Add the icons of the standard directories to the preview*/
+ void addStandardDirectoriesToPreview();
};
#endif
Modified: branches/advanced_printing_branch2/src/ui/qgscomposerpicturewidgetbase.ui
===================================================================
--- branches/advanced_printing_branch2/src/ui/qgscomposerpicturewidgetbase.ui 2008-11-07 19:35:50 UTC (rev 9579)
+++ branches/advanced_printing_branch2/src/ui/qgscomposerpicturewidgetbase.ui 2008-11-07 20:57:40 UTC (rev 9580)
@@ -5,8 +5,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>274</width>
- <height>183</height>
+ <width>317</width>
+ <height>547</height>
</rect>
</property>
<property name="sizePolicy" >
@@ -20,6 +20,70 @@
</property>
<layout class="QGridLayout" >
<item row="0" column="0" >
+ <widget class="QGroupBox" name="mSearchDirectoriesGroupBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Search directories</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <layout class="QHBoxLayout" >
+ <item>
+ <widget class="QComboBox" name="mSearchDirectoriesComboBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="mAddDirectoryButton" >
+ <property name="text" >
+ <string>Add...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QGroupBox" name="mPreviewGroupBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title" >
+ <string>Preview</string>
+ </property>
+ <layout class="QGridLayout" >
+ <item row="0" column="0" >
+ <widget class="QListWidget" name="mPreviewListWidget" >
+ <property name="movement" >
+ <enum>QListView::Free</enum>
+ </property>
+ <property name="flow" >
+ <enum>QListView::LeftToRight</enum>
+ </property>
+ <property name="isWrapping" stdset="0" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" >
<layout class="QHBoxLayout" >
<property name="spacing" >
<number>6</number>
@@ -42,7 +106,7 @@
<item>
<widget class="QPushButton" name="mPictureBrowseButton" >
<property name="sizePolicy" >
- <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -60,7 +124,7 @@
</item>
</layout>
</item>
- <item row="1" column="0" >
+ <item row="3" column="0" >
<layout class="QGridLayout" >
<item row="0" column="0" >
<widget class="QLabel" name="textLabel3" >
@@ -121,19 +185,6 @@
</item>
</layout>
</item>
- <item row="2" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>20</width>
- <height>21</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11" />
More information about the QGIS-commit
mailing list