summaryrefslogtreecommitdiffstats
path: root/keduca/keducabuilder/keducaeditorstartdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'keduca/keducabuilder/keducaeditorstartdialog.cpp')
-rw-r--r--keduca/keducabuilder/keducaeditorstartdialog.cpp114
1 files changed, 114 insertions, 0 deletions
diff --git a/keduca/keducabuilder/keducaeditorstartdialog.cpp b/keduca/keducabuilder/keducaeditorstartdialog.cpp
new file mode 100644
index 00000000..88cf9305
--- /dev/null
+++ b/keduca/keducabuilder/keducaeditorstartdialog.cpp
@@ -0,0 +1,114 @@
+/***************************************************************************
+ keducaeditorstartdialog.cpp - description
+ -------------------
+ begin : Fri May 10 2002
+ copyright : (C) 2002 by Klas Kalass
+ email : klas@kde.org
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+
+#include <kdebug.h>
+#include <kurlrequester.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kcombobox.h>
+
+#include "keducaeditorstartdialog.h"
+#include "keducabuilder.h"
+
+/**
+ */
+KEducaEditorStartDialog::KEducaEditorStartDialog(KEducaBuilder * parent, const char* name, bool modal, WFlags fl)
+ :KEducaEditorStartDialogBase(parent, name, modal, fl),
+ _choice(NewDoc),
+ _maxRecentDocumentItems(20)
+{
+ newDocumentRB->setFocus();
+
+ // read recent files
+ buildRecentFilesList();
+
+// setup connections
+ urlRequester->setFilter( "application/x-edu");
+
+ connect( startChoiceBtnGrp, SIGNAL( clicked(int) ),
+ this, SLOT( slotChoiceChanged(int) ) );
+}
+
+/** based on code in kaction.cpp
+ */
+void KEducaEditorStartDialog::buildRecentFilesList()
+{
+ QString key;
+ QString value;
+ QString oldGroup;
+ KConfig *config = KGlobal::config();
+
+ oldGroup = config->group();
+
+ config->setGroup( "RecentFiles" );
+
+ // read file list
+ for( unsigned int i = 1 ; i <= _maxRecentDocumentItems ; i++ )
+ {
+ key = QString( "File%1" ).arg( i );
+ value = config->readEntry( key, QString::null );
+
+ if (!value.isNull())
+ recentDocumentCB->insertURL( KURL(value) );
+ }
+
+ config->setGroup( oldGroup );
+}
+
+KEducaEditorStartDialog::~KEducaEditorStartDialog() {
+
+}
+
+void KEducaEditorStartDialog::slotChoiceChanged(int id) {
+ _choice = id+1;
+}
+
+KURL KEducaEditorStartDialog::getURL()const{
+ switch(_choice) {
+ case OpenDoc:
+ return KURL(urlRequester->url());
+ break;
+ case OpenRecentDoc:
+ return KURL(recentDocumentCB->currentText());
+ break;
+ default:
+ break;
+ }
+
+ return KURL();
+}
+
+int KEducaEditorStartDialog::exec() {
+ int ret = KEducaEditorStartDialogBase::exec();
+ if ( ret == KEducaEditorStartDialogBase::Rejected )
+ _choice = KEducaEditorStartDialog::Rejected;
+
+ return _choice;
+}
+
+void KEducaEditorStartDialog::accept() {
+ if (((_choice == OpenDoc || _choice == OpenRecentDoc)
+ && getURL().isEmpty())) {
+ KMessageBox::sorry(this, i18n("You need to specify the file to open!"));
+ }else
+ KEducaEditorStartDialogBase::accept();
+}
+
+#include "keducaeditorstartdialog.moc"