summaryrefslogtreecommitdiffstats
path: root/src/digikam/welcomepageview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/digikam/welcomepageview.cpp')
-rw-r--r--src/digikam/welcomepageview.cpp193
1 files changed, 193 insertions, 0 deletions
diff --git a/src/digikam/welcomepageview.cpp b/src/digikam/welcomepageview.cpp
new file mode 100644
index 00000000..6327c947
--- /dev/null
+++ b/src/digikam/welcomepageview.cpp
@@ -0,0 +1,193 @@
+/* ============================================================
+ *
+ * This file is a part of digiKam project
+ * http://www.digikam.org
+ *
+ * Date : 2006-12-20
+ * Description : a widget to display a welcome page
+ * on root album.
+ *
+ * Copyright (C) 2006-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software Foundation;
+ * either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * ============================================================ */
+
+// TQt includes.
+
+#include <tqwidget.h>
+#include <tqfile.h>
+#include <tqfileinfo.h>
+
+// KDE includes.
+
+#include <tdelocale.h>
+#include <kcursor.h>
+#include <tdehtml_part.h>
+#include <tdehtmlview.h>
+#include <tdeapplication.h>
+#include <kurl.h>
+#include <kstandarddirs.h>
+
+// Local includes.
+
+#include "daboutdata.h"
+#include "welcomepageview.h"
+#include "welcomepageview.moc"
+
+namespace Digikam
+{
+
+WelcomePageView::WelcomePageView(TQWidget* parent)
+ : TDEHTMLPart(parent)
+{
+ widget()->setFocusPolicy(TQWidget::WheelFocus);
+ // Let's better be paranoid and disable plugins (it defaults to enabled):
+ setPluginsEnabled(false);
+ setJScriptEnabled(false); // just make this explicit.
+ setJavaEnabled(false); // just make this explicit.
+ setMetaRefreshEnabled(false);
+ setURLCursor(KCursor::handCursor());
+
+ TQString fontSize = TQString::number(12);
+ TQString appTitle = i18n("digiKam");
+ TQString catchPhrase = TQString(); // Not enough space for a catch phrase at default window size.
+ TQString quickDescription = TQString(digiKamDescription());
+ TQString locationHtml = locate("data", "digikam/about/main.html");
+ TQString locationCss = locate("data", "digikam/about/kde_infopage.css");
+ TQString locationRtl = locate("data", "digikam/about/kde_infopage_rtl.css" );
+ TQString rtl = kapp->reverseLayout() ? TQString("@import \"%1\";" ).arg(locationRtl)
+ : TQString();
+
+ begin(KURL(locationHtml));
+
+ TQString content = fileToString(locationHtml);
+ content = content.arg(locationCss) // %1
+ .arg(rtl) // %2
+ .arg(fontSize) // %3
+ .arg(appTitle) // %4
+ .arg(catchPhrase) // %5
+ .arg(quickDescription) // %6
+ .arg(infoPage()); // %7
+
+ write(content);
+ end();
+ show();
+
+ connect(browserExtension(), TQ_SIGNAL(openURLRequest(const KURL &, const KParts::URLArgs &)),
+ this, TQ_SLOT(slotUrlOpen(const KURL &)));
+}
+
+WelcomePageView::~WelcomePageView()
+{
+}
+
+void WelcomePageView::slotUrlOpen(const KURL &url)
+{
+ TDEApplication::kApplication()->invokeBrowser(url.url());
+}
+
+TQString WelcomePageView::infoPage()
+{
+ TQString info =
+ i18n(
+ "%1: digiKam version; "
+ "%2: help:// URL; "
+ "%3: homepage URL; "
+ "%4: prior digiKam version; "
+ "%5: prior KDE version; "
+ "%6: generated list of new features; "
+ "%7: First-time user text (only shown on first start); "
+ "%8: generated list of important changes; "
+ "--- end of comment ---",
+ "<h2 style='margin-top: 0px;'>Welcome to digiKam</h2><p>"
+ "digiKam is a photo management program for the Trinity Desktop Environment. "
+ "It is designed to import, organize, and export your digital photographs on your computer."
+ "</p><p>You are currently in the Album view mode of digiKam. The Albums are the real "
+ "containers where your files are stored, they are identical with the folders "
+ "on disk.</p>\n"
+ "digiKam has many powerful features\n"
+ "%8\n<p>" // important changes
+ "Some of the features of digiKam include</p>\n"
+ "<ul>\n%5</ul>\n"
+ "%6\n"
+ "<p>We hope you will enjoy digiKam.</p>\n"
+ "<p>Thank you,</p>\n"
+ "<p style='margin-bottom: 0px'>&nbsp; &nbsp; The digiKam Team</p>");
+
+ TQStringList newFeatures;
+ newFeatures << i18n("16-bit/color/pixel image support");
+ newFeatures << i18n("Full color management support");
+ newFeatures << i18n("Native JPEG-2000 support");
+ newFeatures << i18n("Makernote and IPTC metadata support");
+ newFeatures << i18n("Photograph geolocation");
+ newFeatures << i18n("Extensive Sidebars");
+ newFeatures << i18n("Advanced RAW image decoding settings");
+ newFeatures << i18n("Fast RAW preview");
+ newFeatures << i18n("RAW Metadata support");
+ newFeatures << i18n("Camera Interface used as generic import tool");
+ newFeatures << i18n("New advanced camera download options");
+ newFeatures << i18n("New advanced tag management");
+ newFeatures << i18n("New zooming/panning support in preview mode");
+ newFeatures << i18n("New Light Table provides easy comparison for similar images");
+ newFeatures << i18n("New text, mime-type, and rating filters to search contents on icon view");
+ newFeatures << i18n("New options to easy navigate between albums, tags and collections");
+ newFeatures << i18n("New options to recursively show the contents of sub-folders");
+ newFeatures << i18n("New text filter to search contents on folder views");
+ newFeatures << i18n("New options to count of items on all folder views");
+ newFeatures << i18n("New tool to perform dates search around whole albums collection: Time-Line");
+ newFeatures << i18n("New tool to import RAW files in editor with customized decoding settings");
+
+ TQString featureItems;
+ for ( uint i = 0 ; i < newFeatures.count() ; i++ )
+ featureItems += i18n("<li>%1</li>\n").arg( newFeatures[i] );
+
+ info = info.arg( featureItems );
+
+ // Add first-time user text (only shown on first start).
+ info = info.arg( TQString() );
+
+ // Generated list of important changes
+ info = info.arg( TQString() );
+
+ return info;
+}
+
+TQCString WelcomePageView::fileToString(const TQString &aFileName)
+{
+ TQCString result;
+ TQFileInfo info(aFileName);
+ unsigned int readLen;
+ unsigned int len = info.size();
+ TQFile file(aFileName);
+
+ if (aFileName.isEmpty() || len <= 0 ||
+ !info.exists() || info.isDir() || !info.isReadable() ||
+ !file.open(IO_Raw|IO_ReadOnly))
+ return TQCString();
+
+ result.resize(len + 2);
+ readLen = file.readBlock(result.data(), len);
+ if (1 && result[len-1]!='\n')
+ {
+ result[len++] = '\n';
+ readLen++;
+ }
+ result[len] = '\0';
+
+ if (readLen < len)
+ return TQCString();
+
+ return result;
+}
+
+} // namespace Digikam