You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.8 KiB
140 lines
4.8 KiB
/*
|
|
* Copyright (C) 2003 Roberto Raggi (roberto@kdevelop.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.
|
|
*
|
|
* 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
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#include "quickopen_part.h"
|
|
#include "quickopenclassdialog.h"
|
|
#include "quickopenfunctiondialog.h"
|
|
#include "quickopenfiledialog.h"
|
|
|
|
#include <kaction.h>
|
|
#include <kiconloader.h>
|
|
#include <klocale.h>
|
|
#include <klineedit.h>
|
|
#include <kdevgenericfactory.h>
|
|
#include <kdevplugininfo.h>
|
|
|
|
#include <kmainwindow.h>
|
|
|
|
#include <kparts/part.h>
|
|
#include <ktexteditor/document.h>
|
|
|
|
#include <kdevmainwindow.h>
|
|
#include <kdevcore.h>
|
|
#include <kdevpartcontroller.h>
|
|
#include <kdevproject.h>
|
|
#include <codebrowserfrontend.h>
|
|
|
|
#include "kdeveditorutil.h"
|
|
|
|
typedef KDevGenericFactory<QuickOpenPart> QuickOpenFactory;
|
|
static const KDevPluginInfo data("kdevquickopen");
|
|
K_EXPORT_COMPONENT_FACTORY( libkdevquickopen, QuickOpenFactory( data ) )
|
|
|
|
using namespace KTextEditor;
|
|
|
|
QuickOpenPart::QuickOpenPart(TQObject *parent, const char *name, const TQStringList& )
|
|
: KDevQuickOpen(&data, parent, name ? name : "QuickOpenPart" )
|
|
{
|
|
setInstance(QuickOpenFactory::instance());
|
|
setXMLFile("kdevpart_quickopen.rc");
|
|
|
|
m_actionQuickOpen = new KAction( i18n("Quick Open File..."), CTRL + ALT + Key_O,
|
|
this, TQT_SLOT(slotQuickFileOpen()),
|
|
actionCollection(), "quick_open" );
|
|
m_actionQuickOpen->setToolTip(i18n("Quick open file in project"));
|
|
m_actionQuickOpen->setWhatsThis(i18n("<b>Quick open</b><p>Provides a file name input form with completion listbox to quickly open file in a project."));
|
|
|
|
m_actionQuickOpenClass = new KAction( i18n("Quick Open Class..."), CTRL + ALT + Key_C,
|
|
this, TQT_SLOT(slotQuickOpenClass()),
|
|
actionCollection(), "quick_open_class" );
|
|
m_actionQuickOpenClass->setToolTip(i18n("Find class in project"));
|
|
m_actionQuickOpenClass->setWhatsThis(i18n("<b>Find class</b><p>Provides a class name input form with completion listbox to quickly open a file where the class is defined."));
|
|
|
|
m_actionFunctionOpen = new KAction( i18n("Quick Open Method..."), CTRL + ALT + Key_M, this, TQT_SLOT(slotQuickOpenFunction()), actionCollection(), "quick_open_function" );
|
|
m_actionFunctionOpen->setToolTip(i18n("Quick open function in project"));
|
|
|
|
m_switchToAction = new KAction(i18n("Switch To..."), KShortcut("CTRL+/"), this, TQT_SLOT(slotSwitchTo()), actionCollection(), "file_switchto");
|
|
m_switchToAction->setToolTip(i18n("Switch to"));
|
|
m_switchToAction->setWhatsThis(i18n("<b>Switch to</b><p>Prompts to enter the name of previously opened file to switch to."));
|
|
|
|
connect( core(), TQT_SIGNAL(projectOpened()), this, TQT_SLOT(slotProjectOpened()) );
|
|
connect( core(), TQT_SIGNAL(projectClosed()), this, TQT_SLOT(slotProjectClosed()) );
|
|
}
|
|
|
|
|
|
QuickOpenPart::~QuickOpenPart()
|
|
{
|
|
}
|
|
|
|
void QuickOpenPart::slotProjectOpened( )
|
|
{
|
|
}
|
|
|
|
void QuickOpenPart::slotProjectClosed( )
|
|
{
|
|
}
|
|
|
|
void QuickOpenPart::slotQuickFileOpen( )
|
|
{
|
|
QuickOpenFileDialog dlg( this, mainWindow()->main() );
|
|
dlg.exec();
|
|
}
|
|
|
|
void QuickOpenPart::slotQuickOpenClass( )
|
|
{
|
|
QuickOpenClassDialog dlg( this, mainWindow()->main() );
|
|
dlg.nameEdit->setText( KDevEditorUtil::currentWord( dynamic_cast<KTextEditor::Document*>( partController()->activePart() ) ) );
|
|
dlg.exec();
|
|
}
|
|
|
|
void QuickOpenPart::slotQuickOpenFunction()
|
|
{
|
|
QuickOpenFunctionDialog dlg( this, mainWindow()->main() );
|
|
dlg.nameEdit->setText( KDevEditorUtil::currentWord( dynamic_cast<KTextEditor::Document*>( partController()->activePart() ) ) );
|
|
dlg.exec();
|
|
}
|
|
|
|
void QuickOpenPart::slotSwitchTo()
|
|
{
|
|
QuickOpenFileDialog dlg( this, partController()->openURLs(), mainWindow()->main() );
|
|
dlg.exec();
|
|
}
|
|
|
|
void QuickOpenPart::selectItem( ItemDom item )
|
|
{
|
|
Extensions::KDevCodeBrowserFrontend* f = extension< Extensions::KDevCodeBrowserFrontend > ( "KDevelop/CodeBrowserFrontend" );
|
|
|
|
if(f != 0) {
|
|
ItemDom itemDom( &(*item) );
|
|
f->jumpedToItem( itemDom );
|
|
} else {
|
|
kdDebug() << "could not find the proper extension\n";
|
|
}
|
|
}
|
|
|
|
void QuickOpenPart::quickOpenFile(const KURL::List urls)
|
|
{
|
|
QuickOpenFileDialog dlg( this, urls, mainWindow()->main() );
|
|
dlg.exec();
|
|
}
|
|
|
|
|
|
#include "quickopen_part.moc"
|