try to set a list when ctags requested and basic realpath for file class
This commit is contained in:
parent
356d7621ae
commit
dbade0e4e6
@ -156,7 +156,7 @@ void WindowsManager::OnMessage(int32_t id, int32_t dataID)
|
|||||||
case EDN_MSG__GUI_SHOW_ABOUT:
|
case EDN_MSG__GUI_SHOW_ABOUT:
|
||||||
{
|
{
|
||||||
// dlg to confirm the quit event :
|
// dlg to confirm the quit event :
|
||||||
GtkWidget *myDialog = gtk_dialog_new_with_buttons("Goto Line",
|
GtkWidget *myDialog = gtk_dialog_new_with_buttons("About",
|
||||||
NULL,
|
NULL,
|
||||||
GTK_DIALOG_MODAL,
|
GTK_DIALOG_MODAL,
|
||||||
GTK_STOCK_QUIT, GTK_RESPONSE_NO,
|
GTK_STOCK_QUIT, GTK_RESPONSE_NO,
|
||||||
@ -206,7 +206,7 @@ void WindowsManager::OnMessage(int32_t id, int32_t dataID)
|
|||||||
case EDN_MSG__GUI_SHOW_GOTO_LINE:
|
case EDN_MSG__GUI_SHOW_GOTO_LINE:
|
||||||
{
|
{
|
||||||
// dlg to confirm the quit event :
|
// dlg to confirm the quit event :
|
||||||
GtkWidget *myDialog = gtk_dialog_new_with_buttons("About",
|
GtkWidget *myDialog = gtk_dialog_new_with_buttons("Goto Line",
|
||||||
GTK_WINDOW(m_mainWindow->GetWidget()),
|
GTK_WINDOW(m_mainWindow->GetWidget()),
|
||||||
GTK_DIALOG_MODAL,
|
GTK_DIALOG_MODAL,
|
||||||
"Jump", GTK_RESPONSE_YES,
|
"Jump", GTK_RESPONSE_YES,
|
||||||
|
@ -99,10 +99,8 @@ void CTagsManager::OnMessage(int32_t id, int32_t dataID)
|
|||||||
{
|
{
|
||||||
GtkWidget *dialog = gtk_file_chooser_dialog_new( "Open Exuberant Ctags File", NULL,
|
GtkWidget *dialog = gtk_file_chooser_dialog_new( "Open Exuberant Ctags File", NULL,
|
||||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||||
GTK_STOCK_CANCEL, // button text
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
GTK_RESPONSE_CANCEL, // response id
|
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
|
||||||
GTK_STOCK_OPEN, // button text
|
|
||||||
GTK_RESPONSE_ACCEPT, // response id
|
|
||||||
NULL); // end button/response list
|
NULL); // end button/response list
|
||||||
if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
|
if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
@ -167,9 +165,108 @@ void CTagsManager::AddToHistory(int32_t bufferID)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
CTAGS_COL_FILE = 0,
|
||||||
|
CTAGS_COL_REGEXP,
|
||||||
|
CTAGS_NUM_COLS
|
||||||
|
};
|
||||||
|
|
||||||
|
static GtkTreeModel * create_and_fill_model(void)
|
||||||
|
{
|
||||||
|
GtkListStore * store;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
store = gtk_list_store_new(CTAGS_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING);
|
||||||
|
|
||||||
|
// Append a row and fill in some data
|
||||||
|
gtk_list_store_append(store, &iter);
|
||||||
|
gtk_list_store_set(store, &iter,
|
||||||
|
CTAGS_COL_FILE, "file1.c",
|
||||||
|
CTAGS_COL_REGEXP, "void function1(void);",
|
||||||
|
-1);
|
||||||
|
|
||||||
|
gtk_list_store_append(store, &iter);
|
||||||
|
gtk_list_store_set(store, &iter,
|
||||||
|
CTAGS_COL_FILE, "file2.c",
|
||||||
|
CTAGS_COL_REGEXP, "void function2(void);",
|
||||||
|
-1);
|
||||||
|
|
||||||
|
gtk_list_store_append(store, &iter);
|
||||||
|
gtk_list_store_set(store, &iter,
|
||||||
|
CTAGS_COL_FILE, "file3.c",
|
||||||
|
CTAGS_COL_REGEXP, "void function3(void);",
|
||||||
|
-1);
|
||||||
|
|
||||||
|
return GTK_TREE_MODEL(store);
|
||||||
|
}
|
||||||
|
|
||||||
|
static GtkWidget * create_view_and_model(void)
|
||||||
|
{
|
||||||
|
GtkCellRenderer * renderer;
|
||||||
|
GtkTreeModel * model;
|
||||||
|
GtkWidget * view;
|
||||||
|
|
||||||
|
view = gtk_tree_view_new();
|
||||||
|
|
||||||
|
// Column 1
|
||||||
|
renderer = gtk_cell_renderer_text_new();
|
||||||
|
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW (view),
|
||||||
|
-1,
|
||||||
|
"File",
|
||||||
|
renderer,
|
||||||
|
"text", CTAGS_COL_FILE,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
// Column 2
|
||||||
|
renderer = gtk_cell_renderer_text_new();
|
||||||
|
gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW (view),
|
||||||
|
-1,
|
||||||
|
"Regular Expression",
|
||||||
|
renderer,
|
||||||
|
"text", CTAGS_COL_REGEXP,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
model = create_and_fill_model();
|
||||||
|
|
||||||
|
gtk_tree_view_set_model(GTK_TREE_VIEW (view), model);
|
||||||
|
|
||||||
|
g_object_unref(model);
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void CTagsManager::MultipleJump(void)
|
||||||
|
{
|
||||||
|
// dlg to confirm the quit event :
|
||||||
|
GtkWidget *myDialog = gtk_dialog_new_with_buttons("C-Tags jump...",
|
||||||
|
NULL,
|
||||||
|
GTK_DIALOG_MODAL,
|
||||||
|
"Jump", GTK_RESPONSE_YES,
|
||||||
|
GTK_STOCK_QUIT, GTK_RESPONSE_NO,
|
||||||
|
NULL);
|
||||||
|
// Set over main windows
|
||||||
|
//gtk_window_set_transient_for(GTK_WINDOW(myDialog), GTK_WINDOW(m_mainWindow->GetWidget()));
|
||||||
|
// add writting area
|
||||||
|
GtkWidget *myContentArea = gtk_dialog_get_content_area( GTK_DIALOG(myDialog));
|
||||||
|
GtkWidget *listView = create_view_and_model ();
|
||||||
|
gtk_box_pack_start(GTK_BOX(myContentArea), listView, TRUE, TRUE, 0);
|
||||||
|
// Display it
|
||||||
|
gtk_widget_show_all(myContentArea);
|
||||||
|
int32_t result = gtk_dialog_run (GTK_DIALOG (myDialog));
|
||||||
|
// Get data from the gtk entry
|
||||||
|
|
||||||
|
// Remove dialogue
|
||||||
|
gtk_widget_destroy(myDialog);
|
||||||
|
}
|
||||||
|
|
||||||
void CTagsManager::JumpTo(void)
|
void CTagsManager::JumpTo(void)
|
||||||
{
|
{
|
||||||
|
MultipleJump();
|
||||||
if (NULL != m_ctagFile) {
|
if (NULL != m_ctagFile) {
|
||||||
Edn::VectorType<int8_t> data;
|
Edn::VectorType<int8_t> data;
|
||||||
// get the middle button of the clipboard ==> represent the current selection ...
|
// get the middle button of the clipboard ==> represent the current selection ...
|
||||||
|
@ -47,6 +47,7 @@ class CTagsManager: public Singleton<CTagsManager>, public MsgBroadcast
|
|||||||
private:
|
private:
|
||||||
int32_t m_currentSelectedID;
|
int32_t m_currentSelectedID;
|
||||||
void LoadTagFile(void);
|
void LoadTagFile(void);
|
||||||
|
void MultipleJump(void);
|
||||||
void JumpTo(void);
|
void JumpTo(void);
|
||||||
void PrintTag(const tagEntry *entry);
|
void PrintTag(const tagEntry *entry);
|
||||||
Edn::String GetFolder(Edn::String &inputString);
|
Edn::String GetFolder(Edn::String &inputString);
|
||||||
|
@ -117,6 +117,7 @@ int main (int argc, char *argv[])
|
|||||||
myfile+="/";
|
myfile+="/";
|
||||||
}
|
}
|
||||||
myfile+=(char *)argv[i];
|
myfile+=(char *)argv[i];
|
||||||
|
|
||||||
if (false == myBufferManager->Exist(myfile) ) {
|
if (false == myBufferManager->Exist(myfile) ) {
|
||||||
int32_t idBuffOpened = myBufferManager->Open(myfile);
|
int32_t idBuffOpened = myBufferManager->Open(myfile);
|
||||||
if (1==i) {
|
if (1==i) {
|
||||||
|
@ -28,12 +28,15 @@
|
|||||||
#include "tools_globals.h"
|
#include "tools_globals.h"
|
||||||
#include "Edn.h"
|
#include "Edn.h"
|
||||||
|
|
||||||
|
#define MAX_FILE_NAME (10240)
|
||||||
|
|
||||||
Edn::File::File(Edn::String &filename, int32_t LineNumber)
|
Edn::File::File(Edn::String &filename, int32_t LineNumber)
|
||||||
{
|
{
|
||||||
m_lineNumberOpen = 0;
|
m_lineNumberOpen = 0;
|
||||||
SetCompleateName(filename);
|
SetCompleateName(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Edn::File::File(Edn::String &filename, Edn::String &folder, int32_t lineNumber)
|
Edn::File::File(Edn::String &filename, Edn::String &folder, int32_t lineNumber)
|
||||||
{
|
{
|
||||||
Edn::String tmpString = folder;
|
Edn::String tmpString = folder;
|
||||||
@ -105,8 +108,18 @@ Edn::String Edn::File::GetCompleateName(void)
|
|||||||
|
|
||||||
void Edn::File::SetCompleateName(Edn::String &newFilename)
|
void Edn::File::SetCompleateName(Edn::String &newFilename)
|
||||||
{
|
{
|
||||||
|
char buf[MAX_FILE_NAME];
|
||||||
|
memset(buf, 0, MAX_FILE_NAME);
|
||||||
|
char * ok;
|
||||||
|
// Get the real Path of the current File
|
||||||
|
ok = realpath(newFilename.c_str(), buf);
|
||||||
|
if (!ok) {
|
||||||
|
EDN_ERROR("Can not find real name of \"" << newFilename.c_str() << "\"");
|
||||||
|
} else {
|
||||||
|
EDN_DEBUG("file : \"" << newFilename.c_str() << "\" done:\"" << buf << "\" ");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int32_t Edn::File::GetLineNumber(void)
|
int32_t Edn::File::GetLineNumber(void)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user