Ru-Board.club
← Вернуться в раздел «Программы»

» CintaNotes

Автор: IffG
Дата сообщения: 16.05.2014 19:31
Andarin
Спасибо, прокруткой дело частично решается. До последней версии ещё не обновлял.

Хотелось бы узнать у jenter о планах по работе над функционалом поиска.
Автор: SKYNET3000
Дата сообщения: 16.05.2014 19:54

Цитата:
Просто эта возможность относится к версии Pro.

ViCin
Не врите. В триальной это тоже есть

Добавлено:
Просто в триале эта фича всего лишь 10 дней будет работать
Автор: vivek
Дата сообщения: 16.05.2014 21:29

Цитата:
В триальной это тоже есть

Ну так это вроде само собой. Триальные версии как раз для того и нужны, чтобы ознакомиться с про-возможностями.
И незачем кидаться на людей.
Автор: SKYNET3000
Дата сообщения: 16.05.2014 22:55

Цитата:
Триальные версии как раз для того и нужны, чтобы ознакомиться с про-возможностями.

vivek
Ошибаетесь. Это только совсем недавно Джентер по многочисленным просьба пользователей это сделал. А раньше в триале был сильно урезанный функционал

Добавлено:
Который не позволял "пощупать" Pro версию
Автор: rsuan
Дата сообщения: 17.05.2014 15:43
Jenter, предлагаю ввести два режима строки поиска. Первый, как сейчас, ищет сразу по мере набора, а второй - только при нажатии например на Enter. И кнопка-переключатель режимов.
В большой базе при сквозном поиске по всей базе по мере набора всё-таки ощущаются задержки. В этом случае был бы удобнее второй режим.
Автор: SKYNET3000
Дата сообщения: 17.05.2014 16:55
rsuan
Поддерживаю. Нужна галка "Поиск по мере набора".
Которую при желании можно было снять.
А то при вводе каждой буквы приходится ждать по несколько Сек

Добавлено:
И если слово букофф 7, то вводишь его секунд по 40
Автор: rsuan
Дата сообщения: 17.05.2014 18:38
Или проще - оставить один теперешний вариант, но чтоб давал вводить во время того как Cinta ищет. При этом чтобы программа при изменении строки поиска (напр. введении очередного символа) прекращала искать прежний вариант строки поиска, и приступала к новому.

Добавлено:
И ещё предложение. В текстовых редакторах, позволяющих вводить текст жирным, курсивным, подчёркиванием, ставишь нужный вид шрифта в данной позиции курсора, и набираемый текст вводится с таким видом шрифта. В Cinta же так не получается. Нужно сначала выделить хотя бы один символ, преобразовать его в нужный вид, а потом только набираемый текст будет такого вида.
Автор: ViCin
Дата сообщения: 17.05.2014 19:18
Да, подтверждаю тоже. Сталкивался с такими подвисонами. (Я по поводу поиска)
Автор: Lexa270
Дата сообщения: 18.05.2014 11:11
Может кто подскажет как вернуть кнопку all в версии 2.6 Или я что-то делаю неправильно..
Накатил сверху версии 2.5 кнопка пропала.
Автор: KABAZEK
Дата сообщения: 18.05.2014 11:20
Странно, в портабле все нормально, кнопка на месте.
Автор: Andarin
Дата сообщения: 18.05.2014 11:54

Цитата:
Странно, в портабле все нормально, кнопка на месте.

У меня Portable, кнопки нет. Только что обнаружил
Автор: KABAZEK
Дата сообщения: 18.05.2014 12:12
Я обычно ставлю портабле, запускаю. А патом просто базу переношу. Кнопка на месте.
Только что проверил еще раз. Кнопка есть.
Автор: Andarin
Дата сообщения: 18.05.2014 12:31
KABAZEK
А версия точно 2.6? А то в 2.5.2 ещё есть, а в 2.6 уже нет.
Автор: KABAZEK
Дата сообщения: 18.05.2014 12:37
Да только что скачал портабле с оффсайта.
CintaNotes_2_6.zip
d8914fbedd209791e88c8d63a06175ce *CintaNotes_2_6.zip

Автор: Andarin
Дата сообщения: 18.05.2014 13:27
Не знаю, скачал снова, запускаю - кнопки нет. MD5 совпадает. В 2.5.2 есть, в 2.6 - нет.
Lexa270:
Хм, нашёл, в чём дело:
Цитата:
Option to hide “All” button on section bar, with it being hidden by default
В файле cintanotes.settings есть такой пункт "sectionbar.allsectionsbutton.displayed = 0", надо поставить в 1. Как её сделать видимой другим путём - не нашёл и в справке.

Автор: Lexa270
Дата сообщения: 18.05.2014 13:51
Andarin
Автор: KABAZEK
Дата сообщения: 18.05.2014 14:05
Andarin
Ха приходется своим умом чють чють.

Автор: Andarin
Дата сообщения: 18.05.2014 14:28
Но почему у KABAZEK кнопка видима в 2.6? Пункт "sectionbar.allsectionsbutton.displayed = 0" сам появляется, а в 2.5.2 его не было. Пока "1" не поставишь вручную, кнопка не появляется. Не могу понять, как это могло быть. Если, может, версия не Portable чем-то отличается в этом плане. И даже если от в 2.5.2 конфиг поверх переписать (и базу), всё равно первый же запуск 2.6 - кнопки нет.

Автор: KABAZEK
Дата сообщения: 18.05.2014 15:03
Говорю что есть.
Автор: Krot66
Дата сообщения: 19.05.2014 10:03
Скрипт Autohotkey, расширяющий функциональность CintaNotes
(Прошу рассматривать данную примочку в качестве пожеланий автору ))))
Возможности:
1. Создание заметки в заданной секции с заданным тэгом по горячей клавише. Можно повесить на одну клавишу и несколько тэгов, каждый из которых может быть и дочерним
2. Возможность определения пути файла из командной строки активной программы (если она запускается при его открытии), подстановка его в поле адреса для открытия по F7
3. Открытие заданной секции или секции с тэгом по горячей клавише (все клавиши задаются один раз - меняются только модификаторы)
4. Для файлов распознанных из командной строки возможна автоматическая генерация тэгов по имени файла в заданной в настройках секции. После при открытии файла по одному и тому же сочетанию клавиш будут открываться и связанные с ним заметки. Можно параллельно работать со множеством материалов, не путая их содержимое и сортируя заметки по мере необходимости
5. Возможность автоматической генерации тэгов по имени процесса активного окна в определенной в настройках секции, что позволяет делать заметки в изучаемых программах и быстро открывать их, когда программа запущена, опять же, по одному сочетанию клавиш
6. Создание заметки с суффиксом или в дочернем тэге ToDo при секундном зажатии правого Ctrl. То же зажатие правого Ctrl при открытии будет открывать соответствующий тэг
7. Если активно окно Far, по горячей клавише в соответствующей секии и назначенным тэгом создается пустая заметка с заголовком из пути файла и ссылкой на него, что удобно при работе сбольшими скоплениями файлов, библиотках и др.
8. Возможность смены секции и тэга на заданные в окне редактирования по горячей клавише (при сортировке, ошибках и пр.)
9. Щелчок средней кнопки - открытие адреса выделенной заметки или локального файла
10. Ctrl+ПКМ - копирование выделенной заметки
11. Shift+ПКМ - редактирование тэгов выделенной заметки
12. LCtrl+Space в окне редактирования - дочерний тэг /!!!
13. Возможность ограничения числа последовательных пустых строк в скопированном в заметку тексте и отбрасывания первых пустых строк
14. Возможность сохранения в буфере обмена скопированного текста или первой непустой строки в виде, пригодном для переименования файлов (делаешь заметку о ставящемся на закачку файле и сразу же меняешь название на взятое из заголовка)
Остальное - смотри скрипт
[more]

Код:
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance, force
Menu, Tray, Icon, shell32.dll, 21
SetTitleMatchMode, 2
SetTitleMatchMode, Slow
;~ SetKeyDelay 50, 50
goto start

; Настройки горячих клавиш программы должны быть Ctrl+F12 - создание, CTRL+ALT+F12 - показать главное окно.
; В Настройках - Захват текста - После захвата должно стоять "Открыть на редактирование"

; При запуске в каталоге скрипта создается одноименный пустой конфигурационный cfg-файл. В него вписываются строки вида:
;     номер секции,тэг,имя клавиши или ее код (виртуальный или скан),пояснение (необязательно)
; На основании этих записей происходит создание и открытие заметок по горячим клавишам.
;     Например:
;    1,Comp,vk43,c - тэг Comp в первой секции по клавише c
;     1,Soft Comp,vk53,S - два тэга там же по s
;     1,Books/читать,sc30,b - дочерний тэг "читать" в Books по b
; 1,Книги Books/читать,F6 - комбинация двух предыдущих возможностей по F6
;     5,,5 - пятая секция без тэга по 5 и т.д.
; Допускаются пустые строки, лишние пробелы - только в пояснениях. Временно ненужное можно закоментировать ";". Удобно отмечать постоянные тэги латиницей, тогда они всегда будут вверху. Для применения изменений требуется перезапуск скрипта

; --------- Горячие клавиши ----------

>^>+F12::Run % cfg ; RCtrl+RShift+F12 - окрытие конфигурационного файла

; RCtrl+RShift+клавиша - создание заметки с заданной (и уже существующей!) секцией и тэгом (если определен)
; RCtrl+RAlt+клавиша - открытие заметок с заданными секцией и тэгом
; RCtrl+RShift+RAlt+клавиша - замена секции и тэга в открытом окне редактирования данными, связанными с клавишей

; Создание заметки в заданной секции без тэга
>^>+1::Note(1) ; RCtrl+RShift+1 - в 1-й секции
>^>+2::Note(2) ; RCtrl+RShift+2 - во 2-й
>^>+3::Note(3) ; RCtrl+RShift+3 - в 3-й

; Открытие окна программы
>^>!1::Open(1) ; RCtrl+RAlt+1 - 1-й секции
>^>!2::Open(2) ; RCtrl+RAlt+2 - 2-я секции
>^>!3::Open(3) ; RCtrl+RAlt+3 - 3-я секции

>^>+vkBF::Note(name_tag,"$name") ; RCtrl+RShift+/ - создание записи с автоматически сгенерированным из названия открытого файла, определенного из командной строки (секция задается в настройках ниже; работает, если программа запускается вместе с открытием файла)
>^>!vkBF::Open(name_tag,"$name") ; RCtrl+RAlt+/ - открытие секции/тэга, соответствующих данному запущенному файлу (если нет - открывается настроенная секция)

>^>+Space::Note(proc_tag,"$proc") ; RCtrl+RShift+Space - все то же, но название берется из имени процесса, соответствующего открытому окну
>^>!Space::Open(proc_tag,"$proc") ; RCtrl+RAlt+Space - открытие секции/тэга, соответствующих активному приложению приложению

; Мышь (действует в окне программы)
#IfWinActive ahk_class CintaNotes.MainFrame
MButton::Send {F7} ; Cредняя кнопка - открытие адреса выделенной заметки
^RButton::Send ^{vk43} ; Ctrl+ПКМ - копирование выделенной заметки
+RButton::Send {F4} ; Shift+ПКМ - редактирование тэгов заметки

#IfWinActive ahk_class Cinta.ModelessDialog
<^Space:: ; LCrl+Space в окне редактирования - тэг меняется на дочерний /!!!
ControlGetText tag, Cinta.Edit2
StringTrimRight tag, tag, 1
ControlSetText Cinta.Edit2, % tag "/!!!"
return
#IfWinActive
start:

;------------ Настройки скрипта -------------

add_chtag:=1 ; Создание заметки с суффиксом или в дочернем тэге ToDo при секундном зажатии правого Ctrl. То же зажатие правого Ctrl при открытии или переименовании будет задействовать соответствующий тэг

chtag:="_ToDo" ; Сам этот суффикс. Если вписать "/ToDo", будет создаваться дочерний тэг

local_path:=2 ; Определения пути локального файла из командной строки (работает, если программа запускается вместе с открытием файла). 1 - записывать в поле адреса, для запуска по F7/СКМ, 2 - записывать и в примечание, 3 - то же, но записывать в поле адреса содержащую файл папку, 0 - не использовать.
; Если активно окно FAR, при local_path > 0 будет создаваться пустая заметка с заголовком из пути выделенного файла или папки и ссылкой на него

excl:="LibreOffice,OpenOffice" ; Фрагменты заголовков окон программ, в которых это определение работает неверно и поле адреса остается пустым, через запятую

name_tag:=3 ; Номер секции, в которой будет автоматически создаваться запись с тэгом из названия открытого файла

proc_tag:=1 ; Номер секции, в которой будет автоматически создаваться запись с тэгом из процесса активного окна

estr:=2 ; Максимальное число последовательных пустых строк в скопированном тексте; первые пустые строки отбрасываются автоматически. 0 - без ограничения

clip:=2 ; Сохранять в буфере обмена: 1 - текст заметки, 2 - первую непустую строку в виде, пригодном для переименования файлов; 0 - без изменения

;----------------------------------

SplitPath A_ScriptName, , , , cfg
cfg:=cfg ".cfg"
IfNotExist % cfg
    FileAppend , , % cfg, utf-8
Loop Read, % cfg
{
    If A_LoopReadLine contains `;
        continue
    If A_LoopReadLine=`r`n
        continue
    Loop Parse, A_LoopReadLine, CSV
    {
        If (A_Index=1)            
            tab:=A_LoopField
        If (A_Index=2)
            tag:=A_LoopField    
        If (A_Index=3)
            key:=A_LoopField
    }
    tab_%key%:=tab
    tag_%key%:=tag
    Hotkey % ">^>+" key, Note
    Hotkey IfWinActive, ahk_class Cinta.ModelessDialog
    Hotkey % ">^>+>!" key, Note
    Hotkey IfWinActive
    Hotkey % ">^>!" key, Open
}
return

Note:
getp()
Note(tab,tag)
return

Open:
getp()
Open(tab,tag)
return

getp()
{
    global
    StringGetPos kf, A_ThisHotkey, ^
    StringTrimLeft key, A_ThisHotkey, kf+1
    StringGetPos kf, key, +
    StringTrimLeft key, key, kf+1
    StringGetPos kf, key, !
    StringTrimLeft key, key, kf+1
    tab:=tab_%key%
    tag:=tag_%key%
    return
}
                    

Note(tab,tag="")
{
    global
    clip_old:=Clipboard
    far:=0
    KeyWait Shift, T1
    KeyWait Ctrl, T0.6
    e:=ErrorLevel
    WinGetActiveTitle t
    WinGetClass cl, A
    f_path:=""
    If local_path
    {
        If t not contains % excl
            f_path:=GetPath(t,1)
        If t contains Far 3,Far 2,Far 1            
        {
            Clipboard:=""
            Send ^!{Ins}
            ClipWait 2
            If Clipboard
            {
                f_path:=ClipBoard
                far:=1
            }
        }
        If (tag="$name")
        {
            SplitPath f_path, , , , tag
            StringReplace tag, tag, % " ", % "_", All
        }
        If (tag="$proc")
        {
            WinGet pr, ProcessName, % t
            SplitPath pr, , , , pr
            StringReplace tag, pr, % " ", % "_", All
        }
    }
    If A_Thishotkey not contains % ">^>+>!"
    {
        KeyWait RCtrl
        Send ^{F12}
        If (cl="Cinta.ModelessDialog")
            WinWaitNotActive % t, , 10
        WinWaitActive ahk_class Cinta.ModelessDialog, , 10
        Sleep 200
    }
    If far
    {
        ControlSetText Cinta.Edit1, % "Far: " f_path
        ControlSetText Cinta.RichEdit1,% ""
    }
    ControlGetText add, Cinta.Edit3, ahk_class Cinta.ModelessDialog
    If (add="") && (local_path>0) && (f_path<>"")
    {
        If (local_path>1)
            ControlSetText Cinta.RichEdit2, % f_path
        If (local_path=3)
            SplitPath f_path, , f_path            
        ControlSetText Cinta.Edit3, % f_path        
    }
    If estr
    {
        ControlGetText txt, Cinta.RichEdit1
        txt:=MaxEmptyString(txt,estr)
        ControlSetText Cinta.RichEdit1, % txt
    }        
    If clip
    {
        ControlGetText ntxt, Cinta.RichEdit1, ahk_class Cinta.ModelessDialog
        If (clip=2)
        {
            Loop parse, ntxt, `n, `r
            {
                If (A_LoopField="")
                    continue
                ntxt:=A_LoopField            
                break            
            }
            ntxt:=ValidName(ntxt)
            ntxt:=FirstUppercase(ntxt)
        }
        Clipboard:=ntxt
    }
    else
        Clipboard:=clip_old
    Control Choose, % tab, Cinta.Combobox1, ahk_class Cinta.ModelessDialog
    ControlFocus Cinta.Edit2
    If tag
    {
        If (add_chtag>0) && (e>0)
            tag:=tag . chtag
        ControlSetText Cinta.Edit2, % tag
        Send {End}
    }
    return
}

Open(tab,tag="")
{
    global
    KeyWait RAlt, T1
    KeyWait RCtrl, T0.6
    e:=ErrorLevel
    If (tag="$name")
    {
        WinGetActiveTitle t
        tag:=GetPath(t,1)
        SplitPath tag, , , , tag
        StringReplace tag, tag, % " ", % "_", All
    }
    If (tag="$proc")
    {
        WinGet pr, ProcessName, % t
        SplitPath pr, , , , pr
        StringReplace tag, pr, % " ", % "_", All
    }
    IfWinActive ahk_class CintaNotes.MainFrame
        goto end
    KeyWait RCtrl
    Send ^!{F12}
    WinWait ahk_class CintaNotes.MainFrame, , 2
    If ErrorLevel
        return
    end:
    Send ^{%tab%}
    Sleep 300
    If tag
    {
        If (add_chtag>0) && (e>0)
            tag:=tag . chtag
        ControlSetText Cinta.Edit1, % tag
        ControlSend Cinta.Edit1, {Enter}
    }
    return
}

FirstUppercase(t)
{
    StringLeft n, t, 1
    StringTrimLeft k, t, 1
    StringUpper n, n
    return n . k
}

MaxEmptyString(text,max)
{
    t:=""
    n:=max
    Loop Parse, text, `n, `r
    {
        If A_LoopField
        {
            t:=t . A_LoopField "`r`n"
            n:=0
            continue            
        }
        else
        {
            n:=n+1
            If (n<=max)
                t:=t "`r`n"
        }
    }
    return t
}

GetPath(title,del_quotes=0)
{
    WinGet pr, ProcessName, % title
    Process, Exist, % pr
    pid := ErrorLevel
    for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    If (process.ProcessId = pid)
    cmdline := process.CommandLine
    If cmdline contains Explorer.exe
        cmdline:=""
    StringGetPos pos, cmdline, .exe"
    StringTrimLeft f_path, cmdline, % pos+6
    If del_quotes
        StringReplace f_path, f_path, ", , All
    return f_path
}

ValidName(n)
{
    StringReplace n, n, `r`n,% " ", All
    StringReplace n, n, `n,% " ", All
    StringReplace n, n, \,% " ", All
    StringReplace n, n, /,% " ", All
    StringReplace n, n, :, ,All
    StringReplace n, n, *, ,All
    StringReplace n, n, ?, ,All
    StringReplace n, n, ", ,All
    StringReplace n, n, >,% " ", All
    StringReplace n, n, <,% " ", All
    StringReplace n, n, |, -, All
    StringReplace n, n,% " ", % " ", All
    return Trim(n)
}    

Автор: ViCin
Дата сообщения: 19.05.2014 10:59
Было бы здорово, но не работает у меня.
Error at line 311. Line Text: for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process") Error: This line does non contain a recognized action
Автор: murmanman
Дата сообщения: 20.05.2014 11:28
А можно как то сделать чтобы несколько ссылок указать в заметках?
А не только одну
Автор: Andarin
Дата сообщения: 20.05.2014 11:56
murmanman 15:28 20-05-2014
Цитата:
А можно как то сделать чтобы несколько ссылок указать в заметках? А не только одну

А в чём проблема? Сколько угодно можно. Или невнятно поясняете свою мысль.
Автор: Krot66
Дата сообщения: 20.05.2014 20:27
ViCin
Странно, это должно работать всюду. Попробуй поставить local_path:=0
Автор: Andarin
Дата сообщения: 20.05.2014 20:53
Krot66
Кстати, если не трудно, уберите простыню под [more].
Автор: ViCin
Дата сообщения: 20.05.2014 21:08
Krot66
Та же ошибка. Значит, не в том дело. Может, версию новую AHK надо поставить?
Автор: Krot66
Дата сообщения: 20.05.2014 21:36
ViCin
Версия дб 1.1+ осюда Ссылка
Ставить по умолчанию, юникодную версию
Автор: Krot66
Дата сообщения: 21.05.2014 08:44
Исправил два неправильных пояснения в скрипте
RCtrl+RShift+Space - создание записи с тэгом из имени процесса, RCtrl+RAlt+Space - открытие
Автор: ViCin
Дата сообщения: 22.05.2014 10:52
Krot66
Да, в новой версии скрипт запускается. Осталось разобраться, что можно от него взять полезного...
Только вот что теперь: куда в этой версии девалась возможность записывать скрипты в реальном времени? (Забыл, как там утилита называлась).
Автор: Krot66
Дата сообщения: 22.05.2014 15:19
Убрали ее уже давно. Вот сверхполноценный заменитель Ссылка

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677

Предыдущая тема: Зарплата Камин 2 ....


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.