[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. |