Git commit a13c40cbec997c86c18f2fac010d409294a563ec by Jaroslaw Staniek. Committed on 30/09/2011 at 01:55. Pushed by staniek into branch 'master'.
GUI: Main Window: "Open Recent" page becomes more generic "Welcome" page DIGEST: In Kexi, "Open Recent" page becomes more generic "Welcome" page M +1 -1 kexi/main/CMakeLists.txt M +12 -42 kexi/main/KexiMainWindow.cpp M +1 -1 kexi/main/KexiMainWindow.h M +7 -8 kexi/main/KexiMainWindow_p.h R +26 -26 kexi/main/startup/KexiWelcomeAssistant.cpp [from: kexi/main/startup/KexiRecentProjectsAssistant.cpp - 081% similarity] R +10 -10 kexi/main/startup/KexiWelcomeAssistant.h [from: kexi/main/startup/KexiRecentProjectsAssistant.h - 082% similarity] http://commits.kde.org/calligra/a13c40cbec997c86c18f2fac010d409294a563ec diff --git a/kexi/main/CMakeLists.txt b/kexi/main/CMakeLists.txt index 8154f5d..759250e 100644 --- a/kexi/main/CMakeLists.txt +++ b/kexi/main/CMakeLists.txt @@ -23,7 +23,7 @@ kexinewstuff.cpp startup/KexiConnSelector.cpp startup/KexiNewProjectAssistant.cpp startup/KexiOpenProjectAssistant.cpp -startup/KexiRecentProjectsAssistant.cpp +startup/KexiWelcomeAssistant.cpp startup/KexiImportExportAssistant.cpp startup/KexiProjectSelector.cpp startup/KexiStartupFileWidget.cpp diff --git a/kexi/main/KexiMainWindow.cpp b/kexi/main/KexiMainWindow.cpp index cd1eb06..6d43a72 100644 --- a/kexi/main/KexiMainWindow.cpp +++ b/kexi/main/KexiMainWindow.cpp @@ -46,7 +46,6 @@ #include <kapplication.h> #include <kcmdlineargs.h> #include <kaction.h> -#include <KRecentFilesAction> #include <KActionCollection> #include <kactionmenu.h> #include <ktoggleaction.h> @@ -68,7 +67,6 @@ #include <kimageio.h> #include <khelpmenu.h> #include <kfiledialog.h> -#include <krecentdocument.h> #include <KMenu> #include <KXMLGUIFactory> #include <KMultiTabBar> @@ -109,7 +107,7 @@ #include "startup/KexiStartup.h" #include "startup/KexiNewProjectAssistant.h" #include "startup/KexiOpenProjectAssistant.h" -#include "startup/KexiRecentProjectsAssistant.h" +#include "startup/KexiWelcomeAssistant.h" #include "startup/KexiImportExportAssistant.h" #include "startup/KexiStartupDialog.h" #include "startup/KexiStartupFileWidget.h" @@ -118,13 +116,6 @@ //2.x #include "printing/kexisimpleprintingpart.h" //2.x #include "printing/kexisimpleprintingpagesetup.h" -//Extreme verbose debug -//#if defined(Q_WS_WIN) -//# include <krecentdirs.h> -//# include <win32_utils.h> -//# define KexiVDebug kDebug() -//#endif - #if !defined(KexiVDebug) # define KexiVDebug if (0) kDebug() #endif @@ -681,14 +672,15 @@ void KexiMainWindow::setupActions() #endif { - ac->addAction("project_open_recent", - action = d->action_open_recent = new KexiMenuWidgetAction(KStandardAction::OpenRecent, this)); + ac->addAction("project_welcome", + action = d->action_project_welcome = new KexiMenuWidgetAction( + KIcon(), i18n("Welcome"), this)); addThreeDotsToActionText(action); - connect(action, SIGNAL(triggered()), this, SLOT(slotProjectOpenRecent())); - setupMainMenuActionShortcut(action, SLOT(slotProjectOpenRecent())); - action->setToolTip(i18n("Open recent project")); + connect(action, SIGNAL(triggered()), this, SLOT(slotProjectWelcome())); + setupMainMenuActionShortcut(action, SLOT(slotProjectWelcome())); + action->setToolTip(i18n("Show Welcome page")); action->setWhatsThis( - i18n("Opens one of the recently opened project. Currently opened project is not affected.")); + i18n("Shows Welcome page with list of recently opened projects and other information. ")); } ac->addAction("project_save", @@ -1565,7 +1557,7 @@ tristate KexiMainWindow::startup() break; case KexiStartupHandler::ShowWelcomeScreen: //! @todo show welcome screen as soon as is available - QTimer::singleShot(1, this, SLOT(slotProjectOpenRecent())); + QTimer::singleShot(1, this, SLOT(slotProjectWelcome())); break; default: d->updatePropEditorVisibility(Kexi::NoViewMode); @@ -1664,25 +1656,6 @@ tristate KexiMainWindow::createProjectFromTemplate(const KexiProjectData& projec #else #pragma WARNING( TODO - remove win32 case ) #endif - /*TODO? - #ifdef Q_WS_WIN - //! @todo remove - QString recentDir = KGlobalSettings::documentPath(); - if (fname.isEmpty() && !projectData.constConnectionData()->dbFileName().isEmpty()) //propose filename from db template name - fname = KFileDialog::getStartURL(startDir, recentDir).path() - + '/' + projectData.constConnectionData()->dbFileName(); - fname = Q3FileDialog::getSaveFileName( - KFileDialog::getStartURL(fname.isEmpty() ? startDir : fname, recentDir).path(), - KexiUtils::fileDialogFilterStrings(mimetypes, false), - this, "CreateProjectFromTemplate", caption); - if ( !fname.isEmpty() ) { - //save last visited path - KUrl url; - url.setPath( fname ); - if (url.isLocalFile()) - KRecentDirs::add(startDir, url.directory()); - } - #else*/ Q_UNUSED(projectData); if (fname.isEmpty() && !projectData.constConnectionData()->dbFileName().isEmpty()) { @@ -1701,9 +1674,6 @@ tristate KexiMainWindow::createProjectFromTemplate(const KexiProjectData& projec dlg.setWindowTitle(caption); dlg.exec(); fname = dlg.selectedFile(); - if (!fname.isEmpty()) - KRecentDocument::add(fname); -//#endif if (fname.isEmpty()) return cancelled; if (KexiStartupFileWidget::askForOverwriting(fname, this)) @@ -3386,12 +3356,12 @@ tristate KexiMainWindow::openProjectInExternalKexiInstance(const QString& aFileN return ok; } -void KexiMainWindow::slotProjectOpenRecent() +void KexiMainWindow::slotProjectWelcome() { if (!d->tabbedToolBar) return; - d->tabbedToolBar->showMainMenu("project_open_recent"); - KexiRecentProjectsAssistant* assistant = new KexiRecentProjectsAssistant( + d->tabbedToolBar->showMainMenu("project_welcome"); + KexiWelcomeAssistant* assistant = new KexiWelcomeAssistant( Kexi::recentProjects()); connect(assistant, SIGNAL(openProject(KexiProjectData)), this, SLOT(openProject(KexiProjectData))); diff --git a/kexi/main/KexiMainWindow.h b/kexi/main/KexiMainWindow.h index 0abb0f1..cbc1da3 100644 --- a/kexi/main/KexiMainWindow.h +++ b/kexi/main/KexiMainWindow.h @@ -592,9 +592,9 @@ protected slots: //! Only called on project opening and closing. void updateReadOnlyState(); + void slotProjectWelcome(); void slotProjectNew(); void slotProjectOpen(); - void slotProjectOpenRecent(); void slotProjectSave(); void slotProjectSaveAs(); void slotProjectPrint(); diff --git a/kexi/main/KexiMainWindow_p.h b/kexi/main/KexiMainWindow_p.h index 5837303..a3b2953 100644 --- a/kexi/main/KexiMainWindow_p.h +++ b/kexi/main/KexiMainWindow_p.h @@ -407,7 +407,7 @@ protected: topmargin += m_topLineHeight; m_menuWidget->setContentsMargins(leftmargin, topmargin, rightmargin, bottommargin); - m_menuWidget->addAction(ac->action("project_open_recent")); + m_menuWidget->addAction(ac->action("project_welcome")); m_menuWidget->addAction(ac->action("project_open")); //menu->addAction(new KexiMenuWidgetAction(KStandardAction::New, this)); //menu->addAction(new KexiMenuWidgetAction(KStandardAction::Open, this)); @@ -1497,8 +1497,8 @@ public: action_view_nav = 0; action_view_propeditor = 0; action_view_mainarea = 0; - action_open_recent_projects_title_id = -1; - action_open_recent_connections_title_id = -1; + action_welcome_projects_title_id = -1; + action_welcome_connections_title_id = -1; forceWindowClosing = false; insideCloseWindow = false; #ifndef KEXI_NO_PENDING_DIALOGS @@ -1932,18 +1932,17 @@ public: //! Kexi menu KAction *action_save, *action_save_as, *action_project_import_export_send, *action_close, - *action_project_properties, *action_open_recent_more, + *action_project_properties, *action_project_relations, *action_project_import_data_table, *action_project_export_data_table; #ifndef KEXI_NO_QUICK_PRINTING KAction *action_project_print, *action_project_print_preview, *action_project_print_setup; #endif - KAction *action_open_recent; + KAction *action_project_welcome; KAction *action_show_other; -// int action_open_recent_more_id; - int action_open_recent_projects_title_id, - action_open_recent_connections_title_id; + int action_welcome_projects_title_id, + action_welcome_connections_title_id; KAction *action_settings; //! edit menu diff --git a/kexi/main/startup/KexiRecentProjectsAssistant.cpp b/kexi/main/startup/KexiWelcomeAssistant.cpp similarity index 81% rename from kexi/main/startup/KexiRecentProjectsAssistant.cpp rename to kexi/main/startup/KexiWelcomeAssistant.cpp index d7861f8..34fcac6 100644 --- a/kexi/main/startup/KexiRecentProjectsAssistant.cpp +++ b/kexi/main/startup/KexiWelcomeAssistant.cpp @@ -17,7 +17,7 @@ * Boston, MA 02110-1301, USA. */ -#include "KexiRecentProjectsAssistant.h" +#include "KexiWelcomeAssistant.h" #include "KexiRecentProjectsModel.h" @@ -57,9 +57,9 @@ #include <QProgressBar> #include <QTimer> -KexiMainRecentProjectsPage::KexiMainRecentProjectsPage( - KexiRecentProjectsAssistant* assistant, QWidget* parent) - : KexiAssistantPage(i18n("Recent Projects"), +KexiMainWelcomePage::KexiMainWelcomePage( + KexiWelcomeAssistant* assistant, QWidget* parent) + : KexiAssistantPage(i18n("Welcome to Kexi"), i18n("Select one of the recently used projects to open."), parent) , m_assistant(assistant) @@ -82,7 +82,7 @@ KexiMainRecentProjectsPage::KexiMainRecentProjectsPage( QTimer::singleShot(100, this, SLOT(loadProjects())); } -void KexiMainRecentProjectsPage::loadProjects() +void KexiMainWelcomePage::loadProjects() { m_recentProjectsProxyModel = new KexiRecentProjectsProxyModel(m_recentProjects); KexiRecentProjectsModel* model = new KexiRecentProjectsModel(*m_assistant->projects()); @@ -91,7 +91,7 @@ void KexiMainRecentProjectsPage::loadProjects() m_recentProjectsProxyModel->sort(0, Qt::DescendingOrder); } -void KexiMainRecentProjectsPage::slotItemClicked(const QModelIndex& index) +void KexiMainWelcomePage::slotItemClicked(const QModelIndex& index) { if (!index.isValid()) return; @@ -111,10 +111,10 @@ void KexiMainRecentProjectsPage::slotItemClicked(const QModelIndex& index) // ---- -class KexiRecentProjectsAssistant::Private +class KexiWelcomeAssistant::Private { public: - Private(KexiRecentProjectsAssistant *qq) + Private(KexiWelcomeAssistant *qq) : q(qq) { } @@ -123,12 +123,12 @@ public: { } - KexiMainRecentProjectsPage* mainRecentProjectsPage() { - return page<KexiMainRecentProjectsPage>(&m_mainRecentProjectsPage, q); + KexiMainWelcomePage* mainWelcomePage() { + return page<KexiMainWelcomePage>(&m_mainWelcomePage, q); } template <class C> - C* page(QPointer<C>* p, KexiRecentProjectsAssistant *parent = 0) { + C* page(QPointer<C>* p, KexiWelcomeAssistant *parent = 0) { if (p->isNull()) { *p = new C(parent); q->addPage(*p); @@ -136,7 +136,7 @@ public: return *p; } - QPointer<KexiMainRecentProjectsPage> m_mainRecentProjectsPage; + QPointer<KexiMainWelcomePage> m_mainWelcomePage; QAction* messageWidgetActionNo; QAction* messageWidgetActionTryAgain; @@ -144,12 +144,12 @@ public: KexiRecentProjects* projects; - KexiRecentProjectsAssistant *q; + KexiWelcomeAssistant *q; }; // ---- -KexiRecentProjectsAssistant::KexiRecentProjectsAssistant( +KexiWelcomeAssistant::KexiWelcomeAssistant( KexiRecentProjects* projects, QWidget* parent) : KexiAssistantWidget(parent) , d(new Private(this)) @@ -157,23 +157,23 @@ KexiRecentProjectsAssistant::KexiRecentProjectsAssistant( d->messageWidgetActionNo = 0; d->messageWidgetActionTryAgain = 0; d->projects = projects; - setCurrentPage(d->mainRecentProjectsPage()); - setFocusProxy(d->mainRecentProjectsPage()); + setCurrentPage(d->mainWelcomePage()); + setFocusProxy(d->mainWelcomePage()); } -KexiRecentProjectsAssistant::~KexiRecentProjectsAssistant() +KexiWelcomeAssistant::~KexiWelcomeAssistant() { delete d; } -void KexiRecentProjectsAssistant::previousPageRequested(KexiAssistantPage* page) +void KexiWelcomeAssistant::previousPageRequested(KexiAssistantPage* page) { Q_UNUSED(page); } -void KexiRecentProjectsAssistant::nextPageRequested(KexiAssistantPage* page) +void KexiWelcomeAssistant::nextPageRequested(KexiAssistantPage* page) { - if (page == d->m_mainRecentProjectsPage) { + if (page == d->m_mainWelcomePage) { /* KexiDB::ConnectionData *cdata = d->projectConnectionSelectionPage()->connSelector->selectedConnectionData(); @@ -185,20 +185,20 @@ void KexiRecentProjectsAssistant::nextPageRequested(KexiAssistantPage* page) } } -void KexiRecentProjectsAssistant::cancelRequested(KexiAssistantPage* page) +void KexiWelcomeAssistant::cancelRequested(KexiAssistantPage* page) { Q_UNUSED(page); //TODO? } -void KexiRecentProjectsAssistant::showErrorMessage( +void KexiWelcomeAssistant::showErrorMessage( const QString &title, const QString &details) { Q_UNUSED(title); Q_UNUSED(details); } -void KexiRecentProjectsAssistant::showErrorMessage( +void KexiWelcomeAssistant::showErrorMessage( KexiDB::Object *obj, const QString& msg) { Q_UNUSED(obj); @@ -242,14 +242,14 @@ void KexiRecentProjectsAssistant::showErrorMessage( b->mapToGlobal(QPoint(0, b->height() / 2)));*/ } -void KexiRecentProjectsAssistant::tryAgainActionTriggered() +void KexiWelcomeAssistant::tryAgainActionTriggered() { // d->m_projectConnectionSelectionPage->next(); } -KexiRecentProjects* KexiRecentProjectsAssistant::projects() +KexiRecentProjects* KexiWelcomeAssistant::projects() { return d->projects; } -#include "KexiRecentProjectsAssistant.moc" +#include "KexiWelcomeAssistant.moc" diff --git a/kexi/main/startup/KexiRecentProjectsAssistant.h b/kexi/main/startup/KexiWelcomeAssistant.h similarity index 82% rename from kexi/main/startup/KexiRecentProjectsAssistant.h rename to kexi/main/startup/KexiWelcomeAssistant.h index 70e7ca6..1f5af0d 100644 --- a/kexi/main/startup/KexiRecentProjectsAssistant.h +++ b/kexi/main/startup/KexiWelcomeAssistant.h @@ -17,8 +17,8 @@ * Boston, MA 02110-1301, USA. */ -#ifndef KEXIRECENTPROJECTSASSISTANT_H -#define KEXIRECENTPROJECTSASSISTANT_H +#ifndef KEXIWELCOMEASSISTANT_H +#define KEXIWELCOMEASSISTANT_H #include <kexidb/connectiondata.h> #include <kexidb/msghandler.h> @@ -33,14 +33,14 @@ class KexiConnSelectorWidget; class KexiProjectData; class KexiProjectSelectorWidget; class KCategorizedView; -class KexiRecentProjectsAssistant; +class KexiWelcomeAssistant; class KexiRecentProjectsProxyModel; -class KexiMainRecentProjectsPage : public KexiAssistantPage +class KexiMainWelcomePage : public KexiAssistantPage { Q_OBJECT public: - explicit KexiMainRecentProjectsPage(KexiRecentProjectsAssistant* assistant, + explicit KexiMainWelcomePage(KexiWelcomeAssistant* assistant, QWidget* parent = 0); QString selectedTemplate; @@ -55,19 +55,19 @@ private slots: private: KexiCategorizedView* m_recentProjects; KexiRecentProjectsProxyModel* m_recentProjectsProxyModel; - KexiRecentProjectsAssistant* m_assistant; + KexiWelcomeAssistant* m_assistant; }; class KexiProjectData; class KexiRecentProjects; -class KexiRecentProjectsAssistant : public KexiAssistantWidget, - public KexiDB::MessageHandler +class KexiWelcomeAssistant : public KexiAssistantWidget, + public KexiDB::MessageHandler { Q_OBJECT public: - explicit KexiRecentProjectsAssistant(KexiRecentProjects* projects, QWidget* parent = 0); - ~KexiRecentProjectsAssistant(); + explicit KexiWelcomeAssistant(KexiRecentProjects* projects, QWidget* parent = 0); + ~KexiWelcomeAssistant(); //! Implementation for KexiDB::MessageHandler. virtual void showErrorMessage(const QString &title,