extragear/libs/kipi-plugins/sendimages

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

extragear/libs/kipi-plugins/sendimages

Gilles Caulier-4
SVN commit 735733 by cgilles:

Kipi-plugins from trunk (KDE4) : SendImages plugin port:

Huge improvement with mozilla/thunderbird emailer support about attachement files given on command line.
No need to check if an instance of mailer already exist in memory to use -remote option. If we use -compose
with the right options form. This way simplify the source code considerably... Thanks to Mozilla.org wiki page
to describe all catch command line options syntax.

I have tested with recent Thunderbird, Mozilla, and Netscape mailers. Please give me feedback if you occurs special
errors with old versions. Thanks in advance...

Note B.K.O files 148186 is closed because RAW attachement files is fixed now.

CCMAIL: [hidden email]
CCMAIL: [hidden email]

BUG: 148186
BUG: 150453


 M  +8 -55     emailpage.cpp  
 M  +0 -6      emailpage.h  
 M  +0 -2      emailsettingscontainer.h  
 M  +39 -80    sendimages.cpp  
 M  +0 -2      sendimagesdialog.cpp  


--- trunk/extragear/libs/kipi-plugins/sendimages/emailpage.cpp #735732:735733
@@ -24,6 +24,7 @@
 
 #include <QLayout>
 #include <QLabel>
+#include <QGroupBox>
 #include <QComboBox>
 #include <QCheckBox>
 #include <QPushButton>
@@ -34,7 +35,6 @@
 #include <kdialog.h>
 #include <knuminput.h>
 #include <kiconloader.h>
-#include <kurlrequester.h>
 
 // LibKDcraw includes.
 
@@ -57,8 +57,6 @@
     {
         labelMailAgent          = 0;
         mailAgentName           = 0;
-        labelThunderbirdBinPath = 0;
-        thunderbirdBinPath      = 0;
         imagesResize            = 0;
         addComments             = 0;
         changeImagesProp        = 0;
@@ -70,7 +68,6 @@
     }
     
     QLabel        *labelMailAgent;
-    QLabel        *labelThunderbirdBinPath;
     QLabel        *labelImagesResize;
     QLabel        *labelImagesFormat;
 
@@ -83,8 +80,6 @@
 
     KIntNumInput  *imageCompression;
     KIntNumInput  *attachmentlimit;
-
-    KUrlRequester *thunderbirdBinPath;
 };
 
 EmailPage::EmailPage(QWidget* parent)
@@ -117,15 +112,6 @@
 
     //---------------------------------------------
 
-    d->labelThunderbirdBinPath = new QLabel(i18n("&Thunderbird path:"), this);
-
-    d->thunderbirdBinPath      = new KUrlRequester(this);
-    d->thunderbirdBinPath->setUrl(KUrl("/usr/bin/thunderbird"));
-    d->labelThunderbirdBinPath->setBuddy( d->thunderbirdBinPath );
-    d->thunderbirdBinPath->setWhatsThis(i18n("<p>The path name to the Thunderbird program."));
-
-    //---------------------------------------------
-
     d->addComments = new QCheckBox(i18n("Attach a file with caption and tags"), this);
     d->addComments->setWhatsThis(i18n("<p>If you enable this option, all image captions and tags "
                                       "will be added as an attached file."));
@@ -145,8 +131,8 @@
     d->changeImagesProp->setWhatsThis(i18n("<p>If you enable this option, "
                                            "all images to send can be resized and recompressed."));
 
-    QGroupBox * groupBox = new QGroupBox(i18n("Image Properties"), this);
-    QGridLayout* grid2   = new QGridLayout(groupBox);
+    QGroupBox *groupBox = new QGroupBox(i18n("Image Properties"), this);
+    QGridLayout *grid2  = new QGridLayout(groupBox);
 
     d->imagesResize = new QComboBox(groupBox);
     d->imagesResize->insertItem(EmailSettingsContainer::VERYSMALL, i18n("Very Small (320 pixels)"));
@@ -230,13 +216,11 @@
 
     grid->addWidget(d->labelMailAgent, 0, 0, 1, 1);
     grid->addWidget(d->mailAgentName, 0, 1, 1, 2);
-    grid->addWidget(d->labelThunderbirdBinPath, 1, 0, 1, 1);
-    grid->addWidget(d->thunderbirdBinPath, 1, 1, 1, 3);
-    grid->addWidget(d->attachmentlimit, 2, 0, 1, 4);
-    grid->addWidget(d->addComments, 3, 0, 1, 4);
-    grid->addWidget(d->changeImagesProp, 4, 0, 1, 4);
-    grid->addWidget(groupBox, 5, 0, 1, 4);
-    grid->setRowStretch(6, 10);    
+    grid->addWidget(d->attachmentlimit, 1, 0, 1, 4);
+    grid->addWidget(d->addComments, 2, 0, 1, 4);
+    grid->addWidget(d->changeImagesProp, 3, 0, 1, 4);
+    grid->addWidget(groupBox, 4, 0, 1, 4);
+    grid->setRowStretch(5, 10);    
     grid->setColumnStretch(3, 10);                    
     grid->setMargin(0);
     grid->setSpacing(KDialog::spacingHint());        
@@ -246,12 +230,6 @@
     connect(d->imagesFormat, SIGNAL(activated(int)),
             this, SLOT(slotImagesFormatChanged(int)));
 
-    connect(d->mailAgentName, SIGNAL(activated(int)),
-            this, SLOT(slotMailAgentChanged(int)));
-
-    connect(d->thunderbirdBinPath, SIGNAL(textChanged(const QString&)),
-            this, SLOT(slotThunderbirdBinPathChanged(const QString&)));
-
     connect(d->changeImagesProp, SIGNAL(toggled(bool)),
             groupBox, SLOT(setEnabled(bool)));
 }
@@ -269,26 +247,6 @@
         d->imageCompression->setEnabled(false);
 }
 
-void EmailPage::slotMailAgentChanged(int i)
-{
-    if ( i == EmailSettingsContainer::THUNDERBIRD )
-    {
-        d->labelThunderbirdBinPath->setEnabled(true);
-        d->thunderbirdBinPath->setEnabled(true);
-    }
-    else
-    {
-       d->labelThunderbirdBinPath->setEnabled(false);
-       d->thunderbirdBinPath->setEnabled(false);
-    }
-}
-
-void EmailPage::slotThunderbirdBinPathChanged(const QString& url)
-{
-    if ( d->mailAgentName->currentIndex() == EmailSettingsContainer::THUNDERBIRD )
-       emit signalEnableButtonOK( !url.isEmpty());
-}
-
 void EmailPage::setEmailSettings(const EmailSettingsContainer& settings)
 {
     d->mailAgentName->setCurrentIndex((int)settings.emailProgram);
@@ -301,10 +259,7 @@
     d->imageCompression->setValue(settings.imageCompression);
     d->attachmentlimit->setValue(settings.attachmentLimitInMbytes);
 
-    d->thunderbirdBinPath->setUrl(settings.thunderbirdPath);
-
     slotImagesFormatChanged(d->imagesFormat->currentIndex());
-    slotMailAgentChanged(d->mailAgentName->currentIndex());
 }
                                     
 EmailSettingsContainer EmailPage::emailSettings()
@@ -320,8 +275,6 @@
     settings.imageCompression        = d->imageCompression->value();
     settings.attachmentLimitInMbytes = d->attachmentlimit->value();
 
-    settings.thunderbirdPath         = d->thunderbirdBinPath->url();
-
     return settings;
 }
 
--- trunk/extragear/libs/kipi-plugins/sendimages/emailpage.h #735732:735733
@@ -48,15 +48,9 @@
     void setEmailSettings(const EmailSettingsContainer& settings);
     EmailSettingsContainer emailSettings();
 
-signals:
-
-    void signalEnableButtonOK(bool);
-
 private slots:
 
     void slotImagesFormatChanged(int);
-    void slotMailAgentChanged(int);
-    void slotThunderbirdBinPathChanged(const QString&);
 
 private:
 
--- trunk/extragear/libs/kipi-plugins/sendimages/emailsettingscontainer.h #735732:735733
@@ -168,8 +168,6 @@
 
     QString          tempPath;
 
-    KUrl             thunderbirdPath;
-
     EmailClient      emailProgram;
 
     ImageSize        imageSize;
--- trunk/extragear/libs/kipi-plugins/sendimages/sendimages.cpp #735732:735733
@@ -61,10 +61,13 @@
 
     SendImagesPriv()
     {
+        invokedBefore   = false;
         threadImgResize = 0;
         progressDlg     = 0;
     }
 
+    bool                       invokedBefore;
+
     KUrl::List                 attachementFiles;
     KUrl::List                 failedResizedImages;
 
@@ -440,97 +443,53 @@
                     break;
                 }
 
-                case EmailSettingsContainer::GMAILAGENT:
-                {
-                    break;
-                }
+                // More info about command lines options with Mozilla & co:
+                // http://www.mozilla.org/docs/command-line-args.html#Syntax_Rules
 
                 case EmailSettingsContainer::MOZILLA:
-                {
-                    break;
-                }
-
                 case EmailSettingsContainer::NETSCAPE:
-                {
-                    break;
-                }
-
                 case EmailSettingsContainer::THUNDERBIRD:
+                case EmailSettingsContainer::GMAILAGENT:
                 {
+                    QString prog;
+                    if (d->settings.emailProgram == EmailSettingsContainer::MOZILLA)
+                        prog = QString("mozila");
+                    else if (d->settings.emailProgram == EmailSettingsContainer::NETSCAPE)
+                        prog = QString("netscape");
+                    else if (d->settings.emailProgram == EmailSettingsContainer::THUNDERBIRD)
+                        prog = QString("thunderbird");
+                    else
+                        prog = QString("gmailagent");
+
+                    QStringList args;            
+                    args.append("-compose");
+                    QString tmp = "attachment='";
+                    for (KUrl::List::Iterator it = fileList.begin() ; it != fileList.end() ; ++it )
+                    {
+                        tmp.append( "file://" );
+                        QString toencode=(*it).encodedPathAndQuery();
+                        tmp.append(toencode);
+                        tmp.append( "," );
+                    }
+                    tmp.remove(tmp.length()-1, 1);
+                    tmp.append("'");
+                    
+                    args.append(tmp);
+  
+                    if (!QProcess::startDetached(prog, args))
+                        invokeMailAgentError(prog, args);
+                    else
+                    {
+                        invokeMailAgentDone(prog, args);
+                        agentInvoked = true;
+                    }
+          
                     break;
                 }
             }
         }
     }
     while(!fileList.isEmpty());
-
-/*        
-    
-        // Mozilla | Netscape | Thunderbird mail agent call.
-    
-        if ( m_sendImagesDialog->m_mailAgentName->currentText() == "Mozilla" ||
-             m_sendImagesDialog->m_mailAgentName->currentText() == "Netscape" ||
-             m_sendImagesDialog->m_mailAgentName->currentText() == "Thunderbird" ||
-             m_sendImagesDialog->m_mailAgentName->currentText() == "GmailAgent")
-        {
-            m_mailAgentProc = new KProcess;
-        
-            m_thunderbirdUrl = m_sendImagesDialog->m_ThunderbirdBinPath->url();
-        
-            if ( m_sendImagesDialog->m_mailAgentName->currentText() == "Mozilla" )
-            {
-                *m_mailAgentProc << "mozilla" << "-remote";
-            }
-            else if ( m_sendImagesDialog->m_mailAgentName->currentText() == "Thunderbird" )
-            {
-                *m_mailAgentProc << m_thunderbirdUrl << "-remote";
-                qDebug("URL: %s", m_thunderbirdUrl.ascii());
-            }
-            else if ( m_sendImagesDialog->m_mailAgentName->currentText() == "GmailAgent" )
-            {
-                *m_mailAgentProc << "gmailagent" << "-remote";
-            }
-            else
-            {
-                *m_mailAgentProc << "netscape" << "-remote";
-            }
-        
-            QString Temp = " xfeDoCommand(composeMessage,attachment='";
-        
-            for ( KURL::List::Iterator it = filelist.begin() ; it != filelist.end() ; ++it )
-            {
-                Temp.append( "file://" );
-                QString toencode=(*it).encodedPathAndQuery();
-                Temp.append(toencode);
-                Temp.append( "," );
-            }
-    
-            Temp.remove(Temp.length()-1,1);
-            Temp.append("')");
-            
-            *m_mailAgentProc << Temp;
-      
-            if (!m_invokedBefore)
-            {
-                connect(m_mailAgentProc, SIGNAL(processExited(KProcess *)),
-                        this, SLOT(slotMozillaExited(KProcess*)));
-        
-                connect(m_mailAgentProc, SIGNAL(receivedStderr(KProcess *, char*, int)),
-                        this, SLOT(slotMozillaReadStderr(KProcess*, char*, int)));
-            }
-            qDebug ("%s", Temp.ascii());
-        
-            if ( m_mailAgentProc->start(KProcess::NotifyOnExit , KProcess::All) == false )
-                KMessageBox::error(kapp->activeWindow(),
-                                   i18n("Cannot start '%1' program;\nplease "
-                                        "check your installation.")
-                                        .arg(m_sendImagesDialog->m_mailAgentName->currentText()));
-            else
-            {   agentInvoked = true;
-                m_invokedBefore=true;
-            }
-        }
-*/
   
     return agentInvoked;
 }
--- trunk/extragear/libs/kipi-plugins/sendimages/sendimagesdialog.cpp #735732:735733
@@ -215,7 +215,6 @@
     settings.addCommentsAndTags      = group.readEntry("AddCommentsAndTags", false);
     settings.imageCompression        = group.readEntry("ImageCompression", 75);
     settings.attachmentLimitInMbytes = group.readEntry("AttachmentLimit", 17);
-    settings.thunderbirdPath         = group.readEntry("ThunderbirdPath", KUrl());
     d->emailPage->setEmailSettings(settings);
 
     KConfigGroup group2 = config.group(QString("SendImages Dialog"));
@@ -236,7 +235,6 @@
     group.writeEntry("AddCommentsAndTags", settings.addCommentsAndTags);
     group.writeEntry("ImageCompression",   settings.imageCompression);
     group.writeEntry("AttachmentLimit",    settings.attachmentLimitInMbytes);
-    group.writeEntry("ThunderbirdPath",    settings.thunderbirdPath);
 
     KConfigGroup group2 = config.group(QString("SendImages Dialog"));
     saveDialogSize(group2);
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel