Index: scribus/Makefile.am
===================================================================
RCS file: /cvs/Scribus/scribus/Makefile.am,v
retrieving revision 1.37.2.77
diff -u -3 -p -u -r1.37.2.77 Makefile.am
--- scribus/Makefile.am	31 Jul 2005 13:12:50 -0000	1.37.2.77
+++ scribus/Makefile.am	1 Aug 2005 14:19:28 -0000
@@ -180,7 +180,9 @@ scribus_SOURCES = \
 	werktoolb.cpp	\
 	scribus.cpp	\
 	scribusapp.cpp	\
-	main.cpp
+	main.cpp	\
+	picturemanager.ui	\
+	picturesearch.ui
 
 INTERFACES =
 TRANSLATIONS =
Index: scribus/picstatus.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/picstatus.cpp,v
retrieving revision 1.12.2.12
diff -u -3 -p -u -r1.12.2.12 picstatus.cpp
--- scribus/picstatus.cpp	13 Jul 2005 16:56:12 -0000	1.12.2.12
+++ scribus/picstatus.cpp	1 Aug 2005 14:19:29 -0000
@@ -15,14 +15,17 @@
  *                                                                         *
  ***************************************************************************/
 
-#include "picstatus.h"
-#include "picstatus.moc"
 #include <qfileinfo.h>
 #include <qfiledialog.h>
 #include <qtoolbutton.h>
+#include <qpixmap.h>
 #include <qstringlist.h>
 #include <qtextstream.h>
+#include <qlistview.h>
 #include <qcursor.h>
+#include <qbutton.h>
+#include <qfont.h>
+
 #include <cstdio>
 #include "picsearch.h"
 #include "scribusdoc.h"
@@ -30,341 +33,600 @@
 #include "pageitem.h"
 #include "filesearch.h"
 #include "scribus.h"
+
 extern QPixmap loadIcon(QString nam);
 extern ScribusApp* ScApp;
 
-const unsigned short PicStatus::COL_FILENAME = 0;
-const unsigned short PicStatus::COL_PATH = 1;
-const unsigned short PicStatus::COL_PAGE = 2;
-const unsigned short PicStatus::COL_GOTO = 3;
-const unsigned short PicStatus::COL_PRINT = 4;
-const unsigned short PicStatus::COL_STATUS = 5;
-const unsigned short PicStatus::COL_SEARCH = 6;
-
-const QString PicStatus::trOK = PicStatus::tr("OK");
-const QString PicStatus::trMissing = PicStatus::tr("Missing");
-const QString PicStatus::trSearch = PicStatus::tr("Search");
-const QString PicStatus::trCancelSearch = PicStatus::tr("Cancel Search");
-const QString PicStatus::trGoto = PicStatus::tr("Goto");
+#include "picstatus.h"
+#include "picstatus.moc"
+
+// reimplement QCheckListItem, adding an internal QString value (m_Index) to each QListViewItem, 
+// which will be used to store the document or master index of the Picture Frame. Master items 
+// will have a "+" prepended to their m_Index string. That way, we can always know if a picture is on 
+// a master page or in the document.
+
+m_CheckListItem::m_CheckListItem (QListView *parent, const QString &text):
+                QCheckListItem(parent,text,QCheckListItem::CheckBox)
+{}
+
+void m_CheckListItem::stateChange (bool value)
+{
+        emit statusChange ( this, value);
+}
+
+
+
+PicStatus::PicStatus(QWidget* parent, ScribusDoc *docu, ScribusView *viewi)
+                : pictureManager( parent, "pic", false,Qt::WDestructiveClose )
+{
+	// The commented lines below reduce the font size by 2 points, making the dialog smaller, 
+	// maybe we could implement this for all palettes... commented in the meantime.
+
+	//QFont font(font());
+	//font.setPointSize(font.pointSize()-2);
+	//setFont(font);
+
+        doc = docu;
+        view = viewi;
+	pageItems=0;
+	masterItems=0;
+
+	// Some basic layout stuff for the image list...
+        pictureList->setSorting(1);
+
+	pictureList->setColumnAlignment (3,Qt::AlignHCenter);
+        pictureList->setColumnWidthMode (0,QListView::Manual);
+	pictureList->setColumnWidthMode (1,QListView::Manual);
+	pictureList->setColumnWidthMode (2,QListView::Manual);
+	pictureList->setColumnWidthMode (3,QListView::Manual);
+
+	pictureList->setColumnWidth (0,40);
+	pictureList->setColumnWidth (1,120);
+	pictureList->setColumnWidth (2,100);
+	pictureList->setColumnWidth (3,40);
+
+	pictureList->setResizeMode(QListView::LastColumn);
+
+	// Hack to move the print checkbox to the last column. QT currently doesn't allow an easy way to handle this for QCheckListItem
+
+	QHeader * h = pictureList->header(); 
+	h->moveSection(0,4);
+	pictureList->repaint();
+
+        // Initialize the timer. The image list is checked every 10 seconds for a change.
+	// There might be a better way to keep the list up to date (using signals emited by Image Frames, but 
+	// it currently would need much changes in scribus code)
+
+	watchTimer = new QTimer(this);
+        connect(watchTimer, SIGNAL(timeout()), this, SLOT(reloadList()));
+
+	// Create context popup menu for image items
+
+        ContextPopupMenu=new QPopupMenu(pictureList);
+ 	ContextPopupMenu->insertItem( tr("Show"),  this, SLOT(gotoPic()), CTRL+Key_H ,0);
+ 	ContextPopupMenu->insertItem( tr("Browse"),  this, SLOT(replacePic()), CTRL+Key_B ,1);
+        ContextPopupMenu->insertItem( tr("Search"), this, SLOT(searchPic()),    CTRL+Key_S ,2);
+ 	connect(pictureList,SIGNAL(contextMenuRequested( QListViewItem * , const QPoint &, int)),this,SLOT(showMenu(QListViewItem * , const QPoint &, int)));
+        
+	// Fill the list
+
+	reloadList();
+
+
+        connect(pictureList, SIGNAL(doubleClicked ( QListViewItem *, const QPoint &, int )), this, SLOT(gotoPic()));
+        connect(pictureList, SIGNAL(selectionChanged ()), this, SLOT(checkState()));
+        connect(showButton, SIGNAL(clicked()), this, SLOT(gotoPic()));
+        connect(searchButton, SIGNAL(clicked()), this, SLOT(searchPic()));
+        connect(browseButton, SIGNAL(clicked()), this, SLOT(replacePic()));
+}
+
 
 /*!
- \fn void PicStatus::PicStatus(QWidget* parent, ScribusDoc *docu, ScribusView *viewi)
- \author Franz Schmid
+ \fn void PicStatus::showMenu()
+ \author Jean-Baptiste Mardelle
  \date
- \brief Constructs a Dialog, which list all Images in the current Document. In this Dialog it is possible
-to search for missing Images.
- \param parent Pointer to parent window
- \param docu Pointer to the current Document
- \param viewi Pointer to the current View
- \retval None
+ \brief displays context menu on image item
+ \param None
+ \retval none
  */
+void PicStatus::showMenu(QListViewItem *it , const QPoint &, int)
+{
+// if user clicks in a blank area, don't display menu.
+if (!it) return;
+ContextPopupMenu->exec(QCursor::pos());
+}
 
-PicStatus::PicStatus(QWidget* parent, ScribusDoc *docu, ScribusView *viewi) :
-	QDialog( parent, "pic", true, 0 )
-{
-	uint p, i;
-	QString tmp;
-	setCaption( tr( "Manage Pictures" ) );
-	setIcon(loadIcon("AppIcon.png"));
-	doc = docu;
-	view = viewi;
-	ItemNrs.clear();
-	FlagsPic.clear();
-	PicStatusLayout = new QVBoxLayout( this );
-	PicStatusLayout->setSpacing( 6 );
-	PicStatusLayout->setMargin( 11 );
-
-	PicTable = new QTable( this, "PicTable" );
-	PicTable->setLeftMargin(0);
-	PicTable->verticalHeader()->hide();
-	PicTable->setNumCols( 7 );
-	Header = PicTable->horizontalHeader();
-	QString tmpc[] = { tr("Name"),  tr("Path"),  tr("Page"), " ",  tr("Print"),  tr("Status"), " "};
-	size_t ar = sizeof(tmpc) / sizeof(*tmpc);
-	for (uint a = 0; a < ar; ++a)
-		Header->setLabel(a, tmpc[a]);
-	Zeilen = 0;
-	for (i=0; i < doc->MasterItems.count(); ++i)
-	{
-		if (doc->MasterItems.at(i)->itemType() == PageItem::ImageFrame)
-		{
-			Zeilen++;
-			ItemNrs.append(i);
-		}
-	}
-	for (i=0; i<doc->Items.count(); ++i)
-	{
-		if (doc->Items.at(i)->itemType() == PageItem::ImageFrame)
-		{
-			Zeilen++;
-			ItemNrs.append(i);
-		}
-	}
-	PicTable->setNumRows(Zeilen);
-	int Zeilen2 = 0;
-	for (i=0; i < doc->MasterItems.count(); ++i)
-	{
-		if (doc->MasterItems.at(i)->itemType() == PageItem::ImageFrame)
-		{
-			QFileInfo fi = QFileInfo(doc->MasterItems.at(i)->Pfile);
-			PicTable->setText(Zeilen2, COL_FILENAME, fi.fileName());
-			PicTable->setText(Zeilen2, COL_PATH, fi.dirPath());
-			PicTable->setText(Zeilen2, COL_PAGE, doc->MasterItems.at(i)->OnMasterPage);
-			QToolButton *tb2 = new QToolButton(this, tmp.setNum(Zeilen2));
-			tb2->setText( trGoto);
-			tb2->setEraseColor(white);
-			PicTable->setColumnWidth(COL_GOTO, tb2->fontMetrics().width( trGoto)+10);
-			PicTable->setCellWidget(Zeilen2, COL_GOTO, tb2);
-			connect(tb2, SIGNAL(clicked()), this, SLOT(GotoPic()));
-			QCheckBox *cp2 = new QCheckBox(this, tmp.setNum(Zeilen2));
-			cp2->setText( tr("Yes"));
-			cp2->setChecked(doc->MasterItems.at(i)->printable());
-			cp2->setEraseColor(white);
-			FlagsPic.append(cp2);
-			PicTable->setCellWidget(Zeilen2, COL_PRINT, cp2);
-			connect(cp2, SIGNAL(clicked()), this, SLOT(PrintPic()));
-			if (doc->MasterItems.at(i)->PicAvail)
-				PicTable->setText(Zeilen2, COL_STATUS, trOK);
-			else
-				PicTable->setText(Zeilen2, COL_STATUS, trMissing);
-			QToolButton *tb = new QToolButton(this, tmp.setNum(Zeilen2));
-			tb->setText( trSearch);
-			PicTable->setColumnWidth(COL_SEARCH, tb->fontMetrics().width( trCancelSearch)+10);
-			tb->setEraseColor(white);
-			PicTable->setCellWidget(Zeilen2, COL_SEARCH, tb);
-			connect(tb, SIGNAL(clicked()), this, SLOT(SearchPic()));
-			Zeilen2++;
-		}
-	}
-	for (i=0; i< doc->Items.count(); ++i)
-	{
-		if (doc->Items.at(i)->itemType() == PageItem::ImageFrame)
-		{
-			QFileInfo fi = QFileInfo(doc->Items.at(i)->Pfile);
-			PicTable->setText(Zeilen2, COL_FILENAME, fi.fileName());
-			PicTable->setText(Zeilen2, COL_PATH, fi.dirPath());
-			p = doc->Items.at(i)->OwnPage;
-			PicTable->setText(Zeilen2, COL_PAGE, tmp.setNum(p+1));
-			QToolButton *tb2 = new QToolButton(this, tmp.setNum(Zeilen2));
-			tb2->setText( trGoto);
-			tb2->setEraseColor(white);
-			PicTable->setColumnWidth(COL_GOTO, tb2->fontMetrics().width( trGoto)+10);
-			PicTable->setCellWidget(Zeilen2, COL_GOTO, tb2);
-			connect(tb2, SIGNAL(clicked()), this, SLOT(GotoPic()));
-			QCheckBox *cp2 = new QCheckBox(this, tmp.setNum(Zeilen2));
-			cp2->setText( tr("Yes"));
-			cp2->setChecked(doc->Items.at(i)->printable());
-			cp2->setEraseColor(white);
-			FlagsPic.append(cp2);
-			PicTable->setCellWidget(Zeilen2, COL_PRINT, cp2);
-			connect(cp2, SIGNAL(clicked()), this, SLOT(PrintPic()));
-			if (doc->Items.at(i)->PicAvail)
-				PicTable->setText(Zeilen2, COL_STATUS, trOK);
-			else
-				PicTable->setText(Zeilen2, COL_STATUS, trMissing);
-			QToolButton *tb = new QToolButton(this, tmp.setNum(Zeilen2));
-			tb->setText( trSearch);
-			PicTable->setColumnWidth(COL_SEARCH, tb->fontMetrics().width( trCancelSearch)+10);
-			tb->setEraseColor(white);
-			PicTable->setCellWidget(Zeilen2, COL_SEARCH, tb);
-			connect(tb, SIGNAL(clicked()), this, SLOT(SearchPic()));
-			Zeilen2++;
-		}
-	}
 
-	PicTable->adjustColumn(COL_FILENAME);
-	PicTable->adjustColumn(COL_PATH);
-	PicTable->adjustColumn(COL_PAGE);
-	PicTable->adjustColumn(COL_PRINT);
-	PicTable->adjustColumn(COL_STATUS);
-	PicTable->setSorting(false);
-	PicTable->setSelectionMode(QTable::NoSelection);
-	PicTable->setColumnMovingEnabled(false);
-	PicTable->setRowMovingEnabled(false);
-	Header->setMovingEnabled(false);
-	PicTable->setColumnReadOnly(COL_FILENAME, true);
-	PicTable->setColumnReadOnly(COL_PATH, true);
-	PicTable->setColumnReadOnly(COL_PAGE, true);
-	PicTable->setColumnReadOnly(COL_STATUS, true);
-	PicStatusLayout->addWidget( PicTable );
-
-	Layout2 = new QHBoxLayout;
-	Layout2->setSpacing( 3 );
-	Layout2->setMargin( 0 );
-	QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
-	Layout2->addItem( spacer );
-
-	OkB = new QPushButton( tr( "OK" ), this, "OkB" );
-	Layout2->addWidget( OkB );
-	PicStatusLayout->addLayout( Layout2 );
+/*!
+ \fn void PicStatus::checkAvail()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief checks if the picture is currently available
+ \param None
+ \retval bool
+ */
+bool PicStatus::checkAvail()
+{
+QString m=static_cast<m_CheckListItem*>(pictureList->currentItem())->m_Index;
+        if (m.startsWith("+")) {  // check if it is a master item
+                if (doc->MasterItems.at(m.toUInt())->PicAvail)
+                        return true;
+        } else if (doc->DocItems.at(m.toUInt())->PicAvail)
+                return true;
+return false;
+}
+
 
-	// signals and slots connections
-	connect( OkB, SIGNAL( clicked() ), this, SLOT( accept() ) );
+/*!
+ \fn void PicStatus::checkState()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief Enable / disable menu entries depending on selected image
+ \param None
+ \retval None
+ */
+void PicStatus::checkState()
+{
+if (!pictureList->currentItem()) return;
+bool isAvail=checkAvail();
+searchButton->setEnabled(!isAvail);
+ContextPopupMenu->setItemEnabled(2,!isAvail);
 }
 
+
+
 /*!
- \fn void PicStatus::GotoPic()
+ \fn void PicStatus::gotoPic()
  \author Franz Schmid
  \date
  \brief Moves to the Page containing the selected Image.
  \param None
  \retval None
  */
-void PicStatus::GotoPic()
+void PicStatus::gotoPic()
 {
-	QString pageText = PicTable->text(QString(sender()->name()).toInt(), 2);
-	bool ok = false;
-	int pageNum = pageText.toInt(&ok);
-	if (doc->masterPageMode)
-		ScApp->ActWin->muster->close();
-	if (!ok)
-		emit selectMasterPage(pageText);
-	else
-		emit selectPage(pageNum-1);
+        if (!pictureList->currentItem())
+                return;
+
+        QString pageText = pictureList->currentItem()->text(3);
+        QString ItNr = static_cast<m_CheckListItem*>(pictureList->currentItem())->m_Index;
+
+	// If it is a master item, start master mode then select item. If the item doesn't exist anymore 
+	// (was deleted in the meantime), reload the picture list.
+
+        if (ItNr.startsWith("+")) {
+                ScApp->manageMasterPages(pageText);
+		if (!doc->MasterItems.at(ItNr.toUInt())) reloadList();
+		else view->SelectItem(doc->MasterItems.at(ItNr.toUInt()), true, true);
+        } 
+	// if it is a document item, go to appropriate page then select item.
+	else {
+		if (doc->masterPageMode) ScApp->ActWin->muster->close();
+                view->Deselect(true);
+                view->GotoPage(pageText.toInt()-1);
+		if (!doc->DocItems.at(ItNr.toUInt())) reloadList();
+                else view->SelectItem(doc->DocItems.at(ItNr.toUInt()), true, true);
+        }
 }
 
+
 /*!
- \fn void PicStatus::SearchPic()
+ \fn void PicStatus::PrintPic()
  \author Franz Schmid
  \date
- \brief Searches for the given Picture. Displays a Dialog when more than one Picture is found.
+ \brief Enables or disables printing of the selected Image.
  \param None
  \retval None
  */
-void PicStatus::SearchPic()
+void PicStatus::printPic(m_CheckListItem* item, bool isOn)
 {
-	// FIXME: This is a pretty ugly hack IMO - carried over from the old
-	// SearchPic. Table handling needs work.
-	unsigned int row = QString(sender()->name()).toUInt();
-	QString fileName = PicTable->text(row, 0);
-	// Set up the search, then return to the event loop until it notifies us
-	// that it's done.
-	// Note: search will be deleted when this PicStatus is, so there's no
-	// need to worry about cleanup.
-	FileSearch* search = new FileSearch(this, fileName);
-	Q_CHECK_PTR(search);
-	connect(search,
-			SIGNAL(searchComplete(const QStringList&, const QString&)),
-			SLOT(SearchPicFinished(const QStringList&, const QString&)));
-	connect(search, SIGNAL(searchAborted(bool)), SLOT(SearchPicAborted(bool)));
-	// Set up the UI to let the user cancel the search, then start it
-	setSearchButton(row, true, search);
-	search->start();
+        QString ItNr = item->m_Index;
+	if (ItNr.startsWith("+"))
+                doc->MasterItems.at(ItNr.toUInt())->setPrintable(isOn);
+        else
+                doc->DocItems.at(ItNr.toUInt())->setPrintable(isOn);
 }
 
-void PicStatus::SearchPicAborted(bool userCancelled)
+
+/*!
+ \fn void PicStatus::replacePic()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief replace a current image with another file
+ \param None
+ \retval None
+ */
+void PicStatus::replacePic()
 {
-	const FileSearch* search = dynamic_cast<const FileSearch*>(sender());
-	Q_ASSERT(search);
-	// Restore button to normal "search"
-	unsigned int row = getRowByFileName(search->fileName());
-	setSearchButton(row, false, search);
-	// and inform user if it it wasn't them who asked to stop it.
-	if (!userCancelled)
-		// A running search failed
-		QMessageBox::warning(this, tr("Scribus - Image Search"),
-				tr("The search failed: %1").arg(search->failReason()),
-				QMessageBox::Ok|QMessageBox::Default|QMessageBox::Escape,
-				QMessageBox::NoButton);
+        if (!pictureList->currentItem())
+                return;
+        watchTimer->stop();
+
+	// Select the image in the view
+        gotoPic();
+
+	// Open file dialog
+        QString fn=ScApp->slotImageOpen(pictureList->currentItem()->text(2));
+        if (!fn.isEmpty()) {
+		// Load image without reinit, so that we keep the picture properties (position, zoom,...)
+                view->LoadPict(fn,static_cast<m_CheckListItem*>(pictureList->currentItem())->m_Index.toUInt(),false,false);
+                view->DrawNew();
+                reloadItem(pictureList->currentItem());
+        }
+        watchTimer->start(10000, true);
 }
 
-void PicStatus::SearchPicFinished(const QStringList & matches, const QString & fileName)
+
+/*!
+ \fn void PicStatus::reloadItem()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief reload only current item in the list of images
+ \param None
+ \retval None
+ */
+void PicStatus::reloadItem(QListViewItem *item)
 {
-	const FileSearch* search = dynamic_cast<const FileSearch*>(sender());
-	Q_ASSERT(search);
-	// First, find out what row the search result is about
-	unsigned int row = getRowByFileName(fileName);
-	// Restore the gui to "search"
-	setSearchButton(row, false, search);
-	// Then display a dialog for the user to select images from
-	// if one or more were found
-	if (matches.count() == 0)
+        uint p;
+        QString tmp;
+        QString ItNr = static_cast<m_CheckListItem*>(item)->m_Index;
+	if (ItNr.startsWith("+"))
 	{
-		QMessageBox::information(this, tr("Scribus - Image Search"),
-				tr("No images named \"%1\" were found.").arg(fileName),
-				QMessageBox::Ok|QMessageBox::Default|QMessageBox::Escape,
-				QMessageBox::NoButton);
+	QFileInfo fi = QFileInfo(doc->MasterItems.at(ItNr.toUInt())->Pfile);
+        if (doc->MasterItems.at(ItNr.toUInt())->printable())
+                static_cast<QCheckListItem*>(item)->setState(QCheckListItem::On);
+        else
+                static_cast<QCheckListItem*>(item)->setState(QCheckListItem::Off);
+        item->setText(1,fi.fileName());
+        item->setText(2,fi.dirPath());
+        item->setText(3,doc->MasterItems.at(ItNr.toUInt())->OnMasterPage);
+        if (doc->MasterItems.at(ItNr.toUInt())->PicAvail)
+                item->setPixmap(1,NULL);
+        else
+                item->setPixmap(1,loadIcon("pic_miss.png"));
 	}
 	else
 	{
-		PicSearch *dia = new PicSearch(this, fileName, matches);
-		if (dia->exec())
-		{
-			Q_ASSERT(!dia->Bild.isEmpty());
-			loadPictByRow(dia->Bild, row);
-			view->DrawNew();
-		}
-		delete dia;
+        QFileInfo fi = QFileInfo(doc->DocItems.at(ItNr.toUInt())->Pfile);
+        p = doc->DocItems.at(ItNr.toUInt())->OwnPage;
+        if (doc->DocItems.at(ItNr.toUInt())->printable())
+                static_cast<QCheckListItem*>(item)->setState(QCheckListItem::On);
+        else
+                static_cast<QCheckListItem*>(item)->setState(QCheckListItem::Off);
+        item->setText(1,fi.fileName());
+        item->setText(2,fi.dirPath());
+        item->setText(3,tmp.setNum(p+1));
+        if (doc->DocItems.at(ItNr.toUInt())->PicAvail)
+                item->setPixmap(1,NULL);
+        else
+                item->setPixmap(1,loadIcon("pic_miss.png"));
 	}
 }
 
-bool PicStatus::loadPictByRow(const QString & newFilePath, unsigned int row)
+/*!
+ \fn void PicStatus::SearchPic()
+ \author Franz Schmid
+ \date
+ \brief Searches for the given Picture. Displays a Dialog when more than one Picture is found.
+ \param None
+ \retval None
+ */
+void PicStatus::searchPic()
 {
-	unsigned int itemNumber = ItemNrs[row];
-	// FIXME: error checking
-	view->LoadPict(newFilePath, itemNumber);
-	// WTF?
-	bool isMaster = PicTable->cellWidget(row, COL_GOTO)->isEnabled();
-	PageItem* item = isMaster ? doc->Items.at(itemNumber) : doc->MasterItems.at(itemNumber);
-	// Set missing flag again. Since we do no error checking of the load,
-	// missing will generally mean "failed to load".
-	PicTable->setText(row, COL_STATUS, item->PicAvail ? trOK : trMissing);
-	PicTable->setText(row, COL_PATH, QFileInfo(newFilePath).dirPath(true));
-	return item->PicAvail;
-}
-
-void PicStatus::setSearchButton(int row, bool toCancel, const FileSearch* searcher)
-{
-	QWidget* item = PicTable->cellWidget(row, COL_SEARCH);
-	Q_ASSERT(item);
-	QToolButton* tb = dynamic_cast<QToolButton*>(item);
-	Q_ASSERT(tb);
-	if (toCancel)
-	{
-		tb->setText( trCancelSearch );
-		disconnect(tb, SIGNAL(clicked()), this, SLOT(SearchPic()));
-		connect(tb, SIGNAL(clicked()), searcher, SLOT(cancel()));
-	}
+        watchTimer->stop();
+        QString fileName = pictureList->currentItem()->text(1);
+        searchParams=new pictureSearch(this);
+        searchParams->filePath->setText(pictureList->currentItem()->text(2));
+        searchParams->imageName->setText(tr("Search for %1 in: ").arg(fileName));
+        connect(searchParams,SIGNAL(startSearch(QString,bool,bool)),this,SLOT(startSearch(QString,bool,bool)));
+        connect(searchParams,SIGNAL(stopSearch()),this,SLOT(stopSearch()));
+        connect(searchParams,SIGNAL(replaceImage(QString,bool)),this,SLOT(replaceImage(QString,bool)));
+        searchParams->exec();
+        view->DrawNew();
+	reParseList();
+}
+
+
+/*!
+ \fn void PicStatus::replaceImage()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief replace missing image(s) with found files
+ \param None
+ \retval None
+ */
+void PicStatus::replaceImage(QString newUrl,bool replaceAll)
+{
+	uint i;
+	// if replaceAll, check for all missing pictures in the chosen directory
+
+        if (replaceAll) {
+		
+                QString newpath=QFileInfo(newUrl).dirPath(true)+"/";
+                QDir dir(newUrl);
+
+		// Parse all list to find missing pictures
+                QListViewItem * child = pictureList->firstChild();
+                while( child ) {
+                        QString ItN=static_cast<m_CheckListItem*>(child)->m_Index;
+
+			// check if it is a Master item
+			if (ItN.startsWith("+"))
+			{
+			// Check if picture is missing and its name is found in the selected directory
+			if ((!doc->MasterItems.at(ItN.toUInt())->PicAvail) && (!dir.entryInfoList(child->text(1), QDir::Files))) 
+				{
+					if (!doc->masterPageMode) ScApp->manageMasterPages(child->text(3));
+					view->LoadPict(newpath+child->text(1),ItN.toUInt(),false,false);
+                                        i++;
+                                }
+			}
+			else if ((!doc->DocItems.at(ItN.toUInt())->PicAvail) && (!dir.entryInfoList(child->text(1), QDir::Files)))
+				{
+					if (doc->masterPageMode) ScApp->ActWin->muster->close();
+					view->LoadPict(newpath+child->text(1),ItN.toUInt(),false,false);
+                                        i++;
+                                }
+			
+                        child = child->nextSibling();
+                }
+                if (i>1) {
+		// if other missing images were found, restore the previous working state (document or master mode)
+
+                if (static_cast<m_CheckListItem*>(pictureList->currentItem())->m_Index.startsWith("+"))
+		{
+			if (!doc->masterPageMode) ScApp->manageMasterPages(pictureList->currentItem()->text(3));
+		}
+		else if (doc->masterPageMode) ScApp->ActWin->muster->close();
+		} 
+		else
+                        QMessageBox::warning(this, tr("Scribus - Image Search"),
+                                             tr("No other missing images found in:\n%1").arg(newpath),
+                                             QMessageBox::Ok|QMessageBox::Default|QMessageBox::Escape,
+                                             QMessageBox::NoButton);
+        }
 	else
 	{
-		tb->setText(trSearch);
-		disconnect(tb, SIGNAL(clicked()), searcher, SLOT(cancel()));
-		connect(tb, SIGNAL(clicked()), SLOT(SearchPic()));
+	// replace only the current image
+        view->LoadPict(newUrl, static_cast<m_CheckListItem*>(pictureList->currentItem())->m_Index.toUInt(),false,false);
 	}
+
+}
+
+
+/*!
+ \fn void PicStatus::hasChanged()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief check if some image was inserted or removed
+ \param None
+ \retval None
+ */
+bool PicStatus::hasChanged()
+{
+
+// check if any image was inserted or removed from document or master, 
+// so that we don't reload the entire list if nothing changed.
+uint m,i;
+m=0;
+
+for (i=0; i<doc->DocItems.count(); ++i)
+{
+	if (doc->DocItems.at(i)->itemType() == PageItem::ImageFrame && !doc->DocItems.at(i)->Pfile.isEmpty())
+		m++;
 }
+if (m != pageItems) return true;
 
-int PicStatus::getRowByFileName(const QString & fileName)
+for (i=0; i < doc->MasterItems.count(); ++i)
 {
-	bool found = false;
-	unsigned int row;
-	// This cast is OK since numRows must logically return >=0
-	for (row = 0; row < static_cast<unsigned int>(PicTable->numRows()); ++row)
+	if (doc->MasterItems.at(i)->itemType() == PageItem::ImageFrame && !doc->MasterItems.at(i)->Pfile.isEmpty())
+		m++;
+}
+if (m != masterItems) return true;
+
+return false;
+}
+
+
+/*!
+ \fn void PicStatus::reParseList()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief Reload each item in the list
+ \param None
+ \retval None
+ */
+void PicStatus::reParseList()
+{
+// Parse all list and reload values
+
+QListViewItem *item = pictureList->firstChild();
+        while (item) {
+		reloadItem(item);
+                item = item->nextSibling();
+        }
+checkState();
+watchTimer->start(10000, true);
+}
+
+
+/*!
+ \fn void PicStatus::reloadList()
+ \author Jean-Baptiste Mardelle
+ \date
+ \brief Rebuild the entire list
+ \param None
+ \retval None
+ */
+void PicStatus::reloadList()
+{
+// clear list and rebuild it from scratch
+
+        watchTimer->stop();
+	if (!hasChanged()) 
 	{
-		if ( PicTable->text(row, 0) == fileName )
-		{
-			found = true;
-			break;
-		}
+		reParseList();
+		return;
 	}
-	Q_ASSERT(found);
-	return row;
+	
+        uint p, i;
+        QString tmp;
+        QString lastSelected;
+
+	// if the list was not empty, remember currently selected item
+        if (pictureList->currentItem()) 
+                lastSelected=static_cast<m_CheckListItem*>(pictureList->currentItem())->m_Index;
+
+	// clear all items in the list
+        pictureList->clear();
+	pageItems=0;
+	masterItems=0;
+
+	// Parse all Master items and look for non empty image frames
+        for (i=0; i < doc->MasterItems.count(); ++i) {
+                if (doc->MasterItems.at(i)->itemType() == PageItem::ImageFrame && !doc->MasterItems.at(i)->Pfile.isEmpty()) {
+
+			// create new entry in the picture list
+                        QFileInfo fi = QFileInfo(doc->MasterItems.at(i)->Pfile);
+                        m_CheckListItem *item = new m_CheckListItem( pictureList, QString::null);
+                        if (doc->MasterItems.at(i)->printable())
+                                item->setState(QCheckListItem::On);
+                        else
+                                item->setState(QCheckListItem::Off);
+
+                        item->setText(1,fi.fileName());
+                        item->setText(2,fi.dirPath());
+                        item->setText(3,doc->MasterItems.at(i)->OnMasterPage);
+
+			// If picture is missing, display a "missing" image
+                        if (!doc->MasterItems.at(i)->PicAvail)
+                                item->setPixmap(1,loadIcon("pic_miss.png"));
+
+			// It is a master item, so we prepend a "+" sign to the index to make a difference.
+                        item->m_Index=QString("+")+tmp.setNum(i);
+                        connect(item,SIGNAL(statusChange(m_CheckListItem*, bool )),this,SLOT(printPic(m_CheckListItem*, bool )));
+			masterItems++;
+
+                }
+        }
+
+        for (i=0; i< doc->DocItems.count(); ++i) {
+                if ((doc->DocItems.at(i)->itemType() == PageItem::ImageFrame) && !doc->DocItems.at(i)->Pfile.isEmpty()) {
+                        QFileInfo fi = QFileInfo(doc->DocItems.at(i)->Pfile);
+                        p = doc->DocItems.at(i)->OwnPage;
+                        m_CheckListItem *item = new m_CheckListItem (pictureList, QString::null);
+                        if (doc->DocItems.at(i)->printable())
+                                item->setState(QCheckListItem::On);
+                        else
+                                item->setState(QCheckListItem::Off);
+                        item->setText(1,fi.fileName());
+                        item->setText(2,fi.dirPath());
+                        item->setText(3,tmp.setNum(p+1));
+
+			// If picture is missing, display a "missing" image
+                        if (!doc->DocItems.at(i)->PicAvail)
+                                item->setPixmap(1,loadIcon("pic_miss.png"));
+                        item->m_Index=tmp.setNum(i);
+                        connect(item,SIGNAL(statusChange(m_CheckListItem*, bool )),this,SLOT(printPic(m_CheckListItem*, bool )));
+			pageItems++;
+                }
+        }
+
+	// If an item was selected before rebuilding the list, select it now.
+        if (pictureList->firstChild()) {
+                if (!lastSelected.isEmpty())
+                        pictureList->setSelected(selectItem(lastSelected),true);
+                else
+                        pictureList->setSelected(pictureList->firstChild(),true);
+        pictureList->ensureItemVisible (pictureList->currentItem());
+	}
+
+	// start parsing timer again
+        watchTimer->start(10000, true);
 }
 
+
 /*!
- \fn void PicStatus::PrintPic()
- \author Franz Schmid
+ \fn void PicStatus::selectItem()
+ \author Jean-Baptiste Mardelle
  \date
- \brief Enables or disables printing of the selected Image.
+ \brief Select an item in the list
  \param None
  \retval None
  */
-void PicStatus::PrintPic()
+QListViewItem* PicStatus::selectItem(QString mIndex)
 {
-	uint ZNr = QString(sender()->name()).toUInt();
-	uint ItNr = ItemNrs[ZNr];
-//	uint PgNr = PicTable->text(ZNr, 2).toInt()-1;
-	if (PicTable->cellWidget(ZNr, 3)->isEnabled())
-		doc->Items.at(ItNr)->setPrintable(FlagsPic.at(ZNr)->isChecked());
-	else
-		doc->MasterItems.at(ItNr)->setPrintable(FlagsPic.at(ZNr)->isChecked());
+        QListViewItem *item = pictureList->firstChild();
+        while (item) {
+                if ((static_cast<m_CheckListItem*>(item)->m_Index == mIndex))
+			return item;
+                item = item->nextSibling();
+        }
+	return pictureList->firstChild();
+}
+
+void PicStatus::stopSearch()
+{
+        if (search)
+                delete search;
+}
+
+void PicStatus::startSearch(QString url,bool recursive,bool replace)
+{
+        int rec;
+        if (recursive)
+                rec=-1;
+        else
+                rec=0;
+        search = new FileSearch(this, pictureList->currentItem()->text(1),url,rec);
+        Q_CHECK_PTR(search);
+        connect(search,
+                SIGNAL(searchComplete(const QStringList&, const QString&)),
+                SLOT(SearchPicFinished(const QStringList&, const QString&)));
+        connect(search, SIGNAL(searchAborted(bool)), SLOT(SearchPicAborted(bool)));
+        // Set up the UI to let the user cancel the search, then start it
+        //	setSearchButton(row, true, search);
+        search->start();
 }
+
+void PicStatus::SearchPicAborted(bool userCancelled)
+{
+        const FileSearch* search = dynamic_cast<const FileSearch*>(sender());
+        Q_ASSERT(search);
+        // Restore button to normal "search"
+        // and inform user if it it wasn't them who asked to stop it.
+        if (!userCancelled)
+                // A running search failed
+                QMessageBox::warning(this, tr("Scribus - Image Search"),
+                                     tr("The search failed: %1").arg(search->failReason()),
+                                     QMessageBox::Ok|QMessageBox::Default|QMessageBox::Escape,
+                                     QMessageBox::NoButton);
+        if (searchParams) {
+                searchParams->searchButton->setEnabled(true);
+                searchParams->stopButton->setEnabled(false);
+        }
+}
+
+void PicStatus::SearchPicFinished(const QStringList & matches, const QString & fileName)
+{
+        const FileSearch* search = dynamic_cast<const FileSearch*>(sender());
+        Q_ASSERT(search);
+
+        // Display a dialog for the user to select images from
+        // if one or more were found
+        if (matches.count() == 0) {
+                QMessageBox::information(this, tr("Scribus - Image Search"),
+                                         tr("No images named \"%1\" were found.").arg(fileName),
+                                         QMessageBox::Ok|QMessageBox::Default|QMessageBox::Escape,
+                                         QMessageBox::NoButton);
+                searchParams->searchButton->setEnabled(true);
+                searchParams->stopButton->setEnabled(false);
+        } else if (searchParams) {
+                searchParams->fileList->insertStringList(matches);
+                searchParams->fileList->setCurrentItem(0);
+                searchParams->searchButton->setEnabled(true);
+                searchParams->replaceButton->setEnabled(true);
+                searchParams->stopButton->setEnabled(false);
+        }
+}
+
Index: scribus/picstatus.h
===================================================================
RCS file: /cvs/Scribus/scribus/picstatus.h,v
retrieving revision 1.2.2.7
diff -u -3 -p -u -r1.2.2.7 picstatus.h
--- scribus/picstatus.h	13 Jul 2005 16:56:12 -0000	1.2.2.7
+++ scribus/picstatus.h	1 Aug 2005 14:19:29 -0000
@@ -1,5 +1,17 @@
-#ifndef PICSTATUS_H
-#define PICSTATUS_H
+//
+// C++ Interface: PicStatus
+//
+// Description: 
+//
+//
+// Author: Franz Schmid <Franz.Schmid@altmuehlnet.de>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef PicStatus_H
+#define PicStatus_H
 
 #include <qdialog.h>
 #include <qpushbutton.h>
@@ -14,57 +26,60 @@ class ScribusDoc;
 class ScribusView;
 class FileSearch;
 
-class PicStatus : public QDialog
+#include "picturemanager.h"
+#include "picturesearch.h"
+
+class m_CheckListItem : public QObject,public QCheckListItem {
+  Q_OBJECT
+
+public:
+  m_CheckListItem( QListView *parent, const QString &text);
+  QString     m_Index;
+
+public slots:
+   void stateChange (bool);
+signals:
+   void statusChange (m_CheckListItem*, bool);
+};
+
+class PicStatus : public pictureManager
 { 
     Q_OBJECT
 
 public:
     PicStatus(QWidget* parent, ScribusDoc *docu, ScribusView *viewi);
-    ~PicStatus() {};
+    ~PicStatus(){};
 
-    QTable* PicTable;
-    QHeader *Header;
-    QPushButton* CancelB;
-    QPushButton* OkB;
+private:
     ScribusDoc *doc;
     ScribusView *view;
-    int Zeilen;
-    QPtrList<QCheckBox> FlagsPic;
-    QValueList<uint> ItemNrs;
+    FileSearch* search;
+    pictureSearch *searchParams;
+    QTimer *watchTimer;
+    int pageItems,masterItems;
+    QPopupMenu *ContextPopupMenu;
 
 private slots:
-    void GotoPic();
-    void SearchPic();
-    void SearchPicAborted(bool userCancelled);
+    void gotoPic();
+    void replacePic();
+    void searchPic();
     void SearchPicFinished(const QStringList & matches, const QString & fileName);
-    void PrintPic();
+    void SearchPicAborted(bool userCancelled);
+    void printPic(m_CheckListItem* item, bool isOn);
+    void startSearch(QString url,bool recursive,bool replace);
+    void stopSearch();
+    void replaceImage(QString newUrl,bool replaceAll);
+    void reloadList();
+    void reloadItem(QListViewItem *item);
+    void checkState();
+    QListViewItem* selectItem(QString mIndex);
+    void reParseList();
+    bool hasChanged();
+    void showMenu(QListViewItem *it , const QPoint &, int);
+    bool checkAvail();
 
 protected:
-    QVBoxLayout* PicStatusLayout;
-    QHBoxLayout* Layout2;
 
-	// Return the row index for the row containing the specified
-	// filename. Behavour is undefined if the filename is not in the
-	// table.
-	int getRowByFileName(const QString& fileName);
-
-	// Toggle a searc button in the table between "Search" and "Cancel Search",
-	// fixing signal connections as well.
-	void PicStatus::setSearchButton(int row, bool toCancel, const FileSearch* searcher);
-
-	// Load the image specified into the PageItem shown on row `row'
-	bool PicStatus::loadPictByRow(const QString & newFilePath, unsigned int row);
-
-	// Column indexes
-	static const unsigned short COL_FILENAME;
-	static const unsigned short COL_PATH;
-	static const unsigned short COL_PAGE;
-	static const unsigned short COL_GOTO;
-	static const unsigned short COL_PRINT;
-	static const unsigned short COL_STATUS;
-	static const unsigned short COL_SEARCH;
-
-	// Common translated strings
 	static const QString trOK;
 	static const QString trMissing;
 	static const QString trSearch;
@@ -72,8 +87,10 @@ protected:
 	static const QString trGoto;
 
 signals:
-	void selectPage(int);
+	void selectPage(int,int);
 	void selectMasterPage(QString);
 };
 
-#endif // PICSTATUS_H
+
+
+#endif // PicStatus_H
Index: scribus/scribus.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/scribus.cpp,v
retrieving revision 1.228.2.458
diff -u -3 -p -u -r1.228.2.458 scribus.cpp
--- scribus/scribus.cpp	31 Jul 2005 20:14:57 -0000	1.228.2.458
+++ scribus/scribus.cpp	1 Aug 2005 14:19:35 -0000
@@ -76,7 +76,6 @@
 #include "editformats.h"
 #include "muster.h"
 #include "applytemplatedialog.h"
-#include "picstatus.h"
 #include "customfdialog.h"
 #include "cmsprefs.h"
 #include "annot.h"
@@ -144,8 +143,10 @@
 #include "marginWidget.h"
 #include "margindialog.h"
 #include "prefsmanager.h"
+#include "picstatus.h"
 #include "pagelayout.h"
 
+
 using namespace std;
 
 #ifdef HAVE_CMS
@@ -4615,14 +4616,9 @@ bool ScribusApp::loadDoc(QString fileNam
 	return ret;
 }
 
-void ScribusApp::slotFileOpen()
+QString ScribusApp::slotImageOpen(QString path)
 {
-	if (view->SelItem.count() != 0)
-	{
-		PageItem *currItem = view->SelItem.at(0);
-		if (currItem->itemType() == PageItem::ImageFrame)
-		{
-			QString formats = "";
+QString formats = "";
 			QString formatD = tr("All Supported Formats")+" (";
 			QString form1 = "";
 			QString form2 = "";
@@ -4658,12 +4654,27 @@ void ScribusApp::slotFileOpen()
 			formatD += " *.eps *.EPS *.pdf *.PDF";
 			formatD += ");;"+formats;
 			QString docDir = ".";
-			QString prefsDocDir=prefsManager->documentDir();
-			if (!prefsDocDir.isEmpty())
-				docDir = dirs->get("images", prefsDocDir);
+			if (!path.isEmpty()) docDir=path;
 			else
-				docDir = dirs->get("images", ".");
+			{
+				QString prefsDocDir=prefsManager->documentDir();
+				if (!prefsDocDir.isEmpty())
+					docDir = dirs->get("images", prefsDocDir);
+				else
+					docDir = dirs->get("images", ".");
+			}
 			QString fileName = CFileDialog( docDir, tr("Open"), formatD, "", true);
+return fileName;
+}
+
+void ScribusApp::slotFileOpen()
+{
+	if (view->SelItem.count() != 0)
+	{
+		PageItem *currItem = view->SelItem.at(0);
+		if (currItem->itemType() == PageItem::ImageFrame)
+		{
+		QString fileName = slotImageOpen();
 			if (!fileName.isEmpty())
 			{
 				dirs->set("images", fileName.left(fileName.findRev("/")));
@@ -8989,13 +9000,10 @@ void ScribusApp::restoreUngroupping(Simp
 
 void ScribusApp::StatusPic()
 {
-	if (HaveDoc)
+	if (HaveDoc && !picManager)
 	{
-		PicStatus *dia = new PicStatus(this, doc, view);
-		connect(dia, SIGNAL(selectPage(int)), this, SLOT(SelectFromOutlS(int)));
-		connect(dia, SIGNAL(selectMasterPage(QString)), this, SLOT(manageMasterPages(QString)));
-		dia->exec();
-		delete dia;
+		picManager = new PicStatus(this, doc, view);
+		picManager->show();
 	}
 }
 
Index: scribus/scribus.h
===================================================================
RCS file: /cvs/Scribus/scribus/scribus.h,v
retrieving revision 1.60.2.127
diff -u -3 -p -u -r1.60.2.127 scribus.h
--- scribus/scribus.h	31 Jul 2005 20:14:57 -0000	1.60.2.127
+++ scribus/scribus.h	1 Aug 2005 14:19:35 -0000
@@ -89,6 +89,7 @@ class ActionManager;
 class AlignDistributePalette;
 class TOCGenerator;
 class PrefsManager;
+class PicStatus;
 
 /**
   * This Class is the base class for your application. It sets up the main
@@ -177,7 +178,9 @@ public:
 	double DispX;
 	double DispY;
 	int HaveDoc;
+
 	QString noneString;
+
 	PrefsContext* dirs;
 	/** view is the main widget which represents your working area. The View
 	 * class should handle all events of the view widget.  It is kept empty so
@@ -281,6 +284,8 @@ public slots:
 	bool slotFileNew();
 	bool slotPageImport();
 	bool loadPage(QString fileName, int Nr, bool Mpa);
+	/** return the name of an image file */
+	QString slotImageOpen(QString path = QString::null);
 	/** open a document */
 	void slotFileOpen();
 	void slotFileAppend();
@@ -551,6 +556,7 @@ private:
 	int DocNr;
 	UndoManager *undoManager;
 	PrefsManager *prefsManager;
+	PicStatus *picManager;
 	bool PrinterUsed;
 	struct PDe {
 					QString Pname;
Index: scribus/scribusview.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/scribusview.cpp,v
retrieving revision 1.76.2.266
diff -u -3 -p -u -r1.76.2.266 scribusview.cpp
--- scribus/scribusview.cpp	31 Jul 2005 20:14:57 -0000	1.76.2.266
+++ scribus/scribusview.cpp	1 Aug 2005 14:19:42 -0000
@@ -10890,12 +10890,12 @@ void ScribusView::editExtendedImagePrope
 	}
 }
 
-void ScribusView::LoadPict(QString fn, int ItNr, bool reload)
+void ScribusView::LoadPict(QString fn, int ItNr, bool reload, bool reinit)
 {
 	loadPict(fn, Doc->Items.at(ItNr), reload);
 }
 
-void ScribusView::loadPict(QString fn, PageItem *pageItem, bool reload)
+void ScribusView::loadPict(QString fn, PageItem *pageItem, bool reload, bool reinit)
 {
 	bool dummy;
 	QFileInfo fi = QFileInfo(fn);
@@ -10933,7 +10933,7 @@ void ScribusView::loadPict(QString fn, P
 		Item->PicAvail = true;
 		Item->PicArt = true;
 		Item->BBoxX = 0;
-		if (Item->Pfile != fn)
+		if (Item->Pfile != fn && reinit)
 		{
 			Item->LocalScX = 72.0 / xres;
 			Item->LocalScY = 72.0 / yres;
Index: scribus/scribusview.h
===================================================================
RCS file: /cvs/Scribus/scribus/scribusview.h,v
retrieving revision 1.14.2.64
diff -u -3 -p -u -r1.14.2.64 scribusview.h
--- scribus/scribusview.h	28 Jul 2005 21:38:57 -0000	1.14.2.64
+++ scribus/scribusview.h	1 Aug 2005 14:19:42 -0000
@@ -256,8 +256,8 @@ public:
 	void chFSize(int size);
 	void FlipImageH();
 	void FlipImageV();
-	void LoadPict(QString fn, int ItNr, bool reload = false);
-	void loadPict(QString fn, PageItem *pageItem, bool reload = false);
+	void LoadPict(QString fn, int ItNr, bool reload = false, bool reload = true);
+	void loadPict(QString fn, PageItem *pageItem, bool reload = false, bool reload = true);
 	void AdjustPictScale(PageItem *currItem, bool reload = true);
 	void PasteItem(struct CopyPasteBuffer *Buffer, bool loading, bool drag = false);
 	void BuildAObj();
Index: scribus/icons/Makefile.am
===================================================================
RCS file: /cvs/Scribus/scribus/icons/Makefile.am,v
retrieving revision 1.28.2.56
diff -u -3 -p -u -r1.28.2.56 Makefile.am
--- scribus/icons/Makefile.am	31 Jul 2005 13:12:50 -0000	1.28.2.56
+++ scribus/icons/Makefile.am	1 Aug 2005 14:19:43 -0000
@@ -1,4 +1,5 @@
-EXTRA_DIST = pagedouble.png pagequadro.png pagesingle.png pagetriple.png mover.png above.png below.png firstline.png leftindent.png shade.png linespacing.png textbase.png textscaleh.png textkern.png textscalev.png wordsOnly.png shadow.png AllCaps.png DrawFrame.xpm DrawImageFrame.xpm DrawPolylineFrame.xpm DrawTable.xpm DrawTextFrame.xpm plugins.png filenew.png fileopen.png editcopy22.png edittrash.png font_otf16.png font_truetype16.png font_type1_16.png font_otf.png font_truetype.png font_type1.png acroread.png checkdoc.png vectorgfx.png ooo_draw.png ooo_writer.png key_bindings.png blend.png hyphenate.png scrap.png misc.png tools.png page.png guides.png font.png screen.png nftabout.xpm nftinfo.xpm dist.png tab.png view.png Kreuz.xpm Bild.xpm Bild16.xpm Editm.xpm Kreise.xpm Lock.xpm Lupe.xpm Rechtecke.xpm Rotieren.xpm Stift16.xpm Stift.xpm Text.xpm Text16.xpm Unlock.xpm DateiClose.png DateiNeu.xpm DateiOpen.xpm DateiPrint.xpm DateiSave2.png AppIcon2.png AppIcon.png LupeZ.xpm Gross.xpm Klein.xpm DragPix.xpm Rotieren2.xpm HandC.xpm scribus_logo.jpg DateiClos16.png DateiNeu16.png DateiOpen16.png DateiPrint16.png DateiSave16.png editcopy.png editcut.png editdelete.png editpaste.png exit.png doc.png image.png pdf.png postscript.png txt.png Zeichen.xpm Hoch.xpm Kapital.xpm Strike.xpm Tief.xpm Unter.xpm Kern.xpm Spacing.xpm Corner.xpm FlipH.xpm FlipV.xpm Winkel.xpm acrobat.png scribusicon.png text_block.png text_center.png text_left.png text_right.png Text2.xpm spline16.png spline.png triangle.png Stiftalt.xpm Stiftalt16.xpm beziertool.png beziertool16.png AddNode.png DeleteNode.png MoveAsym.png MoveKontrol.png MoveNode.png MoveSym.png BevelJoin.png ButtCap.png MiterJoin.png RoundJoin.png SquareCap.png ResetNode.png RoundCap.png Reset1Node.png BezierClose.png PolyCut.png AddPoint.png DelPoint.png Split.png Deletelayer.png Layervisible.xpm Lowerlayer.png Newlayer.png Raiselayer.png checkbox.png combobox.png listbox.png pushbutton.png textview.png charset.png goto.png document2.png trashcan.png trashcan2.png gohome.png bottom.png down.png top.png up.png irreg.png text_force.png ok.png ok22.png Revers.png hmirror.png vmirror.png shear_right.png shear_left.png shear_up.png shear_down.png Splash.png back.png start.png forward.png finish.png penciladd.png pencilsub.png outlined.png fill.png NoPrint.png unlock.png locked.png signature.png rotate_cw.png rotate_ccw.png crop.png expand.png frameresize.png framenoresize.png testfill.png frame_table16.png frame_table.png scribusdoc.png documentinfo.png documentinfo32.png filesaveas.png revert.png reload.png compfile.png reload16.png compfile16.png find.png find16.png addf.png removef.png launch.png launch16.png u_undo.png u_redo.png u_undo16.png u_redo16.png u_margins.png u_margins_locked.png u_align.png u_move.png u_resize.png u_rotate.png u_group.png u_fill.png u_shade.png u_lock.png u_unlock.png u_create.png u_delete.png u_fliph.png u_flipv.png u_cut.png u_transp.png u_line.png u_arrow.png u_font.png u_svg.png u_eps.png u_scale_image.png u_shape.png docattributes.png tabtocindex.png colorpicker.png wizard.png al_bottom_in.png al_bottom_out.png al_center_hor.png al_center_ver.png al_left_in.png al_left_out.png al_right_in.png al_right_out.png al_top_in.png al_top_out.png distribute_bottom.png distribute_hcentre.png distribute_hdist.png distribute_hdist_val.png distribute_left.png distribute_right.png distribute_top.png distribute_vcentre.png distribute_vdist.png distribute_vdist_val.png
+
+EXTRA_DIST = pagedouble.png pagequadro.png pagesingle.png pagetriple.png mover.png above.png below.png firstline.png leftindent.png shade.png linespacing.png textbase.png textscaleh.png textkern.png textscalev.png wordsOnly.png shadow.png AllCaps.png DrawFrame.xpm DrawImageFrame.xpm DrawPolylineFrame.xpm DrawTable.xpm DrawTextFrame.xpm plugins.png filenew.png fileopen.png editcopy22.png edittrash.png font_otf16.png font_truetype16.png font_type1_16.png font_otf.png font_truetype.png font_type1.png acroread.png checkdoc.png vectorgfx.png ooo_draw.png ooo_writer.png key_bindings.png blend.png hyphenate.png scrap.png misc.png tools.png page.png guides.png font.png screen.png nftabout.xpm nftinfo.xpm dist.png tab.png view.png Kreuz.xpm Bild.xpm Bild16.xpm Editm.xpm Kreise.xpm Lock.xpm Lupe.xpm Rechtecke.xpm Rotieren.xpm Stift16.xpm Stift.xpm Text.xpm Text16.xpm Unlock.xpm DateiClose.png DateiNeu.xpm DateiOpen.xpm DateiPrint.xpm DateiSave2.png AppIcon2.png AppIcon.png LupeZ.xpm Gross.xpm Klein.xpm DragPix.xpm Rotieren2.xpm HandC.xpm scribus_logo.jpg DateiClos16.png DateiNeu16.png DateiOpen16.png DateiPrint16.png DateiSave16.png editcopy.png editcut.png editdelete.png editpaste.png exit.png doc.png image.png pdf.png postscript.png txt.png Zeichen.xpm Hoch.xpm Kapital.xpm Strike.xpm Tief.xpm Unter.xpm Kern.xpm Spacing.xpm Corner.xpm FlipH.xpm FlipV.xpm Winkel.xpm acrobat.png scribusicon.png text_block.png text_center.png text_left.png text_right.png Text2.xpm spline16.png spline.png triangle.png Stiftalt.xpm Stiftalt16.xpm beziertool.png beziertool16.png AddNode.png DeleteNode.png MoveAsym.png MoveKontrol.png MoveNode.png MoveSym.png BevelJoin.png ButtCap.png MiterJoin.png RoundJoin.png SquareCap.png ResetNode.png RoundCap.png Reset1Node.png BezierClose.png PolyCut.png AddPoint.png DelPoint.png Split.png Deletelayer.png Layervisible.xpm Lowerlayer.png Newlayer.png Raiselayer.png checkbox.png combobox.png listbox.png pushbutton.png textview.png charset.png goto.png document2.png trashcan.png trashcan2.png gohome.png bottom.png down.png top.png up.png irreg.png text_force.png ok.png ok22.png Revers.png hmirror.png vmirror.png shear_right.png shear_left.png shear_up.png shear_down.png Splash.png back.png start.png forward.png finish.png penciladd.png pencilsub.png outlined.png fill.png NoPrint.png unlock.png locked.png signature.png rotate_cw.png rotate_ccw.png crop.png expand.png frameresize.png framenoresize.png testfill.png frame_table16.png frame_table.png scribusdoc.png documentinfo.png documentinfo32.png filesaveas.png revert.png reload.png compfile.png reload16.png compfile16.png find.png find16.png addf.png removef.png launch.png launch16.png u_undo.png u_redo.png u_undo16.png u_redo16.png u_margins.png u_margins_locked.png u_align.png u_move.png u_resize.png u_rotate.png u_group.png u_fill.png u_shade.png u_lock.png u_unlock.png u_create.png u_delete.png u_fliph.png u_flipv.png u_cut.png u_transp.png u_line.png u_arrow.png u_font.png u_svg.png u_eps.png u_scale_image.png u_shape.png docattributes.png tabtocindex.png colorpicker.png wizard.png al_bottom_in.png al_bottom_out.png al_center_hor.png al_center_ver.png al_left_in.png al_left_out.png al_right_in.png al_right_out.png al_top_in.png al_top_out.png distribute_bottom.png distribute_hcentre.png distribute_hdist.png distribute_hdist_val.png distribute_left.png distribute_right.png distribute_top.png distribute_vcentre.png distribute_vdist.png distribute_vdist_val.png  pic_miss.png
 
 install-data-local:
 	$(mkinstalldirs) $(prefix)/share/scribus/icons/
