[Ktutorial-commits] SF.net SVN: ktutorial:[167] trunk/ktutorial/ktutorial-editor/src
Status: Alpha
Brought to you by:
danxuliu
|
From: <dan...@us...> - 2010-03-19 18:16:01
|
Revision: 167
http://ktutorial.svn.sourceforge.net/ktutorial/?rev=167&view=rev
Author: danxuliu
Date: 2010-03-19 18:15:55 +0000 (Fri, 19 Mar 2010)
Log Message:
-----------
Add action to export a tutorial from the File menu.
Modified Paths:
--------------
trunk/ktutorial/ktutorial-editor/src/CMakeLists.txt
trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.cpp
trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.h
trunk/ktutorial/ktutorial-editor/src/ktutorial-editorui.rc
Modified: trunk/ktutorial/ktutorial-editor/src/CMakeLists.txt
===================================================================
--- trunk/ktutorial/ktutorial-editor/src/CMakeLists.txt 2010-03-19 18:14:11 UTC (rev 166)
+++ trunk/ktutorial/ktutorial-editor/src/CMakeLists.txt 2010-03-19 18:15:55 UTC (rev 167)
@@ -25,10 +25,10 @@
# As everything but a tiny initialization code is in a library, the build system
# for the tests can be easily set up.
kde4_add_library(ktutorial_editor ${ktutorial_editor_SRCS})
-target_link_libraries(ktutorial_editor ktutorial_editor_serialization ktutorial_editor_view)
+target_link_libraries(ktutorial_editor ktutorial_editor_serialization ktutorial_editor_view ${KDE4_KIO_LIBS})
kde4_add_executable(ktutorial-editor main.cpp)
-target_link_libraries(ktutorial-editor ktutorial_editor ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS})
+target_link_libraries(ktutorial-editor ktutorial_editor)
####### Install the editor #######
Modified: trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.cpp
===================================================================
--- trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.cpp 2010-03-19 18:14:11 UTC (rev 166)
+++ trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.cpp 2010-03-19 18:15:55 UTC (rev 167)
@@ -24,11 +24,16 @@
#include <KAction>
#include <KActionCollection>
#include <KApplication>
+#include <KFileDialog>
+#include <KFileFilterCombo>
#include <KLocalizedString>
+#include <KMessageBox>
+#include <KIO/NetAccess>
#include "Reaction.h"
#include "Step.h"
#include "Tutorial.h"
+#include "serialization/Serialization.h"
#include "view/ActionListWidget.h"
#include "view/EditionDialog.h"
#include "view/LicenseWidget.h"
@@ -94,12 +99,20 @@
}
void KTutorialEditor::setupActions() {
+ KAction* action = new KAction(this);
+ action->setText(i18nc("@action", "Export..."));
+ action->setStatusTip(i18nc("@info:status", "Exports the tutorial to a "
+"script."));
+ action->setIcon(KIcon("document-export"));
+ actionCollection()->addAction("exportTutorial", action);
+ connect(action, SIGNAL(triggered(bool)), this, SLOT(exportTutorial()));
+
KStandardAction::quit(kapp, SLOT(quit()), actionCollection());
ActionListWidget* actionListWidget =
new ActionListWidget(mTutorialActionDock);
- KAction* action = new KAction(this);
+ action = new KAction(this);
action->setText(i18nc("@action", "Set information..."));
action->setStatusTip(i18nc("@info:status", "Set the name and description "
"of the tutorial."));
@@ -271,6 +284,32 @@
}
}
+void KTutorialEditor::exportTutorial() {
+ KUrl url;
+ QPointer<KFileDialog> dialog = new KFileDialog(url, QString(), this);
+
+ dialog->setSelection(mTutorial->id());
+ dialog->setCaption(i18nc("@title", "Export Tutorial"));
+ dialog->setOperationMode(KFileDialog::Saving);
+ dialog->setConfirmOverwrite(true);
+ dialog->setFilter(Serialization::availableExporterTypes());
+ dialog->filterWidget()->setEditable(false);
+
+ if (dialog->exec() == QDialog::Rejected) {
+ return;
+ }
+
+ if (!Serialization::exportTutorial(mTutorial, dialog->currentFilter(),
+ dialog->selectedUrl())) {
+ QString text = i18nc("@label", "There was a problem when trying to "
+"save the exported tutorial:<nl/>%1", KIO::NetAccess::lastErrorString());
+ QString caption = i18nc("@title:window", "Exported tutorial could not "
+"be saved");
+ KMessageBox::error(this, text, caption);
+ return;
+ }
+}
+
void KTutorialEditor::setTutorialInformation() {
showEditionDialog(new TutorialInformationWidget(mTutorial));
}
Modified: trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.h
===================================================================
--- trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.h 2010-03-19 18:14:11 UTC (rev 166)
+++ trunk/ktutorial/ktutorial-editor/src/KTutorialEditor.h 2010-03-19 18:15:55 UTC (rev 167)
@@ -121,6 +121,12 @@
void selectReaction(Reaction* reaction);
/**
+ * Shows a KFileDialog to select the file to save the exported tutorial in.
+ * An error message is shown if the tutorial couldn't be saved.
+ */
+ void exportTutorial();
+
+ /**
* Shows a TutorialInformationWidget for the tutorial.
*/
void setTutorialInformation();
Modified: trunk/ktutorial/ktutorial-editor/src/ktutorial-editorui.rc
===================================================================
--- trunk/ktutorial/ktutorial-editor/src/ktutorial-editorui.rc 2010-03-19 18:14:11 UTC (rev 166)
+++ trunk/ktutorial/ktutorial-editor/src/ktutorial-editorui.rc 2010-03-19 18:15:55 UTC (rev 167)
@@ -2,6 +2,9 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
<gui name="ktutorial-editor" version="1">
<MenuBar>
+ <Menu name="file">
+ <Action name="exportTutorial"/>
+ </Menu>
<Menu name="edit">
<Menu name="editTutorials">
<Text context="@title:menu">Tutorial</Text>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|